赞
踩
目录
直接指定目的网段,IP地址,出入站网卡,从而直接对该类主机进行权限设置操作
通用的匹配方式一般为三种:
协议匹配 | -p 协议名 |
地址匹配 | -s 源地址、-d 目的地址 。可以是IP、网段、域名、空(任何地址 |
接口匹配 | -i 入站网卡、-o 出站网卡 |
上文中运用的实例基本都是协议匹配完成,协议匹配中还存在一个取反匹配
- [root@localhost ~]#iptables -A INPUT ! -p icmp -j ACCEPT
- [root@localhost ~]#iptables -nL
测试结果:
直接对IP地址,源地址,目的地址或则网段中的主机进行权限操作
- [root@localhost ~]#iptables -A INPUT -s 192.168.73.110 -j DROP
- [root@localhost ~]#iptables -nL
测试结果:
可以认为是对地址匹配的进一步设置,具体化到防火墙主机的网卡设置
[root@localhost ~]#iptables -A INPUT -i ens33 -s 192.168.73.0/24 -j DROP
要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类 型等条件
--sport | 源端口 |
--dport | 目的端口 |
- 对于端口的指定可以为单一,也可以为一个范围
-
- --sport 100 指定的就是匹配源端口100
-
- --sport 100:200 就是指定100-200这个范围
-
- --sport 100: 就是指定100及其100以上的端口
-
- --sport 200: 就是指定200及其200以下的源端口
[root@localhost ~]#iptables -A INPUT -p tcp --dport 20:21 -j REJECT
--tcp-flags TCP 标记
- [root@localhost ~]# iptables -I INPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT
- [root@localhost ~]# iptables -I OUTPUT -p tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT
ICMP类型可以是字符串、数字代码:
ICMP类型 | 含义 |
Echo-Request (代码为8) | 表示请求 |
Echo- -Reply (代码为0) | 表示回显 |
Dest ination-Unreachable (代码为3) | 表示目标不可达 |
--icmp-type ICMP类型
[root@localhost ~]#iptables -A INPUT -p icmp --icmp-type 8 -j REJECT
其他主机ping本机测试:
[root@localhost ~]#iptables -A INPUT -p icmp --icmp-type 0 -j REJECT
其他主机ping本机测试:
如果设置到出站数据包处理链(OUTPUT上),就是双方无法进行平命令,且没有信息的回显
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
要求以“-m扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件
- [root@localhost ~]#iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
- [root@localhost ~]#iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -p udp -m iprange --src-range 192.168.73.150-192.168.73.200 -j DROP
该方式范围过于有限,且操作不方便,所以并不受行内推崇使用
-m mac -- -mac- source MAC地址
- iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
- #禁止来自某MAC地址的数据包通过本机转发
- 格式:
-
- -m state --state连接状态
状态 | 含义 |
NEW | 主机连接目标主机,在目标主机上看到的第一个想要连接的包 |
ESTABLISHED | 主机已与目标主机进行通信,判断标准只要目标主机回应了第一个包,就进入该状态 |
RELATED | 主机已与目标主机进行通信,目标主机发起新的链接方式,一般与ESTABLISHED配合使用 |
INVALID | 无效的封包,例如数据破损的封包状态 |
- [root@localhost ~]# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
- [root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 443,80,22,21,20,53 -j ACCEPT
- [root@localhost ~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
- [root@localhost ~]# iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
- [root@localhost ~]# iptables -P INPUT DROP
最后一步设置为白名单:代表只有通过层层筛选最终能够建立联系的主机,才能够与本机进行所有端口的连接使用
我们对iptables命令行中的设置,都是临时设置,只要遇到服务器关机,或者服务重启时,所有的设置都会清空且还原为原本的设置。为此,我们可以对已经测试完毕符合我们需求的防火墙设置进行备份,在必要时,可以一键还原
格式: iptables-save >/指定的文件
[root@localhost ~]#iptables-save >/opt/iptables.bak
[root@localhost ~]#iptables-restore </opt/iptables.bak
iptables的默认配置文件存在于 /etc/sysconfig/iptables
若想永久修改只需要将备份的iptables文件重定向输入到默认配置文件(覆盖)
cat /opt/iptables.bak >/etc/sysconfig/iptables
或则将当前的设置修改为默认配置
iptables-save >/etc/sysconfig/iptables
注意:无论时什么要修改方式,谨记修改重要配置先备份的原则,修改iptables默认设置前先进行备份
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。