1、簡介app
iptables是一個很強大的設置防火牆的工具,可使用它來限制全部對本機的訪問,容許特定的主機、特定的端口才能訪問本機,還能設置那些協議可以訪問本機。總之,很強大,也很簡單。tcp
2、filter chain原理簡述工具
在開始以前,先看一下iptables的filter chain是如何工做的:spa
註釋:當Input進來以後,先經過first chain,若是符合直接本機接收;不符合傳給second chain,依次到最後一個chain,着了third不必定是最後的chain,在最後chain都不符合就將包丟棄,符合的交給下層處理。code
3、綜合例子blog
經過下面的例子進行說明:ip
按箭頭順序來講明:get
命令及詳解:table
iptables -P INPUT DROP原理
# -P:--policy(策略),chain target(過濾目標),全部的輸入(INPUT)就是要過濾的目標。
# DROP:表示丟棄全部輸入的數據包,不接受任何數據請求(拒絕全部訪問),這個全部是相對的,在咱們規則以內定義接收仍是接收的。
命令及詳解:
iptables -A INPUT -p tcp -s 192.168.1.113 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.1.113 -j ACCEPT
# -A:--append chain,添加一條過濾規則,這裏是INPUT,還有OUTPUT、FORWARD。
# -p:--protocol,代表協議。例如tcp、udp,icmp
# -s:--source,源地址。接ip地址
# -j:--jump target,當這條規則符合時,直接跳轉到目標,再也不進行下一條chain。目標有:ACCEPT、DROP、FORWARD、QUEUE
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j ACCEPT
這裏只是在icmp協議後面指定那個type和code
iptables -A INPUT -p icmp --icmp-type 11 -s 0/0 -j ACCEPT
這裏只是在icmp協議後面指定那個type和code
4、其餘使用
l 刪除某條規則:當須要刪除某條規則時,有2種方法:
iptables -L -n -line-number
來查看序號,不過本人嘗試了並沒成功。知道序號以後經過:
iptables -D 」number「 來刪除
iptables -S
來查看規則
而後經過:
iptables -D 「content -A這類不須要寫」 來刪除,例如:
iptables -D INPUT -s 192.168.1.113/32 -p tcp -j ACCEPT 來刪除本條規則
l 指定端口
經過 –dport 「port」 來指定端口
l 保存規則
iptables-save
能夠將規則保存到一個文件中,例如:
iptables-save /etc/iptables.rules
保存好以後去網卡文件(/etc/network/interface)中指定