十六、SELINUX、netfilter防火牆以及其iptables工具

來源:互聯網
上載者:User

標籤:linux   selinux、netfilter防火牆以及其iptables工具   

SELINUX

關閉selinux有兩種方法:暫時關閉selinux防火牆,下次重啟後selinux還會開啟。#setenforce 0 #getenforce                    

#查看臨時關閉selinux的狀態命令永久關閉selinux       

#vi /etc/selinux/config       

#修改selinux的設定檔

更改“SELINUX=enforcing”為 SELINUX=disabled  儲存退出。

此處需要重啟。方能改成disabled.

[[email protected] ~]# /usr/sbin/sestatus -v   或者 #sestatus     

#查看selinux的狀態命令SELinux status:   disabled


2,netfliter 防火牆,以及其工具iptables

# iptables -nvL

nvL 就是查看規則,-n表示不針對IP反解析主機名稱;-L表示列出的意思;而-v表示列出的資訊更加詳細。如果不加-t ,則列印filter表的相關資訊。

#iptables -F 表示把所有規則全部刪除;

#iptables -Z表示把包以及流量計數器置零

-F 是把當前規則清除,但這個只是臨時的,重啟系統或者重啟 iptalbes 服務後還會載入已經儲存的規則,所以需要使用 /etc/init.d/iptables save 儲存一下規則,通過上邊的命令輸出我們也可以看到,防火牆規則儲存在了/etc/sysconfig/iptables 你可以查看一下這個檔案。

-A/-D :增加刪除一條規則;

-I :插入一條規則,其實跟-A的效果一樣;

-p :指定協議,可以是tcp,udp或者icmp;

--dport :跟-p一起使用,指定目標連接埠;

--sport :跟-p一起使用,指定源連接埠;

-s :指定源IP(可以是一個ip段);

-d :指定目的IP(可以是一個ip段);

-j :後跟動作,其中ACCEPT表示允許包,DROP表示丟掉包,REJECT表示拒絕包;

-i :指定網卡(不常用,但有時候能用到);

-P(大寫)後面跟鏈名,策略內容或者為DROP或者為ACCEPT,預設是ACCEPT。

注意:如果你在串連遠程伺服器,千萬不要隨便敲這個命令,因為一旦你敲完斷行符號你就會斷掉。

這個策略一旦設定後,只能使用 iptables -P INPUT ACCEPT 才能恢複成原始狀態,而不能使用-F參數。


例子:

# iptables -A INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP

這就是增加了一條規則,省略-t所以針對的是filter表。-A 表示增加一條規則,另外還有-I 表示插入一條規則,-D刪除一條規則;後面的INPUT即鏈名稱,還可以是OUTPUT或者FORWORD;-s 後跟源地址;-p 協議(tcp, udp, icmp); --sport/--dport 後跟源連接埠/目標連接埠;-d 後跟目的IP(主要針對內網或者外網);-j 後跟動作(DROP即把包丟掉,REJECT即包拒絕;ACCEPT即允許包)。


[[email protected] ~]# iptables -I INPUT -s 1.1.1.1 -j DROP

上例表示:插入一條規則,把來自1.1.1.1的所有資料包丟掉。

[[email protected] ~]# iptables -D INPUT -s 1.1.1.1 -j DROP

刪除剛剛插入的規則。注意要刪除一條規則時,必須和插入的規則一致,也就是說,兩條iptables命令,除了-I 和-D不一樣外,其他地方都一樣。

[[email protected] ~]# iptables -I INPUT -s 2.2.2.2 -p tcp --dport 80 -j DROP

上例表示把來自2.2.2.2 並且是tcp協議到原生80連接埠的資料包丟掉。這裡要說的是,--dport/--sport 必須要和-p選項一起使用,否則會出錯。

[[email protected] ~]# iptables -p tc

這條規則表示,把發送到10.0.2.34的22連接埠的資料包丟掉。


iptables規則指令碼設定

需求:只針對filter表,預設策略INPUT鏈DROP,其他兩個鏈ACCEPT,然後針對192.168.137.0/24開通22連接埠,對所有網段開放80連接埠,對所有網段開放21連接埠。這個需求不算複雜,但是因為有多條規則,所以最好寫成指令碼的形式。指令碼內容如下:

# cat /usr/local/sbin/iptables.sh

#! /bin/bashipt="/sbin/iptables"

$ipt -F

$ipt -P INPUT DROP

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

$ipt -A INPUT -s 192.168.137.0/24 -p tcp --dport 22 -j ACCEPT

$ipt -A INPUT -p tcp --dport 80 -j ACCEPT

$ipt -A INPUT -p tcp --dport 21 -j ACCEPT

完成指令碼的編寫後,直接運行 

/bin/sh  /usr/local/sbin/iptables.sh 即可。如果想開機啟動時初始化防火牆規則,則需要在 /etc/rc.d/rc.local 中添加一行 

“/bin/sh /usr/local/sbin/iptables.sh”

儲存以及備份iptalbes規則

設定的防火牆規則只是儲存在記憶體中,並沒有儲存到某一個檔案中,也就說當系統重啟後以前設定的規則就沒有了,所以設定好規則後要先儲存一下。

[[email protected] ~]# service iptables save

iptables:將防火牆規則儲存到 /etc/sysconfig/iptables: [確定]

它會提示防火牆規則儲存在了/etc/sysconfig/iptables檔案內,這個檔案就是iptables的設定檔了。所以日後,如果你遇到備份防火牆規則的任務,其實就是要拷貝一份這個檔案的副本。

有時,我們會需要把防火牆所有規則都清除,使用 iptables -F 命令雖然可以,但是最好的辦法是把防火牆服務停止:

[[email protected] ~]# service iptables stop

iptables:清除防火牆規則:              [確定]

iptables:將鏈設定為政策 ACCEPT:nat filter   [確定]

iptables:正在卸載模組:               [確定]

這樣防火牆就失效了,但是一旦重新設定規則後(哪怕只有一條),防火牆服務會自動開啟。下面阿銘介紹給你一個用來備份防火牆規則的命令:

[[email protected] ~]# sh /usr/local/sbin/iptables.sh

[[email protected] ~]# iptables-save > myipt.rule

先執行一下剛才我們寫的iptables指令碼,使用 iptables-save 命令重新導向到一個檔案裡。要想恢複這些規則使用下面的命令即可:

[[email protected] ~]# iptables-restore < myipt.rule


http://blog.chinaunix.net/uid-X125X ... htmlX102X

參考資料


十六、SELINUX、netfilter防火牆以及其iptables工具

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.