V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
devliu1

关于个人服务器安全

  •  
  •   devliu1 · Aug 4, 2020 · 4849 views
    This topic created in 2092 days ago, the information mentioned may be changed or developed.

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

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

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

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


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

    不知道 #10 提到的能不能做到
    devliu1
        17
    devliu1  
    OP
       Aug 4, 2020
    @love 也对啊 😄确实是强迫症
    locoz
        18
    locoz  
       Aug 4, 2020 via Android
    @devliu1 #12 不是 VPN 外再套一层啊,zerotier 或 VPN,选一个😂。你现在有 VPN 就直接只留 VPN,其他端口全关就行了。
    locoz
        19
    locoz  
       Aug 4, 2020 via Android
    或者更暴力一点,通过第三方服务通知你的服务器,让它主动连接你本地的 VPN 之类的建立连接,这样就一个端口都不用开了…
    flypei
        20
    flypei  
    PRO
       Aug 4, 2020
    我自己用的基本就是裸奔,只修改了 ssh 端口,其他的懒的搞。
    locoz
        21
    locoz  
       Aug 4, 2020 via Android
    还有个直接点的办法,写个程序调用云厂商的 SDK 或防火墙开启你需要的端口,并把当前本地 IP 设为白名单,然后再加上关闭和移除白名单的操作,实现一键开关 hhh 。
    CallMeReznov
        22
    CallMeReznov  
       Aug 4, 2020
    另外如果你是云平台,可以利用他们自己的防火墙
    比如阿里云,直接用 aliyuncli 工具控制安全组,要用的时候添加自己 IP 为白名单,就算不关闭也无所谓,总不可能攻击者会使用你的 IP 吧?
    xingyue
        23
    xingyue  
       Aug 4, 2020 via Android
    @locoz 请问为什么要端口全关的呢,那些没用到的端口会引起什么问题吗?看到一楼也是全关这个观点,图方便安全组全开的我开始慌了~
    jilu171990
        24
    jilu171990  
       Aug 5, 2020   ❤️ 1
    都已经是个人服务器了,如果是被攻破就会被抓的话,那最简单靠谱的就是开防火墙,只允许跳板主机访问 ssh 就结束了,其他的都是多余的举动。被攻破不会被抓的话就装个 fail2ban 就结束了
    devliu1
        25
    devliu1  
    OP
       Aug 5, 2020
    @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  
       Aug 5, 2020   ❤️ 1
    你们这些都只能防君子,有个漏洞随便入侵。
    whileFalse
        27
    whileFalse  
       Aug 5, 2020   ❤️ 1
    最简单的是在上面部署一个带密码的 ss server
    其他端口全用防火墙关掉
    devliu1
        28
    devliu1  
    OP
       Aug 5, 2020
    @takemeaway 是的,这也是为什么我发帖提问
    xfelix
        29
    xfelix  
       Aug 19, 2020
    黑客来搞你的机器也是要花时间的。所以把基础的防护做好,及时打安全补丁,避免被扫到就行。
    如果投入与产出不成比例,他们可没功夫跟你耗着。除非有其他原因被他们针对了,那再怎么防也不一定防得住。
    devliu1
        30
    devliu1  
    OP
       Aug 21, 2020
    @xfelix 哈哈 确实是一个成本博弈的事情
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1060 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 18:46 · PVG 02:46 · LAX 11:46 · JFK 14:46
    ♥ Do have faith in what you're doing.