V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
frostfall
V2EX  ›  Linux

关于 iptables 排除规则的疑问

  •  
  •   frostfall · 2017-02-10 16:36:49 +08:00 · 3961 次点击
    这是一个创建于 2880 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为了防止 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 排除在外的方法,自己人即使屡次输错密码也不会禁掉?

    14 条回复    2017-02-10 22:31:10 +08:00
    tys
        1
    tys  
       2017-02-10 17:12:43 +08:00 via iPhone
    将你的 ip 放入 hosts.allow , hosts.deny 里禁止所有 ip 连接。
    n7then
        2
    n7then  
       2017-02-10 17:17:22 +08:00
    为什么不直接改端口..
    j4fun
        3
    j4fun  
       2017-02-10 17:18:12 +08:00
    iptables -I INPUT -s 你的 IP -p tcp --dport 22 -j RETURN
    有几个加几个。。
    ProjectAmber
        4
    ProjectAmber  
       2017-02-10 17:19:15 +08:00
    -A INPUT -s $(IP)/32 -p tcp -m tcp --dport 22 -j ACCEPT
    把这条放前面?
    xiaopc
        5
    xiaopc  
       2017-02-10 17:21:38 +08:00 via Android   ❤️ 1
    用 fail2ban 加白名单?
    TerrenceSun
        6
    TerrenceSun  
       2017-02-10 17:24:49 +08:00
    fail2ban
    frostfall
        7
    frostfall  
    OP
       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
        8
    justsky  
       2017-02-10 17:44:14 +08:00   ❤️ 1
    禁止密码登陆,用密钥登陆多好
    frostfall
        9
    frostfall  
    OP
       2017-02-10 18:09:55 +08:00
    @tys 是个不错的方法
    frostfall
        10
    frostfall  
    OP
       2017-02-10 18:10:42 +08:00
    @n7then 总是有使用默认端口还不能更改的情况的
    frostfall
        11
    frostfall  
    OP
       2017-02-10 18:11:50 +08:00
    @ProjectAmber 嗯,是这样,但最后还要加上不限 IP 的规则才可生效
    frostfall
        12
    frostfall  
    OP
       2017-02-10 18:12:44 +08:00
    @xiaopc 好东西,记住了
    frostfall
        13
    frostfall  
    OP
       2017-02-10 18:27:17 +08:00
    @justsky 虽然自己忘记密码从而被禁 IP 的概率比较小,但是多少公司的在服务器安全方面投入很少,估计大部分的都懒得修改端口,懒得设置密钥登陆,懒得禁掉 root 用户登录 ssh ,而且估计又因为怕出差在外不能方便的登陆服务器所以也没限制 IP 登陆,不是说没有更好的办法,而是很可惜事实就是这样。例如前段时间全球性的 MongoDB 勒索事件,更是爆出了多少问题?明明简单设置下防火墙或者给 MongoDB 加上身份验证这么简单的事情
    ryd994
        14
    ryd994  
       2017-02-10 22:31:10 +08:00 via Android
    @frostfall 也就小公司还没好运维的才掉坑,真心活该
    一般机器多了 /出差用堡垒机或者 VPN
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1834 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:20 · PVG 00:20 · LAX 08:20 · JFK 11:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.