事件背景: 昨晚我们线上服务被恶意调用了,出现大量随机请求,猜测是想暴力破击我们管理后台,窃取用户数据。
部分服务器日志截图:
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
1
eason1874 2019-11-21 11:11:51 +08:00 2
你截图显示每间隔 6~7 分钟来 10 多个异常请求,扫描机已经相当客气了,谈不上暴力破解。
扫描机都是扫已经披露的漏洞,绝大部分路径以 .asp | .php | .jsp 结尾,你网站所有访问路径都不要用这些后缀,然后直接在 Nginx 屏蔽这些后缀,就可以解决大部分扫描机的骚扰了。 至于数据库那些,你设置密码、禁止远程访问,在腾讯云安全组拒绝这些端口访问就行了。 |
3
fengshils 2019-11-21 11:51:19 +08:00
🐧?
|
5
johnniang 2019-11-21 13:07:29 +08:00 via Android
遇到 DDos 可能需要用 cloudflare 之类的后盾帮你抗了
|
6
ipadpro4k 2019-11-21 13:09:47 +08:00 via iPhone
充值 v2 会员是什么样的操作
|
7
demolibs OP @johnniang 确实,目前买云服务商的 DDoS 防护包最简单了。
我们还想着多做两三个备份域名和服务器,以防万一,至少保证用户的访问和使用。 |
8
demolibs OP @ipadpro4k 充会员,看的 V 友的这片教程:
攻略:教你如何在 V2EX 发图片 /插链接 /插代码 /插视频(第二版) https://www.v2ex.com/t/408727 主要是我们想发图片贴,可惜有点问题,明天再试试 |
9
ZredoC 2019-11-21 13:40:14 +08:00
主页不错 0.0 粉了
|
10
defunct9 2019-11-21 13:41:16 +08:00
开 ssh,让我上去看看
|
14
struggle001 2019-11-21 18:28:37 +08:00 1
现在部署网站,不是防火墙做 nat 和负载均衡,之后 app 和 db 都是内网,防火墙只暴露对外服务的端口吗?
上内网服务器,都是需要走防火墙的 sslvpn,而且防火墙具有漏洞检测及风险分析功能,这样就安全多了。 |
15
struggle001 2019-11-21 18:29:51 +08:00
如果代码有漏洞,通过 80 做注入,那就很惨了,不过防火墙也有 sql 注入防护等安全防护的。
|
17
zarte 2019-11-21 19:00:38 +08:00
我是挑了几条在 nginx 上弄重定向到百度搜索我的站点的连接。嘿嘿。
|
18
xuanbg 2019-11-21 22:33:07 +08:00 1
1、ssh 换端口
2、ssh 访问设置 ip 白名单 3、对外只开 80 和 443 4、做好应用层安全,例如 sql 注入什么的 漏洞扫描什么的,根本不用去理睬 |
19
cydian 2019-11-22 02:23:09 +08:00 via Android
能否留个可用的联系方式。
想提交信息,但是不想用那些需要登录的反馈平台。 email 也行啊 |
20
l4ever 2019-11-22 08:28:34 +08:00
堡垒机了解一下?
|
21
fanyingmao 2019-11-22 08:57:38 +08:00 via Android
感觉爆破密码还是比较困难的,没设密码端口外放有遇到过一些。
|
22
lc7029 2019-11-22 09:50:30 +08:00 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,想起来再写。 |
23
demolibs OP @struggle001 多谢您的建议。
我们的服务器只暴露业务相关接口,链路如下: http 请求 -> 云服务器(centos) -> 服务器防火墙(firewalld) -> Nginx -> 后端业务程序。 SQL 防注入是个很古老,很重要的问题,项目内部代码审核还是很有必要的,尤其是 SQL 注入和满 SQL。 |
26
demolibs OP |
27
demolibs OP @l4ever 堡垒机确实很安全,做到内网隔离。
一般大公司都是有专门运维团队来搭建的。 初创公司,我们目前还没有对接这块,以后业务起来,确实得加上。 中小公司,可以用云服务商的堡垒机服务,一个月几千块吧。 |
28
demolibs OP @fanyingmao 主要是看过很多博客提过,安全意识不到位的问题还是挺多的,就是做好预防
1、开放 ssh 接口,默认登陆账号 root、密码 root 或 123456 等简单密码。 2、管理后台,账号 admin、密码 admin 3、MySQL、MongoDB、Reids 密码过于简单,甚至默认没有密码。 |
29
demolibs OP @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 功能。 ” 膜拜运维大神🙏 |
30
struggle001 2019-11-22 10:46:40 +08:00
@demolibs 麒麟堡垒机 了解下。
|
31
struggle001 2019-11-22 10:48:12 +08:00
@lc7029 说实话 运维稍微上点心 就不会被黑,程序有问题除外。
|
33
656002674 2019-11-22 11:57:25 +08:00
看到#10 突然觉得正确的回复应该是这样的:
运维请联系我,比楼上老哥便宜一块钱。 溜了 |