iptables 四表五链

在这里插入图片描述
四表

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.12822端口
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版权协议,转载请附上原文出处链接和本声明。