网络协议-7-iptables

2019-10-02  本文已影响0人  宠辱不惊的咸鱼

简介

数据包传输过程

iptables-001.jpg

表和链

iptables-002.jpg

iptables配置

iptables-003.jpg iptables-004.jpg
-A # 链末尾添加(append)一条规则
-D # 删除(delete)链中某一规则,可按规则序号或内容
-I # 链中插入(insert)一条规则,默认在第一行
-R # 修改、替换(replace)链中某一规则,可按规则序号或内容
-L # 列出(list)链中所有的规则
-E # 重命名用户自定义链,不改变链本身
-F # 清空(flush)
-N # 新建一条用户自定义链(new-chain)
-X # 删除表中用户自定义链(delete-chain)
-P # 设置链的默认策略(policy)
-Z # 清零所有表的所有链的字节和数据包计数器
-n # 使用数字形式(numeric)显示输出结果
-v # 查看表详细信息(verbose)
-V # 查看版本(version)
-h # 获取帮助(help)

规则保存与恢复

# 指定文件
iptables-save > /etc/sysconfig/iptables
# 默认文件
service iptables save

例子

# 删除INPUT链第1条规则
iptables -D INPUT 1
# 拒绝所有ICMP协议数据
iptables -I INPUT -p icmp -j REJECT
# 允许转发除ICMP协议外的所有数据
iptables -A FORWARD -p ! icmp -j ACCEPT
# 拒绝192.168.1.11数据,放行192.168.0.0/24网段数据
iptables -A FORWARD -s 192.168.1.11 -j REJECT 
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
# 丢弃从eth1进入的私网数据
iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP 
iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP 
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
# 仅允许202.13.0.0/16网段通过22端口访问
iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT 
iptables -A INPUT -p tcp --dport 22 -j DROP
# 开放20-1024端口
iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT 
iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT
# 允许转发来自192.168.0.0/24网段的DNS解析请求
iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT 
iptables -A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT
# 禁外ping本机,允许本机ping外
iptables -I INPUT -p icmp --icmp-type Echo-Request -j DROP 
iptables -I INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT 
iptables -I INPUT -p icmp --icmp-type Destination-Unreachable -j ACCEPT
# 禁止转发来自00:0c:29:27:55:3F的数据
iptables -A FORWARD -m mac --mac-source 00:0c:29:27:55:3F -j DROP
# 开放20,21,25,110,1250:1280端口
iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
# 禁止转发来自192.168.1.20-192.168.1.99数据
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
# 禁止转发新建连接的非sync信号
iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP
# 只允许已存在连接或与连接相关的数据
# RELATED:FTP是个例子
iptables -A INPUT -p tcp -m state --state NEW -j DROP 
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# 开放20,21,80,20450:20480
# 开放其他端口的应答数据包
iptables -I INPUT -p tcp -m multiport --dport 20,21,80 -j ACCEPT 
iptables -I INPUT -p tcp --dport 20450:20480 -j ACCEPT 
iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT 
iptables -P INPUT DROP
上一篇 下一篇

猜你喜欢

热点阅读