服务器的主机策略,最安全的方式当然是最小权限原则,只开放需要开放的业务端口,其它端口一律阻止。
但阻止了所有连接,也意味着服务器无法向其它主机发起请求了,只能被动接受来自业务端口的外部请求。为了在可控范围内降低被攻击风险,同时又不失灵活性。可以考虑使用IP策略,而非端口策略。因为服务器主机间的访问,有时端口是浮动的,写死之后会很麻烦。
出于内网安全考虑,可以将默认策略设置为阻止所有内网连接,常用内网网段为:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
我们把常用内网网段的攻击阻止掉基本上就解决掉了大部分内网安全问题。在写策略之前把网段转换成CIDR格式,所使用的工具是cidr-merger:
https://github.com/zhanhb/cidr-merger
转换过程为:

在写阻止策略前先把管理员IP放行:
$ iptables -I INPUT -s 192.168.1.1 -j ACCEPT
通过 -I 参数,允许策略会被放在最前面,使用 -A 参数,策略会被追加至最后。我们把内网网段的阻止策略写在最后,策略是按从上到下顺序匹配的。
阻止策略:
$ iptables -A INPUT -s 10.0.0.0/8 -j DROP$ iptables -A INPUT -s 192.168.0.0/16 -j DROP$ iptables -A INPUT -s 172.16.0.0/12 -j DROP
基本策略写完了,后续可以根据业务需要放行业务端口或需要相互通信的服务器IP。放行策略通过 -I 参数插入至策略的顶部,阻止策略通过 -A 参数追加至策略的尾部。
同时策略也可以按数字顺序进行增删,首先通过以下命令打印策略列表:
$ iptables -nL --line-number
当需要在第2条策略插入一条策略,可以使用如下命令:
$ iptables -I INPUT 2 -s 192.168.1.1 -j DROP
此时加入的策略就在第2条的位置,原本的第2条策略排在了第3的位置。此时如果想删除刚插入的策略,可以执行删除操作:
$ iptables -D INPUT 2
常用放行语句:
# 按目的端口放行,即放行本地端口iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT# 按源地址端口放行,即放行远程端口iptables -I INPUT -p tcp -m tcp --sport 1521 -j ACCEPT# 按源IP和目的端口放行,即放行远程IP至本地端口iptables -I INPUT -s 192.168.1.1 -p tcp -m tcp --dport 9090 -j ACCEPT
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。
文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




