编辑iptables.rules完后
执行 iptables-restore < /etc/iptables.rules
debian系统这样就默认开启了防火墙规则,centos系统需要重新启动防火墙。
debian官方iptables指导地址:https://wiki.debian.org/iptables
debian开机启动iptables方式:
vim /etc/network/if-pre-up.d/iptables
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.rules
#
#若是直接添加需要iptables -A INPUT -i lo -p all -j ACCEPT 如此,在iptables.rules不要!
####编辑防火墙规则####
vim /etc/iptables.rules
*filter
# http://sadoc.blog.51cto.com
# dport:目的端口
# sport:来源端口
# OUTPUT开启了DROP,注意dport/sport
# input方式总结:dport指本地,sport指外部
# output行为总结:dport只外部,sport指本地。
# 注意:OUTPUT链,OUTPUT链默认规则是ACCEPT,就需要添加DROP(放弃)的链.否则不需要!
# iptables -P OUTPUT ACCEPT(默认开启所有本地访问外部)
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
# 切记!切记!切记!切记!切记!切记!切记!
#添加上面三条命令,会断开所有端口,包括现在远程连接SSH,因此要及时一起添加相应需要的命令
#允许loopback!(不然会导致DNS无法正常关闭等问题)
-A INPUT -i lo -p all -j ACCEPT
# (如果是INPUT DROP)
-A OUTPUT -o lo -p all -j ACCEPT
# (如果是OUTPUT DROP)
# 开启SSH服务22端口(所有ip地址都允许登陆SSH)
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
# 开启web服务80端口
-A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# 开启FTP服务20/21端口
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
# 如果做了DNS服务器,开启53端口
-A INPUT -p tcp --dport 53 -j ACCEPT
# 允许icmp包通过,也就是允许ping,
-A OUTPUT -p icmp -j ACCEPT
# (OUTPUT设置成DROP的话)
-A INPUT -p icmp -j ACCEPT
# (INPUT设置成DROP的话)
# 以下是限制的比较详细,允许某个IP地址允许访问SSH
-A INPUT -s 172.21.0.1 -p tcp --dport 22 -j ACCEPT
# 如果要允许,或限制一段IP地址可用 172.21.0.0/16 表示172.16.0.0网段
COMMIT
本文转自 一招拜师 51CTO博客,原文链接:http://blog.51cto.com/sadoc/1902673