Files

3.0 KiB

LPIC-3 334.2: Network intrusion detection

Snort with local rules, by hand and as a service, and bandwidth monitoring with ntopng and iftop. Snort and ntopng are packaged for Ubuntu, not for the RHEL family, so this lab runs on Ubuntu only.

Before you start

The peer, at 10.99.0.2 (name peer), plays the outside host that sends traffic. It sits on this VM's second network, 10.99.0.0/24, where this VM is 10.99.0.1 on interface le-host: watch that interface. Get a shell in the peer with sudo ip netns exec lepeer bash; it shares this VM's files and programs, so install nmap here to use it there.

The lab runs a small web server on 10.99.0.1:8080 (le-lab-app) with a large file, big.bin. Snort's installer would pick up the lab's le-host interface by a name it can't use and fail, so the lab writes /etc/snort/snort.debian.conf first, with your main interface. OpenVAS needs a large feed download and several gigabytes of memory, so it isn't part of this lab.

Tasks

  1. Install Snort and stop the service the package starts. Write two local rules in /etc/snort/rules/local.rules: an alert for pings (ICMP type 8) to the home network, sid:1000001, and an alert for web requests to port 8080 whose URI contains /lab-admin, sid:1000002. Check that the configuration validates with HOME_NET set to 10.99.0.0/24 on le-host.
  2. Run Snort by hand on le-host with console alerts going to /root/snort-console.txt. From the peer, ping this VM, ask for http://10.99.0.1:8080/lab-admin, and send an nmap Xmas scan. Stop Snort and read the alerts: your two rules, and the distributed rule 1228 for the scan.
  3. Run Snort as the packaged service instead, on le-host with the home network 10.99.0.0/24, set in its Debian configuration file, so that pings from the peer land in /var/log/snort/snort.alert.fast. Summarize that file with snort-stat.
  4. Install ntopng and iftop. Make ntopng watch le-host and answer on port 3000. Download big.bin over and over from the peer at a limited rate, and watch the traffic with an iftop text report.

Hints

  • DEBIAN_FRONTEND=noninteractive apt-get install -y snort; systemctl stop snort. /etc/snort/snort.conf already includes $RULE_PATH/local.rules. alert icmp any any -> $HOME_NET any (msg:"..."; itype:8; sid:1000001; rev:1;); for the web rule, flow:to_server,established; content:"/lab-admin"; http_uri;. snort -T -c /etc/snort/snort.conf -i le-host -S HOME_NET=[10.99.0.0/24].
  • setsid -f timeout 600 snort -A console -q -k none -c ... -i le-host -S ... > /root/snort-console.txt 2>&1; give it half a minute to load. ping -c 2, curl, nmap -sX -p 22,80 10.99.0.1 from the peer; pkill -x snort writes out what it buffered.
  • /etc/snort/snort.debian.conf: DEBIAN_SNORT_HOME_NET, DEBIAN_SNORT_INTERFACE; systemctl restart snort, ps -o args= -C snort; snort-stat < /var/log/snort/snort.alert.fast.
  • -i=le-host in /etc/ntopng.conf, systemctl restart ntopng; curl --limit-rate 5M; iftop -t -n -P -s 10 -i le-host.