iptables 基本用法
iptables
1.iptables 表
(1)介绍常用表
filtert(过滤器)
链
↓
INPUT chain:控制进入主机的数据包
OUTPUT chain:控制向外发出的数据包
FORWARD chain :转发数据包
NAT(地址转换)
链
↓
PREROUTING链 :数据包到达防火墙时改变包的目的地址。
OUTPUT链:改变本地产生数据包的目标地址。
POSTROUTING:在数据包离开防火墙时改变数据包的源地址
Mangle(修改数据包,改变包头中内容)
TOS :设置改变数据包的服务类型,不要使用TOS设置发往Internet的包除非打算依赖TOS来路由,不能在表中配置任何过滤。SNAT、DNAT
TTL:改变数据包的生存时间,可以让数据包只有一个特殊的TTL,欺骗ISP,有些ISP并不希望多台计算机共享一个连接访问Internet,ISP通过检查一台计算机所发出的数据包是否含有不同的TTL来判断。
Mask:给数据包设置特殊的标记,通过标记配置带宽限制和基于请求分类。
2.iptables 参数:
-L 列出规则
-F 清空链
-X是删除使用者自订 table 项目
-A 从最后一列插入一条规则
INPUT
OUTPU
FORWARD
-I从第一行插入一条规则,后接数字可以调整规则插入的行数
INPUT
OUTPU
FORWARD
-n不进行ip与主机名的反查询
-d目标ip后可以接端口号,格式:0.0.0.0:80
-s源ip后可接端口号,格式:0.0.0.0:80
-j 动作
ACCEPT
REJECT
DROP
-p指定协议tcp,udp,icmp
-i 指定网卡
--sport指定源端口
--dport指定目标端口
3.iptables流程图
4.例子
( 1)阻挡所有流量
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
# 这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。并且发送一条host prohibited的消息给被拒绝的主机。
(2)允许所有ip都可以80
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT
#这条规则必须放在阻挡所有流量规则的前面!
(3)允许所有ip都可以22
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT
#这条规则必须放在阻挡所有流量规则的前面!