2014年2月22日

Linux Netfilter

Linux 網路安全技術與實驗 [1] 有清楚的觀念解說,對於 Netfilter [2] 的介紹也很詳細,作者陳老師說會出一系列三本,將出版的兩本書值得期待。這本書主要的範疇是在 Linux 環境,主要介紹 Netfilter, Proxy, VPN 與 IDS 入侵偵測:

Netfilter kernel modules:
kerne/net/ipv4/netfilter/
kerne/net/ipv6/netfilter/
kerne/net/netfilter:可兼用於 IPv4/IPv6 的 modules

原來 SNAT, DNAT 是可以設定一個網段的。

-m state --state { ESTABLISHED, RELATED, NEW, INVALID }

比對進入本機端的 TCP flag:

1. 檢查所有的 TCP flags,並且在比對到 SYN, FIN flags 為 enabled 時進行 ACTION
$ iptables -I INPUT -p tcp --tcp-flags ALL SYN,FIN -j ACTION

2. 只有檢查 SYN, FIN 的 flags, 並且當 SYN, FIN flags 為 enabled 時進行 ACTION
$ iptables -I INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j ACTION

很 cool 的來自本機使用者的封包比對:
-m owner
--gid-owner groupid:比對來自 user group 的 packet
--pid-owner processid:比對來自 process id 的 packet
--id-owner sessionid:比對來自 process group 的 packet
--cmd-owner name:比對來自名稱為 name 程式的 packet

IP range 可以一次指定一段 IP:
-m iprange
--src-range 192.168.0.2-192.168.0.253
--dst-range

比對 MTU (IP header + payload)
-m length

--length a 比對 MTU = a bytes 之 packet
--length a: 比對 MTU >= a bytes 之 packet
--length :a 比對 MTU <= a bytes 之 packet
--length a:b 比對 a <= MTU <= b bytes 之 packet
-m limit --limit 100/s --limit-burst 200 -j ACTION
如果進入的封包數小於等於 200 per second, 則全部作 ACTION, 反之,若進入的封包數大於 200 per second, 則限制進入的封包數為 100 per second.

令人驚艷的 recent
-m recent
--name
--set
--rcheck
--update
--remove
--seconds second
--hitcount hits

-m pkttype --pkt-type { broadcast, multicast, unicast }

-j RETURN 可以讓 packet 從自訂的 chain 中回到上一個 chain 繼續走下一條規則。

-j ULOG 紀錄資訊到資料庫

-j NETMAP 網段對應 以 SNAT 進行的整段的 NAT 並非對應,而是多對多關係。

其他 ACTION

--DSCP:可用於分類 packet 並作 QoS
--MARK

Reference:
[1] 陳勇勳, Linux 網路安全技術與實驗, 悅知文化, 2008.
[2] Netfilter Project, http://www.netfilter.org.

沒有留言:

張貼留言

歡迎留言