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

建议大家 SSH 密码还是设复杂点吧,或者关闭密码登录, 只允许公钥登录

  •  
  •   qwerthhusn · 2019-06-11 10:01:20 +08:00 · 12627 次点击
    这是一个创建于 1984 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前看到 SSH 好像被异地登录,netstat 和 ps 去看,有一些奇怪的东西,然后一扫就这样了。现在正在看怎么杀。

    /tmp/min: Multios.Coinminer.Miner-6781728-2 FOUND
    /tmp/vTtHH1: Multios.Coinminer.Miner-6781728-2 FOUND
    /tmp/meonga: Unix.Trojan.Agent-37008 FOUND
    /tmp/disable: Unix.Malware.Agent-6964935-0 FOUND
    /usr/bin/ps: Unix.Trojan.Agent-37008 FOUND
    /usr/bin/vphefa0: Unix.Malware.Agent-6958219-0 FOUND
    /usr/bin/chgf: Unix.Trojan.Agent-37008 FOUND
    /usr/bin/vphebce: Unix.Malware.Agent-6936468-0 FOUND
    /usr/bin/vphefa2: Unix.Malware.Agent-6963626-0 FOUND
    /usr/bin/vphefa3: Unix.Malware.Agent-6967124-0 FOUND
    /usr/bin/masscan: Unix.Malware.Agent-6889450-0 FOUND
    /usr/bin/ti0bjinogi: Unix.Malware.Agent-6684905-0 FOUND
    /usr/bin/netstat: Unix.Trojan.Agent-37008 FOUND
    /usr/sbin/lsof: Unix.Trojan.Agent-37008 FOUND
    /usr/sbin/ss: Unix.Trojan.Agent-37008 FOUND
    
    第 1 条附言  ·  2019-06-11 10:51:59 +08:00
    https://medium.com/risan/upgrade-your-ssh-key-to-ed25519-c6e8d60d3c54
    http://blog.siphos.be/2015/08/switching-openssh-to-ed25519-keys/

    好像都很推荐 ED25519 的 Key,不过我感觉默认 RSA 的也行了,只要密钥长度在 2048 或者以上就行了。
    75 条回复    2019-07-05 21:49:21 +08:00
    arloor
        1
    arloor  
       2019-06-11 10:28:33 +08:00 via iPad
    trojan?
    titanium98118
        2
    titanium98118  
       2019-06-11 10:31:26 +08:00
    一直都是禁止密码登录的,但是否足够?
    dorothyREN
        3
    dorothyREN  
       2019-06-11 10:32:51 +08:00   ❤️ 1
    我用的 google 二次验证
    VANHOR
        4
    VANHOR  
       2019-06-11 10:34:38 +08:00
    +1
    brust
        5
    brust  
       2019-06-11 10:35:21 +08:00   ❤️ 1
    google 二次验证是什么意思
    msg7086
        6
    msg7086  
       2019-06-11 10:38:37 +08:00
    怎么杀?重装就杀了。
    如果不关密码登录的话,那至少把 fail2ban 装上吧。
    qwerthhusn
        7
    qwerthhusn  
    OP
       2019-06-11 10:42:51 +08:00
    @titanium98118 应该没问题吧,只要控制好私钥别泄露就行。比如别人问你要 Key 让你能登他的,你别把公钥和私钥都给他就行。我看现在推荐的是 ED25519 256 位的密钥,不过大部分人(包括我)还是在用那种 RSA2048 位的。
    qwerthhusn
        8
    qwerthhusn  
    OP
       2019-06-11 10:45:15 +08:00
    @msg7086 要干净的话,那就重装系统呗,恨不得格盘重建 RAID,幸亏里面没太多数据,而且都是容器好备份迁移。
    pxw2002
        9
    pxw2002  
       2019-06-11 10:46:44 +08:00 via Android
    家里公网 ip 只有后三位会变
    服务器只允许我的 ip 访问所有端口
    其他 ip 只允许 80.443 端口
    HuasLeung
        10
    HuasLeung  
       2019-06-11 10:46:45 +08:00 via Android
    量子计算没取得重大突破之前,强密码口令就 ok,暴力破解是极其困难的
    jackmod
        11
    jackmod  
       2019-06-11 10:46:52 +08:00
    换端口,关密码,还可以考虑只通过代理访问(
    HuasLeung
        12
    HuasLeung  
       2019-06-11 10:47:23 +08:00 via Android
    @HuasLeung 看看是不是系统安装的软件程序存在其他漏洞
    qwerthhusn
        13
    qwerthhusn  
    OP
       2019-06-11 10:59:45 +08:00
    @brust libpam-google-authenticator 在机器上装一个组件,配置上 Google 认证信息,然后登录的时候去 Google 验证一把(通过手机什么的)。这种只能用在个人的在国外的服务器。。。。我猜的
    mostkia
        14
    mostkia  
       2019-06-11 11:04:38 +08:00
    我一直图方便没有关密码登录,每次登陆都有上万的爆破记录。。
    密码的话 18 位密码。。[狗头]所以还是大致放心的。从 ssh 爆破基本没什么可能性。
    2exploring
        15
    2exploring  
       2019-06-11 11:14:17 +08:00
    我只允许 key + 2FA 登录,并且开 fail2ban。
    webdisk
        16
    webdisk  
       2019-06-11 11:17:23 +08:00
    经过一层 VPN 后只允许密钥登陆
    shilyx
        17
    shilyx  
       2019-06-11 11:22:43 +08:00
    每次登录都能发现几万次的失败的登录尝试
    换了 ssh 端口
    降低到了几十次非法尝试
    qwerthhusn
        18
    qwerthhusn  
    OP
       2019-06-11 11:25:24 +08:00
    @shilyx 大部分肉鸡只看 22,不过也有一些肉鸡是玩端口扫面的。我之前也遇到过
    Caan07
        19
    Caan07  
       2019-06-11 11:28:07 +08:00   ❤️ 1
    换端口;
    密钥加强再加密登录;
    禁止账户密码登录;
    因为不是固定 IP,不然我就仅限指定 IP 了。
    wenzhoou
        20
    wenzhoou  
       2019-06-11 11:30:42 +08:00   ❤️ 1
    自从我换了 ssh 端口了以后就再也没有被爆破过。
    结论,换端口足够了。
    pxw2002
        21
    pxw2002  
       2019-06-11 11:40:05 +08:00 via Android   ❤️ 9
    还有个办法
    linux 换成 3389
    win 换成 22
    这样就好多了
    就算发送登录请求也没用
    qwerthhusn
        22
    qwerthhusn  
    OP
       2019-06-11 11:45:17 +08:00
    @pxw2002 Good idea
    playnoa
        23
    playnoa  
       2019-06-11 11:48:50 +08:00 via Android
    只允许秘钥登录,加上 fail2ban,一次不对就永久封 IP
    ohmyzsh
        24
    ohmyzsh  
       2019-06-11 12:11:21 +08:00 via Android
    @pxw2002 为什么换 3389 就可以了?
    crazytroll
        25
    crazytroll  
       2019-06-11 12:18:41 +08:00 via iPhone
    @msg7086 非常同意 fail2ban 挂上 再换个端口
    Rworld
        26
    Rworld  
       2019-06-11 12:20:11 +08:00
    有固定 IP 就防火墙限制 没有就使用 google 二次验证吧。
    anubu
        27
    anubu  
       2019-06-11 12:24:02 +08:00   ❤️ 2
    常规操作:
    换端口;
    禁止 root 登录;
    fail2ban

    安全且方便:
    密码+MFA

    更安全:
    有密码的密钥

    可选:
    如果可能,限制登录 IP
    sariya
        28
    sariya  
       2019-06-11 12:38:00 +08:00 via Android
    如果要求不高如楼上说的,换高位端口足矣,我的换了之后直接从几万降到 0。。。有需要再加上 RSA、禁密码
    sariya
        29
    sariya  
       2019-06-11 12:38:45 +08:00 via Android
    @sariya 当然密码还是不能太短
    Wyane
        30
    Wyane  
       2019-06-11 12:42:29 +08:00
    学习一下, 一直没把这个当回事,密码一直用的最简单的。。
    Vegetable
        31
    Vegetable  
       2019-06-11 12:44:23 +08:00
    @pxw2002 鬼才
    mmtromsb456
        32
    mmtromsb456  
       2019-06-11 12:47:25 +08:00
    其实使用
    wtks1
        33
    wtks1  
       2019-06-11 12:50:17 +08:00 via Android
    fail2ban 装上,设置最大失败两次,一分钟扫描一次,封禁时间十几年,基本就没啥事了
    mmtromsb456
        34
    mmtromsb456  
       2019-06-11 12:50:47 +08:00
    @mmtromsb456 #32 手快一下子发出去了...
    其实使用如下参数就已经很足够了
    PermitRootLogin prohibit-password
    Port 8888(替换成你想要的端口)
    必要时 whitelist 即可
    azh7138m
        35
    azh7138m  
       2019-06-11 12:55:49 +08:00   ❤️ 1
    走跳板姬呗,我买了一台阿里云华东,装好 mosh,每台机器都配跳板姬的密钥登录,我只要登录跳板姬就好,美滋滋。
    当然,22 我是不开的。
    jiqing
        36
    jiqing  
       2019-06-11 13:04:23 +08:00
    @azh7138m #35 我也是这么操作的
    wenzhoou
        37
    wenzhoou  
       2019-06-11 13:28:24 +08:00 via Android
    另外禁止 root 登录基本上是常识。
    realpg
        38
    realpg  
       2019-06-11 13:39:24 +08:00
    这还用建议?
    首先,不用 root 是常识了吧 ubuntu 之类的发行版 压根就不给你 root 密码,都是自己 zuo 才能弄出来
    其次,服务器的任何密码都得设复杂点也是常识把
    再次,服务器 ssh 不放默认端口上就能减少大量网络流量和 CPU 负载开销也算是个准常识了吧
    Navee
        39
    Navee  
       2019-06-11 13:50:34 +08:00 via iPhone
    开机第一件事:安装 fail2ban
    qwerthhusn
        40
    qwerthhusn  
    OP
       2019-06-11 14:12:19 +08:00
    @azh7138m 用跳板机的话有一个小问题就是,SFTP 操作比较麻烦
    Cu635
        41
    Cu635  
       2019-06-11 14:13:38 +08:00
    @playnoa
    哪天自己密码忘了……
    qwerthhusn
        42
    qwerthhusn  
    OP
       2019-06-11 14:14:43 +08:00   ❤️ 1
    @ohmyzsh 因为 3389 是 win 默认的远程桌面端口,肉鸡扫到 3389 可用,可能就试图连 Windows 那一套,肯定连不上的,殊不知其实是个 ssh 端口
    yinzhuoqun
        43
    yinzhuoqun  
       2019-06-11 14:15:00 +08:00 via Android
    @wenzhoou 端口换掉,再加 fail2ban,基本没有可疑登录
    catcalse
        44
    catcalse  
       2019-06-11 14:42:27 +08:00
    @qwerthhusn 自己欺骗自己吗?
    liangzi
        45
    liangzi  
       2019-06-11 14:50:58 +08:00 via Android   ❤️ 1
    曾经遇到过可疑登录 IP 地址指向国内两大云服务商 只有一个来自美国 我就呵呵了
    oxoxoxox
        46
    oxoxoxox  
       2019-06-11 14:59:17 +08:00
    换端口+fail2ban,就足够了,即使打开密码登陆,也不怕
    wenzhoou
        47
    wenzhoou  
       2019-06-11 15:11:27 +08:00 via Android
    @yinzhuoqun 如果说要加一个屏障的话,我希望是 2FA。
    nicevar
        48
    nicevar  
       2019-06-11 15:15:51 +08:00
    光密码复杂有什么用,你得限制登陆尝试次数
    另外你改 3389 的做法其实也是掩耳盗铃,真的骗你自己,就算小白 telnet 一下都能识别
    ucaime
        49
    ucaime  
       2019-06-11 15:45:33 +08:00
    mostkia
        50
    mostkia  
       2019-06-11 15:53:00 +08:00   ❤️ 1
    @pxw2002
    win:蒋英语!
    linux:蒋国语!
    入侵者:猝
    qwerthhusn
        51
    qwerthhusn  
    OP
       2019-06-11 16:48:43 +08:00
    @ucaime 国内有什么厂家能搞这种吗?因为 server 在国内,我刚搜了一下,没有什么
    aborigine
        52
    aborigine  
       2019-06-11 17:07:21 +08:00
    其实一般换个端口就好很多了
    xpresslink
        53
    xpresslink  
       2019-06-11 17:13:43 +08:00
    一般情况下 SSH 端口号都是换成 5 位数,直接用 IP 白名单+公钥又省事又安全。
    再严格一点加个谷歌双因子认证也就足够了。
    ETO
        54
    ETO  
       2019-06-11 17:52:58 +08:00
    @mostkia 还有蒋芳研,啥的呢
    fvckDaybyte2
        55
    fvckDaybyte2  
       2019-06-11 17:57:35 +08:00 via iPhone
    @qwerthhusn 现在端口扫描都带检测服务功能了……
    olaloong
        56
    olaloong  
       2019-06-11 18:59:48 +08:00 via Android
    @pxw2002 哈哈,我一直都是这么干的
    andylsr
        57
    andylsr  
       2019-06-11 19:12:14 +08:00 via Android
    @mostkia 改端口,扫不到了也就不会爆破了
    webshe11
        58
    webshe11  
       2019-06-11 19:17:09 +08:00
    换端口 + 只允许密钥登录 + fail2ban 路过
    Hardrain
        59
    Hardrain  
       2019-06-11 19:42:35 +08:00 via Android
    赞同所有用 Pub key(并停用键盘交互)的回复
    如果用 Google authenticator 之类的 TFA 则更好

    反对一切改端口的回复,这是没用的方法。防得了大批量扫描,完全不能防御具有针对性的攻击
    h175h32
        60
    h175h32  
       2019-06-11 22:04:19 +08:00
    @pxw2002 你这个办法不错
    runtu2019
        61
    runtu2019  
       2019-06-11 22:09:21 +08:00
    一般是部署 ssl 加密代理在上面进行访问,密钥一都要都在 2048 以上,绝不开放 ssh 端口,暴力破解 ssh 虽然破解不了强口令和密钥,但是被恶意的暴力破解特别占 cpu,浪费资源。
    Aixtuz
        62
    Aixtuz  
       2019-06-11 22:37:27 +08:00
    我用的 Krypton,禁止密码 + 手机端允许密钥才能连上。
    nicevar
        63
    nicevar  
       2019-06-11 22:49:42 +08:00   ❤️ 1
    上面那些说 linux 换成 3389 的太天真了,还有一堆人赞成这个做法,你不做其他处理是个端口扫描程序根据返回信息就能判断出来你是不是 ssh
    daibingsong
        64
    daibingsong  
       2019-06-11 23:03:53 +08:00
    @pxw2002 666
    alfchin
        65
    alfchin  
       2019-06-12 00:19:42 +08:00 via Android   ❤️ 1
    @ohmyzsh 假装自己是 rdp 服务
    xrlin
        66
    xrlin  
       2019-06-12 00:47:35 +08:00
    系统刚装好就屏蔽密码登录了,只允许 key 登录。
    playnoa
        67
    playnoa  
       2019-06-12 07:35:00 +08:00 via Android
    @Cu635 sudo 回提升提示密码,如果机器不长登录的话,那么一些重要信息应该记笔记
    xmi
        68
    xmi  
       2019-06-12 09:06:46 +08:00
    新建一个和 root 一样权限的账户然后把 root 账户登陆禁用掉
    c4f36e5766583218
        69
    c4f36e5766583218  
       2019-06-12 09:46:40 +08:00
    @pxw2002 #21 好像没用的,nmap 可以探测系统版本的吧
    sodadev
        70
    sodadev  
       2019-06-12 09:52:13 +08:00 via iPhone
    @pxw2002 请问家里怎么申请公网 ip 呢
    pxw2002
        71
    pxw2002  
       2019-06-12 15:28:41 +08:00 via Android
    @sodadev 我当时给电信客服打电话,说我家里有老人,小孩儿需要安装远程监控,需要公网 IP 连接,然后就给了
    qwerthhusn
        72
    qwerthhusn  
    OP
       2019-06-12 16:34:36 +08:00
    @pxw2002 这个是“借口”还是真的?我家用的 360 摄像机,没有公网也能正常用啊
    Cu635
        73
    Cu635  
       2019-06-12 16:50:34 +08:00
    @qwerthhusn
    其实已经是还没过去几年的事情了,稍微旧一点的这种家庭监控设备就需要公网 ip 才能正常运作。现在没有公网 ip 也能正常用的消费级家庭监控设备是很新的。

    @playnoa
    一般认为不应该记密码……
    qbqbqbqb
        74
    qbqbqbqb  
       2019-07-05 21:45:15 +08:00
    @qwerthhusn 随便什么服务器都可以用,Google Authenticator 是纯离线的动态密码,完全不需要连接 Google 服务。
    qbqbqbqb
        75
    qbqbqbqb  
       2019-07-05 21:49:21 +08:00
    @qwerthhusn ssh,scp,sftp 都有一个-o ProxyJump=<username>@<host>:<port>的参数可以跨越跳板机,还可以通过编写.ssh/config 文件自动跨越多层跳板机,并不麻烦。如果是使用 Windows 上的各种 GUI 客户端,里面一般也会有填写 Gateway host/Jump host 的地方。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2761 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:02 · PVG 23:02 · LAX 07:02 · JFK 10:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.