iptables是Linux中对网络数据包进行处理的一个功能组件。等同于防火墙,可以对经过的数据宝进行处理。
- 表 提供特定的功能,iptables中有4个表:
filter表
(数据包过滤),nat表
(网络地址转换),mangle表
(数据包重构)和raw表
(数据追踪处理)。 - 链 是数据包传播的路径,每一个链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。
- 规则 是iptables运行,运作所遵循的法则。
ACCEPT
允许数据包通过
DROP
直接丢弃数据包,不给任何回应消息
REJECT
拒绝数据包通过,必要时会给数据的发送端回一个相应消息
log
用于针对特定的数据包记录日志log,在/var/log/message文件中记录日志信息,然后将数据包传递给下一条规则
iptables基本语法结构
iptables[-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
- 表名,链名 用于指定iptables命令所操纵的表和链,命令选项用于指定管理iptables规则的方式
- 条件匹配 用于指定对符合什么样的条件的数据包进行处理
- 目标动作或跳转 用于指定数据包的处理方式
iptables相关参数
示例
-
显示搜有规则并以数字形式表示规则
iptables -L -n
-
设置所有规则为允许
iptables -P INPUT ACCEPT
# 设置默认规则
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
-
清楚已有规则
iptables -F
# 清楚全部规则
iptables -X
# 清楚自己定义的规则 -
设置INPUT和FORWORD为封锁
iptables -P INPUT DROP
iptables -P FORWARD DROP
-
允许ssh服务流量进入
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 在末尾添加一条规则 -
开启本地环路,使ping 127.0.0.1的ICMP包通过
iptables -A INPUT -i lo -j ACCEPT
-
允许其他机器ping这台服务器
iptables -A INPUT -p icmp -j ACCEPT
-
开放web端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-
删除指定规则
iptables -D INPUT 3
# 删除第三行的规则 -
保存配置
/etc/init.d/iptables save
-
重启iptables
/etc/init.d/iptales restart
service iptables restart
1 条评论
测试一下