
四表
Filter表:过滤数据包
NAT表: 用于网络地址转换(IP、端口)
Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表: 决定数据包是否被状态跟踪机制处理
五链
INPUT链: 处理进来的数据包
OUTPUT链: 处理出去数据包
FORWARD链: 转发数据包时应用此规则链中的规则
PREROUTING链: 对数据包作路由选择前应用此链中的规则
POSTROUTING链:对数据包作路由选择后应用此链中的规则
Iptables命令选项:
-A 添加一条规则,末尾添加规则
-I 插入一条规则,默认在第一行添加
-D 删除一条规则,可以按规则序号和内容删除
-R 替换一条规则,可以按规则序号和内容替换
-L 查看所有规则,列出指定链中所有的规则进行查看
-F 清空所有规则,(生产环境中请谨慎用!!)
-N 新建一条用户自己定义的规则链
-X 删除指定表中用户自定义的规则链
-P 设置指定链的默认策略
处理数据包的四种方式:
ACCEPT 允许数据包通过
DROP 直接丢弃数据包,不给任何回应信息
REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则
语法格式 :
Iptables [-t 表名] 命令选项 [链名][条件匹配][-j 处理方式]
iptables [-t 表] -A 链 匹配条件 -j 动作
-p 协议 ACCEPT 放行
-s 源ip地址 DROP 丢弃
-d 目的ip地址 REJECT 拒绝
--dport 目的端口 DNAT --to-destication 目的地址转换
SNAT --source 源地址转换
--sport 源端口
#查看iptables规则编号
iptables -L --line-numbers
#查看某个链的规则编号
iptables -L INPUT --line-numbers
#删除INPUT表的第三条规则
iptables -D INPUT 3
例子:
#放行22端口
允许目的端口22的数据进来
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许源端口22的数据出去
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
注意! (如果修改默认规则为拒绝所有),首先要放行你的22端口,不然无法进行远程连接
#修改默认规则,拒绝所有
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#放行80端口
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#禁ping
iptables -A INPUT -p icmp -j DROP
iptables -A INPUT -p icmp -j REJECT
#目的地址转换,将访问192.168.189.161 端口为2222的请求转发至10.30.0.128的22端口
iptables -t nat -A PREROUTING -p tcp -d 192.168.189.161 --dport 2222 -j DNAT --to-destination 10.30.0.128:22
#源地址转换,所有来自于10.30.0.0/24网段的请求源地址转换为192.168.189.161
iptables -t nat -A POSTROUTING -p tcp -s 10.30.0.0/24 -j SNAT --to-source 192.168.189.161
iptables规则导入导出
iptables-save > 文件地址
iptables-restore < 文件地址
版权声明:本文为qq_54947566原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。