1 、改 ssh 端口 2 、禁止 root 远程登录 3 、禁止除 xxx 用户的一切用户 su 4 、禁用密码使用密钥 5 、上 fail2ban 6 、使用 nginx 代理 7 、除 ssh 和服务端口其他端口全部关闭 8 、vm 自动快照
在做好上述步骤后 还会存在侵入和数据丢失风险吗
1
mohumohu 2023-05-06 10:15:49 +08:00
你不如搭个 zerotier ,一个端口都不用开
|
2
cwcc 2023-05-06 10:16:28 +08:00 1
没有绝对的安全,只有降低风险的措施。所以你说还会存在侵入和数据丢失风险的问题,答案永远是否定的。你能做的只有加强安全检测和防护,以及数据备份。你提到的几个措施都是很有效的防范措施,但不能保证服务器不出事。另外,对于开公网的服务器,如果业务很重要的话,也要在外面套 IPS/WAF 等措施。
|
4
taogen 2023-05-06 10:18:32 +08:00 2
|
5
gzlock 2023-05-06 10:19:49 +08:00
其实用外网的 vps+cf tunnel 的可行性怎么样?
|
6
seers 2023-05-06 10:20:07 +08:00 via Android 1
我有台公网小鸡跑了三四年了都没被黑过,就关掉了密码登陆用 key
|
7
mineralsalt 2023-05-06 10:23:43 +08:00
只要把 root 密码搞复杂些, 就完全够了
|
8
bjzhush 2023-05-06 10:28:08 +08:00
除了防攻击,还要做定时数据备份,把万一被黑或者其它意外之后丢失数据的损失降低的最小
|
9
defunct9 2023-05-06 10:29:34 +08:00
裸奔是王道
|
10
poyanhu 2023-05-06 10:32:55 +08:00
换个 ssh 端口,用证书登陆。其他无所谓了。
|
11
Hack3rHan 2023-05-06 10:33:54 +08:00
其实你自己用的话,你只需要关注对外暴露的服务就可以了,改 SSH 端口都多余的,减小不必要的暴露面,保证运行的服务没有已知漏洞就可以了。公司服务器的话,总体上也是类似的思路,要是不安心,应该不难找到一些配置规范相关文档,参考着来。
|
12
Befehishaber OP @cwcc 哈哈哈
|
13
Befehishaber OP @gzlock 不知道 没听别人谈过呢
|
14
iyiluo 2023-05-06 10:36:14 +08:00
只要服务器提供了对外服务,就存在入侵的风险,因为软件 bug 是永远无法消灭的
|
15
Befehishaber OP @seers 嗯嗯 理论上是这样 但是一直被扫描还是会影响性能的
|
16
Befehishaber OP @taogen 很全面 应该够大部分人用了
|
17
Moofeng 2023-05-06 10:49:31 +08:00
一般服务器最主要的风险就是暴露在外的服务,其他的不用过多担心,但问题就是时间一长,很多人就疏忽了对自己这些服务的管理。
|
18
benedict00 2023-05-06 10:53:28 +08:00
有时间可看看这个,算是安全基线的东西,有些参考价值。https://learn.cisecurity.org/benchmarks
|
19
bingfengfeifei 2023-05-06 10:54:55 +08:00
被攻破的基本上都是弱密码或者有漏洞的
|
20
benedict00 2023-05-06 10:56:12 +08:00
|
21
InDom 2023-05-06 10:57:45 +08:00 1
只做了这么几件事:
ssh 端口改掉, 只允许密钥登陆, 所有服务跑在 docker 中. 除了 ssh 端口外只通过 docker 中的 nginx 暴露(docker 中的)端口. |
22
icegaze 2023-05-06 11:06:40 +08:00 via Android
ssh 可以用敲端口方式来保护,
平时不会打开端口, 用的时候依次敲特定几个端口, 打开防火墙。 方便的狠。 |
23
Linken404 2023-05-06 11:19:13 +08:00
高位非常用 ssh 端口+仅密钥登录,基本上就能防范绝大部分常规扫描嗅探了,有时候不太重要的数据做好备份就好,搞太麻烦会大幅增加平时的维护成本也挺烦的。
|
24
fox0001 2023-05-06 11:20:39 +08:00 via Android
我们试过服务器做好了安全防护,最后问题出在部署的服务,其漏洞被利用了。
|
25
adoal 2023-05-06 11:22:52 +08:00
别忘了操作系统组件的安全更新。
|
26
0o0O0o0O0o 2023-05-06 11:28:13 +08:00 via iPhone
搜点 Linux server hardening 、security baseline 跟着抄抄、学学。除了 ssh 什么也别跑,服务全部放在 rootless container 里。
也就够了 |
27
liuxu 2023-05-06 11:33:43 +08:00
差不多了,还觉得不安全就上 selinux ,几年前写过 centos 安装后的安全配置,现在不建议 centos 了,但是相关的软件在 debian 也能装
https://www.liuquanhao.com/posts/Centos7%E4%BB%8E%E5%88%9D%E6%AC%A1%E7%99%BB%E9%99%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%B0%E5%AE%89%E8%A3%85nginx%E9%85%8D%E7%BD%AEhttps%E5%85%A8%E8%A7%A3/#5ssh%E9%85%8D%E7%BD%AE%E5%AE%8C%E6%88%90 |
28
xuanbg 2023-05-06 11:39:59 +08:00
无需如此麻烦,除 80/443 外,其他端口全 ip 白名单,再加上服务容器化就足够安全了。
|
29
xuanbg 2023-05-06 11:42:32 +08:00
@fox0001 所以服务要容器化!漏洞在所难免,容器化后通过漏洞入侵只能在你的容器里面转悠,无法造成更大的破坏。容器么,坏掉就坏掉,重建一个也就几秒钟的事情。
|
30
ZoeMak 2023-05-06 11:52:27 +08:00
试试 fail2ban ,ssh 登录密码设置复杂些,设置 1 小时内失败 1 次就 ban 一小时
|
31
chenPiMeiHaoChi 2023-05-06 11:57:12 +08:00
开个白名单就完了,没啥重要东西不用这么复杂
|
32
nba2k9 2023-05-06 13:07:32 +08:00
如果是 ecs 的话直接设置安全组白名单可以吗?
|
33
rm0gang0rf 2023-05-06 13:16:10 +08:00
所以 ddos 怎么防
|
34
alex8 2023-05-06 13:35:02 +08:00 via iPhone
fail2ban 对密钥登陆没作用,密钥证书除非泄漏 破解的可能性几乎不存在
|
35
taogen 2023-05-06 13:58:46 +08:00
@rm0gang0rf Cloudflare DDoS Protection
|
36
codewld 2023-05-06 14:06:13 +08:00
开 ssh ,让我上去看看
|
37
aaa5838769 2023-05-06 14:13:16 +08:00
key 登陆,制定 IP 访问。
|
38
HackerTerry 2023-05-06 14:13:29 +08:00
@gzlock 请问怎么配置?头一次听说 cf tunnel ,听起来很安全
|
40
Befehishaber OP @xuanbg 有道理
|
41
benjaminliangcom 2023-05-06 14:37:13 +08:00
WAF
|
42
yulgang 2023-05-06 15:43:54 +08:00
密码发上来看看
|
43
yxzblue 2023-05-06 15:49:53 +08:00
别在服务器上面搭网站,就没有被黑的风险!
|
44
crazyweeds 2023-05-06 16:05:13 +08:00
还是有风险,最好只给指定 IP 开放 SSH 。
剩下的风险项不限于,你使用的服务有安全漏洞或者不安全的配置,比较容易中招的,比如 Redis 。 还有,你本地可能有木马程序。。 |
45
jalena 2023-05-06 16:48:07 +08:00
你在怕什么!!!!!!!!!!!!我的博客服务器裸奔 7 年了。。。
|
46
jackmod 2023-05-06 16:53:46 +08:00
最开始先通过控制台修改 ssh 端口。
vps 提供商有防火墙的话,全禁,只允许本机 IP 访问修改后的 ssh 端口。 之后是创建普通用户,删除 root 的 ssh ,必要时通过 su 切换。 80 和 443 也没必要开,通过 cf tunnel 反向暴露。 运行的服务放在 docker 里面。 docker 使用 rootless 版本。 |
47
x77 2023-05-06 17:05:09 +08:00
感觉 1 、2 、3 、5 、6 给自己造成的麻烦大于安全,还不如限制登录的 IP ,只有你自己 IP 能登录
|
48
Scen 2023-05-06 17:07:49 +08:00
说的这么详细了,不如问问 chatgpt
|
49
EvanQu 2023-05-06 19:35:16 +08:00
只改了端口+ssl
其他基本属于裸奔 |
50
caomingjun 2023-05-06 20:26:18 +08:00 via Android
借楼问下,我长期设置只允许密钥登录,但是从来没改过 SSH 端口,会存在什么风险吗?
|
51
bugmakerxs 2023-05-06 20:50:18 +08:00
提供一个 vpn 思路,wireguard 固定端口+固定 ip 允许登录就好。
|
52
gzlock 2023-05-06 20:57:37 +08:00
@HackerTerry #38 我家里尝鲜用的话,就是域名的 dns 绑定到 cf 那里之后就可以用 tunnel 服务了,也不用怎么配置啊,先装 cf tunnel(在 github 开源的,有安装方法),从 cli 启动 tunnel 后要求你登录 cf 账号,登录之后就去 cf tunnel 网页绑定机器就可以了
|
53
Paulownia 2023-05-07 00:32:31 +08:00
一般来说你的措施已经有比较好的效果了,互联网上充斥着的自动化攻击多数都是一些常见漏洞和弱口令等脆弱性的利用。只要不是被人针对,你的措施算是比较有效了。但是数据安全之类的,不是只是被攻击才存在风险,人为的失误也会造成你担心的风险,比如你自己的策略调整可能导致你前面的一些措施都失效,手误删除了什么数据或者配置等,所以说还是前面大佬们都说过的问题,没有绝对的安全,你的措施只能是让自己的服务抵御一部分风险。
|
54
benjaminliangcom 2023-05-07 00:46:22 +08:00 via iPhone
你这只是系统层面的 应用层面才是主要的突破口
|
55
n18255447846 2023-05-07 01:31:31 +08:00 1
老哥你这造原子弹呢,什么数据这么保密
|
56
HackerTerry 2023-05-07 16:30:31 +08:00
@gzlock 内网穿透吗?在国内速度应该挺感人的
|
57
onice 2023-05-07 21:13:57 +08:00 1
对于大多数场景的安全加固,从三个方面入手。分别是:
1. 项目安全。如果是自己开发的项目,专业点的可以找人进行代码审计,次一点是也要找渗透测试人员进行漏洞挖掘。如果是自己干,最起码要通过漏洞扫描器的测试。例如 awvs 。如果这一步检测出安全问题,可以修改代码进行修复。如果是使用的开源项目,要确保项目不存在公开漏洞。例如很多网站都是用 php 开发的,但开发 php 项目的框架 thinkphp5 存在漏洞。因此,如果你部署的项目使用这个版本的框架开发的,就容易受到攻击。当然,自己开发的项目,也要避免使用存在漏洞的库。不过一般知名的 web 漏洞扫描器都能检测出来这些安全问题。 2. 系统安全。大多数时候,就操作系统层面来说,系统默认配置就足够安全了。你只需要保持操作系统打上最新的补丁就行了。当然,对于弱口令这类问题,服务器操作系统基本上都有密码复杂度检测,密码简单了无法设置密码的。当然,你关了这个检查,强行设定的简单的密码,就没办法了。 3. 应用安全。大多数时候,操作系统本身是很安全的。但是操作系统上安装的应用却不一定安全。例如 Linux 操作系统上的 ssh 应用,你使用了弱口令,攻击者可以通过暴力破解攻进来。或则是你安装了 redis ,没有设置密码,而默认配置是没有密码的,攻击者可以通过控制 redis 进而控制服务器。还有你使用了其他低版本含有漏洞的软件。例如之前比较火的心脏滴血漏洞。这一步往往是最难的,因为一个系统的软件包那么多,我们无法知道哪些软件包存在问题。不过,你可以使用 nessus 扫描器,来找出哪些软件存在问题。对于存在问题的软件包,只需要升级到最新的版本即可。 |
58
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 自动快照。这个是可以保证数据完整性,但无法保证安全性。 |
59
Befehishaber OP @onice 受教了
|