V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yw121141111
V2EX  ›  程序员

纯小白 请问怎么保护自己的服务器

  •  
  •   yw121141111 · 135 天前 · 7014 次点击
    这是一个创建于 135 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天刚买的阿里云 玩了一会 docker 开放了 22 端口和 docker 的默认端口 就报警说有挖矿程序 纯小白 请问改怎么做能尽量避免此类情况 求指点

    60 条回复    2022-11-09 15:34:54 +08:00
    me221
        1
    me221  
       135 天前
    设置仅密钥登录, 限制 IP

    但如果服务器不对外开放的话... 建议用 WireGuard
    GoRoad
        2
    GoRoad  
       135 天前
    22 端口一般是没事的 主要是 2379 端口 不开就行了
    GoRoad
        3
    GoRoad  
       135 天前
    22 端口密码设置复杂一些问题不大的
    opengps
        4
    opengps  
       135 天前
    几个基本点做到了足够应付 90%的问题:
    1 ,公网一定不能密码
    2 ,用不到的端口不开,用到的端口如果可以使用非默认端口最好,管理型用途端口配合白名单 ip
    3 ,堵住自身系统漏洞,别 443 的网站发布一个随意上传文件之类的漏洞
    4 ,经常检查,以便于识别出可疑文件,可疑进程,可疑资源占用等风险点
    5 ,其他
    masker
        5
    masker  
       135 天前 via Android
    只开 sshd 。
    用公钥进行 ssh 连接,关闭密码连接,关闭 root 用户连接
    测试就搞个 tailscale ,想用啥端口用啥端口,不用过防火墙
    cweijan
        6
    cweijan  
       134 天前
    禁用密码登录, 改为私钥登录
    wu67
        7
    wu67  
       134 天前
    上面几位已经说完了.
    不用密码, 用 key 登录, 关掉 root
    关掉所有端口, 只留自己用到的.

    吐槽一下, 这两点 aws 就做得挺好, 就是劳资已经忘记了切到 root 用户的密码是啥....
    yiXu
        8
    yiXu  
       134 天前
    如果要开放端口,更改下默认的端口。
    xratzh
        9
    xratzh  
       134 天前
    改高位数的端口。密码倒是无所谓。
    重要的是,系统得带有自动备份。不畏惧
    wangyu17455
        10
    wangyu17455  
       134 天前
    用 tailscale 组虚拟网,禁 ping 然后不开任何端口,服务器搞炸了就用 vnc 上去修,保证不出问题
    yogogo
        11
    yogogo  
       134 天前
    开启 SELinux
    chaoschick
        12
    chaoschick  
       134 天前 via Android
    @cweijan
    whileFalse
        13
    whileFalse  
       134 天前 via iPhone
    @wu67 aws 直接用 session manager 啊
    jiayouzl
        14
    jiayouzl  
       134 天前
    密码复杂点,不需要私钥的.
    wu67
        15
    wu67  
       134 天前
    @whileFalse 布吉岛. 我只是用来跑一下 v2 aria2 ftp, 别的就不管了, 反正现在能跑, 哪天炸了我直接重装算了
    javerlei
        16
    javerlei  
       134 天前
    ssh 跟换端口,使用秘钥登录,或者直接限制内网登录( wg 搭建内网),应用使用容器进行部署。
    hingle
        17
    hingle  
       134 天前   ❤️ 1
    楼上居然没有人提到 docker ,这一看就是开放了 docker 端口造成的。
    可以本地安装一个 docker cli ,配置一下,直接能操作远程的 docker 。
    QN2107
        18
    QN2107  
       134 天前
    同小白,希望路过的大佬给看下,我的问题是 我的服务器准备到期了,打算重新买一个轻量的( 1 核 2g 2 核 4g 带宽 5M ?),不知道哪有比较便宜的呢?背景是 我不是 aliyun 和腾讯云的新用户 学生认证的已经用过了。感谢
    wizardyhnr
        19
    wizardyhnr  
       134 天前
    ssh+2FA+fail2ban ,这个配置改不改端口无所谓,因为 brutal attack 触发 fail2ban 的规则就永 ban 了。
    安装用官方方法,不要用一键安装脚本之类的,有的时候后门是你自己请进去的。装的软件越多,可能的漏洞就越多,所以按需安装,不要装一堆有用没用的。
    用 webui 管理配置的程序,可以用 nginx 反代,这样不用的时候就关掉反代。
    caomingjun
        20
    caomingjun  
       134 天前 via Android
    我目前是防火墙只开 22 ,只允许密钥登陆;所有服务都用 docker 管理,docker 不映射任何端口( web 服务一律走 cloudflare tunnel )
    houzhishi
        21
    houzhishi  
       134 天前
    大家思路都狭隘了,ssh 不一定是好的入口,只要不是弱口令,很难进来。主要还是服务器跑的程序,可能是未授权访问,也可能存在已知漏洞。ssh 用了半天配置来加固,结果应用写了个 SQL 注入,这就尴尬了。
    几点建议吧:
    1 、谨慎开启各类服务,如果需要开启请更新最新版,以及配置安全策略(因为很多组件默认不开启安全措施)。几个月前的那次私有云泄露,就是因为默认对象储存无鉴权。也有人说了,问题可能就是你开放的 docker 服务。
    2 、避免口令复用,以及弱口令。
    3 、及时更新软件、系统。
    基本就差不多了,最后带一句,刚刚开始学习,别在意这些,大不了重新装系统呗,谁都是从小白过来的。
    sommio
        22
    sommio  
       134 天前
    楼上都假设一定要用 SSH (
    实际上完全可以把 SSH 关了,在控制台网页 VNC 连接,只要关掉就不用在乎这个“攻击面”了
    yaott2020
        23
    yaott2020  
       134 天前 via Android
    别用 22 端口
    RRyo
        24
    RRyo  
       134 天前
    改端口没啥用,高位端口一样有人扫,我这边家里防火墙检测到连续 3 次敏感端口扫描 ban ip, 因为高位端口 ban 掉的一周能上百

    0. 不要使用来路不明的什么一键 xxx 脚本,软件自己根据手册安装配置,别把 root 权限就这么莫名其妙的交了
    1. 如无必要不开放端口 /服务
    2. 关掉 ssh 的密码登录,只用密钥登录
    3. 把 fail2ban 装上,规则配好,有扫描 /入侵行为直接 ban
    4. 定时升级对外暴露服务和系统的安全补丁
    5. 定期检查如 /etc/passwd /etc/passwd- /etc/shadow /etc/shadow- ~/.ssh/known_hosts 这些敏感文件有无异常
    0001110001011
        25
    0001110001011  
       134 天前
    楼上们说的都对,

    我感觉 楼主中了这个坑 @yw121141111

    我记得 docker-compose 里面的端口要 127.0.0.1:xxx:xxx 来映射, 不要 xxx:xxx 来映射, 不然就会有风险,暴露所有端口出去.
    oneisall8955
        26
    oneisall8955  
       134 天前 via Android
    @0001110001011 安全策略组会禁掉外网的,没在策略组开,相当于本地了吧?
    LinYa
        27
    LinYa  
       134 天前
    @0001110001011 请问大佬可以举个例子吗?我没看明白 `docker-compose 里面的端口要 127.0.0.1:xxx:xxx 来映射`这段话?
    GGGG430
        28
    GGGG430  
       134 天前
    privileged: true 把这个关了就行
    Suaxi
        29
    Suaxi  
       134 天前
    密钥登录,改高位端口,装个 fail2ban ,还有谨慎使用一键脚本
    azev
        30
    azev  
       134 天前
    @caomingjun
    cloudflare tunnel 国内速度怎么样?
    jackmod
        31
    jackmod  
       134 天前
    ssh 包装在了 v2 的后面,ufw 只留了 tcp443 和 wireguard ,443 外面套了 cf 。
    yulgang
        32
    yulgang  
       134 天前   ❤️ 3
    caomingjun
        33
    caomingjun  
       134 天前 via Android
    @azev 我去年 2 月做过一次测试:
    https://blog.caomingjun.com/cloudflare-tunnel-speedtest/
    国内还是比较慢的。时间比较长,不一定准了。如果服务器在国内我还是不建议用,可以把防火墙限制到仅国内可以访问,攻击面小很多。
    dongtingyue
        34
    dongtingyue  
       134 天前
    centos 的机子可以用这个
    https://github.com/zarte/vps_deploy
    简单的防御措施
    wizardyhnr
        35
    wizardyhnr  
       134 天前
    楼上正好给了个一键脚本的案例,像这种脚本都是要 root 权限的,所以运行脚本之前最好都自己审查一遍脚本确保没问题。
    weeei
        36
    weeei  
       134 天前
    使用 UFW 设置只允许服务需要的端口。
    就不用担心 Docker 设置不当对外暴露端口的问题了。
    SSH 设置为仅允许 Key 登录,不允许 root 登录。最好也更改的 22 端口为其他的
    vone
        37
    vone  
       134 天前
    ssh 密钥发一下,我帮你看看。
    lujiaosama
        38
    lujiaosama  
       134 天前
    @hingle 对的. docker 映射端口会直接暴露. 我纳闷了好久才发现.
    tommyzhang
        39
    tommyzhang  
       134 天前
    目前是官网网页登录 外部不可 ssh 其他的就是服务不要有漏洞
    MMMMMMMMMMMMMMMM
        40
    MMMMMMMMMMMMMMMM  
       134 天前
    自动化渗透脚本扫一下,metasploit 之类的

    没有已经公开了的漏洞就算很安全了,能挖 0day 的也不会来专门黑你
    jones2000
        41
    jones2000  
       134 天前
    买杀毒软件装一个就行了。
    Bijiabo
        42
    Bijiabo  
       134 天前
    楼上都说得很好,我再补充一个关键点:不要用阿里云
    TsukiMori
        43
    TsukiMori  
       134 天前
    VPS 就是密钥登陆+尽量不开端口
    NAS 就是路由器防火墙不开 web 之外的端口
    cheng6563
        44
    cheng6563  
       134 天前
    只对公众暴露 80 和 443 端口。ssh 用的 22 端口改成高位端口,比如 49214 什么的,然后每次登录都去安全组把自己的 IP 加白名单。
    用阿里云面板上的安全组功能控制,系统内的防火墙可以关掉。
    ltkun
        45
    ltkun  
       134 天前
    每次用好 ssh 关闭端口 这是公网服务器的基本原则哈
    terencelau
        46
    terencelau  
       134 天前
    看看是不是 docker 开了 2375 端口,容易被提权
    onice
        47
    onice  
       134 天前
    遵循最少服务原则,能不开的服务尽量不开。
    所有服务采用普通用户权限运行。
    软件包采用最新版本,定期升级。
    确保服务的安全。比如开了 redis ,就不能空口令或弱口令。开了 web 站点,就要确保 web 站点没有 sql 注入,命令执行等漏洞。
    gps949
        48
    gps949  
       134 天前
    1 、完全重做系统(保证系统用的是干净的官方版,最好阿里云的那些破 monitor 也别装)。
    2 、防火墙(阿里云网络安全组)设置入方向全部关闭。
    3 、使用阿里云登录(如 vnc ),在上面装个 tailscale 。可以开 tailscale ssh ,也可以单独开 ssh (但建议绑定 ssh 服务在 tailscale 的 100.x.x.x 接口上,如果修改 ssh 端口、使用公钥登录禁用密码登录就更好了)。
    4 、后续都适用 tailscale 访问。
    5 、使用 docker 的话,看楼上一堆说 2375 口的安全问题,但我记得默认是不开 2375 的,只是用 linux sock 访问的。如果需要使用 tcp 访问 docker api ,建议开启 docker api tcp 访问的双向 tls 加密。
    6 、说句实在话,挖矿这东西大多数不是别人黑(登入)进你的设备给你装的,多半是你自己下载执行些程序搞的,尤其是玩 docker 的话,小心 docker 镜像被挂马或者挂挖矿脚本。
    tonzeng
        49
    tonzeng  
       134 天前
    遠離 docker
    abc0123xyz
        50
    abc0123xyz  
       134 天前
    网线拔了
    webcape233
        51
    webcape233  
       134 天前 via iPhone
    禁止 root 密码登陆
    普通用户名和密码不要简单 比如 test test123
    fail2ban 设置密码错误三次到五次就拉黑 1024000000 秒
    防火墙除了必要的都不开
    内核老的滚上新内核
    装个 vpn 自己用、vpn 子网里面不做限制自己想开啥端口就开啥端口
    radiocontroller
        52
    radiocontroller  
       134 天前
    开 ssh ,我上去检查一下
    zpfhbyx
        53
    zpfhbyx  
       133 天前
    加个 otp 基本可以解大部分了.
    sunnysab
        54
    sunnysab  
       133 天前
    @azev 我这边电信能跑到 1MB/s ,但是新疆、移动等地区或运营商,或因为线路,或因为政策,可用性较差。
    w3sun
        55
    w3sun  
       133 天前
    改下 ssh 端口,ssh-keygen 创建密钥,修改 /etc/ssh/sshd_config 设置密钥登陆
    dnsaq
        56
    dnsaq  
       133 天前 via iPhone
    主要考虑你跑的程序安全性就行了。系统默认就只有 sshd 端口而已,sshd 端口不要对外开放就是了。
    Aixtuz
        57
    Aixtuz  
       133 天前 via iPhone
    我是 vps 到手先这样:
    1. ssh 新用户、用密钥、禁密码、禁 root ;
    2. ufw 只开一部分要用的;
    3. f2b 限制一下十分钟内的错误次数;
    暂时没用别的,顺道请问一下路过的彦祖:
    国外的 vps 用上面那些朋友说的 tailscale 方案,会不会因为过墙而被消灭?最近这段时间阵亡的比较严重…
    JohnBull
        58
    JohnBull  
       133 天前
    装一个 sshguard
    MonoLogueChi
        59
    MonoLogueChi  
       133 天前 via Android
    1 不用的端口不开
    2 ssh 仅秘钥登录
    3 不直接使用 root 账户,禁用 root 远程登录
    4 最重要的一点,不明的程序不要运行,内部破坏是最容易的
    Picmen
        60
    Picmen  
       133 天前
    我服务器上面装的东西都没有对外开放的需求,就开了一个 WireGuard 端口,通过 WG 访问
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   3098 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 10:41 · PVG 18:41 · LAX 03:41 · JFK 06:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.