这些的指令适用对象是ap,网关路由器之类的,所以有一些FORWARD的配置,如果没带网络转发的机器,就没必要配置FORWAD。
配置黑白名单逻辑总体说比较简单
先说黑名单
1、首先清空以前的防护规则
iptables -F INPUT
iptables -F FORWARD
2、首先设置默认所有的访问都能够通过,没有匹配上任何规则的导致没有任何处理的访问
就按默 认操作处理(下面是的操作ACCEPT丢弃)
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
3、设置不可以访问通过的规则(下文中的IP地址只是举个例子,tcp也只是举个例子,icmp和 udp也是可以的)
iptables -I INPUT -p tcp -s 192.168.10.100 -j DROP
iptables -I FORWARD -p tcp -s 192.168.10.100 -d 192.168.10.101 -j DROP
... (你需要的类似的允许通过的规则可以继续添加)
4、允许所有的访问规则通过(由于使用的是-I(insert),后面的规则会被插入到 INPUT/FORWARD链最上面,规则被匹配的时候是从上面的的规则开始的)
iptables -I INPUT ACCEPT
iptables -I FORWARD ACCEPT
总的来说规则匹配的流程,
INPUT匹配,比如某个 从192.168.10.100 地址发出的访问数据包要访问本机(也就是被设置防火墙的机器,先匹配第四步设置的规则,然后匹配第三步设置的规则( iptables -I INPUT -p tcp -s 192.168.10.100 -d 192.168.10.101 -j DROP)匹配上了执行相应的操作-j DROP,也就是丢弃,于是该访问被拒绝了。如果是 从192.168.10.200 地址发出的访问数据包要访问本机,首先通过第四步的规则,由于第三步的规则不能与其匹配,也就是后面没有规则和其匹配了,那就按照默认操作允许访问。
FORWARD匹配,比如某个 从192.168.10.100 地址发出的访问数据包要访问ip 192.168.10.101(在同一个局域网)的机器,先匹配第四步设置的规则,然后匹配第三步设置的规则( iptables -I INPUT -p tcp -s 192.168.10.100 -j DROP)匹配上了执行相应的操作-j DROP,也就是丢弃,于是该访问被拒绝了。如果是 从192.168.10.200 地址发出的访问数据包要访问ip 192.168.10.101的机器,首先通过第四步的规则,由于第三步的规则不能与其匹配,也就是后面没有规则和其匹配了,那就按照默认操作允许访问。
黑名单的拦截原理也就如上所说。
再说白名单
白名单设置要比黑名单设置复杂一些
1、首先清空以前的防护规则
iptables -F INPUT
iptables -F FORWARD
2、首先设置默认所有的访问都能够通过,没有匹配上任何规则的导致没有任何处理的访问
就按默 认操作处理(下面是的操作DROP丢弃)
iptables -P INPUT DROP
iptables -P FORWARD DROP
3、设置不可以访问通过的规则(下文中的IP地址只是举个例子,tcp也只是举个例子,icmp和 udp也是可以的)
iptables -I INPUT -p tcp -s 192.168.10.100 -j ACCEPT
iptables -I FORWARD -p tcp -s 192.168.10.100 -d 192.168.10.101 -j ACCEPT
iptables -I FORWARD -p tcp -s 192.168.10.101 -d 192.168.10.100 -j ACCEPT
在这里岔开话题多讲一下
为什么白名单每一个访问规则同时需要一个反向的规则,因为访问是双向的,白名单会禁止默认的所有的访问规则,所以要完成一个访问需要设置正反向的规则,如同写信需要双方的地址,发信方向收信方地址,以便收信方回信实现访问这个过程。
收到信后需要回信,这是访问的必须过程,也就是首先访问端request,然后被访问端reponse
iptables -I FORWARD -p tcp -s 192.168.10.100 (如果没有 --sport xx ,访问端不指明源地址端口号,默认为添加所有端口号为源地址端口) -d 192.168.10.101 --dport 21:22 -j ACCEPT
iptables -I FORWARD -p tcp -s 192.168.10.101 --sport 21:22 -d 192.168.10.100 (如果没有 --sport xx ,访问端不指明目的地址端口号,默认为添加所有端口号为目的地址端口)-j ACCEPT
访问端口是由访问端随机决定的,而被访问端是被访问端的特定设置的,比如上面的规则是允许客服端访问ftp服务端,ftp服务端被访问端口特定为21(控制端口)和22(数据端口),客服端的端口可以不用指明,因为它被访问端随机分配的
...(你需要的类似的允许通过的规则可以继续添加)
4、允许所有的访问规则通过(由于使用的是-A(append),后面的规则会被追加到 INPUT/FORWARD链最下面,规则被匹配的时候是从上面的的规则开始的,也就是说第四步 的规则最后被匹配以及操作)
iptables -A INPUT DROP
iptables -A FORWARD DROP
总的来说规则匹配的流程,
INPUT匹配,比如某个 从192.168.10.100 地址发出的访问数据包要访问本机(也就是被设置防火墙的机器,先匹配第四步设置的规则,然后匹配第三步设置的规则( iptables -I INPUT -p tcp -s 192.168.10.100 -d 192.168.10.101 -j ACCEPT)匹配上了执行相应的操作-j ACCEPT,也就是接受,于是该访问被允许了。如果是 从192.168.10.200 地址发出的访问数据包要访问本机,首先通过第四步的规则,由于第三步的规则不能与其匹配,也就是后面没有规则和其匹配了,那就按照默认操作拒绝访问。文章来源:https://www.toymoban.com/news/detail-475923.html
FORWARD匹配,比如某个 从192.168.10.100 地址发出的访问数据包要访问ip 192.168.10.101(在同一个局域网)的机器,先匹配第四步设置的规则,然后匹配第三步设置的规则( iptables -I INPUT -p tcp -s 192.168.10.100 -j ACCEPT)匹配上了执行相应的操作-j ACCEPT,也就是接受,于是该访问被允许了。如果是 从192.168.10.200 地址发出的访问数据包要访问ip 192.168.10.101的机器,首先通过第四步的规则,由于第三步的规则不能与其匹配,也就是后面没有规则和其匹配了,那就按照默认操作拒绝访问。文章来源地址https://www.toymoban.com/news/detail-475923.html
到了这里,关于iptables配置黑白名单的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!