防火牆分類
- 包過濾防火牆(packet filter)
- 應用層網關代理(Application level Gateway)
- 狀態防火牆(stateful firewall)
包過濾防火牆和狀態防火牆區別:
- 包過濾防火牆:靜態防火牆,通過IP數據報頭部的五元素(地址、協議、端口)過濾數據,因爲五元素在會話中不變,故稱其爲靜態。
優點是規則簡單,易實現,處理速度快。缺點是難以應對ip碎片攻擊,不支持複雜協議,不能防止對應用層的攻擊,無法應對nmap -sA掃描。
- 狀態防火牆: 動態包過濾防火牆, 收到連接請求時建立一張存儲連接信息的表,基於這個表對出入數據進行管理,如iptables防護牆。同一會話,雖然五元組不變,但是狀態標識是變化的,所以稱之爲動態。可設置白名單和黑名單。缺點是消耗資源。
iptables防火牆簡介
狀態防火牆,linux的防火牆由netfilter和iptables組成,2.4內核以後,用戶空間的iptables制定規則,內核空間的netfilter實現防火牆功能。
需要root權限
防火牆規則通常有兩種基本策略。一是黑名單策略;二是白名單策略。
黑名單策略指沒有被拒絕的流量都可以通過,這種策略下管理員必須針對每一種新出現的攻擊,制定新的規則,因此不推薦。
白名單策略指沒有被允許的流量都要拒絕,這種策略比較保守,根據需要,逐漸開放,目前一般都採用白名單策略,推薦。
iptables的結構
iptables命令
iptables [ -t 表名 ] 管理選項 [ 鏈名 ] [ 條件匹配 ] [ -j 目標動作或跳轉 ]
- 選表,表決定數據報文處理的方式,不指定表名時,默認表示filter表
- 選鏈,鏈決定數據報文流經的位置,不指定鏈名時,默認表示該表內所有鏈
- 選條件,條件決定對數據報文做何種匹配
- 選擇處理數據報文的動作,制定相應的防火牆規則
- -A,Append one or more rules to the end of the selected chain.
- -D,Delete one or more rules from the selected chain.
- -l ,Insert one or more rules in the selected chain as the given rule number.
- -R,Replace a rule in the selected chain.
- -P 制定policy(ACCEPT, DROP)
- -F,Flush the selected chain ,清空鏈
- -L,List all rules in the selected chain.
例1
例2 只能發包,不能收包
例3 只接收icmp echo reply的包
例4:根據連接狀態表選擇接收的包,即拒絕新的連接請求和無效鏈接,只接收已建立連接的相關請求。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
詳情參考:https://www.cnblogs.com/frankb/p/7427944.html
《TCP/IP詳解》
《UNIX網絡編程》