关于 iptables 排除规则的疑问

2017-02-10 16:36:49 +08:00
 frostfall

为了防止 SSH 暴力破解,除了更改端口外,一般我们都使用以下方法: iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP 但是有一个问题(虽然几率很小),那就是自己连续输错了好几次,导致自己客户机端的 IP 被禁掉 当然事后的解决方法有很多,换 IP 登陆,云主机的话使用 web 面板登陆。。。等等 但是有没有直接将特定 IP 排除在外的方法,自己人即使屡次输错密码也不会禁掉?

3958 次点击
所在节点    Linux
14 条回复
tys
2017-02-10 17:12:43 +08:00
将你的 ip 放入 hosts.allow , hosts.deny 里禁止所有 ip 连接。
n7then
2017-02-10 17:17:22 +08:00
为什么不直接改端口..
j4fun
2017-02-10 17:18:12 +08:00
iptables -I INPUT -s 你的 IP -p tcp --dport 22 -j RETURN
有几个加几个。。
ProjectAmber
2017-02-10 17:19:15 +08:00
-A INPUT -s $(IP)/32 -p tcp -m tcp --dport 22 -j ACCEPT
把这条放前面?
xiaopc
2017-02-10 17:21:38 +08:00
用 fail2ban 加白名单?
TerrenceSun
2017-02-10 17:24:49 +08:00
fail2ban
frostfall
2017-02-10 17:38:55 +08:00
在虚拟机里实验了一下,问题解决了,规则很简单,但是顺序一定不能错
1 、 iptables -A INPUT -p tcp --dport 22 -s 192.168.*.* -j ACCEPT
2 、 iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
3 、 iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
4 、 iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables 遵循从上到下的规则,假如反过来则只会执行 iptables -A INPUT -p tcp --dport 22 -s 192.168.*.* -j ACCEPT 这一条
justsky
2017-02-10 17:44:14 +08:00
禁止密码登陆,用密钥登陆多好
frostfall
2017-02-10 18:09:55 +08:00
@tys 是个不错的方法
frostfall
2017-02-10 18:10:42 +08:00
@n7then 总是有使用默认端口还不能更改的情况的
frostfall
2017-02-10 18:11:50 +08:00
@ProjectAmber 嗯,是这样,但最后还要加上不限 IP 的规则才可生效
frostfall
2017-02-10 18:12:44 +08:00
@xiaopc 好东西,记住了
frostfall
2017-02-10 18:27:17 +08:00
@justsky 虽然自己忘记密码从而被禁 IP 的概率比较小,但是多少公司的在服务器安全方面投入很少,估计大部分的都懒得修改端口,懒得设置密钥登陆,懒得禁掉 root 用户登录 ssh ,而且估计又因为怕出差在外不能方便的登陆服务器所以也没限制 IP 登陆,不是说没有更好的办法,而是很可惜事实就是这样。例如前段时间全球性的 MongoDB 勒索事件,更是爆出了多少问题?明明简单设置下防火墙或者给 MongoDB 加上身份验证这么简单的事情
ryd994
2017-02-10 22:31:10 +08:00
@frostfall 也就小公司还没好运维的才掉坑,真心活该
一般机器多了 /出差用堡垒机或者 VPN

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

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

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

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

© 2021 V2EX