怎么彻底隐藏源站 IP,不被扫到?

2023-12-27 12:22:41 +08:00
 takefancy

域名套的 CF,后端已经配置了 nginx 防火墙,怎么不被扫到源站 IP 造成泄露呢?

请教下大佬

5019 次点击
所在节点    程序员
23 条回复
daimaosix
2023-12-27 12:34:52 +08:00
套了 CF ,通过查询域名的历史解析 IP 可以查到,如果裸奔的时间短可能不会查到,但是一般扫会扫 IP 段,禁止通过 IP 访问 nginx ,彻底不让源站 IP 泄露不太行
lichao
2023-12-27 12:37:00 +08:00
源站防火墙开启 ip 白名单,白名单只包括 cf 的 ip
leaflxh
2023-12-27 12:38:58 +08:00
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location / {
return 444;
}
}

server {
#sudo openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;

ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

location / {
return 444;
}
}

server {
listen 80;
server_name example.com
1.example.com
2.example.com;

return 301 https://$host$request_uri;
}
dzdh
2023-12-27 12:40:17 +08:00
leaflxh
2023-12-27 12:40:34 +08:00
已经扫到了没办法的,比如 censys.io 这种傻逼

换 IP ,或者等他一段时间扫描不到无法被主动搜索到
XiLingHost
2023-12-27 12:41:05 +08:00
https://www.cloudflare.com/zh-cn/ips/
除了这几个段的 IP ,其他全部 drop 掉就行了
drupal
2023-12-27 12:44:37 +08:00
套 CF ,关闭 ICMP 。
leaflxh
2023-12-27 12:44:43 +08:00
最好还是直接防火墙只允许 cf 的 IP 入站
MFWT
2023-12-27 12:53:31 +08:00
nginx 对于 80 返回 444 (直接切断连接),443 选择 ssl_reject_handshake
IP 白名单,只允许 CF 的 IP 访问
感觉不放心的话可以配合 CF 的 Argo Tunnel 使用,直接不暴露端口到公网
secpool
2023-12-27 14:02:39 +08:00
现在每天全球扫描的机器多的很,会扫整个公网网段的
kujou
2023-12-27 14:05:41 +08:00
天天被扫,习惯就好。
asm
2023-12-27 14:24:44 +08:00
怎么可能不会被扫描到,每天几万家安全公司的扫描器(还不带恶意代码扫描),怎么会错过。
现在好多 cloudflare 的 ip ,我扫后,端口全开,可都是假的,也就是啥都没扫出来。可以套用一下。
daisyfloor
2023-12-27 14:50:33 +08:00
以 Caddy 为例

你可以使用以下的方法:

在你的 Caddyfile 中,添加一个 trusted_proxies 的选项,把 cloudflare 的 ip 段都列出来,例如:
{
trusted_proxies 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 104.16.0.0/13 104.24.0.0/14 108.162.192.0/18 131.0.72.0/22 141.101.64.0/18 162.158.0.0/15 172.64.0.0/13 173.245.48.0/20 188.114.96.0/20 190.93.240.0/20 197.234.240.0/22 198.41.128.0/17
}

然后,在你的网站的配置中,使用 remote_ip 匹配器,来检查请求的 ip 是否在 trusted_proxies 中,如果不在,就返回 403 错误,例如:
example.com {
@not_cloudflare {
not remote_ip trusted_proxies
}
respond @not_cloudflare 403
# 其他正常的配置
}

这样,你就可以实现你想要的功能。
renfei
2023-12-27 15:59:44 +08:00
防火墙上关闭全部端口,使用 cloudflare tunnel 接入 cf
Mulch1406
2023-12-27 16:03:58 +08:00
同问国内主机的解决方案
cdlnls
2023-12-27 16:15:00 +08:00
云服务商的安全组里面设置个白名单,只允许 cf 的 IP 段访问。就算泄漏也不怕。
gam2046
2023-12-27 16:20:45 +08:00
cloudflare tunnel 即可解决,无需开端口。

除非 cloudflare 内鬼,不然就是耶稣来了也白扯。

我现在就都是这么搞的,最主要还省事,配置证书啥的都省了。
expy
2023-12-27 16:31:31 +08:00
dns 历史记录,直接扫 ip 段搜索网站内容,扫 ip 段检查证书对应的域名。
LnTrx
2023-12-27 16:38:41 +08:00
禁止 IPv4 入站,纯 IPv6 入站,且不出现在任何解析中
cnhongwei
2023-12-27 18:02:12 +08:00
不开 80 端口,只开 443 。

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

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

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

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

© 2021 V2EX