1. 查看、重启、关闭
iptables -L -n --line-number //查看
vi /etc/sysconfig/iptables //查看
service iptables save && service iptables restart // 保存配置并重启
chkconfig iptables off && service iptables stop// 关闭
iptables -D INPUT 2 // 2是iptables -L -n 的结果
2. 配置
1) 整体策略
iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的
例
iptables -P INPUT DROP //阻止所有INPUT
iptables -P FORWARD DROP //阻止所有FORWARD
iptables -P OUTPUT DROP //阻止所有OUTPUT
2) 允许或禁止地址
iptables [-AI 链名] [-io 网络接口] [-p 协议] [-s 来源IP/网域] [-d 目标IP/网域] -j [ACCEPT|DROP|REJECT|LOG]
选项与参数:
-AI 链名:针对某的链进行规则的 "插入" 或 "累加"
-A :新增加一条规则,该规则增加在原本规则的最后面。例如原本已经有四条规则,
使用 -A 就可以加上第五条规则!
-I :插入一条规则。如果没有指定此规则的顺序,默认是插入变成第一条规则。
例如原本有四条规则,使用 -I 则该规则变成第一条,而原本四条变成 2~5 号
链 :有 INPUT, OUTPUT, FORWARD 等,此链名称又与 -io 有关,请看底下。
-io 网络接口:设定封包进出的接口规范
-i :封包所进入的那个网络接口,例如 eth0, lo 等接口。需与 INPUT 链配合;
-o :封包所传出的那个网络接口,需与 OUTPUT 链配合;
-p 协定:设定此规则适用于哪种封包格式
主要的封包格式有: tcp, udp, icmp 及 all 。
-s 来源 IP/网域:设定此规则之封包的来源项目,可指定单纯的 IP 或包括网域,例如:
IP :192.168.0.100
网域:192.168.0.0/24, 192.168.0.0/255.255.255.0 均可。
若规范为『不许』时,则加上 ! 即可,例如:
-s ! 192.168.100.0/24 表示不许 192.168.100.0/24 之封包来源;
-d 目标 IP/网域:同 -s ,只不过这里指的是目标的 IP 或网域。
-j :后面接动作,主要的动作有接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)及记录(LOG)
3). 允许或禁止端口
iptables [-AI 链] [-io 网络接口] [-p tcp,udp] [-s 来源IP/网域] [--sport 埠口范围] [-d 目标IP/网域] [--dport 埠口范围] -j [ACCEPT|DROP|REJECT]
选项与参数:
--sport 埠口范围:限制来源的端口号码,端口号码可以是连续的,例如 1024:65535
--dport 埠口范围:限制目标的端口号码。
3. 概念理解
1). 报文怎么走
- 到本机某进程的报文:PREROUTING -> INPUT
- 从本机某进程出去的报文:OUTPUT -> POSTROUTING
- 由本机转发的报文:PREROUTING -> FORWARD -> POSTROUTING
2). 那些功能
- filter: 定义允许或者不允许的, 通常是 (INPUT、FORWARD 、OUTPUT)
- nat: 地址转换, 通常是 (PREROUTING 、OUTPUT 、POSTROUTING)
- mangle: 修改报文, 通常是 (PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING)
上到下检查, 所以规则严格的放在前面