CentOS 6.8 iptables
原创
©著作权归作者所有:来自51CTO博客作者Tom马的原创作品,请联系作者获取转载授权,否则将追究法律责任
安装 iptables
默认配置
vi /etc/sysconfig/iptables
# 星号开头的指的是表
# 这里为 filter 表
*filter
# 冒号开头的指的是链,三条内建的链
# 该规则表示 INPUT 链 默认策略是 ACCEPT
:INPUT ACCEPT [0:0]
# 该规则表示 FORWARD 链 默认策略是 ACCEPT
:FORWARD ACCEPT [0:0]
# 该规则表示 OUTPUT 链 默认策略是 ACCEPT
:OUTPUT ACCEPT [0:0]
# 意思是允许进入的数据包只能是刚刚我发出去的数据包的回应
# ESTABLISHED 已建立的链接状态,RELATED 该数据包与本机发出的数据包有关
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许 icmp 包通过,也就是允许 ping
-A INPUT -p icmp -j ACCEPT
# 这条很重要,针对本机内部接口开放!
-A INPUT -i lo -j ACCEPT
# 开入 22 端口
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# 这两条的意思是在 INPUT 表和 FORWARD 表中拒绝所有其他不符合上述任何一条规则的数据包
# 并且发送一条 host prohibited 的消息给被拒绝的主机
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
# 提交
COMMIT
iptables 规则
iptables [-t tables] [-L] [-nv]
# 参数说明
-t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用默认的 filter
-L :列出目前的 table 的规则
-n :不进行 IP 与 HOSTNAME 的反查,显示讯息的速度会快很多
-v :列出更多的信息,包括通过该规则的封包总位数、相关的网络接口等
# 查看所有防火墙状态
service iptables status
# 查看 filter 表的规则
# filter 表包含 INPUT、OUTPUT、FORWARD 三个规则链
iptables -n -L
# 查看 nat 表的规则
iptalbes -nL -t nat
# 显示行号
iptables -nL --line
# 删除一个规则 数字 1 表示规则的行号
iptables -D INPUT 1
# 删除 nat 表, POSTROUTING 链
iptables -t nat -D POSTROUTING 1
配置 iptables
# 添加443端口
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
# 屏蔽IP
# 封整个段即从 35.0.0.1 到 35.255.255.254 的命令
iptables -I INPUT -s 35.0.0.0/8 -j DROP
# 封整个段即从 35.61.0.1 到 35.61.255.254 的命令
iptables -I INPUT -s 35.61.0.0/16 -j DROP
# 封整个段即从 35.61.78.1 到 35.61.78.254 的命令
iptables -I INPUT -s 35.61.78.0/24 -j DROP
# 拒绝 35.61.78.109 访问
iptables -I INPUT -s 35.61.78.109/32 -j DROP
# 解封IP
# 删除屏蔽的指定IP
iptables -D INPUT -s 192.168.1.26 -j DROP