溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux中iptables設(shè)置是怎樣的

發(fā)布時間:2022-01-21 10:48:12 來源:億速云 閱讀:102 作者:kk 欄目:開發(fā)技術(shù)

這篇文章給大家介紹Linux中iptables設(shè)置是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1.首先介紹一下指令和相關(guān)配置文件

啟動指令:service iptables start
重啟指令:service iptables restart
關(guān)閉指令:service iptables stop

然后是相關(guān)配置:/etc/sysconfig/iptables
如何操作該配置呢?
vim /etc/sysconfig/iptables
然后進(jìn)去修改即可,修改完了怎么辦?這里很多人會想到/etc/rc.d/init.d/iptables save指令,但是一旦你這么干了你剛才的修改內(nèi)容就白做了。。。
具體方法是:
只修改/etc/sysconfig/iptables 使其生效的辦法是修改好后先service iptables restart,然后才調(diào)用/etc/rc.d/init.d/iptables save
因?yàn)?code>/etc/rc.d/init.d/iptables save會在iptables服務(wù)啟動時重新加載,要是在重啟之前直接先調(diào)用了/etc/rc.d/init.d/iptables save那么你

2.下面介紹一些指令用法(主要還是man iptables看下相關(guān)資料才行)

-A:指定鏈名  
-p:指定協(xié)議類型  
-d:指定目標(biāo)地址  
--dport:指定目標(biāo)端口(destination port 目的端口)  
--sport:指定源端口(source port 源端口)

3.如果我不像修改文件直接打命令可以嗎,當(dāng)然沒問題,步驟如下:
例如我給SSH加放行的語句:
添加input記錄: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
添加output記錄:iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

4.接下來說明一下步驟,如果機(jī)器不在我身邊,我只能SSH進(jìn)去做iptables規(guī)則,那么我必須注意每一步,千萬別搞錯了,否則就SSH鏈接不上都有可能!

1.如果SSH端口是22(這里不建議用默認(rèn)端口最好改掉SSH端口)
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT
注意要/etc/rc.d/init.d/iptables save,以下每一步都最好執(zhí)行一遍此語句,以下不再累述。

2.vim /etc/sysconfig/iptables確定是否已經(jīng)加入配置,可以的話執(zhí)行service iptables restart重啟后生效

3.下面是很危險的操作,如果你第一步?jīng)]做就會直接可能導(dǎo)致你連不上SSH,此步驟前切記執(zhí)行第一步?。。?br/>iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
這個步驟是把所有不符合自己配置的規(guī)則ACCEPT的連接全部DROP掉,執(zhí)行完以后如果咱SSH還沒掉,那么謝天謝地,安全了,重啟下iptables后繼續(xù)下面的配置!

4.下面咱就不細(xì)說了,具體就是看自己服務(wù)器要開放哪些端口或者是要訪問哪些端口來做具體的配置,下面是我自己的機(jī)器的配置:

/etc/sysconfig/iptables文件配置如下:  
\# Generated by iptables-save v1.4.7 on Fri Mar  2 19:59:43 2012  
*filter  
:INPUT DROP [0:0]  
:FORWARD DROP [0:0]  
:OUTPUT DROP [8:496]  
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
\#ping使用的端口  
-A INPUT -p icmp -j ACCEPT  
-A INPUT -i lo -j ACCEPT  
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT  
-A INPUT -s 192.168.2.200/32 -d 192.168.2.200/32 -j ACCEPT  
\#允許服務(wù)器自己的SSH(對外部請求來說服務(wù)器是目標(biāo)所以使用--dport)  
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT  
\#80端口不用說了吧,服務(wù)器網(wǎng)站訪問端口  
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT  
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT  
-A INPUT -p tcp -m tcp --dport 11211 -j ACCEPT  
-A INPUT -p tcp -m tcp --dport 11212 -j ACCEPT  
-A FORWARD -j REJECT --reject-with icmp-host-prohibited  
\#53端口是DNS相關(guān),TCP和UDP都要配置  
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT  
-A INPUT -p udp -m udp --dport 53 -j ACCEPT  
\#ping使用的端口  
-A OUTPUT -p icmp -j ACCEPT  
-A OUTPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT  
-A OUTPUT -s 192.168.2.200/32 -d 192.168.2.200/32 -j ACCEPT  
\#允許服務(wù)器SSH到其他機(jī)器(使用外部端口就使用--dport)  
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT  
\#允許服務(wù)器自己的SSH(自已為源輸出就使用--sport)  
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT  
\#訪問外部網(wǎng)站80端口(使用外部端口就使用--dport)  
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT  
\#如果服務(wù)器需要訪問外部網(wǎng)站,那么OUTPUT也需要配置53端口(使用外部端口就使用--dport)  
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT  
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT  
\#如果有訪問外部郵箱,那么打開郵箱相關(guān)端口(使用外部端口就使用--dport)  
-A OUTPUT -p tcp -m tcp --dport 465 -j ACCEPT  
-A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT  
-A OUTPUT -p tcp -m tcp --dport 110 -j ACCEPT  
\#服務(wù)器網(wǎng)站訪問端口(自已為源輸出就使用--sport)  
-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT  
-A OUTPUT -p tcp -m tcp --sport 3306 -j ACCEPT  
-A OUTPUT -p tcp -m tcp --sport 11211 -j ACCEPT  
-A OUTPUT -p tcp -m tcp --sport 11212 -j ACCEPT  
COMMIT

