一、iptables基础知识
二、作者玩玩的配置文件
- 文件地址为/etc/sysconfig,文件名为iptables
cd /etc/sysconfig
vim iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT
-A INPUT -s 185.23.234.219/24 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 6666 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 18848,16501:16800 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
三、iptables中常用的参数以及作用
- -A 在规则链的末尾加入新规则
- -d 匹配目标地址
- –dport num 匹配目标端口号
- -D num 删除某一条规则
- -F 清空规则链
- -j 动作 匹配数据包后执行的动作
- -I num 在规则链的头部加入新规则
- -L 查看规则链
- -m 用于指定扩展模块
- -i 网卡名称 匹配从这块网卡流入的数据
- -o 网卡名称 匹配从这块网卡流出的数据
- -p 匹配协议,如TCP、UDP、ICMP
- -P 设置默认策略
- -s 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外
- –sport num 匹配来源端口号
-j参数的动作类型
- ACCEPT 允许
- DROP 丢弃(无响应)
- REJECT 拒绝(回应请求者明确的拒绝)
- MASQUERADE 伪装上网使用
- SNAT 共享地址上网
- DNAT 目标地址改写
四、安装iptables
yum install iptables-services
五、iptables启动命令
service iptables status
service iptables start
service iptables stop
chkconfig iptables on
chkconfig iptables off
六、iptables命令结构
iptables [-t table] command CHAIN [match] [target/jump]
- [-t table] 用来指定要操作的表。一般情况下不是必须要指定使用的表,因为 iptables 不指定 table 就默认使用 filter 表来执行所有的命令。
- command 告诉程序该做什么,比如插入一条规则还是追加一条规则,或者是删除一条规则。
- CHAIN 说明了要操作哪一条链
- match 来根据包的特点来匹配数据包,其中会细致地描述包的某个特点,比如来源 IP 地址,网络接口,端口,协议类型等,以使这个包区别于其它所有的包。
- target/jump 说明了对 match 到的数据包做什么操作,或者告诉数据包它应该去往何处。若数据包符合所有的 match,内核就用 target 来处理它,或者说把包发往 target。比如我们可以让内核把包发送到当前表中的其他链(可能是自定义链),或者只是丢弃这个包而没有什么处理,或者向发送者返回某个特殊的应答信息。非常重要的一点是 target 指令必须在最后。
命令例子
iptables -t filter -A INPUT -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT
- iptables对应iptables
- -A对应command
- INPUT对应CHAIN
- -t filter 对应 [-t table]
- -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT 对应的是[target/jump]
默认执行方式
- 不指定表名时,默认指filter表
- 不指定链名时,默认指定表内的所有链
- 除非设置链的默认策略,否则必须指定匹配标记
- 选项、链名、控制类型使用大写字母,其余均为小写
执行iptables命令和写入配置文件两种方式的对比
相对常用的命令
参考文档