mirror of https://github.com/OISF/suricata
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			84 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
			
		
		
	
	
			84 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
Autogenerated on 2012-11-29
 | 
						|
from - https://suricata.readthedocs.io/en/latest/setting-up-ipsinline-for-linux.html
 | 
						|
 | 
						|
 | 
						|
Setting up IPS/inline for Linux
 | 
						|
 | 
						|
In this guide will be explained how to work with Suricata in inline mode and
 | 
						|
how to set iptables for that purpose.
 | 
						|
First start with compiling Suricata with NFQ support. For instructions see
 | 
						|
Ubuntu_Installation.
 | 
						|
For more information about NFQ and iptables, see suricata.yaml.
 | 
						|
To check if you have NFQ enabled in your Suricata, enter the following command:
 | 
						|
 | 
						|
  suricata --build-info
 | 
						|
 | 
						|
and examine if you have NFQ between the features.
 | 
						|
To run suricata with the NFQ mode, you have to make use of the -q option. This
 | 
						|
option tells Suricata which of the queue numbers it should use.
 | 
						|
 | 
						|
  sudo suricata -c /etc/suricata/suricata.yaml -q 0
 | 
						|
 | 
						|
 | 
						|
Iptables configuration
 | 
						|
 | 
						|
First of all it is important to know which traffic you would like to send to
 | 
						|
Suricata. Traffic that passes your computer or traffic that is generated by
 | 
						|
your computer.
 | 
						|
 | 
						|
If Suricata is running on a gateway and is meant to protect the computers
 | 
						|
behind that gateway you are dealing with the first scenario: forward_ing .
 | 
						|
If Suricata has to protect the computer it is running on, you are dealing with
 | 
						|
the second scenario: host (see drawing 2).
 | 
						|
These two ways of using Suricata can also be combined.
 | 
						|
The easiest rule in case of the gateway-scenario to send traffic to Suricata
 | 
						|
is:
 | 
						|
 | 
						|
  sudo iptables -I FORWARD -j NFQUEUE
 | 
						|
 | 
						|
In this case, all forwarded traffic goes to Suricata.
 | 
						|
In case of the host situation, these are the two most simple iptable rules;
 | 
						|
 | 
						|
  sudo iptables -I INPUT -j NFQUEUE
 | 
						|
  sudo iptables -I OUTPUT -j NFQUEUE
 | 
						|
 | 
						|
It is possible to set a queue number. If you do not, the queue number will be 0
 | 
						|
by default.
 | 
						|
Imagine you want Suricata to check for example just TCP-traffic, or all
 | 
						|
incoming traffic on port 80, or all traffic on destination-port 80, you can do
 | 
						|
so like this:
 | 
						|
 | 
						|
  sudo iptables -I INPUT -p tcp  -j NFQUEUE
 | 
						|
  sudo iptables -I OUTPUT -p tcp -j NFQUEUE
 | 
						|
 | 
						|
In this case, Suricata checks just TCP traffic.
 | 
						|
 | 
						|
  sudo iptables -I INPUT -p tcp --sport 80  -j NFQUEUE
 | 
						|
  sudo iptables -I OUTPUT -p tcp --dport 80 -j NFQUEUE
 | 
						|
 | 
						|
In this example, Suricata checks all input and output on port 80.
 | 
						|
 | 
						|
To see if you have set your iptables rules correct make sure Suricata is
 | 
						|
running and enter:
 | 
						|
 | 
						|
  sudo iptables -vnL
 | 
						|
 | 
						|
In the example you can see if packets are being logged.
 | 
						|
This description of the use of iptables is the way to use it with IPv4. To use
 | 
						|
it with IPv6 all previous mentioned commands have to start with 'ip6tables'. It
 | 
						|
is also possible to let Suricata check both kinds of traffic.
 | 
						|
There is also a way to use iptables with multiple networks (and interface
 | 
						|
cards). Example:
 | 
						|
 | 
						|
  sudo iptables -I FORWARD -i eth0 -o eth1 -j NFQUEUE
 | 
						|
  sudo iptables -I FORWARD -i eth1 -o eth0 -j NFQUEUE
 | 
						|
 | 
						|
The options -i (input) -o (output) can be combined with all previous mentioned
 | 
						|
options
 | 
						|
If you would stop Suricata and use internet, the traffic will not come through.
 | 
						|
To make internet work correctly, you have to erase all iptable rules.
 | 
						|
To erase all iptable rules, enter:
 | 
						|
 | 
						|
  sudo iptables -F
 | 
						|
 |