您的当前位置:首页正文

Debian下配置防火墙iptables

来源:爱站旅游
导读Debian下配置防火墙iptables
Debian下配置防⽕墙iptables

debian下iptables输⼊命令后即时⽣效,但重启之后配置就会消失,可⽤iptables-save快速保存配置,因为Debian上iptables是不会保存规则的,然后在开机⾃动的时候让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 -Fiptables -Xiptables -Z

#配置,禁⽌进,允许出,允许回环⽹卡iptables -P INPUT DROP

iptables -A OUTPUT -j ACCEPTiptables -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 ACCEPTiptables -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.1iptables -A INPUT -p tcp -m tcp --dport 25 -j REJECT#允许DNS

iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPTiptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT#允许http和https

iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -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-restoreIPTABLES_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

因篇幅问题不能全部显示,请点此查看更多更全内容

Top