iptables有四个表
1、nat(地址转换表)
2、filter(数据过滤表)
3、raw(状态跟踪表)
4、mangle(包标记表)
iptables五个链
1、INPUT(入站规则)
2、OUTPUT(出站规则)
3、FORWARD(转发规则)
4、PREROUTING(路由前规则)
5、POSTROUTING(路由后规则)
iptables命令格式
iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]
目标操作
ACCEPT:允许通过/放行
DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志,然后传给下一条规则
常用选项
添加规则选项 | 描述 |
---|---|
-A | 追加一条防火墙规则到链末尾位置 |
-I | 插入一条防火墙规则到链开头 |
查看规则选项 | 描述 |
---|---|
-L | 查看iptables所有规则 |
-n | 以数字形式显示地址、端口等信息 |
- -line-numbers | 查看规则时,显示规则的行号 |
删除规则选项 | 描述 |
---|---|
-D | 删除链内指定序号(或内容)的一条规则 |
-F | 清空所有规则 |
默认规则 | 描述 |
---|---|
-P | 为指定的链设置默认规则 |
iptables过滤条件
通用匹配
名称 | 用法 |
---|---|
协议匹配 | -p 协议名称 |
地址匹配 | -s 源地址、 -d 目标地址 |
接口匹配 | -i 接受数据的网卡、-o 发送数据的网卡 |
隐含匹配
名称 | 用法 |
---|---|
端口匹配 | - -sport 源端口号、 - -dport 目标端口号 |
ICMP类型匹配 | - -icmp-type ICMP 类型 |
演示:
~]#iptables -A INPUT -s 192.168.1.100 -j DROP #丢弃192.168.1.100发给本机的所有数据包
~]#iptables -A INPUT -s 192.3168.0.0\24 -j DROP #丢弃192.168.1.0.0\24这个网段发给本机的所有数据包
~]#iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j REJECT #拒绝192.168.1.100使用tcp协议远程连接本机ssh端口22
~]#iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT #允许192.168.1.100使用tcp协议远程端口22