1,来自103.36.166 这个“恶意”来源就丢弃
iptables -A INPUT -s 103.36.166 -j DROP
2,允许外部数据访问本机80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
3,允许外部来自80端口的数据访问本机
iptables -A INPUT -p tcp --sport 80 -j ACCEPT #注意2,3例的不同
4,删除“图五”中 第5条规则 103.36.167
iptables -D INPUT 5
5,来自192.168.1.0/24网络15-59928端口的数据包,不允许访问本机ssh端口。
iptables -A INPUT -p tcp -s 192.168.1.0/24 --sport 15:59928 --dport ssh -j DROP
6,设置对本机的禁PING 103.36.165
iptables -A INPUT -p icmp --icmp-type 8 -j DROP # type 8 就是 echo request (回传需求),
注意:这条规则使用的是-A添加 如果防火墙策略本身有允许icmp type 8 则这条规则不会生效,需要使用-I 这个参数插入规则。
以上规则执行后只是临时生效重启后会失效,如果要永久生效必须写入配置文件
写入防火墙规则配置文件:/etc/init.d/iptables save
dport(目标端口) 和sport(来源端口)字面意思来说很好理解,一个是数据要到达的目的端口,一个是数据来源的端口。
但是在使用的时候要分具体情况来对待,这个具体情况就是你的数据包的流动行为方式。(INPUT还是OUTPUT)
比如范例2,iptables -A INPUT -p tcp --dport 80 -j ACCEPT,
注意里面的INPUT参数,这个代表你的这条数据包的进行的 “进入” 操作!
那么这条数据包可以这么描述:凡进从外部进入本机的,数据要访问的目标端口(dport)为80,都允许以上数据行为。(这里的目标端口就是80
再看范例3:iptables -A INPUT -p tcp -sport 80 -j ACCEPT
那么这条数据包可以这么描述:凡进从外部进入本机的,数据来源端口(sport)为80的(对方的数据包是80端口发送过来的),都允许以上数据行为。
iptables 详解二之外挂模103.88.35
Iptables –A INPUT [-m state] [--state 状态]
选项与参数:
-m:一些 iptables 的外挂模块,主要常见的有:
state:状态模块
mac :网卡硬件地址
--state:一些数据包的状态,主要有
INVALID :无效的数据包,例如数据破损对的数据包状态
ESTABLISHED:已经连接成功的连接状
NEW :想要新建立的数据包状态
RELATED :这个最常用,表示这个数据包是与主机发送出去的数据包有关。
03.范例举例iptables外挂模块运用
1,只要已建立连接或与已发送数据相关的数据包就予以通过,不合法数据包丢弃。 110.42.7
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
2,针对局域网内 aa:bb:cc:dd:ee:ff 主机开放其连接
iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j ACCEPT
--mac-source 就是来源主机的mac
3,不允许本机访问117.27.159.157的80端口 (此例和外挂模块无关,补的一条举例)
iptables -A OUTPUT -p tcp -d 117.27.159.157 --dport 80 -DROP
以上规则执行后只是临时生效重启后会失效,如果要永久生效必须写入配置文件
写入防火墙规则配置文件:/etc/init.d/iptables save(这点同(4))