2021-05-12 14:32:11
Linux下iptables防火牆設定
通過本教學操作,請確認您能使用Linux本機。如果您使用的是ssh遠端,而又不能直接操作本機,那麼先加上下面的程式碼。當然最壞的結果是所有的埠都不能存取,甚至無法登陸ssh,但5分鐘之後,定時器會幫你關掉iptables防火牆。
[root@localhost ~]# crontab -uroot -e
*/5 * * * * /etc/init.d/iptables stop ##定時5分鐘關閉防火牆,防止設定錯誤,導致無法進行ssh登陸
首先講介紹幾個簡單命令:
/etc/init.d/iptables save ##儲存防火牆規則,如果不進行儲存的話 重新啟動iptables之後規則將消失
iptables -L -n ##檢視當前防火牆規則
PS:在新增規則之前先用iptables -L -n檢視一下當前規則,如果顯示沒有規則,可能是你的iptables沒有開啟。如果這個時候新增規則,儲存之後將覆蓋之前的規則。如果要繼續使用之前的規則,先開啟iptables服務,這時候就能看到之前的規則,然後再在之前的基礎上新增。
我們先新增兩條規則
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##新增一個開放埠22的輸入流的規則
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT ##新增一個開放埠22的輸出流的規則
新增以上兩條規則之後,就不用擔心登陸不了SSH了,想了解命令詳情使用iptables --help
這裡重點講一下iptables 裡面的 dport 和 sport的區別:
dport:目的埠
sport:來源埠
通過兩個INPUT的例子,大家區分下INPUT裡面的dport 和sport
例子1:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
這條INPUT規則可以這麼描述:
1.這是一條從外部進入內部本地伺服器的資料。
2.封包的目的(dport)地址是22,就是要存取我原生的22埠。
3.允許以上的資料行為通過。
例子2:
1
iptables -A INPUT -p tcp --sport 22 -j ACCEPT
這條INPUT規則可以這麼描述:
1.這是一條從外部進入內部本地伺服器的資料。
2.封包的來源埠是(sport)22,就是對方的封包是22埠傳送過來的。
3.允許以上資料行為。
通過兩個OUTPUT的例子,大家區分下OUTPUT裡面的dport 和sport
例子1:
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
這條OUTPUT規則可以這麼描述:
1.這是一條從內部出去的資料。
2.出去的目的(dport)埠是22。
3.允許以上資料行為。
例子2:
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
這條OUTPUT規則可以這麼描述:
1.這是一條從內部出去的資料。
2.封包的來源埠是(sport)22,從本伺服器的22埠發出資料。
3.允許以上資料行為。
預設INPUT、OUTPUT、FORWARD都是ACCEPT的
不新增規則,則對所有埠的資料來者不拒~
iptables -P INPUT DROP #如果沒有新增埠22的accept規則,切勿執行此命令
如果執行上述命令的話,則是除了新增的規則之外的INPUT封包都DROP掉。。。
同理還有這些命令:
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
一般把INPUT設定為DROP。那麼我們需要新增一些規則針對INPUT的ACCEPT的規則:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #開放ssh埠
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #開放web伺服器端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT #開放ftp伺服器端口
iptables -A INPUT -p icmp -j ACCEPT #允許icmp包通過,也就是允許ping
iptables -A INPUT -i lo -p all -j ACCEPT #允許loopback
#####如果你還做了其他的伺服器,需要開啟哪個埠,照寫就行了.
一般把OUTPUT設定為ACCEPT。那麼我們需要新增一些規則針對OUTPUT的DROP規則:
關閉一些埠
iptables -A OUTPUT -p tcp --sport 27444 -j DROP
iptables -A OUTPUT -p tcp --sport 27665 -j DROP
iptables -A OUTPUT -p tcp --sport 31337 -j DROP
--------------------------------------分割線 --------------------------------------
CentOS 7.0關閉預設防火牆啟用iptables防火牆 http://www.linuxidc.com/Linux/2015-05/117473.htm
iptables使用範例詳解 http://www.linuxidc.com/Linux/2014-03/99159.htm
Linux防火牆iptables詳細教學 http://www.linuxidc.com/Linux/2013-07/87045.htm
iptables的備份、恢復及防火牆指令碼的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm
Linux下防火牆iptables用法規則詳解 http://www.linuxidc.com/Linux/2012-08/67952.htm
--------------------------------------分割線 --------------------------------------
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-10/123843.htm
相關文章