关于个人服务器安全 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
devliu1
V2EX    信息安全

关于个人服务器安全

  •  
  •   devliu1 2020-08-04 21:33:11 +08:00 4606 次点击
    这是一个创建于 1902 天前的主题,其中的信息可能已经有所发展或是发生改变。

    暴露在公网上的个人服务器,怎么样才能提高安全性?

    目前的办法是 port knocking + 蜜罐 + vpn 。但是 使用 port knocking 如果忘记了关怎么办

    想到了本地的安全软件,可以做到发起或传入连接时通过 GUI 进行控制。 服务端有什么现成的系统或者 API,可以做到一个连接传入时,通过程序控制吗(比如发邮件,邮件附带一个 url 对服务器进行控制,允许当前 IP 连入)

    30 条回复    2020-08-21 11:20:21 +08:00
    loading
        1
    loading  
       2020-08-04 21:36:57 +08:00 via Android   1
    端口全关,只留 ssh 禁用密码登录,基本就差不多了吧。
    loading
        2
    loading  
       2020-08-04 21:38:20 +08:00 via Android
    还有,别部署热门程序,例如帝国 cms,哈哈。
    devliu1
        3
    devliu1  
    OP
       2020-08-04 21:44:28 +08:00
    @loading 嗯,基本的安全措施还是可以做的,主要是想避免被扫
    mikeguan
        4
    mikeguan  
       2020-08-04 22:11:23 +08:00 via Android   1
    这个 port knocking 忘记关是什么意思? 这个不是一定时间后失效吗?是指错误的把端口扫描的 IP 加白了吗?这个好像也可以通过几个端口不同顺序来解决
    locoz
        5
    locoz  
       2020-08-04 22:14:11 +08:00 via Android   1
    端口全关,用 zerotier 或者是直接搞个 VPN,通过隧道的方式连上去操作。
    opengps
        6
    opengps  
       2020-08-04 22:16:40 +08:00
    白名单是个好东西
    noclin
        7
    noclin  
       2020-08-04 22:19:13 +08:00   1
    @mikeguan 比如我使用一个 seq 调用 iptable 开放某个 IP,可以做到让它在一定时间之后再调用 iptable 关闭访问权限吗
    noclin
        8
    noclin  
       2020-08-04 22:21:02 +08:00
    @mikeguan 看到过类似的方案,但是没有配置过
    ly4572615
        9
    ly4572615  
       2020-08-04 22:23:06 +08:00   1
    改端口,关密码登录,denyhosts,有固定 ip 加个防火墙,差不多了
    devliu1
        10
    devliu1  
    OP
       2020-08-04 22:30:06 +08:00
    @mikeguan 和#7 说的是一样的,我测试看看


    @opengps @ly4572615 但是问题在于需要通过一种方法动态修改白名单,和 /t/684494 说的差不多,他的做法是通过一台公网服务器主动请求修改白名单。能不能有人连接时产生一个 callback,通知用户进行添加到白名单这个操作,同时可以看到有人在尝试连接。
    updateing
        11
    updateing  
       2020-08-04 22:32:24 +08:00 via Android   1
    @devliu1 如果是使用 ipset 做的 port knocking 的白名单,可以用 ipset 自带的 timeout 功能实现定时解除。
    devliu1
        12
    devliu1  
    OP
       2020-08-04 22:33:06 +08:00
    @locoz 就是 VPN 之外再套一层,会不会很多余
    CallMeReznov
      &nbp; 13
    CallMeReznov  
       2020-08-04 22:41:37 +08:00   1
    通过防火墙的 API 开放你需要访问的服务器端口
    前几年做游戏的时候被人 CC 就是这样的,为了要区分正常玩家与恶意攻击代理,正常的客户端请求那个地址后会才可以正常进入,有效的过滤了一批攻击者.
    CallMeReznov
        14
    CallMeReznov  
       2020-08-04 22:42:40 +08:00
    jumpserver 或者 frp 也可以吧.
    love
        15
    love  
       2020-08-04 22:48:00 +08:00   2
    放心,个人 VPS 就别安全强迫症了,基本的通用软件 ssh/mail/web 服务器软件不太能被爆(除非用了弱密码),要爆也轮不到你这种没价值的
    devliu1
        16
    devliu1  
    OP
       2020-08-04 22:48:14 +08:00
    @CallMeReznov 根据上面大佬的回复,是可以通过 port knocking + iptable 做到的,frp 的话也可以使用 stcp+socks5 代理做,似乎性能有点低。

    不知道 #10 提到的能不能做到
    devliu1
        17
    devliu1  
    OP
       2020-08-04 22:50:44 +08:00
    @love 也对啊 确实是强迫症
    locoz
        18
    locoz  
       2020-08-04 22:55:39 +08:00 via Android
    @devliu1 #12 不是 VPN 外再套一层啊,zerotier 或 VPN,选一个。你现在有 VPN 就直接只留 VPN,其他端口全关就行了。
    locoz
        19
    locoz  
       2020-08-04 22:57:50 +08:00 via Android
    或者更暴力一点,通过第三方服务通知你的服务器,让它主动连接你本地的 VPN 之类的建立连接,这样就一个端口都不用开了…
    flypei
        20
    flypei  
    PRO
       2020-08-04 22:59:06 +08:00
    我自己用的基本就是裸奔,只修改了 ssh 端口,其他的懒的搞。
    locoz
        21
    locoz  
       2020-08-04 23:00:11 +08:00 via Android
    还有个直接点的办法,写个程序调用云厂商的 SDK 或防火墙开启你需要的端口,并把当前本地 IP 设为白名单,然后再加上关闭和移除白名单的操作,实现一键开关 hhh 。
    CallMeReznov
        22
    CallMeReznov  
       2020-08-04 23:09:19 +08:00
    另外如果你是云平台,可以利用他们自己的防火墙
    比如阿里云,直接用 aliyuncli 工具控制安全组,要用的时候添加自己 IP 为白名单,就算不关闭也无所谓,总不可能攻击者会使用你的 IP 吧?
    xingyue
        23
    xingyue  
       2020-08-04 23:41:49 +08:00 via Android
    @locoz 请问为什么要端口全关的呢,那些没用到的端口会引起什么问题吗?看到一楼也是全关这个观点,图方便安全组全开的我开始慌了~
    jilu171990
        24
    jilu171990  
       2020-08-05 02:55:52 +08:00   1
    都已经是个人服务器了,如果是被攻破就会被抓的话,那最简单靠谱的就是开防火墙,只允许跳板主机访问 ssh 就结束了,其他的都是多余的举动。被攻破不会被抓的话就装个 fail2ban 就结束了
    devliu1
        25
    devliu1  
    OP
       2020-08-05 08:56:31 +08:00
    @locoz
    @CallMeReznov 动态修改防火墙,iptable 和云服务器 API 其实都可以做到。我还是想找找能不能在建立连接时,产生一个 callback 给我的脚本,我的脚本再发送邮件,让我可以感知到有人在尝试建立连接,并远程修改白名单。攻击者使用我的 IP 确实也不现实。


    @flypei @xingyue 舍弃便利去换取一点点安全感吧


    @jilu171990 把 fail2ban 忘记了,那基本上是可以了



    总结一下,

    1. ipset + iptable 做 port knocking 。 或者通过另一个服务器以某种形式动态调用 iptable 或云服务器 API

    2. VPN / zerotier / frp (stcp + socks) / jumpserver

    3. fail2ban 监控
    takemeaway
        26
    takemeaway  
       2020-08-05 09:16:53 +08:00   1
    你们这些都只能防君子,有个漏洞随便入侵。
    whileFalse
        27
    whileFalse  
       2020-08-05 09:36:44 +08:00   1
    最简单的是在上面部署一个带密码的 ss server
    其他端口全用防火墙关掉
    devliu1
        28
    devliu1  
    OP
       2020-08-05 12:40:21 +08:00
    @takemeaway 是的,这也是为什么我发帖提问
    xfelix
        29
    xfelix  
       2020-08-19 11:11:35 +08:00
    黑客来搞你的机器也是要花时间的。所以把基础的防护做好,及时打安全补丁,避免被扫到就行。
    如果投入与产出不成比例,他们可没功夫跟你耗着。除非有其他原因被他们针对了,那再怎么防也不一定防得住。
    devliu1
        30
    devliu1  
    OP
       2020-08-21 11:20:21 +08:00
    @xfelix 哈哈 确实是一个成本博弈的事情
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5368 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 03:48 PVG 11:48 LAX 20:48 JFK 23:48
    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