服务器装好后,你一般做哪些安全上的优化? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dennyzhang
V2EX    DevOps

服务器装好后,你一般做哪些安全上的优化?

  •  3
     
  •   dennyzhang 2016-09-15 23:35:46 +08:00 9573 次点击
    这是一个创建于 3401 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先抛个砖。我一般做如下几件事:
    - iptables 防火墙
    - sshd 禁止通过密码登录
    - 给 command history 加上 timestamp
    51 条回复    2016-09-18 15:03:59 +08:00
    zyc233
        1
    zyc233  
       2016-09-16 00:51:50 +08:00   1
    楼主我是小白可否说的具体点,谢谢
    isCyan
        2
    isCyan  
       2016-09-16 01:25:45 +08:00 via Android   2
    shiji
        3
    shiji  
       2016-09-16 01:35:07 +08:00 via Android
    我一般会给 iptables 做一些猥琐的配置
    lianxiaoyi
        4
    lianxiaoyi  
       2016-09-16 07:54:59 +08:00 via Android
    一般改个端口就完事了!密码设置复杂些!
    dennyzhang
        5
    dennyzhang  
    OP
       2016-09-16 08:45:24 +08:00
    @shiji 怎么个猥琐法。来 show show 撒
    jeffw
        6
    jeffw  
       2016-09-16 08:46:08 +08:00 via iPhone
    不做,没怎么被黑过
    jimzhong
        7
    jimzhong  
       2016-09-16 09:02:33 08:00
    猥琐配置之一:用 iptables 限制同一个 ip 在一分钟内 ssh 尝试连接的次数。
    initialdp
        8
    initialdp  
       2016-09-16 09:30:54 +08:00
    ( 1 ) 改端口
    ( 2 ) fail2ban
    ( 3 ) 禁止 root 远程登陆
    googlebot
        9
    googlebot  
       2016-09-16 11:08:05 +08:00 via Android
    只改端口,密钥登录
    ericls
        10
    ericls  
       2016-09-16 11:17:46 +08:00
    一般先断网 只能从同一个局域网的另外一个机器访问
    Troevil
        11
    Troevil  
       2016-09-16 11:20:09 +08:00
    @jimzhong failban ~
    Troevil
        12
    Troevil  
       2016-09-16 11:20:42 +08:00
    @jimzhong fail2ban
    qyz0123321
        13
    qyz0123321  
       2016-09-16 11:23:07 +08:00
    开启 selinux
    40huo
        14
    40huo  
       2016-09-16 11:30:34 +08:00
    我一般就做一个禁止密码登录。
    thinks
        15
    thinks  
       2016-09-16 12:03:33 +08:00 via Android
    @zyc233 哈哈哈哈,顺便可以说说 IP 地址或者域名什么的。
    xuboying
        16
    xuboying  
       2016-09-16 12:18:22 +08:00 via iPhone
    二次验证大家是否考虑?
    shshilmh
        17
    shshilmh  
       2016-09-16 12:55:10 +08:00 via Android
    端口敲门
    kn007
        18
    kn007  
       2016-09-16 13:02:04 +08:00
    更改默认端口, iptables 规则, fail2ban 。
    伪造 22 端口等等。
    qile1
        19
    qile1  
       2016-09-16 13:28:31 +08:00 via Android
    win 服务器该怎么办,经常被攻陷
    caoyujia2000
        20
    caoyujia2000  
       2016-09-16 13:32:39 +08:00
    @qile1 放在各种云服务器上 借助云上的防护服务 win 服务安全性比 linux 服务器还是差蛮多的 个人感觉
    VmuTargh
        21
    VmuTargh  
       2016-09-16 13:39:37 +08:00
    Grsecurity Grsecurity Grsecurity
    重要的事情说三遍
    china1234
        22
    china1234  
       2016-09-16 14:21:41 +08:00 via iPhone   1
    给服务器安装 360 安全卫士、 360 杀毒软件、金山卫士、金山毒霸、瑞星、百度卫士、百度杀毒卫士。
    dennyzhang
        24
    dennyzhang  
    OP
       2016-09-16 15:29:56 +08:00
    OS Hardening To Better Secure Linux Server
    http://www.dennyzhang.com/linux_security/

    Note: 楼主自己整理和总结的一篇分享。
    dennyzhang
        25
    dennyzhang  
    OP
       2016-09-16 15:30:59 +08:00
    @qyz0123321 我一般是关 selinux 。求教:在你们使用过程中, selinux 在哪些地方真实帮到你们了?
    dennyzhang
        26
    dennyzhang  
    OP
       2016-09-16 15:32:09 +08:00
    @VmuTargh 赞,久闻 Grsecurity 大名。期待它早日入 mainstream.
    dennyzhang
        27
    dennyzhang  
    OP
       2016-09-16 15:34:00 +08:00
    @jimzhong 赞。果然很贱
    uiuy
        28
    uiuy  
       2016-09-16 16:38:12 +08:00 via Android
    @xuboying 这个是怎么实现?
    fool
        29
    fool  
       2016-09-16 16:42:26 +08:00
    @xihefeng google authen ...
    jyf007
        30
    jyf007  
       2016-09-16 16:44:17 +08:00 via Android
    @VmuTargh 高到哪里去都不知道了
    lslqtz
        31
    lslqtz  
       2016-09-16 16:46:45 +08:00
    不做任何优化, 给程序打打补丁。
    VmuTargh
        32
    VmuTargh  
       2016-09-16 17:26:24 +08:00 via Android   1
    @dennyzhang 最近 kernel 那边打鸡血一样, Linux-next 像 duang 一样多了好多安全特性……没办法,全都是被倒逼的……
    另外 SELinux 可以用用但是不要迷信,毕竟 userspace 加固这玩意又不如 openbsd (逃
    raysonx
        33
    raysonx  
       2016-09-16 17:43:19 +08:00 via Android
    第一件事是禁止 root 用户使用密码远程登录
    ouqihang
        34
    ouqihang  
       2016-09-16 19:27:30 +08:00
    默认 22 端口真的不能用,睡一觉几百个 login fail ,改端口就好了
    qyz0123321
        35
    qyz0123321  
       2016-09-16 19:38:29 +08:00
    @dennyzhang 有用。。
    prondtoo
        36
    prondtoo  
       2016-09-16 20:09:23 +08:00 via Android
    装好系统后跟着网上教程的,关掉 iptables ,关掉 selinux
    DesignerSkyline
        37
    DesignerSkyline  
       2016-09-16 20:38:13 +08:00 via iPad
    @shshilmh port knocking 很实用,比单纯 IP 白名单更加适合于多种复杂环境。
    zpvip
        38
    zpvip  
       2016-09-16 20:59:09 +08:00
    @jimzhong
    是这样吗?

    一分钟尝试两次:

    ```
    iptables -A INPUT -p tcp --dport 22 -m recent --name SSH_Brute --rcheck --seconds 60 --hitcount 2 -j DROP
    iptables -A INPUT -p tcp --dport 22 -m recent --name SSH_Brute --set -j ACCEPT
    ```

    好像不如这样写好,三次错误禁一小时:

    ```
    iptables -A INPUT -p tcp --dport 22 -m recent --name SSH_Brute --update --seconds 3600 --hitcount 3 -j DROP
    iptables -A INPUT -p tcp --dport 22 -m recent --name SSH_Brute --set -j ACCPET
    ```
    kideny
        39
    kideny  
       2016-09-16 22:41:42 +08:00
    @prondtoo 这贴里很多人推荐 iptables ,你还要关掉。。。关掉用啥?
    dreamtrail
        40
    dreamtrail  
       2016-09-16 22:47:56 +08:00
    @zpvip
    端口被攻击的时候自己会不会也登不上?
    choury
        41
    choury  
       2016-09-16 22:50:12 +08:00 via Android
    反正我的 22 端口是个密罐,用来记录所有尝试登陆的密码
    guokeke
        42
    guokeke  
       2016-09-16 23:41:14 +08:00
    -=- root 禁了就不管了。
    jimzhong
        43
    jimzhong  
       2016-09-17 08:05:25 +08:00
    @zpvip 我这么写
    iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent --set --name ssh --rsource
    iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT
    Hardrain
        44
    Hardrain  
       2016-09-17 09:12:28 +08:00
    1) iptables 限制自己不用的端口
    2) Web 程序的后台 Fail2Ban
    3) SSH 禁用键盘交互(密码),只能用公钥登录
    kn007
        45
    kn007  
       2016-09-17 09:29:35 +08:00
    补充,顺带的做 SSH 登录邮件提醒,感觉很有必要,在没两步验证的情况下

    https://kn007.net/topics/email-alert-when-ssh-login/
    ywgx
        46
    ywgx  
       2016-09-17 13:12:15 +08:00
    看了大家的方案,这是个人自己玩玩可以;企业级的管理, xabcloud.com 的看看吧
    Nitroethane
        47
    Nitroethane  
       2016-09-17 23:38:34 +08:00
    改 ssh 端口,并且使用 RSA 私钥进行登录,禁用密码登录;使用防火墙关闭,所有端口,只开放自己需要的,比如我的服务器只开了 3 个端口, 80 , 443 和 ssh 端口;定期打补丁。这是已经做了的,最近考虑写个脚本用来处理 nginx 的访问日志,比如说当有陌生 ip 在短时间内产生大量访问,并且有无意义的请求时,做黑名单处理;再写个脚本,定期监测 last 命令的输出,如果发现不是我的 ip 登录,给我发邮件啥的
    bianchensz
        48
    bianchensz  
       2016-09-18 10:10:25 +08:00
    改端口,改密钥,禁密禁 root 远程。
    sutra
        49
    sutra  
       2016-09-18 11:39:00 +08:00
    block in quick proto tcp from any os "Linux" to any port ssh
    soulteary
        50
    soulteary  
       2016-09-18 12:06:51 +08:00
    这个是炸鱼帖子...

    1. 改 root 密码为 16 ~ 20 位随机密码。
    2. 创建新用户,赋权,配置 rsakey 和授信 hosts , key 根据情况加密码&定期更换。
    3. 配置 sshd ,改端口,禁密码登录,禁 root 登录,禁用 pam ( openssl 后遗症)
    4. ufw 简化管理 iptables ,开闭端口。
    5. fail2ban 随便开几个需要的规则。
    6. supervisor 守护 fail2ban 。
    7. 如果有 1 ~ 2 台靠谱的机器,(任何网络下都能登录的, sla 高)当壁垒机器,其他机器仅允许从壁垒机上登录,定期维护这 1 ~ 2 个入口。
    8. 二步个人不推荐,如果专有一台手机做 token 另外(最近几年频繁换手机, token 各种重置各种痛苦)
    dennyzhang
        51
    dennyzhang  
    OP
       2016-09-18 15:03:59 +08:00
    @soulteary ^-^ 嗯嗯嗯,好大一条鱼
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3155 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 13:01 PVG 21:01 LAX 05:01 JFK 08:01
    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