如何用 iptables 实现只允许内网以及外网指定 ip 段的主机访问服务器某个端口?

2014-06-24 04:41:53 +08:00
 thekll
发现总有一些闲着没事干的整天在网络上瞎扫瞄,还爆破ssh密码,连放在8080的web应用也不得安宁…

所以想临时先限制一些不相干的IP,只让内网和本地省份的IP段可以访问服务器,用iptables来做的话应该注意些什么?iptables博大精深,目前还没完全搞清楚,服务器又不在本地,担心配错了连自己都进不去就麻烦了。
google一圈,发现写法各异,目前想法是直接编辑iptables,添加规则,然后save,再重启iptables.规则部分怎么写呢?
看了 http://blog.csdn.net/mangdun/article/details/8103868 ,还是不敢下手,求指点。

@clowwindy
20831 次点击
所在节点    Linux
5 条回复
helloworld00
2014-06-24 04:54:14 +08:00
1. 关闭root登录

2. 用denyhosts http://denyhosts.sourceforge.net/
自动扫描你log里尝试密码错误超过一定次数的ip然后自动添加到iptable里给屏蔽

3. 关闭ssh密码登录,用private/public key登录一劳永逸
helloworld00
2014-06-24 04:58:35 +08:00
这里说的很详细
https://help.ubuntu.com/community/IptablesHowTo

基本规则也就是你说的那种。
jasontse
2014-06-24 07:31:48 +08:00
# 允许内网
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
# 禁止其它
iptables -A INPUT -p tcp --dport 22 -j DROP

以此类推。
rrfeng
2014-06-24 09:52:21 +08:00
修改之前在 crontab 里加入『每 5 分钟关闭一次 iptables』的计划任务。
修改完确认无误之后再删掉
thekll
2014-06-24 17:03:13 +08:00
@jasontse

基本就是按照这种方式先临时处理的,有效。
发现iptables规则是按顺序匹配的,规则顺序一定不能写错。
其他复杂一点的规则不敢写。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/119185

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX