centos 防火牆 iptables 用shell代碼來添加
- |
- 浏覽:501
- |
- 更新:2014-04-22 15:45
百度經驗:jingyan.baidu.com
很多時候,添加iptable 防火牆規則的時候,大家都喜歡一條一條的指令打,确實很友善。
不過,我喜歡用shell scripts 來添加,原因是,不容易出錯,還可以一直儲存着,友善修改等等。
百度經驗:jingyan.baidu.com
工具/原料
- centos 6.5 系統
- iptable
- vi 編輯
百度經驗:jingyan.baidu.com
方法/步驟
-
1
#vim bin/firewall.sh
建立一個firewall.sh的用來寫shell scripts的檔案。
-
2
往firewall.sh裡面輸入以下内容,根據自己的伺服器端口需要,添加,或者修改一些端口,或者規則。
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin; export PATH
# 1. 清除規則
iptables -F
iptables -X
iptables -Z
# 2. 設定政策
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# 3~5. 制訂各項規則
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#SSH的端口,不然遠端不了
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#做了FTP伺服器,開啟21端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000:20000 -j ACCEPT
#WEB伺服器,開啟80端口.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#郵件伺服器,開啟25,110端口
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT
#做了DNS伺服器,開啟53端口
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#允許loopback!(不然會導緻DNS無法正常關閉等問題)
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
#允許icmp包通過,也就是允許ping
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
#減少不安全的端口連接配接
iptables -A OUTPUT -p tcp --sport 31337 -j DROP
iptables -A OUTPUT -p tcp --dport 31337 -j DROP
#samb
iptables -A INPUT -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
#iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# 6. 寫入防火牆規則配置檔案
/etc/init.d/iptables save
最後儲存退出
-
3
#chmod 700 /bin/firewall.sh
改一下權限,避免檔案被人惡意修改
# sh bin/firewall.sh
來執行指令後,
# service iptables restart
重新開機iptables 防火牆,也可以把# service iptables restart加到firewall.sh裡面的最後地方。這樣隻要實行# sh bin/firewall.sh就可以了。