一、规则的保存和重载
- 查看当前内存的规则
- iptables -S
[root@Tyson'sComputer ~]# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
- 保存当前内存中的规则
iptables -S> /path/file
iptables-save[option]> /path/file
[root@Tyson'sComputer learniptables]# cat test2.iptables
# Generated by iptables-save v1.4.21 on Mon Feb 25 10:23:42 2019
*filter
:INPUT ACCEPT [572:44587]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [291:29540]
COMMIT
# Completed on Mon Feb 25 10:23:42 2019
- 规则重载到内存
- CentOS6中重启iptables服务自动挂载
/etc/sysconfig/iptables中的规则
- CentOS7中通过iptables-restore到指定文件中重载规则。(这里只能载入通过
iptables-save
保存的规则文件)
[root@Tyson'sComputer learniptables]# iptables-restore <test1.iptables
iptables-restore: line 1 failed
[root@Tyson'sComputer learniptables]# iptables-restore <test2.iptables
[root@Tyson'sComputer learniptables]#
- 良好的规则管理习惯
- 将规则都写入到一个shell脚本中
- 对多次重复的地址使用变量,例如服务器的地址或网段,内网的网段。
- 使用脚本的第一条命令最好是iptables -F
- 当某台服务器地址改变了,也只需要修改服务器地址对应的变量值
- 因为可以加注释以及分类,所以更加规范。
- 备份规则更容易
- 只需要在
/etc/rc.d/rc.local
中加上一条执行该脚本的命令即可。
二、常用操作
- 清空自定义链
- iptables -X [chain]
- 清空规则
- iptables -F [chain]
- 清空规则计数器
- iptables -Z [chain]
- 拒绝主机10.1.1.223通过tcp协议访问主机10.1.1.222的22端口。
- iptables -A INPUT -s 10.1.1.223 -d 10.1.1.222 -p tcp --dport 22 -j REJECT
- 设置filter表默认规则为DROP
- iptables -P INPUT DROP
- iptables -P OUTPUT DROP
- iptables -P FORWARD DROP
- -P 是设置指定链的默认策略(policy)为指定的target
- 查看规则列表和统计数据
- iptables -L -n -v chain
- -L选项是列出某条链或所有链中的规则
- -n是输出数值格式的ip地址和端口号,会尝试反解主机名和端口号对应的服务名
- -v是输出更相信的信息
- 放行环回设备的进出数据包
- iptables -A IPNUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
- iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
- -i、-o分别是数据包流入或流出的接口。
- -s、-d是指定流入流出的地址
- 环回口通常是指定INPUT和OUTPUT这两条链。
- 最好的写法是省略目标和目的地址,因为ping本机ip地址最后交给环回设备但不是交给127.0.0.1的,而是交给127.0.0网段的其他地址
-iptables -A INPUT -i lo -j ACCEPT
-iptbales -A OUTPUT -o lo -j ACCEPT