[root@www ~]# iptables [-t nat] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]选项与参数:
-P :定义政策( Policy )。注意,这个 P 为大写啊!
ACCEPT :该封包可接受
DROP :该封包直接丢弃,不会让 client 端知道为何被丢弃
[root@www ~]# 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)
# iptables [-AI 链] [-io 网络接口] [-p tcp,udp]
\> [-s 来源IP/网域] [--sport 埠口范围]
\> [-d 目标IP/网域] [--dport 埠口范围] -j [ACCEPT|DROP|REJECT]
[root@www ~]# iptables -A INPUT [-m state] [--state 状态]选项与参数:
-m :一些 iptables 的外挂模块,主要常见的有:
state :状态模块
mac :网络卡硬件地址 (hardware address)
--state :一些封包的状态,主要有:
INVALID :无效的封包,例如数据破损的封包状态
ESTABLISHED:已经联机成功的联机状态;
NEW :想要新建立联机的封包状态;
RELATED :这个最常用!表示这个封包是与我们主机发送出去的封包有关
iptables -F
#杀掉所有使用者"自定义"的chain
iptables -X
#将所有chain的计数与流量都归零
iptables -Z
#给filter表格的三条chain设置默认规则
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#基本规则
iptables -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m mac --mac-source 94:de:80:89:41:93 -j DROP
#只要是来自lo接口或者通过lo接口出去都放行
iptables -A INPUT -icmp -j ACCEPT
#自定义规则
#对于filter 的INPUT chain,来自192.168.200.158的ip,目标主机接口是
eth0,目标port是22的丢弃,且进行的是tcp连接则丢弃,ssh
iptables -A INPUT -p tcp -s 192.168.200.158 -i eth0 --dport 22 -j DROP
iptables -A INPUT -p udp -s 192.168.200.158 -i eth0 --dport 22 -j DROP
#对于filter 的INPUT chain,来来自端口号1024:65000,在通过192.168.200.158的ip,到通过主机接口
#eth0 到端口号21 进行tcp连接,则丢弃.注意:这里-p 一定要在 --sport 的前面.
iptables -A INPUT -p tcp --sport 1024:65000 -s 192.168.200.158 -i eth0 --dport 21 -j DROP
#注意syn:主动连接标志
iptables -A INPUT -p tcp --sport 1024:65000 -i eth0 --dport 22 --syn -j DROP
iptables -A INPUT -s 192.168.200.156 -i eth0 -j DROP
#对于INPUT chain,来自192.168.200.0这个网段的ip 经过主机的eth0网络接口都放行
iptables -A INPUT -s 192.168.200.0/24 -i eth0 -j ACCEPT
#icmp
icmp_type="0 3 4 8 11 12 14 16 18"
for typeicmp in $icmp_type
do
iptables -A INPUT -p icmp --icmp-type $typeicmp -s 192.168.200.156 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type $typeicmp -s 192.168.200.158 -j ACCEPT
done
iptables -A INPUT -s 192.168.200.157 -j ACCEPT #使得192.168.200.157能够ping 192.168.200.157
iptables -A INPUT -s 127.0.0.1 -j ACCEPT #使得192.168.200.157能够ping通127.0.0.1(localhost)
service iptables save
转载于:https://blog.51cto.com/12218412/1873019