1
opengps 2023-05-07 10:34:10 +08:00
端口号,你虽然改了却依然是对外暴露的,3389 可能不得已,但数据库真的需要对外暴露吗?没必要就关掉,实在有必要就配合 ip 白名单,甚至 3389 也可以不开放时候通过安全组关闭
|
2
xshell 2023-05-07 10:39:04 +08:00
公网开这些很容易被入侵。
|
3
tohert OP @opengps 我现在对外的默认端口就是 80 和 443 了,3389 和数据库的 443 默认端口我都改掉了 。 数据库我得本地能连,方便找问题。 所以现在看到事件查看器里面每秒都有那种尝试登录的记录就慌
|
4
tohert OP @xshell 我现在只是没用默认端口了,年初的时候用的默认端口就被勒索了。 其他的设置百度找了一圈,按照教程弄了下,在事件查看器里面还是有那个记录,基本每秒钟都有
|
5
whileFalse 2023-05-07 10:57:10 +08:00
突然想到可不可以安装一个 Tailscale 等虚拟组网软件,然后你在云服务器上启动的数据库仅监听 Tailscale 网络的 IP ?这样你本地也连接到 Tailscale ,就可以从本地无感访问云服务器的数据库了,但公网无法连接到数据库。不过 3389 的话就要用 windows 防火墙进行设置了。
|
6
kanecolin 2023-05-07 11:19:25 +08:00
给你个思路:
写一个 2FA 验证的 web 服务,服务可以做 2 个事儿: - 随机 2 个大端口号,做端口映射,针对外部访问的,同时修改相应的映射关系和防火墙规则 - 将连接地址和随机端口号这些信息通过钩子给你的 IM 的 bots - 监听 rd 连接关闭的事件,关闭防火墙端口映射关系 这个解决方案可以尽可能的避免非人控期间的暴露风险但是没有办法防止远程期间的端口扫描干扰 |
7
AkaGhost 2023-05-07 15:09:56 +08:00 via Android
考虑一下 Tailscale 或者 Zerotier
|
8
iloveayu 2023-05-07 15:19:50 +08:00 via iPhone
3388 好办,加个 2FA 服务或者 usb 硬件密钥,rdp 可以支持的,成型方案也挺多,如果不自己写基本都需要付费。
数据库没啥好办法,上随机的强密码吧。 |
9
justjy 2023-05-07 15:26:02 +08:00
终极解决方案是上个硬件防火墙
|
10
justjy 2023-05-07 15:30:49 +08:00
云服务器的话 只开放 3389 端口并限定访问的 ip 地址段 SQL 维护通过 RDP 进行
|
11
dedemao 2023-05-07 15:49:43 +08:00
只开 80 和 443 ,其余要么关掉,要么限定指定 IP 访问。administrator 账号必须禁用。最重要的是做好备份,即便被勒索了,有备份,可以不求人。
|
12
unclemcz 2023-05-07 16:02:27 +08:00 via Android
只要在公网上,不管 win 还是 linux ,我只相信白名单访问。
|
13
tohert OP @whileFalse 我现在处理的只是暂时不用默认的端口,数据库还得外网能连。
|
15
tohert OP @wyf001912hp 那样弄,数据库无法连上了。
|
18
tohert OP |
19
IDAEngine 2023-05-07 16:27:40 +08:00
zerotier 组网 后走虚拟局域网 IP 白名单
|
20
adoal 2023-05-07 16:45:48 +08:00 1
都在跟你说数据库端口不要对公网开放,你非要坚持说数据库端口不放公网你就没法维护……
|
21
crab 2023-05-07 16:49:14 +08:00
事件查看器日志有记录被扫描很正常啊,或者直接 ipsec 设置白名单 IP 段才响应。
|
22
serialt 2023-05-07 16:52:20 +08:00
我自己 linux 开发服务器的安全方案,只暴露 openvpn 的端口,其他任何访问都只能通过使用 openvpn 接入
|
23
serialt 2023-05-07 16:55:47 +08:00
除非有能力黑掉 openvpn 或者云,否则基本不用担心
|
25
justjy 2023-05-07 18:10:38 +08:00
@tohert 企业级解决方案是只开放提供服务的端口如 80 443 类似 RDP 3389/MSSQL 1433 这种运维端口一律不对外 只能通过内网访问(自行组网)
|
26
deorth 2023-05-07 18:11:54 +08:00 via Android
雇个运维
|
27
exploreexe 2023-05-07 18:40:19 +08:00
主要是 Windows 的漏洞太多,特别是 sqlserver 简直是重灾区。
尽量的远程连接,只开放 443 和 80 会有人批量的扫 IP 段尝试弱口令 |
28
unclemcz 2023-05-07 18:43:36 +08:00 via Android
@tohert #18 我现在也是本地无固定 ip ,每次运维前我会通过云服务商的 web 端进去调整白名单,然后运维机再连进去,虽然麻烦,但和风险相比,这种麻烦可以接受,再者运维次数没那么频繁,实际上这几年下来感觉还好。
|
29
Felldeadbird 2023-05-07 19:16:51 +08:00
只开放 80 和 443. 别的端口通过云内网,或者端口映射,或者防火墙白名单规则临时开放。
|
30
geekzu 2023-05-07 19:29:23 +08:00
楼上都说的差不多了,补充一下:
绝大部分类型的运维访问( RDP 、SSH 、数据库)都可以通过堡垒机中转,开源的可以看下 JumpServer ,商业的很多,就不列举了。 JumpServer 开源版对数据库类型支持的比较少,MSSQL 这种情况可以在云上跑个 SSH 服务,DBeaver 之类的数据库运维工具都支持 SSH 代理连接数据库的,走 SSH 会安全不少。 |
31
zhandouji2023 2023-05-07 19:35:46 +08:00 via Android
我有个 Ubuntu 当共享文件,root 密码是 1 兄弟单位的电脑也能访问,还好家里访问不了。应该不是公网 ip
|
32
onice 2023-05-07 20:47:33 +08:00
网络空间中存在大量扫描器。你改了端口为非默认端口,也会收到扫描的流量,所以你能看到日志。这是正常的,不必紧张,为了防御暴力破解,设置一个强密码即可。
应用是 C#开发的,服务器系统是 Windows ,Web 中间件是 IIS ,数据库是 sqlserver 。根据这些条件,可以采用最小权限原则对系统和应用进行加固。 1. 确保 C#开发的系统没有漏洞。如果你是开发的 web 应用,要确保没有 SQL 注入,上传漏洞等。大公司做这块,会找代码审计人员进行审计,或者是找渗透测试人员进行漏洞挖掘。这一点,如果自己来做安全的话,可以通过 awvs 进行扫描,百度上有 crarck 。这一步,是保障部署的应用安全。 2. Windows 系统,一定要确保开启自动更新。部署应用前,应当先打上所有补丁。这一步是保障操作系统的安全。 3. 对于 IIS 中间件,要进行安全加固,关闭不必要的组件,采用最小化组件原则,即开发的应用用到什么就开什么,不要图方面把所有组件全部打开。这一步,核对安全基线进行加固即可。 参考文档: https://download.wanglejie.com/CyberSecurity/目录下的 IIS 服务器安全配置基线文档。 4. sqlserver 数据库,需要做两件事,一是检查数据库服务的权限,运行数据库进程的账户必须是普通用户,就是打开系统的服务管理,确保数据库的服务不是以管理员或 system 用户启动。第二个就是数据库必须是强口令,以及网站配置文件中的数据库连接用户不能用 sa ,应该用普通用户,且该用户只对 web 应用用到的数据库有访问权限。例如我部署网站创建了一个 app 数据库,那么我需要建立一个普通用户并设置复杂的密码,让这个普通用户的权限只能操作 app 这个库。然后网站的配置文件中,使用这个普通用户。 以上便是针对你实际情况的安全方案。 |
33
yzy8788 2023-05-07 21:55:21 +08:00
1 、免费开源的 OpenVPN ,可以把服务器和本地电脑搭建成局域网,然后服务器上的数据库端口只对这个局域网 IP 开放
2 、web.config 里面的数据库连接字符串一定要加密,否则 web 被黑,直接看到数据库密码了,太危险 |
34
yzy8788 2023-05-07 22:04:19 +08:00
OpenVPN 搭建后,本地电脑和服务器就是一个局域网。服务器上的所有端口无需设置,对局域网机器默认都是开放的。在阿里云(假如用的是阿里云机器)后台,云服务器的安全组里不要开放 1433 (即 sqlserver 的端口)。这样公网是无法连接到 1433 端口的。VPN 是很多网络公司都会用的做法,比如大学、快递公司、医院、保险公司等等
|
35
tohert OP 感谢各位大佬的解答,小弟不胜感激。各位大佬说的很详细,我会结合自身的情况做一些调整。 再次感谢!
|
36
joynvda 2023-05-07 23:05:35 +08:00
个人尝试用 Fail2ban 阻止 IP 访问 Linux 。没有在 win 上试过 Fail2ban 。
可以做一个蜜罐接收 3389 端口的请求。任何试图连接这个端口的 IP 自动放到黑名单。 Fail2ban 还是比较笨,逐个 IP 放到 iptables 上。为了避免表太大,我只是放到黑名单 24 小时解封。 不能杜绝扫描、尝试,只是大大地提高短时间系统被攻破的机会。 |
37
billccn 2023-05-08 04:12:13 +08:00
等下一个 RDP 或者 MSSQL 缓冲器溢出漏洞出来,楼主的机器毫秒被爆,到时候全世界都能登进楼主的服务器,除了楼主自己,就不要说数据了
Windows Server 的话,防火墙里把 RDP 设成只有 localhost 可以访问,然后安装自带的 Remote Desktop Web Access 角色(通过 IIS 代理 RDP 访问),这样的话只需要 443 端口。这个有现成文档,照着配置就可以。还可以在外面套一个 CDN 或者应用防火墙,把绝大多数自动扫描拒之门外。 SQL Server 的话也只开给 localhost ,每次需要调试了先 RDP 进去,把自己的 IP 临时加入防火墙允许 IP 列表 |
38
Chad0000 2023-05-08 04:14:56 +08:00 via iPhone
我也写 C#,windows 建议你使用云提供的防火墙,只开 80 和 443 ,远程桌面和数据库端口改掉,同时在云防火墙里面设置 IP 白名单访问。每次登录前检查自己的 IP 并上云加到防火墙里。
我之前一直这样做,直到我家变成了固定 IP (公司福利),就爽多了。 |
39
WindProtect 2023-05-08 09:27:35 +08:00
我们也是 ip 无固定,然后脚本监听 ip 变化,每次一变化就更新下云服务的所有白名单。
|
40
p1gd0g 2023-05-08 10:49:33 +08:00
公司的方案是 vpn 后当成内网使用。但是个人的话搞这么些东西可能划不来。密码搞复杂点我感觉就足够了,怕勒索就加备份呗,成本又不高
|
41
t133 2023-05-08 19:40:10 +08:00 via iPhone
Fail2ban
|
42
tohert OP 小弟感谢各位大佬给意见 。 /抱拳
|