有關suricata的IPS更詳盡的解釋見:http://www.itdecent.cn/p/c96fec8b58fe
一、查看suricata是否支持NFQ
suricata --build-info
我的suricata顯示如下:
Suricata Configuration:
AF_PACKET support: yes
eBPF support: no
XDP support: no
PF_RING support: no
NFQueue support: yes
NFLOG support: no
IPFW support: no
Netmap support: yes > v13
DAG enabled: no
Napatech enabled: no
WinDivert enabled: no
...
...
可以看到我們開啟了NFQueue support的功能。
二、suricata的運行場景
網關模式

suricata運行在網關
如果suricata是運行在網關,那么就旨在保護網關下的計算機。
在網關場景向suricata發(fā)送流量的最簡單規(guī)則是:
sudo iptables -I FORWARD -j NFQUEUE
這樣,所有轉發(fā)的流量都會轉到suricata。
有關iptables詳解的文章:http://www.itdecent.cn/p/a1e92d3aaffc
主機模式

suricata運行在當前主機
如果suricata是運行在當前的主機,那么就旨在保護當前正在運行的主機。
在主機模式下,有兩個最簡單的iptables規(guī)則:
sudo iptables -I INPUT -j NFQUEUE
sudo iptables -I OUTPUT -j NFQUEUE
可以設置隊列號。如果不這樣做,默認情況下隊列號將為0。
如果希望suricata只檢查TCP流量的話,可以:
sudo iptables -I INPUT -p tcp -j NFQUEUE
sudo iptables -I OUTPUT -p tcp -j NFQUEUE
如果再加上源端口為80、目的端口為80的條件的話,就變成:
sudo iptables -I INPUT -p tcp --sport 80 -j NFQUEUE
sudo iptables -I OUTPUT -p tcp --dport 80 -j NFQUEUE
在這個示例中,suricata就會檢查80端口上所有的輸入和輸出。示意圖如下:


要查看是否已經正確設置iptables規(guī)則,請在確保suricata正在運行的條件下輸入:
sudo iptables -vnL
在此示例,您可以查看是否正在記錄數(shù)據包:

這種是將iptables與IPv4一起使用的方法。要將它與IPv6一起使用,之前提到的所有命令都必須以'ip6tables'開頭。也可以讓Suricata檢查兩種流量。
還有一種方法可以將iptables用于多個網絡(網卡)。例:

sudo iptables -I FORWARD -i eth0 -o eth1 -j NFQUEUE
sudo iptables -I FORWARD -i eth1 -o eth0 -j NFQUEUE
選項-i(輸入)-o(輸出)可以與之前提到的所有選項組合使用。
需要注意的是:
如果您停止使用Suricata并使用互聯(lián)網,則流量將無法通過。要使Internet正常工作,您必須清除所有iptable規(guī)則。
要清除所有iptable規(guī)則,請輸入:
sudo iptables -F