close

參考資料:鳥哥的 Linux 私房菜

#!/bin/bash

#
# ========================================================
# 程式說明:
# 歡迎使用 iptables.rule 這個 script 來建立您的防火牆!
# 這支 script 還需要您的額外設定方可適合您的主機環境!
# 基本規則定義為『拒絕所有,開放特定』的模式!

# 強烈建議:
# 不了解 Linux 防火牆機制 iptables 的朋友使用這支 script
# 可能會不太瞭解每個指令列的意義,果真如此的話,
# 歡迎參考底下幾個網頁:
# http://www.study-area.org/linux/servers/linux_nat.htm
# http://linux.vbird.org/linux_server/0240network-secure-1.php
# http://linux.vbird.org/linux_server/0250simple_firewall.php
#
# 使用說明:
# 確定這個程式僅有 Linux 的斷行字元:
# dos2unix iptables.rule
# 請先將這個 scripts 的權限更改為可執行:
#       chmod 755 iptables.rule
# 在將這個程式放置在 /usr/local/virus/iptables 目錄下:
#       mkdir -p /usr/local/virus/iptables
#       mv /完整的路徑/iptables.rule /usr/local/virus/iptables
# 執行測試:
#       /usr/local/virus/iptables/iptables.rule
#       iptables -L -n   (這個動作在檢查防火牆規則)
# 將底下這一行加入 /etc/rc.d/rc.local 當中
#       /usr/local/virus/iptables/iptables.rule
# 取消防火牆:
#       iptables -F
#       iptables -X
#       iptables -t nat -F
#       iptables -t nat -X
#
iptables -t filter -F
iptables -t filter -P INPUT DROP
modprobe ip_conntrack_ftp
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #local can ping outside
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #local can ping outside
iptables -t filter -A INPUT -p all -i lo -j ACCEPT
# iptables -A INPUT -i ppp0 -p TCP -d 59.124.70.141 --dport 22 -j ACCEPT #SSH
iptables -A INPUT -i eth1 -s 192.168.11.0/24 -j ACCEPT #內部IP全開通
iptables -A INPUT -i ppp0 -p TCP -s x.x.x.x(來源IP) -d x.x.x.x(目的IP) --dport 3306 -j ACCEPT #MW.4 MYSQL
iptables -A INPUT -i ppp0 -p TCP -s x.x.x.x(來源IP) -d x.x.x.x(目的IP) --dport 3306 -j ACCEPT #IDC MYSQL
iptables -A INPUT -i ppp0 -p TCP -s x.x.x.x(來源IP) -d x.x.x.x(目的IP) --dport 10000 -j ACCEPT #WEBMIN
iptables -A INPUT -i ppp0 -p TCP -s x.x.x.x(來源IP) -d x.x.x.x(目的IP) --dport 10000 -j ACCEPT #MW.4 WEBMIN
iptables -A INPUT -i ppp0 -p TCP -s x.x.x.x(來源IP) -d x.x.x.x(目的IP) --dport 10000 -j ACCEPT #IDC WEBMIN
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 20 -j ACCEPT #FTP
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 21 -j ACCEPT #FTP
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 25 -j ACCEPT #SMTP
iptables -A INPUT -i ppp0 -p UDP -d x.x.x.x(目的IP) --dport 53 -j ACCEPT #DNS
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 53 -j ACCEPT #DNS
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 80 -j ACCEPT #HTTP
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 110 -j ACCEPT #POP3
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 137 -j ACCEPT #SMB
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 138 -j ACCEPT #SMB
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 139 -j ACCEPT #SMB
iptables -A INPUT -i ppp0 -p TCP -d x.x.x.x(目的IP) --dport 3128 -j ACCEPT #SQUID
iptables -A INPUT -i ppp0 -p UDP -d x.x.x.x(目的IP) --dport 3128 -j ACCEPT #SQUID
# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT  # Can ping rule
# iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT   # Can ping rule
iptables -A INPUT -p icmp --icmp-type echo-request -s x.x.x.x(來源IP) -j ACCEPT  # Can ping rule
iptables -A OUTPUT -p icmp --icmp-type echo-reply -d x.x.x.x(目的IP) -j ACCEPT   # Can ping rule
iptables -A INPUT -p icmp --icmp-type echo-request -s x.x.x.x(來源IP) -j ACCEPT  # Can ping rule MW.4
iptables -A OUTPUT -p icmp --icmp-type echo-reply -d x.x.x.x(目的IP) -j ACCEPT   # Can ping rule MW.4
iptables -A INPUT -p icmp --icmp-type echo-request -s x.x.x.x(來源IP) -j ACCEPT  # Can ping rule IDC
iptables -A OUTPUT -p icmp --icmp-type echo-reply -d x.x.x.x(目的IP) -j ACCEPT   # Can ping rule IDC

arrow
arrow
    文章標籤
    iptables
    全站熱搜

    天兒啊 發表在 痞客邦 留言(0) 人氣()