SELINUX
關閉selinux有兩種方法:暫時關閉selinux防火牆,下次重啓後selinux還會開啓。#setenforce 0 #getenforce
#查看臨時關閉selinux的狀態命令永久關閉selinux
#vi /etc/selinux/config
更改“SELINUX=enforcing”爲 SELINUX=disabled 保存退出。
此處需要重啓。方能改成disabled.
[root@localhost ~]# /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即允許包)。
[root@localhost ~]# iptables -I INPUT -s 1.1.1.1 -j DROP
上例表示:插入一條規則,把來自1.1.1.1的所有數據包丟掉。
[root@localhost ~]# iptables -D INPUT -s 1.1.1.1 -j DROP
刪除剛剛插入的規則。注意要刪除一條規則時,必須和插入的規則一致,也就是說,兩條iptables命令,除了-I 和-D不一樣外,其他地方都一樣。
[root@localhost ~]# iptables -I INPUT -s 2.2.2.2 -p tcp --dport 80 -j DROP
上例表示把來自2.2.2.2 並且是tcp協議到本機的80端口的數據包丟掉。這裏要說的是,--dport/--sport
必須要和-p選項一起使用,否則會出錯。
[root@localhost ~]# 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規則
設定的防火牆規則只是保存在內存中,並沒有保存到某一個文件中,也就說當系統重啓後以前設定的規則就沒有了,所以設定好規則後要先保存一下。
[root@localhost ~]# service iptables save
iptables:將防火牆規則保存到 /etc/sysconfig/iptables: [確定]
它會提示防火牆規則保存在了/etc/sysconfig/iptables文件內,這個文件就是iptables的配置文件了。所以日後,如果你遇到備份防火牆規則的任務,其實就是要拷貝一份這個文件的副本。
有時,我們會需要把防火牆所有規則都清除,使用 iptables -F 命令雖然可以,但是最好的辦法是把防火牆服務停止:
[root@localhost ~]# service iptables stop
iptables:清除防火牆規則: [確定]
iptables:將鏈設置爲政策 ACCEPT:nat filter [確定]
iptables:正在卸載模塊: [確定]
這樣防火牆就失效了,但是一旦重新設定規則後(哪怕只有一條),防火牆服務會自動開啓。下面阿銘介紹給你一個用來備份防火牆規則的命令:
[root@localhost ~]# sh /usr/local/sbin/iptables.sh
[root@localhost ~]# iptables-save > myipt.rule
先執行一下剛纔我們寫的iptables腳本,使用 iptables-save 命令重定向到一個文件裏。要想恢復這些規則使用下面的命令即可:
[root@localhost ~]# iptables-restore < myipt.rule
http://blog.chinaunix.net/uid-X125X ... htmlX102X
參考資料