国内云服务器怎么做 ssh 安全防护 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Nazar1te
V2EX    Linux

国内云服务器怎么做 ssh 安全防护

  •  
  •   Nazar1te 2022-01-04 11:31:09 +08:00 7339 次点击
    这是一个创建于 1457 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前是几个云服用 wireguard 组了内网,然后 ssh 只允许 wireguard 网段访问

    如:

    Allowusers [email protected].* Allowusers [email protected].* Allowusers lighthouse@* Allowusers admin@* 

    lighthouse 与 admin 分别是腾讯云和阿里云网页端的远程用户名。

    还有其他推荐的方法吗?

    42 条回复    2022-01-10 16:49:57 +08:00
    anonydmer
        1
    anonydmer  
       2022-01-04 11:42:05 +08:00
    我们的方法:
    anonydmer
        2
    anonydmer  
       2022-01-04 11:42:35 +08:00   1
    1. 只允许跳板机登录
    2. 跳板机要用 vpn 登录
    huangmingyou
        3
    huangmingyou  
       2022-01-04 11:45:01 +08:00
    禁用密码登陆,通过跳板机控制好证书
    mineralsalt
        4
    mineralsalt  
       2022-01-04 11:49:11 +08:00   1
    不要搞弱密码, SSH 非常安全, 不要庸人自扰, 随机一串大小写特殊字符的密码, 超级计算机出马都没用
    RangerWolf
        5
    RangerWolf  
       2022-01-04 11:49:27 +08:00
    @anonydmer VPN 有什么推荐的方案吗?
    @huangmingyou 想请教一下,跳板机怎么才算控制好证书?如果是多人协作呢?有推荐的方案吗?
    zlowly
        6
    zlowly  
       2022-01-04 12:00:39 +08:00   1
    同意 4 楼的。
    openssh 的真正有危害性的严重漏洞好像就那几个,打好补丁的情况下,强密码配合 fail2ban 即可,只要密码不泄露,就无需过多其他忧虑。
    另外个人认为其实大部分情况下做好管理的密码,比证书更安全。存放了证书的个人计算机,它的防护往往是更弱,漏洞更多的。
    tubowen
        7
    tubowen  
       2022-01-04 12:01:10 +08:00 via Android   1
    改默认端口,用公私钥对登录
    steptodream
        8
    steptodream  
       2022-01-04 12:04:07 +08:00
    @zlowly 证书也可以加密码啊, 莫非大家用证书都用的无密码模式。
    yaoyaomoe
        9
    yaoyaomoe  
       2022-01-04 12:09:59 +08:00 via iPhone   1
    禁止默认账户(云服务厂商的用户)
    实在需要登陆的时候 vnc 登陆
    善于使用安全组的话 关闭所有 ssh 的端口 需要的时候通过 api 或者页面再打开


    @zlowly 部分同意 但是密钥都能泄漏的场景密码一般也能得到 但是密码能获取的场景密钥不一定能得到 因为刚接触服务器的时候开 22 被一堆地址同时扫过 ssh 所以个人感觉加密的密钥才是相对安全的
    ragnaroks
        10
    ragnaroks  
       2022-01-04 12:10:46 +08:00   1
    禁止 root 远程登录,卸载 sudo ,需要提权时预先 su root 并使用定时更换的密码(我是 cron.daily 对当前日期取 sha1 设为密码)
    Nazar1te
        11
    Nazar1te  
    OP
       2022-01-04 12:21:42 +08:00 via iPhone
    @anonydmer 谢谢,只留一台跳板机入口确实是个好主意
    Nazar1te
        12
    Nazar1te  
    OP
       2022-01-04 12:23:29 +08:00 via iPhone
    @mineralsalt 主要是原来有一台计算云服被攻击用来挖矿了,当时那台机器开了公网 22 和 3306 ,密码也不算简单,所以想上 v2 来问下
    gesse
        13
    strong>gesse  
       2022-01-04 12:23:47 +08:00   1
    修改默认端口+fail2ban+ssh 密钥对,难道还不够?
    Nazar1te
        14
    Nazar1te  
    OP
       2022-01-04 12:25:12 +08:00 via iPhone
    @zlowly 谢谢指导,没试过 fail2ban ,回去研究一下
    Nazar1te
        15
    Nazar1te  
    OP
       2022-01-04 12:29:16 +08:00 via iPhone
    @yaoyao1128 谢谢指导,ssh 端口全禁,通过页面打开稍微麻烦了点,api 可以考虑一下。另外请教下怎么看自己的端口有没有被扫过
    yaoyaomoe
        16
    yaoyaomoe  
       2022-01-04 12:42:51 +08:00 via iPhone
    @Nazar1te 扫端口不太了解了 我是看 ssh 日志和 fail2ban 的列表出现一堆……阿里云不太了解轻量 普通的云服务器安全组可以用 app 控制 api 的话 key 一定要保存好
    xuanbg
        17
    xuanbg  
       2022-01-04 13:02:25 +08:00
    IP 白名单
    iqoo
        18
    iqoo  
       2022-01-04 14:03:48 +08:00   1
    zlowly
        19
    zlowly  
       2022-01-04 14:26:30 +08:00
    @yaoyao1128
    @steptodream
    在我接触的环境里,空 passphrase 并不少见,弱 passphrase 暴力破解更是容易,当然这和各人安全防范意识相关。
    而且常常为了使用方便,都用各种 agent 先 load 私钥,理论上就存在可被窃取的安全隐患。
    安全木桶上短板越多越不安全啊。

    当然安全风险还是要自己根据自己环境评估的,在不和互联网联通的内部网络我就是用私钥的。
    yaoyaomoe
        20
    yaoyaomoe  
       2022-01-04 14:38:37 +08:00 via iPhone
    @zlowly 主要是 key 的话 攻击手段只能是针对现有正在使用的设备进行攻击 即使有了 key 也不能无差别的攻击 而密码的话 攻击点可以是多个 无差别攻击的人只需要随便尝试 而 key 丢失场景我觉得基本上是你电脑已经中招了 如果是用 agent 的话能想到窃取 key 的人一定能想到窃取密码和服务器地址 而不是被 agent 得到的话一般得到文件也不一定能知道密码和地址( ps 个人觉得 ssh 的 knownhosts 很不安全)
    adoal
        21
    adoal  
       2022-01-04 14:49:42 +08:00   3
    0. 保护好自己干活用的桌面机是一切安全的根本。
    1. 及时更新 /自动更新意义很大。
    2. 改端口号意义不大,只是降低被扫到的概率,对于防范入侵本身而言没有影响。
    3. 用公钥认证意义很大(其实不是证书,证书比这个复杂多了),另外公钥还可以另外加 pass pharse 再做到端的保护。
    4. 在多台服务器之间人工交互操作穿梭或者拷文件时,不要服务器上生成私钥做信任,要用-A 或者-J 通过最初始的 agent 认证。
    5. 高强度口令有一定意义(如果你不太能接受只允许公钥的话)。
    6. PermitRootLogin 关了有一定意义。
    7. 禁用 sudo 用 su 毫无意义而且可能适得其反,sudo 是可以配置很细的规则来限制访问的,而 su 就是一竿子到底。
    8. fail2ban / sshguard 有一定意义,不过其实那些试口令的肉鸡不太可能突破只允许公钥认证的设置,就是图个清静。

    不求全部认同,也不接受反驳。仅仅是自己的实践。
    CoderLife
        22
    CoderLife  
       2022-01-04 14:52:47 +08:00
    比较安全的, 后台做白名单
    yaoyaomoe
        23
    yaoyaomoe  
       2022-01-04 14:54:36 +08:00 via iPhone
    对了突然想起来以前用过后来觉得个人用意义不太大的一个功能 ssh 是可以进行 totp 二次认证的 安装一下谷歌验证器的 pam
    www.digitalocean.com/community/tutorials/how-to-set-up-multi-factor-authentication-for-ssh-on-ubuntu-20-04
    flexbug
        24
    flexbug  
       2022-01-04 15:00:29 +08:00
    用 fail2ban 拦截一下,在云防火墙那边给 22 端口设置白名单模式,只允许你们公司的 ip ,加上登录失败监控
    dangyuluo
        25
    dangyuluo  
       2022-01-04 15:06:04 +08:00
    国内服务器和国外服务器的安全防护有区别么?
    zlowly
        26
    zlowly  
       2022-01-04 15:11:57 +08:00
    @yaoyao1128
    我是这样想象网络攻击的(没做过黑产,纯猜测):
    如果我是攻击者,除非有内线有雇主目标明确之类,否则一般是全网撒网攻击。
    通过自动化工具来扫描、木马、邮件之类俘获大批机器,而这些机器哪些是有价值深挖的,就通过进一步批量植入木马,进行磁盘文件扫描,浏览记录扫描等等,过滤出有价值机器。
    而私钥文件太容易识别了,很容易被人针对。当攻击者知道自己掌握的的机器里有私钥文件,就有让他有进一步攻击的动机。因为个人机上的私钥,有可能管理着某个企业的大部分互联网资源,能榨取的价值显然比个人更高。
    Nazar1te
        27
    Nazar1te  
    OP
       2022-01-04 16:27:50 +08:00
    @yaoyao1128 谢谢,也是一种办法,正好手头有 canokey
    yaoyaomoe
        28
    yaoyaomoe  
       2022-01-04 16:39:12 +08:00 via iPhone
    @Nazar1te !那你可以直接用实体设备认证了 openssh 现在支持 u2f/fido 兼容的 key
    ethsol
        29
    ethsol  
       2022-01-04 16:41:00 +08:00
    ssh 按楼上老师的做法都很靠谱,服务器被攻破一般不是源于 ssh 而是其他不安全的端口漏洞被利用
    vicalloy
        30
    vicalloy  
       2022-01-04 16:47:31 +08:00
    1. 改端口几乎没有用,端口一下就给你扫出来了。
    2. private key 可以加 passphrase 做保护。用的时候加到 ssh-agent ,避免每次都要输入 passphrase 。注:mac 下将 passphrase 记到 key-chain ,然后 ssh-add -K 会自动 load private key
    xzysaber
        31
    xzysaber  
       2022-01-04 16:50:24 +08:00
    PasswordAuthentication no,这个也可以设置下,只公钥登录。
    ishalla
        32
    ishalla  
       2022-01-04 16:50:30 +08:00
    用 key 替代密码,感觉基本就够了
    alect
        33
    alect  
       2022-01-04 17:49:11 +08:00
    改端口+密钥登录一点儿事儿没有。
    morphyhu
        34
    morphyhu  
       2022-01-04 18:13:41 +08:00
    我们多加了一层。VPN--》 WINDOWS RDP -->JumpServer
    chiuan
        35
    chiuan  
       2022-01-04 18:39:11 +08:00
    只允许公司内网一台机子登录 跳板机 再登录

    其他设备都通过登录公司内网那台机子。例如通过 frp 登录内网机子。
    arischow
        36
    arischow  
       2022-01-04 19:55:28 +08:00 via iPhone   2
    https://goteleport.com/ 社区版也不错
    Jf35jxN3fwBXyeLh
        37
    Jf35jxN3fwBXyeLh  
       2022-01-04 20:07:12 +08:00
    @zlowly 一般不会针对你个人去搞你的个人计算机,用证书登录就行了。公网上的其实是一堆脚本小子瞎 jb 乱扫
    lovelylain
        38
    lovelylain  
       2022-01-04 21:37:39 +08:00 via Android
    防火墙禁用 ssh 端口,需要时通过其他方式启动 frp 进行中转。
    rastars
        39
    rastars  
       2022-01-04 21:46:03 +08:00
    高段位端口+ed25519 密钥登陆,注意保管好密钥,基本上没问题
    cwcc
        40
    cwcc  
       2022-01-04 21:58:01 +08:00   1
    其实国内还更安全一点,国外的服务器只要是个公网 IP ,基本上不换端口是 100 的扫描量,换了端口是 10 的扫描量(这里只做比较)。国内只要不是头铁,大厂上云服务器防止恶意登录措施还是挺齐全的,个人只要做好 SSH 强密码,证书登录,禁止 root 登录等常规措施就够了。

    高级玩法可以搭建蜜罐,搞假的 SSH ,骗字典。

    最佳实践方式和各大企业内网搭建方式一样,做到内外分离,规划网络拓扑,从根源、防火墙等层面对接入进行限制,做好关键薄弱环节的审计。
    iphoneXr
        41
    iphoneXr  
       2022-01-10 16:4911 +08:00
    服务器没有公网 IP 只有私网 IP 的情况下 一般都比较安全!
    iphoneXr
        42
    iphoneXr  
       2022-01-10 16:49:57 +08:00
    目前我司的服务器基本都是 SLB 来做入口流量 SNAT 来做出口流量。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1086 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 17:57 PVG 01:57 LAX 09:57 JFK 12:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86