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

道路千万条,安全第一条,开发不规范,用户两行泪

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

    事件背景: 昨晚我们线上服务被恶意调用了,出现大量随机请求,猜测是想暴力破击我们管理后台,窃取用户数据。

    部分服务器日志截图:
    

    https://static.demolibs.com/v2ex/%E8%A2%AB%E8%B0%83%E6%88%8F%E4%BA%86.jpg ( PS:充值 V2EX 会员后,图片还是没法上传,所以用的七牛云,V 友见谅)

    所以想跟 V 友们一起讨论下网站安全的措施,防范于未然。

    目前我们的安全措施:
    

    一、运维方面:

    1、所有服务器都禁用 root 登陆功能,防止被别人通过 root 暴力破解。

    2、程序部署、数据库都用不同的账号管理,不同账号职责不同。

    3、数据库一定要设置密码,特别说明:MongoDB、Redis 是默认没有密码的。

    二、程序方面:

    1、程序部署最好用 Git 统一管理。区分 master、test、dev 等环境,紧急修复问题用 fix_分支。

    2、程序日志一定要打印好!访问日志、404 等错误日志都要打印,监控异常。

    3、日志里边要添加 IP 地址,为了以后对恶意请求做限制(当然,如果遇到 DDoS 攻击的话,光这点肯定不够)

    一起讨论下安全吧
    

    V 友们还有其他的安全测录?一起来分享一下,互相抱团更安全。

    关于我们
    

    我们初创的网站:呆萌库 | 一个自由定制的主页 网址: https://demolibs.com/ 留言板: https://support.qq.com/products/96596

    33 回复  |  直到 2019-11-22 11:57:25 +08:00
    eason1874
        1
    eason1874   62 天前   ♥ 2
    你截图显示每间隔 6~7 分钟来 10 多个异常请求,扫描机已经相当客气了,谈不上暴力破解。

    扫描机都是扫已经披露的漏洞,绝大部分路径以 .asp | .php | .jsp 结尾,你网站所有访问路径都不要用这些后缀,然后直接在 Nginx 屏蔽这些后缀,就可以解决大部分扫描机的骚扰了。

    至于数据库那些,你设置密码、禁止远程访问,在腾讯云安全组拒绝这些端口访问就行了。
    demolibs
        2
    demolibs   62 天前
    @eason1874 感谢大佬解答。 请问如有遇到 DDoS 怎么办?有什么好的对策吗?
    fengshils
        3
    fengshils   62 天前
    🐧?
    demolibs
        4
    demolibs   62 天前
    johnniang
        5
    johnniang   62 天前 via Android
    遇到 DDos 可能需要用 cloudflare 之类的后盾帮你抗了
    ipadpro4k
        6
    ipadpro4k   62 天前 via iPhone
    充值 v2 会员是什么样的操作
    demolibs
        7
    demolibs   62 天前
    @johnniang 确实,目前买云服务商的 DDoS 防护包最简单了。
    我们还想着多做两三个备份域名和服务器,以防万一,至少保证用户的访问和使用。
    demolibs
        8
    demolibs   62 天前
    @ipadpro4k 充会员,看的 V 友的这片教程:
    攻略:教你如何在 V2EX 发图片 /插链接 /插代码 /插视频(第二版)
    https://www.v2ex.com/t/408727

    主要是我们想发图片贴,可惜有点问题,明天再试试
    ZredoC
        9
    ZredoC   62 天前
    主页不错 0.0 粉了
    defunct9
        10
    defunct9   62 天前
    开 ssh,让我上去看看
    shintendo
        11
    shintendo   62 天前
    @defunct9 老哥你来了
    demolibs
        12
    demolibs   62 天前
    @ZredoC 多谢啦,初创阶段,欢迎多提提建议
    demolibs
        13
    demolibs   62 天前
    @defunct9 老哥,目前除了这些非法请求之外,没有其他异常,ssh 就免了吧 ^_^
    struggle001
        14
    struggle001   62 天前   ♥ 1
    现在部署网站,不是防火墙做 nat 和负载均衡,之后 app 和 db 都是内网,防火墙只暴露对外服务的端口吗?
    上内网服务器,都是需要走防火墙的 sslvpn,而且防火墙具有漏洞检测及风险分析功能,这样就安全多了。
    struggle001
        15
    struggle001   62 天前
    如果代码有漏洞,通过 80 做注入,那就很惨了,不过防火墙也有 sql 注入防护等安全防护的。
    Andy1999
        16
    Andy1999   61 天前 via iPhone
    @demolibs 可以考虑阿里云的高防
    zarte
        17
    zarte   61 天前
    我是挑了几条在 nginx 上弄重定向到百度搜索我的站点的连接。嘿嘿。
    xuanbg
        18
    xuanbg   61 天前   ♥ 1
    1、ssh 换端口
    2、ssh 访问设置 ip 白名单
    3、对外只开 80 和 443
    4、做好应用层安全,例如 sql 注入什么的

    漏洞扫描什么的,根本不用去理睬
    cydian
        19
    cydian   61 天前 via Android
    能否留个可用的联系方式。
    想提交信息,但是不想用那些需要登录的反馈平台。
    email 也行啊
    l4ever
        20
    l4ever   61 天前
    堡垒机了解一下?
    fanyingmao
        21
    fanyingmao   61 天前 via Android
    感觉爆破密码还是比较困难的,没设密码端口外放有遇到过一些。
    lc7029
        22
    lc7029   61 天前   ♥ 1
    1,服务器只允许内网登陆,且登陆必须通过堡垒机。
    2,服务按类型部署在内网,ACL 控制内网间调用。比如 10.0.0.0/24 给核心网,10.0.1.0/24 给安全设备,10.0.2.0/24 给数据库,数据库不能访问核心网等。
    3,内网部署安全设备,比如 DDOS 防火墙,流量清洗,堡垒机,数据库审计,IPS 等设备。
    4,CDN 配置 WAF 功能。
    5,想起来再写。
    demolibs
        23
    demolibs   61 天前
    @struggle001 多谢您的建议。
    我们的服务器只暴露业务相关接口,链路如下:
    http 请求 -> 云服务器(centos) -> 服务器防火墙(firewalld) -> Nginx -> 后端业务程序。

    SQL 防注入是个很古老,很重要的问题,项目内部代码审核还是很有必要的,尤其是 SQL 注入和满 SQL。
    demolibs
        24
    demolibs   61 天前
    @Andy1999 好滴~~ 云服务商的高防,让开发运维又轻松了不少
    demolibs
        25
    demolibs   61 天前
    @zarte “挑了几条在 nginx 上弄重定向到百度搜索我的站点的连接”
    这操作听起来很赞👍啊
    demolibs
        26
    demolibs   61 天前
    @cydian 多谢啦,能收到用户的反馈,是我们最大的期望。
    请发到我们的邮箱吧: [email protected]
    demolibs
        27
    demolibs   61 天前
    @l4ever 堡垒机确实很安全,做到内网隔离。
    一般大公司都是有专门运维团队来搭建的。
    初创公司,我们目前还没有对接这块,以后业务起来,确实得加上。
    中小公司,可以用云服务商的堡垒机服务,一个月几千块吧。
    demolibs
        28
    demolibs   61 天前
    @fanyingmao 主要是看过很多博客提过,安全意识不到位的问题还是挺多的,就是做好预防
    1、开放 ssh 接口,默认登陆账号 root、密码 root 或 123456 等简单密码。
    2、管理后台,账号 admin、密码 admin
    3、MySQL、MongoDB、Reids 密码过于简单,甚至默认没有密码。
    demolibs
        29
    demolibs   61 天前
    @lc7029

    1,服务器只允许内网登陆,且登陆必须通过堡垒机。
    2,服务按类型部署在内网,ACL 控制内网间调用。比如 10.0.0.0/24 给核心网,10.0.1.0/24 给安全设备,10.0.2.0/24 给数据库,数据库不能访问核心网等。
    3,内网部署安全设备,比如 DDOS 防火墙,流量清洗,堡垒机,数据库审计,IPS 等设备。
    4,CDN 配置 WAF 功能。


    膜拜运维大神🙏
    struggle001
        30
    struggle001   61 天前
    @demolibs 麒麟堡垒机 了解下。
    struggle001
        31
    struggle001   61 天前
    @lc7029 说实话 运维稍微上点心 就不会被黑,程序有问题除外。
    lc7029
        32
    lc7029   61 天前
    @demolibs 额。。。我是网管啊。。。
    656002674
        33
    656002674   61 天前
    看到#10 突然觉得正确的回复应该是这样的:

    运维请联系我,比楼上老哥便宜一块钱。

    溜了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2149 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 10:36 · PVG 18:36 · LAX 02:36 · JFK 05:36
    ♥ Do have faith in what you're doing.