http://www.linuxso.com/linuxpeixun/10332.htmlhtml
先查看本機配置linux
如要從新配置,則先清除已有配置web
若是是遠程經過ssh鏈接服務器進行配置,則先加入容許ssh的規則vim
設定預設規則,DROP掉INPUT鏈與FORWARD鏈安全
INPUT鏈規則配置服務器
容許來自於lo接口的數據訪問本機網絡
lo:loopback,迴環接口,一般對應的IP地址爲127.0.0.1(未開啓以前,本機不能ping通本機)app
容許icmp包經過,也就是容許pingssh
開啓web服務端口tcp
FORWARD鏈規則配置
開啓轉發功能,(在作NAT時,FORWARD默認規則是DROP時,必須作)
丟棄壞的TCP包
處理IP碎片數量,防止攻擊,容許每秒100個
限制ICMP,容許每秒1個包,限制觸發條件是10個包
保存及調用
重啓後會失效,從新調用配置
設置自動保存與調用
在
後面加上
解決INPUT DROP後,引發sshd服務DNS反向解析不順,從而致使登陸等待時間過長的問題:
vim /etc/ssh/sshd_config
在最後添加下面一行,關閉 SSH 的 DNS 反解析
UseDNS no
重啓sshd服務
sudo /etc/init.d/ssh restart
常見命令:
-A, --append 新增規則(追加方式)
-D, --delete 刪除規則
-L, --list 列出某規則鏈中的全部規則 iptables -L INPUT
常見參數:
-p, --protocol 指定協議
-s --source 源地址
-d, --dst, --destination 指定目的地址
-i, --in-interface 指定入口網卡 iptables -A INPUT -i eth0 (-i eth+ 全部網卡)
--out-interface -o 指定出口網卡 iptables -A INPUT -o eth0 (-i eth+ 全部網卡)
--dport, --destination-port 目的端口
-j 指定對包的處理(ACCEPT、DROP、REJECT、REDIRECT)
-A:指定鏈名
-p:指定協議類型
-d:指定目標地址
--dport:指定目標端口(destination port 目的端口)
--sport:指定源端口(source port 源端口)
-j:指定動做類型
對於防火牆的設置,有兩種策略:一種是所有通信口都容許使用,只是阻止一些咱們知道的不安全的或者容易被利用的口;另一種,則是先屏蔽全部的通信口,而只是容許咱們須要使用的通信端口。
注意-P中的P須要大寫,表示Protocol。
能夠看出INPUT,FORWARD兩個鏈採用的是容許什麼包經過,而OUTPUT鏈採用的是不容許什麼包經過。
當超出了IPTABLES裏filter表裏的兩個鏈規則(INPUT、FORWARD)時,不在這兩個規則裏的數據包怎麼處理呢,那就是DROP(放棄)。應該說這樣配置是很安全的,咱們要控制流入數據包。
而對於OUTPUT鏈,也就是流出的包咱們不用作太多限制,而是採起ACCEPT,也就是說,不在這個規則裏的包怎麼辦呢,那就是經過。
爲INPUT鏈添加規則
容許icmp包經過,也就是容許ping
容許loopback!(否則會致使DNS沒法正常關閉等問題)
sudo iptables -A INPUT -i lo -p all -j ACCEPT
對於OUTPUT規則,由於預設的是ACCEPT,因此要添加DROP規則,減小不安全的端口連接。
有些特洛伊木馬會掃描端口31337到31340(即黑客語言中的 elite 端口)上的服務。既然合法服務都不使用這些非標準端口來通訊,阻塞這些端口可以有效地減小你的網絡上可能被感染的機器和它們的遠程主服務器進行獨立通訊的機會。
咱們還能夠把規則限制到只容許某個IP:
這表示只容許192.168.0.18的機器進行SSH鏈接。
若是要容許一個IP段,可使用下面的寫法:
這表示容許192.168.0.1/255IP段的機器進行鏈接。
可是,注意咱們前面已經添加一條規則來容許全部IP鏈接22端口,須要把這條規則刪除掉。
在下面就是FORWARD鏈,FORWARD鏈的默認規則是DROP,因此咱們就寫須要ACCETP(經過)的鏈,對正在轉發鏈的監控
開啓轉發功能,(在作NAT時,FORWARD默認規則是DROP時,必須作)
丟棄壞的TCP包
處理IP碎片數量,防止攻擊,容許每秒100個
設置ICMP包過濾,容許每秒1個包,限制觸發條件是10個包(在前面只容許ICMP包經過,在這裏做限制)
例如我給SSH加放行的語句: 添加input記錄: iptables -A INPUT -p tcp --dport 22 -j ACCEPT 添加output記錄: iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT