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

有人猜解 Linux 的 ssh 服务,你们是怎么处理的?

  •  
  •   WordTian · 2017-10-24 14:28:22 +08:00 · 8240 次点击
    这是一个创建于 2347 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近有个人一直在猜解我的 ssh,五分钟猜一次,持续了快半个月了。
    虽然我知道他猜不出来,但是一直在日志里晃悠,强迫症受不了啊
    之前试过 /etc/hosts.deny,但是还是会进入 pam 验证过程后再拒绝
    有什么办法能针对 IP,直接拒绝访问的方法吗? iptables ?
    第 1 条附言  ·  2017-10-24 19:09:01 +08:00
    下面回复出现的解决方法,整理如下:
    1.换端口(感觉作用不大,nmap 还是能扫出来)
    2.IP 登录白名单(如果换 IP 就坑了)
    3.登录方式换为公私钥(虽然安全性很高,但我还是喜欢帐密,可以用不同设备随时登录)
    4.tcp_wrappers (通过 pam 认证过程后才拒绝,感觉有点迟钝)
    5.iptables (针对某 IP 或 IP 段还是比较好用的)
    6.fail2ban (这个可以尝试下)
    7.port knocking (这个很 6,就是不知实际使用效果如何,可以试试)

    我倒是还一个思路:
    sshd 监听 127.0.0.1,这样外网就扫不到 sshd 的端口了
    服务器开着代理服务(比如$$,或 v2ray )
    然后通过代理,访问 127.0.0.1 登录 ssh
    但是有个问题是,sshd 绑定到 127.0.0.1 就会无法启动,有 dalao 知道是啥情况吗?
    第 2 条附言  ·  2017-10-25 20:59:58 +08:00
    update:
    8.denyhosts (类似 fail2ban )
    9.在 ssh 端口上做蜜罐,反套路(思路清奇)
    10.ssh 多开,九假一真(脑洞真大)
    第 3 条附言  ·  2017-11-05 13:17:47 +08:00
    update:
    11.集成 Google Authenticator 两步验证登录(这个也很不错的样子)
    69 条回复    2017-11-04 10:31:36 +08:00
    opengps
        1
    opengps  
       2017-10-24 14:32:00 +08:00 via Android   ❤️ 2
    换端口啊
    zlfzy
        2
    zlfzy  
       2017-10-24 14:33:14 +08:00
    就是你那个加入 /etc/hosts.deny 就可以了,而且 tcp_wrappers 的优先级貌似高于 iptables,没必要再加入 iptables
    sagaxu
        3
    sagaxu  
       2017-10-24 14:35:06 +08:00   ❤️ 1
    标准答案不是 fail2ban 吗?
    wxm4ever
        4
    wxm4ever  
       2017-10-24 14:35:32 +08:00
    阿里云 ECS 不天天被人扫么
    isCyan
        5
    isCyan  
       2017-10-24 14:37:06 +08:00
    装个 fail2ban 不用配置,默认就会帮你自动封
    clino
        6
    clino  
       2017-10-24 14:37:10 +08:00
    fail2ban+1
    装上了不用配置直接就能防
    当然要更严格,比如更少的失败次数更长的封禁时间,可以自己改配置
    j4fun
        7
    j4fun  
       2017-10-24 14:37:59 +08:00
    换个数字大一点的端口肿么样?或者改成秘钥登陆。。
    或者 iptables -t filter -d ip -j REJECT ?
    aalska
        8
    aalska  
       2017-10-24 14:41:54 +08:00   ❤️ 4
    随便他扫。。。。。看着他从 0 次失败变成 50w 次失败 心情舒爽
    kmahyyg
        9
    kmahyyg  
       2017-10-24 14:45:18 +08:00 via Android
    301 到 10GB.test
    type
        10
    type  
       2017-10-24 14:46:47 +08:00   ❤️ 1
    使用 SSH KEY 来登陆,并且关闭密码登陆。
    就没人尝试你的 SSH 密码了。
    sagaxu
        11
    sagaxu  
       2017-10-24 14:48:25 +08:00
    @zlfzy Changes since OpenSSH 6.6
    =========================

    Potentially-incompatible changes
    * sshd(8): Support for tcpwrappers/libwrap has been removed.
    WordTian
        12
    WordTian  
    OP
       2017-10-24 14:49:45 +08:00
    @opengps 懒,不想换,换了我的手机电脑上的 ssh 配置都得改
    @zlfzy 我一直以为 iptables 的优先级更高 /doge
    @j4fun 端口已经是 5 位数字的了,密钥感觉不太方便
    @sagaxu @clino 回头试试
    @aalska 怎么说呢,其实不知道他在扫还好,发现了强迫症就忍不了
    est
        13
    est  
       2017-10-24 14:55:25 +08:00   ❤️ 11
    把登陆成功的提示语改成:Permission denied, please try again.
    sagaxu
        14
    sagaxu  
       2017-10-24 14:55:46 +08:00
    @WordTian iptables 的优先级更高,你理解无误
    likuku
        15
    likuku  
       2017-10-24 14:57:38 +08:00
    @WordTian 不方便?比密钥更方便唯有空密码了。
    ferstar
        16
    ferstar  
       2017-10-24 14:57:54 +08:00
    楼上 fail2ban 可破, 或者 iptables 也是美滋滋的
    https://ferstar.org/post/root/ssrbei-e-yi-sao-miao-shi-xu-yao-zuo-de-shi-qing
    fe619742721
        17
    fe619742721  
       2017-10-24 14:58:18 +08:00
    @est 我看行。。。
    zjyl1994
        18
    zjyl1994  
       2017-10-24 15:00:27 +08:00
    我端口都没换,把密码登录关掉,只允许 SSH 密钥登录,这样就行了
    zlfzy
        19
    zlfzy  
       2017-10-24 15:00:37 +08:00
    @sagaxu 实测 openssh-6.6 版本 tcpwrappers 依然有效
    加入 /etc/hosts.deny 之后再连 ssh:
    “ ssh_exchange_identification: read: Connection reset by peer ”
    aalska
        20
    aalska  
       2017-10-24 15:00:50 +08:00
    @WordTian 我也强迫症 我就是强迫一定要看到对面登陆失败
    sagaxu
        21
    sagaxu  
       2017-10-24 15:03:42 +08:00
    @zlfzy Changes since OpenSSH 6.6,6.6 是最后一个能用的版本
    zlfzy
        22
    zlfzy  
       2017-10-24 15:11:35 +08:00
    @sagaxu 噢噢,谢谢
    levenhdu
        23
    levenhdu  
       2017-10-24 15:25:07 +08:00
    mark
    eslizn
        24
    eslizn  
       2017-10-24 15:30:35 +08:00
    证书登录,如果对方能猜解出来,我也认了
    Phariel
        25
    Phariel  
       2017-10-24 15:34:02 +08:00
    关闭密码登入,换私钥,改端口
    cye3s
        26
    cye3s  
       2017-10-24 15:34:52 +08:00
    就算改密钥登陆,关密码,也还是有大把 ip 来尝试,顺便上了 fial2ban
    psirnull
        27
    psirnull  
       2017-10-24 15:35:59 +08:00
    /sbin/iptables -A INPUT -s 1.1.1.0/24 -j DROP #网段
    /sbin/iptables -A INPUT -s 1.1.1.0 -j DROP #ip
    zpvip
        28
    zpvip  
       2017-10-24 15:36:17 +08:00   ❤️ 1
    fail2ban + 最多三次尝试 + IP 白名单
    白名单里放另一台服务器的 IP

    SSH 改端口一般是第一件事,改的时候小心点,新的端口通了再删除旧的,不然连不上只能控制面板重装系统了。
    zpf124
        29
    zpf124  
       2017-10-24 15:39:22 +08:00
    只允许 秘钥登录 +1。

    唯一有点方的就是 前段时间那个 xshell 被植入恶意后门那个,我当时更新到了中招版本。
    不过知道它上传秘钥不,反正目前那个服务器啥也不干,如果发现被人黑了,我再换秘钥。
    okletswin
        30
    okletswin  
       2017-10-24 16:03:31 +08:00
    更换端口+秘钥登陆
    macfee
        31
    macfee  
       2017-10-24 16:35:23 +08:00
    @zpvip console 呢?
    vipper
        32
    vipper  
       2017-10-24 16:41:00 +08:00
    今天好像看到一篇有关 ssh 私钥泄露的新闻,不知真假,不过还是小心为好。

    另外,像这种扫你登录的可以直接 iptables ban 掉他

    之前我的一个论坛,一直有人在猜管理员密码,看日志 ip 不是固定的,前 3 位一样,但第四位会变,于是我就将那个段的 IP 全 ban 了,之后再也没有猜解的出现
    woshinide300yuan
        33
    woshinide300yuan  
       2017-10-24 16:56:08 +08:00
    0.0 我是阿里云安全组仅允许固定 IP 访问 SSH 端口,不知道这样有用吗!
    zander
        34
    zander  
       2017-10-24 16:58:18 +08:00
    /etc/ssh/sshd_config
    PasswordAuthentication no
    hjc4869
        35
    hjc4869  
       2017-10-24 16:59:23 +08:00
    ssh 关掉
    yingtl
        36
    yingtl  
       2017-10-24 17:11:00 +08:00
    有个脚本,如果检测到我登陆进去了,就把端口关上。没有登陆就开着端口。
    然后我长年保持登陆
    ArcticL
        37
    ArcticL  
       2017-10-24 17:14:29 +08:00
    @yingtl 端口关了,怎么通信的?
    q397064399
        38
    q397064399  
       2017-10-24 17:16:00 +08:00
    随便扫,你能扫到算我输
    sagaxu
        39
    sagaxu  
       2017-10-24 17:30:19 +08:00
    @ArcticL port knocking,敲门敲对了才能 connect
    https://wiki.archlinux.org/index.php/Port_knocking
    ArcticL
        40
    ArcticL  
       2017-10-24 17:43:29 +08:00
    @sagaxu 这个还挺好玩的
    srx1982
        41
    srx1982  
       2017-10-24 17:48:24 +08:00
    @woshinide300yuan 万一你的 ip 变了。。。
    feast
        42
    feast  
       2017-10-24 17:55:02 +08:00
    57880 123.183.209.135
    20925 58.242.83.26
    16902 60.18.229.201
    16878 58.242.83.35
    16271 123.183.209.136
    12324 59.63.166.83
    11911 42.7.26.49
    10259 121.18.238.106
    9554 221.194.44.212
    8816 218.65.30.190
    8757 59.45.175.96
    8605 221.194.47.242
    8538 121.18.238.28
    8455 123.244.9.47
    8378 59.45.175.94
    8373 121.18.238.119
    8351 59.45.175.95
    8209 221.194.47.224
    8130 59.45.175.98
    8050 218.87.109.150
    7903 59.45.175.67
    7773 121.18.238.123
    7673 221.194.47.236
    7417 221.194.47.233

    48757 218.65.30.124
    39393 123.244.9.46
    38337 61.177.172.66
    26713 58.242.83.14
    21392 42.7.26.15
    19163 218.65.30.126
    10409 103.242.58.237
    9516 218.65.30.30
    8673 121.18.238.106
    8469 42.7.26.60
    7960 221.194.47.236
    7947 61.177.172.60
    7897 59.45.175.11
    7712 58.57.65.112
    7463 59.45.175.96
    7440 121.18.238.125
    7425 121.18.238.123
    7361 221.194.47.242
    7193 221.194.47.233
    6772 221.194.44.212
    6696 121.18.238.119
    6659 59.45.175.95
    6635 59.45.175.67
    6109 121.18.238.28

    开机半个月的 JJ
    ryd994
        43
    ryd994  
       2017-10-24 18:09:56 +08:00 via Android
    禁止密码登录,随便扫随便试
    真要在外面的话用跳板机进去
    wdlth
        44
    wdlth  
       2017-10-24 18:11:26 +08:00
    我限制了只能深圳电信连进来……
    timothyye
        45
    timothyye  
       2017-10-24 18:20:12 +08:00 via Android
    只允许证书登录,密码登录的不安全!
    Neveroldmilk
        46
    Neveroldmilk  
       2017-10-24 18:29:08 +08:00
    前面有人说过了,关闭密码验证,使用 key 验证。
    iceheart
        47
    iceheart  
       2017-10-24 19:00:15 +08:00 via Android
    我只 listen 127.0.0.1,就没人能猜了
    BFDZ
        48
    BFDZ  
       2017-10-24 19:04:13 +08:00 via Android
    @WordTian 我都是先换端口,禁止密码开密钥登录,看日志
    WordTian
        49
    WordTian  
    OP
       2017-10-24 19:11:05 +08:00
    @iceheart 能监听 127.0.0.1 ?我改成 127.0.0.1 之后 ssh 就没法启动啊
    Ultraman
        50
    Ultraman  
       2017-10-24 19:14:16 +08:00
    随他猜 百十位的随机字符 猜得出来我也认了
    kiwi95
        51
    kiwi95  
       2017-10-24 19:16:32 +08:00
    1. 换端口
    2. 禁止密码登陆
    3. 禁止 root 用户登陆

    三个全了基本就问题了
    intsilence
        52
    intsilence  
       2017-10-24 19:29:32 +08:00
    3 楼就有标准答案了呀,其他方法都会给自己带来不便
    WordTian
        53
    WordTian  
    OP
       2017-10-24 19:33:05 +08:00 via Android
    @intsilence 想看看大家遇到这种情况都是怎么处理的,集思广益嘛
    tinkerer
        54
    tinkerer  
       2017-10-24 19:41:57 +08:00
    fail2ban
    bao3
        55
    bao3  
       2017-10-24 19:43:37 +08:00
    fail2ban + ssh key
    aaronzjw
        56
    aaronzjw  
       2017-10-24 19:59:38 +08:00
    @est 机智
    ywgx
        57
    ywgx  
       2017-10-24 20:20:45 +08:00 via Android
    https://xabcloud.com 强安利 😄
    pynix
        58
    pynix  
       2017-10-25 00:07:11 +08:00
    采用公钥验证。。。。
    twl007
        59
    twl007  
       2017-10-25 00:08:11 +08:00 via iPhone
    denyhosts
    pony279
        60
    pony279  
       2017-10-25 00:13:11 +08:00
    搞个 docker 镜像给他登陆,把容器里面的网络关掉,记录信息,看能不能反套路一波
    qzy168
        61
    qzy168  
       2017-10-25 07:58:11 +08:00
    换端口+证书登录。
    0871087123
        62
    0871087123  
       2017-10-25 09:13:07 +08:00
    找个 ssh 的蜜罐,开个十几个的,真的 ssh 端口只有自己知道,不 OK ?
    寻龙点穴之 ssh 七星疑冢(滑稽)
    flynaj
        63
    flynaj  
       2017-10-25 09:34:36 +08:00 via Android
    如果是那种无脑机器扫描,换端口就行了,如果是针对性的用用密匙
    bigpigeon
        64
    bigpigeon  
       2017-10-25 09:35:53 +08:00
    改证书登录,在 /etc/ssh/sshd_conf 把密码登录 false 掉,随他怎么猜
    woshinide300yuan
        65
    woshinide300yuan  
       2017-10-25 11:44:10 +08:00
    @srx1982 主要我的情况是不重启路由就 IP 不变,要变了再去阿里云安全组里更新一下喽。嘻嘻~~~~
    nyaruko
        66
    nyaruko  
       2017-10-25 14:16:13 +08:00
    之前也有过密码被扫描的困扰。后来只允许密钥登录。但加密钥又实在太麻烦。现在用了 Google 验证器做两步验证,有 key 可以免密码,没 key 需要 Google 验证和用户密码
    nyaruko
        67
    nyaruko  
       2017-10-25 14:17:54 +08:00
    好吧没注意审题。这种情况只能蜜罐了。
    panzhc
        68
    panzhc  
       2017-10-30 23:45:54 +08:00
    集成 Google Authenticator 双因子登录
    testcaoy7
        69
    testcaoy7  
       2017-11-04 10:31:36 +08:00
    头一次听说 port knocking,真的很 6 !正在研究中。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2429 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:06 · PVG 00:06 · LAX 09:06 · JFK 12:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.