码迷,mamicode.com
首页 > 其他好文 > 详细

debian下配置防火墙iptables

时间:2015-09-22 16:46:28      阅读:606      评论:0      收藏:0      [点我收藏+]

标签:

debian下iptables输入命令后即时生效,但重启之后配置就会消失,可用iptables-save快速保存配置,然后在开机自动的时候让iptables自动加载刚刚导出的配置文件,方法如下:

若要停止iptables,iptables -F清空所有配置效果等同于停止。

whereis iptables           查找iptables 所在的路径。

1、将iptables配置保存到/etc/iptables,这个文件名可以自己定义,与下面的配置一致即可

iptables-save > /etc/iptables

2、创建自启动配置文件,并授于可执行权限

iptables-save > /etc/iptables

3、编辑该自启动配置文件,内容为启动网络时恢复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 


debian下配置防火墙iptables

标签:

原文地址:http://my.oschina.net/u/2404183/blog/509676

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!