服务器安全请教
- 0次
- 2021-06-16 17:20:54
- idczone
不懂就问,目前有一台服务器存放一些对我很重要的数据,涉及到资金安全。
所以在安全这方面请教个各位还有什么需要做的。
环境:
阿里云服务器
系统:CentOS Linux release 7.8.2003
装的服务:mysql, redis, node
目前做的措施:
root 只允许 ssh 连接,禁止密码登录
mysql 开了 3306 端口,禁止 root 远程访问,新建了一个用户名
redis 设置密码,bind 本地 IP,外部不能连接
目前阿里云防火墙允许的端口:22,3306,以及一个 web 服务端口
系统自带防火墙暂时没开
目前就做了这些简单的,上面几个服务的默认端口有必要改吗?
请教下还有没有什么地方需要注意的?
谢谢各位。
找一个高阶运维
个人使用小机,请不起,而且也不能让运维接触到数据,哈哈
感觉 3306 端口还是易受攻击,考虑加多层 WireGuard 吗?这样 3306 也可以 bind 本地。。
默认端口当然要改,全部改成高位端口。
防止各种扫描,或者未来 redis 漏洞啥的默认端口一扫就进去了
mysql 为什么要开端口?就一台机器为什么不用 socks 连接? redis 同理
默认端口有必要要改,个人用的话可以阿里云设置 IP 白名单,只允许部分 IP 能访问
1,ssh 把默认 22 端口换了,然后装一个 fail2ban
2,mysql 的 3306 端口也可以换掉,连接加上 tls,mysql 最好跟 redis 一样绑定本地 IP,navicat 连 mysql 可以走 ssh 通道
3,mysql 数据库一定要做好定时备份
收到,默认端口过后调整一下。
因为需要本地远程连上去,方便查看和修改表数据。socks 连接没用过,不太懂了。
一直有个疑问,IP 白名单针对的是我的外网 IP 吧,那家用路由,IP 以经常变动,不固定的这种,如果设置白名单?
谢谢,学到了,1,2 两招可以用上,第 3 的话,还好,因为 mysql 里面的数据不重要,哈哈
机器要暴露公网服务吗,如果只有自己连接的话,所有的端口都关闭,只留 ssh 的端口就可以了,其他的端口都走 ssh 端口转发。
可以不暴露公网,目前就 22,3306,和一个外网服务,外网服务可以关掉,3306 到时也关了走 ssh 。
ssh 端口转发得再学习一下了,还没尝试过。
可以观察一下 IPv4 和 IPv6 的变化是不是有规律的,有规律的话可以设置带子网掩码的 IP 地址为白名单
如果是真的需要安全的话,其实很简单。
防火墙 deny all
然后自动获取并放行自己电脑的 IP 地址,
再放行一个 fail safe 用的固定 IP 的备用主机就行了。
这样就无敌了,就算有 0day 也打不中你。
level 太低了,直接写个脚本自动获取需要放行的主机的 IP 地址就行了。
一般是没问题的,linux 本身层面上除了修改 ssh 登录方式外还要加一个 fail2ban,基本免疫一切针对系统账号本身的攻击。剩下的业务端口这么设置一般也没问题,唯一能打到的是 0day,改端口可以增加一定安全性。我觉得不是涉及大资金安全的话这样完全够了,毕竟设计层面上唯一问题是 0day,因为我个人没见过 mysql 和 redis 因为 0day 被打的,可能是我孤陋寡闻。大资金再搞更细致的防火墙、IP 绑定之类的
端口全关 通讯使用 vpn wireguard 或者是 sslvpn 都可以
只开放 ssh 使用密钥登录 和 vpn 的端口 其他端口全关
如果想更安全的话,从白名单删除 3306 和 22 端口。只允许使用阿里云 ECS Workbench 远程登录。
1 做好登陆日志的监控
2 禁止 root 登陆
3 别一台服务器 做好所有的数据备份
4 除了 80 什么都不开。用的时候再去阿里云开 22 的指定 IP 权限。
最近刚好准备用 public key 验证,ssh 转发功能,这样就可以只开 22 端口。其他非 80,443 就可以走隧道。其实最大漏洞是 80,443 的入侵。
当然 web 是自己用不对外开放就全走隧道了,完事。
vpn 方案默认全局,还得搞路由表,或第三方软件实现局部走 vpn
不对外情况下,只开 ssh 端口,然后通过 ssh 代理访问 web/mysql ( xshell/secureCRT 都带这功能,或者 ssh -N -f -D
ssh -N -f -R )
另外可以添加两条(如果是物理设备,还可添加一条外设接入告警):
1.登陆告警(从 /var/log/secure 里面去取登陆信息,发现登陆就触发邮件 /或者 WEBHOOK )
2.链接告警( ss 获取创建链接情况,设置规则告警)
你克隆 一台服务器,然后把 IP 暴露出来,我们帮你看看不就知道了。
谢谢各位,上面提到的安全措施都很有帮助,这边会慢慢把该加防的加一下。
我之前是用 docker 搭的环境,内部的所有容器,除了 nginx 对外开放端口,其它的数据库什么的全部是走的 docker 网络,并且限制本地连接。ssh 仅允许指定 IP 连接,端口也改了。
阿里云安全组对非 80/443 端口的访问做 IP 白名单!!!
LS 们说的都是运行时环境的安全
数据安全也不能忘,记得时常备份数据……
随时准备好机器磁盘挂掉的应对方案
再就是你自己阿里云账号密码的保管
ssh 除了限制用户和尝试次数这些,端口非常有必要换,为什么呢,因为虽然换端口对于懂入侵的人来说没什么用,但是可以躲避大量自动扫描程序不断的暴力尝试,这种程序在代码里面都是写死了的默认端口
MySQL 的端口无论如何我都不建议开启外网访问,你进行再多的安全配置,一个未公开的漏洞就把你搞定了,而这种事在过去二十年里我遇到了好几次
22 端口换成 3389
3306 端口换成 1433
把 web 应用运行的权限调整成 user
把重要文件文件夹的权限调整成只有 root 可以浏览,千万别把 web 的应用文件和重要文件放一起。
你现在最大的问题是 web 应用的安全性,如果有人入侵了,丢一个 webshell 上去。这些防火墙的配置都白瞎!
ssh 不要 root 登录,不要使用密码登录,使用公钥, 任何软件不要使用默认端口,fail2ban 或者 denyhost 用起来,能不把端口暴露在公网就不要暴露
搞跳板机, ssh 只允许跳板机连接
ssh 还可以搞两步验证, 或者 port knocking
https://yifeishu.com/view/article/7pz
ssh 端口改了就算用密码登录密码复杂点就 ok:这个就不信有人人进。
mysql 这个没人硬破密码复杂点。
web 这个危险,主要是自己写的代码漏洞可以自己扫扫看。
做了 8 年的,IDC,,, 朋友,,
如果只要你的业务对外,就没有绝对的安全。
最重要的 不要把重要的数据 只放一台设备上。
如果数据库不允许远程机器链接那大可把端口关掉~就算有需求你也可以用阿里云安全组开 IP 白名单~基本没啥问题了
目前阿里云防火墙允许的端口:3306
你这个换端口的思路不错,哈哈,专门拿来误导。
鸡蛋不要放在一个篮子里 必啥都重要
ip 白名单
其实换端口没什么用,掩耳盗铃的意思,因为端口刺探的时候会返回信息,直接能判断了,你尝试 telnet 一下 MySQL 的端口就知道了
个人用的服务器,资金安全?服务器里存了自己的各种账号密码?