最近想搭一个服务器 大佬们来指导下安全问题

2023-05-06 10:13:32 +08:00
 Befehishaber

1 、改 ssh 端口 2 、禁止 root 远程登录 3 、禁止除 xxx 用户的一切用户 su 4 、禁用密码使用密钥 5 、上 fail2ban 6 、使用 nginx 代理 7 、除 ssh 和服务端口其他端口全部关闭 8 、vm 自动快照

在做好上述步骤后 还会存在侵入和数据丢失风险吗

8386 次点击
所在节点    Java
59 条回复
benjaminliangcom
2023-05-06 14:37:13 +08:00
WAF
yulgang
2023-05-06 15:43:54 +08:00
密码发上来看看
yxzblue
2023-05-06 15:49:53 +08:00
别在服务器上面搭网站,就没有被黑的风险!
crazyweeds
2023-05-06 16:05:13 +08:00
还是有风险,最好只给指定 IP 开放 SSH 。
剩下的风险项不限于,你使用的服务有安全漏洞或者不安全的配置,比较容易中招的,比如 Redis 。
还有,你本地可能有木马程序。。
jalena
2023-05-06 16:48:07 +08:00
你在怕什么!!!!!!!!!!!!我的博客服务器裸奔 7 年了。。。
jackmod
2023-05-06 16:53:46 +08:00
最开始先通过控制台修改 ssh 端口。
vps 提供商有防火墙的话,全禁,只允许本机 IP 访问修改后的 ssh 端口。
之后是创建普通用户,删除 root 的 ssh ,必要时通过 su 切换。
80 和 443 也没必要开,通过 cf tunnel 反向暴露。
运行的服务放在 docker 里面。
docker 使用 rootless 版本。
x77
2023-05-06 17:05:09 +08:00
感觉 1 、2 、3 、5 、6 给自己造成的麻烦大于安全,还不如限制登录的 IP ,只有你自己 IP 能登录
Scen
2023-05-06 17:07:49 +08:00
说的这么详细了,不如问问 chatgpt
EvanQu
2023-05-06 19:35:16 +08:00
只改了端口+ssl
其他基本属于裸奔
caomingjun
2023-05-06 20:26:18 +08:00
借楼问下,我长期设置只允许密钥登录,但是从来没改过 SSH 端口,会存在什么风险吗?
bugmakerxs
2023-05-06 20:50:18 +08:00
提供一个 vpn 思路,wireguard 固定端口+固定 ip 允许登录就好。
gzlock
2023-05-06 20:57:37 +08:00
@HackerTerry #38 我家里尝鲜用的话,就是域名的 dns 绑定到 cf 那里之后就可以用 tunnel 服务了,也不用怎么配置啊,先装 cf tunnel(在 github 开源的,有安装方法),从 cli 启动 tunnel 后要求你登录 cf 账号,登录之后就去 cf tunnel 网页绑定机器就可以了
Paulownia
2023-05-07 00:32:31 +08:00
一般来说你的措施已经有比较好的效果了,互联网上充斥着的自动化攻击多数都是一些常见漏洞和弱口令等脆弱性的利用。只要不是被人针对,你的措施算是比较有效了。但是数据安全之类的,不是只是被攻击才存在风险,人为的失误也会造成你担心的风险,比如你自己的策略调整可能导致你前面的一些措施都失效,手误删除了什么数据或者配置等,所以说还是前面大佬们都说过的问题,没有绝对的安全,你的措施只能是让自己的服务抵御一部分风险。
benjaminliangcom
2023-05-07 00:46:22 +08:00
你这只是系统层面的 应用层面才是主要的突破口
n18255447846
2023-05-07 01:31:31 +08:00
老哥你这造原子弹呢,什么数据这么保密
HackerTerry
2023-05-07 16:30:31 +08:00
@gzlock 内网穿透吗?在国内速度应该挺感人的
onice
2023-05-07 21:13:57 +08:00
对于大多数场景的安全加固,从三个方面入手。分别是:

1. 项目安全。如果是自己开发的项目,专业点的可以找人进行代码审计,次一点是也要找渗透测试人员进行漏洞挖掘。如果是自己干,最起码要通过漏洞扫描器的测试。例如 awvs 。如果这一步检测出安全问题,可以修改代码进行修复。如果是使用的开源项目,要确保项目不存在公开漏洞。例如很多网站都是用 php 开发的,但开发 php 项目的框架 thinkphp5 存在漏洞。因此,如果你部署的项目使用这个版本的框架开发的,就容易受到攻击。当然,自己开发的项目,也要避免使用存在漏洞的库。不过一般知名的 web 漏洞扫描器都能检测出来这些安全问题。

2. 系统安全。大多数时候,就操作系统层面来说,系统默认配置就足够安全了。你只需要保持操作系统打上最新的补丁就行了。当然,对于弱口令这类问题,服务器操作系统基本上都有密码复杂度检测,密码简单了无法设置密码的。当然,你关了这个检查,强行设定的简单的密码,就没办法了。

3. 应用安全。大多数时候,操作系统本身是很安全的。但是操作系统上安装的应用却不一定安全。例如 Linux 操作系统上的 ssh 应用,你使用了弱口令,攻击者可以通过暴力破解攻进来。或则是你安装了 redis ,没有设置密码,而默认配置是没有密码的,攻击者可以通过控制 redis 进而控制服务器。还有你使用了其他低版本含有漏洞的软件。例如之前比较火的心脏滴血漏洞。这一步往往是最难的,因为一个系统的软件包那么多,我们无法知道哪些软件包存在问题。不过,你可以使用 nessus 扫描器,来找出哪些软件存在问题。对于存在问题的软件包,只需要升级到最新的版本即可。
onice
2023-05-07 21:24:11 +08:00
@onice
问:
1 、改 ssh 端口 2 、禁止 root 远程登录 3 、禁止除 xxx 用户的一切用户 su 4 、禁用密码使用密钥 5 、上 fail2ban 6 、使用 nginx 代理 7 、除 ssh 和服务端口其他端口全部关闭 8 、vm 自动快照

在做好上述步骤后 还会存在侵入和数据丢失风险吗

答:
1. 改了 ssh 端口没用,使用端口扫描器依旧能找到你设置的新端口
2. 禁止 root 远程登录。可以防御部分攻击,例如大部分僵尸木马,都是暴力破解 root 口令控制服务器,做到这点可防止这类木马。
3. 禁止除 xxx 用户的一切用户。可以提升攻击者的攻击门槛,但作为一个合格的攻击者,还有其他方法在系统中添加新用户。
4. 禁用密码使用密钥。可以防御针对 ssh 服务的暴力破解。但无法防御钓鱼和社会工程学。例如攻击者通过网站找到你,告诉你网站有问题,给你发包含木马的文档,如果你中招了,可以窃取你的私钥。
5. 上 fail2ban 。可以限制同一个 IP 的访问频率,从而防止 CC 攻击,但攻击者可能会使用分布式的 DDos ,这样就防不住了。
6 、使用 nginx 代理。这一步没啥意义。如果 web 应用出现问题,无论你用的是 httpd(apache),tomcat ,还是 iis ,都防不住。
7. 除 ssh 和服务端口其他端口全部关闭。这个能提高攻击门槛吧。攻击者不会只从端口上找漏洞。
8. vm 自动快照。这个是可以保证数据完整性,但无法保证安全性。
Befehishaber
2023-05-08 09:46:40 +08:00
@onice 受教了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/937762

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX