ubuntu 14.04/14.10 iptables 防火牆設定
阿新 • • 發佈:2019-01-31
1. 一鍵批處理設定
呆狐狸.凨#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin:~/bin export PATH # Check if user is root if [ $UID != 0 ]; then echo "Error: You must be root to run the install script, please use root to install lanmps";exit;fi iptables-save >> _.iptables.up.rules #儲存防火牆設定,以便沒儲存時使用 iptables -L -n 2>&1 | tee -a "_.iptables.log" iptables -F #清除預設表filter中的所有規則鏈的規則 iptables -X #清除預設表filter中使用者自定鏈中的規則 iptables -Z #計數器清零 iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT #雙向 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允許本機 iptables -A INPUT -i lo -j ACCEPT #FTP iptables -A INPUT -p tcp --dport 21 -j ACCEPT #SSH iptables -A INPUT -p tcp --dport 22 -j ACCEPT #www 80 iptables -A INPUT -p tcp --dport 80 -j ACCEPT #13306 對映轉發到 mysql資料庫 3306 iptables -A PREROUTING -p tcp --dport 13306 -j REDIRECT --to-ports 3306 -t nat #3306 mysql資料庫 #iptables -A INPUT -p tcp --dport 3306 -j ACCEPT #memache #iptables -A INPUT -p tcp --dport 11211 -j ACCEPT #對於OUTPUT規則,因為預設的是ACCEPT,所以要新增DROP規則,減少不安全的埠連結。 iptables -A OUTPUT -p tcp --sport 31337 -j DROP iptables -A OUTPUT -p tcp --dport 31337 -j DROP #丟棄壞的TCP包 iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP #處理IP碎片數量,防止攻擊,允許每秒100個 #iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT #設定ICMP包過濾,允許每秒1個包,限制觸發條件是10個包 #iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT #防止外部的ping和SYN洪水攻擊 iptables -A INPUT -p tcp --syn -m limit --limit 100/s --limit-burst 100 -j ACCEPT #ping洪水攻擊,限制每秒的ping包不超過10個 iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s –limit-burst 10 -j ACCEPT #防止各種埠掃描,將SYN及ACK SYN限制為每秒鐘不超過200個 iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200 -j ACCEPT #最後規則拒絕所有不符合以上所有的 iptables -A INPUT -j DROP if [ -z "`grep "iptables-save" /etc/network/interfaces`" ] then echo "#以下有防火牆需要的可以使用 pre-up iptables-restore < /etc/iptables.up.rules #啟動時應用防火牆 post-down iptables-save > /etc/iptables.up.rules #關閉時儲存防火牆設定,以便下次啟動時使用 " >> /etc/network/interfaces else echo "iptables-save find " fi clear echo "iptables ok "; echo "" iptables -L -n cat /etc/network/interfaces
把上面的儲存為 (如果還有其他埠規則請一起在上面配置,執行時清空規則):
lanmps_iptables.sh
上傳到伺服器然後設定許可權,並執行
chmod 777 lanmps_iptables.sh
./lanmps_iptables.sh
那麼 防火牆就設定完成了
2. ubuntu iptables 防火牆 啟動
modprobe ip_tables
3. ubuntu iptables 防火牆 關閉
ubuntu 並沒有關閉命令,所以要通過變通方法解決防火牆
iptables -F iptables -X iptables -Z iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT modprobe -r ip_tables 依次執行以上命令即可關閉iptables,否則在執行modproble -r ip_tables時將會提示 FATAL: Module ip_tables is in use.
4. Iptables的儲存和呼叫
防止每次開機或重啟後都需要去呼叫一次,把它設定自動執行第一步 更改網絡卡配置檔案
sudo vi /etc/network/interfaces
第二部 在最後增加配置
#以下有防火牆需要的可以使用
pre-up iptables-restore < /etc/iptables.up.rules #啟動時應用防火牆
post-down iptables-save > /etc/iptables.up.rules #關閉時儲存防火牆設定,以便下次啟動時使用
如果不明白的看 http://blog.csdn.net/fenglailea/article/details/12191607#t1感謝:http://hongwei.im/iptables-setting-for-ubuntu-1304