如何用 iptables 实现只允许内网以及外网指定 ip 段的主机访问服务器某个端口?
- 0次
- 2021-07-16 13:29:22
- idczone
发现总有一些闲着没事干的整天在网络上瞎扫瞄,还爆破ssh密码,连放在8080的web应用也不得安宁…
所以想临时先限制一些不相干的IP,只让内网和本地省份的IP段可以访问服务器,用iptables来做的话应该注意些什么?iptables博大精深,目前还没完全搞清楚,服务器又不在本地,担心配错了连自己都进不去就麻烦了。
google一圈,发现写法各异,目前想法是直接编辑iptables,添加规则,然后save,再重启iptables.规则部分怎么写呢?
看了 http://blog.csdn.net/mangdun/article/details/8103868 ,还是不敢下手,求指点。
@clowwindy
1. 关闭root登录
2. 用denyhosts http://denyhosts.sourceforge.net/
自动扫描你log里尝试密码错误超过一定次数的ip然后自动添加到iptable里给屏蔽
3. 关闭ssh密码登录,用private/public key登录一劳永逸
这里说的很详细
https://help.ubuntu.com/community/IptablesHowTo
基本规则也就是你说的那种。
允许内网
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
禁止其它
iptables -A INPUT -p tcp --dport 22 -j DROP
以此类推。
修改之前在 crontab 里加入『每 5 分钟关闭一次 iptables』的计划任务。
修改完确认无误之后再删掉
基本就是按照这种方式先临时处理的,有效。
发现iptables规则是按顺序匹配的,规则顺序一定不能写错。
其他复杂一点的规则不敢写。