5.可能有時候需要刪除規(guī)則,最簡單就是修改一下/etc/sysconfig/iptables然后service iptables restart,最后/etc/rc.d/init.d/iptables save即可。

在網(wǎng)上找了一下,刪除規(guī)則的方法:
語法是: iptables -D chain rulenum [options] 其中: chain 是鏈的意思,就是INPUT FORWARD 之類的
rulenum 是規(guī)則的編號。從1 開始??梢允褂? –line-numbers 列出規(guī)則的編號

所以,例如上面要刪除一個INPUT鏈的規(guī)則的話可以這樣:iptables -D INPUT 3
意思是刪除第3條規(guī)則。

還有第二種方法。第二種辦法是 -A 命令的映射,不過用-D替換-A。當(dāng)你的鏈中規(guī)則很復(fù)雜,而你不想計算它們的編號的時候這就十分有用了。也就是說,你如何用iptables -A…. 語句定義了一個規(guī)則,則刪除此規(guī)則時就用 -D 來代替- A  其余的都不變即可。

說一下上面的 –line-numbers 選項(xiàng),如下面的命令:
iptables -L INPUT –line-numbers  列出INPUT 鏈所有的規(guī)則

num  target   prot opt source        destination 
1   REJECT   tcp  --  anywhere       anywhere       tcp dpt:microsoft-ds reject-with icmp-port-unreachable  
2   REJECT   tcp  --  anywhere       anywhere       tcp dpt:135 reject-with icmp-port-unreachable  
3   REJECT   tcp  --  anywhere       anywhere       tcp dpt:netbios-ssn reject-with icmp-port-unreachable

…
…
刪除指定行規(guī)則:

6.最后補(bǔ)充一下,如果想針對某IP進(jìn)行單獨(dú)開放端口可以如下配置:
如果我需要對內(nèi)網(wǎng)某機(jī)器單獨(dú)開放mysql端口,應(yīng)該如下配置:
iptables -A INPUT -s 192.168.2.6 -p tcp -m tcp –dport 3306 -j ACCEPT

7.徹底禁止某IP訪問:
#屏蔽單個IP的命令是

iptables -I INPUT -s 123.45.6.7 -j DROP
\#封整個段即從123.0.0.1到123.255.255.254的命令  
iptables -I INPUT -s 123.0.0.0/8 -j DROP  
\#封IP段即從123.45.0.1到123.45.255.254的命令  
iptables -I INPUT -s 124.45.0.0/16 -j DROP  
\#封IP段即從123.45.6.1到123.45.6.254的命令是  
iptables -I INPUT -s 123.45.6.0/24 -j DROP

指令I(lǐng)是insert指令 但是該指令會insert在正確位置并不像A指令看你自己的排序位置,因此用屏蔽因?yàn)楸仨氃谝婚_始就要加載屏蔽IP,所以必須使用I命令加載,然后注意執(zhí)行/etc/rc.d/init.d/iptables save進(jìn)行保存后重啟服務(wù)即可

什么是Linux系統(tǒng)

Linux是一種免費(fèi)使用和自由傳播的類UNIX操作系統(tǒng),是一個基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),使用Linux能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。

關(guān)于Linux中iptables設(shè)置是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI