debian下配置防火牆iptables

debian下iptables輸入命令後即時生效,但重啓以後配置就會消失,可用iptables-save快速保存配置,由於Debian上iptables是不會保存規則的,而後在開機自動的時候讓iptables自動加載剛剛導出的配置文件,方法以下:
若要中止iptables,iptables -F清空全部配置效果等同於中止。
whereis iptables           查找iptables 所在的路徑。
一、將iptables配置保存到/etc/iptables,這個文件名能夠本身定義,與下面的配置一致便可
iptables-save > /etc/iptables
二、建立自啓動配置文件,並授於可執行權限
iptables-save > /etc/iptables
三、編輯該自啓動配置文件,內容爲啓動網絡時恢復iptables配置
vi /etc/network/if-pre-up.d/iptables
內容爲:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables
保存並退出。這樣重啓以後iptables就自動加載規則了。
##注意:在下次修改iptables規則以後要從新導出配置文件。
#清空配置
iptables -F
iptables -X
iptables -Z
#配置,禁止進,容許出,容許迴環網卡
iptables -P INPUT DROP
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#容許ping
iptables -A INPUT -p icmp -j ACCEPT
#容許ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#容許ftp
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#容許ftp被動接口範圍,在ftp配置文件裏能夠設置
iptables -A INPUT -p tcp --dport 20000:30000 -j ACCEPT
#學習felix,把smtp設成本地
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -s 127.0.0.1
iptables -A INPUT -p tcp -m tcp --dport 25 -j REJECT
#容許DNS
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
#容許http和https
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 容許已創建的或相關連的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#禁止其餘未容許的規則訪問
iptables -A INPUT -j REJECT  #(注意:若是22端口未加入容許規則,SSH連接會直接斷開。)
iptables -A FORWARD -j REJECT
#保存配置
iptables-save > /etc/iptables
因爲Debian安裝iptables後默認不是服務提示service iptables提示unrecognized service,須要添加腳本到/etc/init.d/,腳本以下
建議將其保存爲/etc/init.d/iptables,而後chmod +x /etc/init.d/iptables 添加運行權限。
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: iptables
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop iptables firewall
# Description: Start, stop and save iptables firewall
### END INIT INFO 
PATH=」/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin」 
IPTABLES=/sbin/iptables
IPTABLES_SAVE=/sbin/iptables-save
IPTABLES_RESTORE=/sbin/iptables-restore
IPTABLES_CONFIG=/etc/iptables.conf
[ -x $IPTABLES ] || exit 0
 . /lib/lsb/init-functions
 case "$1" in
 start)
    log_action_begin_msg "Starting firewall"
         type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
    if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
         type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
    ;;
 stop)
    log_action_begin_msg "Saving current firewall configuration"
    if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    log_action_begin_msg "Flushing ALL firewall rules from chains!"
    if $IPTABLES -F ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    log_action_begin_msg "Deleting ALL firewall chains [Warning: ACCEPTING ALL PORT SERVICES!]"
    if $IPTABLES -X ; then
        $IPTABLES -P INPUT ACCEPT
        $IPTABLES -P FORWARD ACCEPT
        $IPTABLES -P OUTPUT ACCEPT
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;
 save)
    log_action_begin_msg "Saving current firewall configuration"
    if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;
 force-reload|restart)
    log_action_begin_msg "Reloading firewall configuration [Warning: POTENTIAL NETWORK INSECURITY DURING RELOAD]"
    $IPTABLES -F
    $IPTABLES -X
    if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;
 *)
    echo "Usage: /etc/init.d/iptables {start|stop|save|restart|force-reload}"
    exit 1
    ;;
 esac
 exit 0 
 網絡

相關文章
相關標籤/搜索