歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下iptables防火牆設置

Linux下iptables防火牆設置

日期:2017/2/28 13:57:22   编辑:Linux教程

通過本教程操作,請確認您能使用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

--------------------------------------分割線 --------------------------------------

Copyright © Linux教程網 All Rights Reserved