linux防火牆linux
Selinux是Redhat/CentOS系統特有的安全機制vim
更改selinux配置文件centos
[root@localQt ~]# vim /etc/selinux/config安全
將enforcing 更改成disabled,保存該配置文件後,重啓機器方可生效
網絡
使用命令getenforce得到當前selinux的狀態tcp
臨時關閉selinux的命令爲:setenforce 0,狀態爲Permissive 表示關閉spa
7.0前版本命令netfilter 7.0後的版本firwealld3d
中止rest
#systemctl disable firewalldcode
關閉服務
# systemctl stop firewalld
安裝
yum install -y iptabkes-services
centos 6
iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 400 176K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 1 52 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 3 234 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 167 packets, 16963 bytes) pkts bytes target prot opt in out source destination [root@localhost ~]# iptables -F; /etc/init.d/iptables save iptables:將防火牆規則保存到 /etc/sysconfig/iptables: [肯定]
-nvL 就是查看規則, -F 是把當前規則清除,但這個只是臨時的,重啓系統或者重啓 iptalbes 服務後還會加載已經保存的規則,因此須要使用 /etc/init.d/iptables save
保存一下規則,經過上邊的命令輸出咱們也能夠看到,防火牆規則保存在了/etc/sysconfig/iptables 你能夠查看一下這個文件。
netfilter 的5個表
1)iptalbes的三個表
filter 這個表主要用於過濾包的,是系統預設的表,這個表也是阿銘用的最多的。內建三個鏈INPUT、OUTPUT以及FORWARD。INPUT做用於進入本機的包;OUTPUT做用於本機送出的包;FORWARD做用於那些跟本機無關的包。
nat 主要用處是網絡地址轉換,也有三個鏈。PREROUTING 鏈的做用是在包剛剛到達防火牆時改變它的目的地址,若是須要的話。OUTPUT鏈改變本地產生的包的目的地址。POSTROUTING鏈在包就要離開防火牆以前改變其源地址。該表阿銘用的很少,但有時候會用到。
mangle 這個表主要是用於給數據包打標記,而後根據標記去操做哪些包。這個表幾乎不怎麼用。除非你想成爲一個高級網絡工程師,不然你就沒有必要花費不少心思在它上面
iptables 語法
查看規則以及清除規則
# iptables -t nat -nvL
-t 後面跟表名,-nvL 即查看該表的規則,其中-n表示不針對IP反解析主機名;-L表示列出的意思;而-v表示列出的信息更加詳細。
# iptables -F
# iptables -Z
不加-t默認是針對表filter來操做的,-F 表示把全部規則所有刪除;-Z表示把包以及流量計數器置零。
# 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即容許包)。
FORWORD鏈的應用
-A/-D :增長刪除一條規則;
-I :插入一條規則,其實跟-A的效果同樣;
-p :指定協議,能夠是tcp,udp或者icmp;
--dport
:跟-p一塊兒使用,指定目標端口;
--sport
:跟-p一塊兒使用,指定源端口;
-s :指定源IP(能夠是一個ip段);
-d :指定目的IP(能夠是一個ip段);
-j :後跟動做,其中ACCEPT表示容許包,DROP表示丟掉包,REJECT表示拒絕包;
-i :指定網卡
-D 後跟鏈名,而後是規則num,這個num就是查看iptables規則時第一列的值。
想刪除某一條規則時,又不容易掌握當時建立時的規則
# iptables -nvL --line-numbers
根據編號刪除規則
iptables常常用到:-P
# iptables -P INPUT DROP
-P後面跟鏈名,策略內容或者爲DROP或者爲ACCEPT,默認是ACCEPT。
這個策略一旦設定後,只能使用 iptables -P INPUT ACCEPT
才能恢復成原始狀態,而不能使用-F參數。
nat表的應用
# echo "1" > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
第一個命令涉及到了內核參數相關的配置文件,它的目的是爲了打開路由轉發功能,不然沒法實現咱們的應用。第二個命令則是iptables對nat表作了一個IP轉發的操做,-o 選項後跟設備名,表示出口的網卡,MASQUERADE表示假裝的意思。
保存以及備份iptalbes規則
# service iptables save
會提示防火牆規則保存在了/etc/sysconfig/iptables文件內,這個文件就是iptables的配置文件了,
須要把防火牆全部規則都清除,使用 iptables -F
命令
# service iptables stop iptables:清除防火牆規則: [肯定] iptables:將鏈設置爲政策 ACCEPT:nat filter [肯定] iptables:正在卸載模塊: [肯定]
用來備份防火牆規則的命令:
# sh /usr/local/sbin/iptables.sh
# iptables-save > myipt.rule
# cat myipt.rule
使用 iptables-save
命令重定向到一個文件裏
# iptables-restore < myipt.rule