域名套的 CF,后端已经配置了 nginx 防火墙,怎么不被扫到源站 IP 造成泄露呢?
请教下大佬
1
daimaosix 2023-12-27 12:34:52 +08:00
套了 CF ,通过查询域名的历史解析 IP 可以查到,如果裸奔的时间短可能不会查到,但是一般扫会扫 IP 段,禁止通过 IP 访问 nginx ,彻底不让源站 IP 泄露不太行
|
2
lichao 2023-12-27 12:37:00 +08:00
源站防火墙开启 ip 白名单,白名单只包括 cf 的 ip
|
3
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; } |
4
dzdh 2023-12-27 12:40:17 +08:00
|
6
XiLingHost 2023-12-27 12:41:05 +08:00
https://www.cloudflare.com/zh-cn/ips/
除了这几个段的 IP ,其他全部 drop 掉就行了 |
7
drupal 2023-12-27 12:44:37 +08:00
套 CF ,关闭 ICMP 。
|
8
leaflxh 2023-12-27 12:44:43 +08:00
最好还是直接防火墙只允许 cf 的 IP 入站
|
9
MFWT 2023-12-27 12:53:31 +08:00
nginx 对于 80 返回 444 (直接切断连接),443 选择 ssl_reject_handshake
IP 白名单,只允许 CF 的 IP 访问 感觉不放心的话可以配合 CF 的 Argo Tunnel 使用,直接不暴露端口到公网 |
10
secpool 2023-12-27 14:02:39 +08:00
现在每天全球扫描的机器多的很,会扫整个公网网段的
|
11
kujou 2023-12-27 14:05:41 +08:00
天天被扫,习惯就好。
|
12
asm 2023-12-27 14:24:44 +08:00
怎么可能不会被扫描到,每天几万家安全公司的扫描器(还不带恶意代码扫描),怎么会错过。
现在好多 cloudflare 的 ip ,我扫后,端口全开,可都是假的,也就是啥都没扫出来。可以套用一下。 |
13
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 # 其他正常的配置 } 这样,你就可以实现你想要的功能。 |
14
renfei 2023-12-27 15:59:44 +08:00
防火墙上关闭全部端口,使用 cloudflare tunnel 接入 cf
|
15
Mulch1406 2023-12-27 16:03:58 +08:00
同问国内主机的解决方案
|
16
cdlnls 2023-12-27 16:15:00 +08:00
云服务商的安全组里面设置个白名单,只允许 cf 的 IP 段访问。就算泄漏也不怕。
|
17
gam2046 2023-12-27 16:20:45 +08:00 1
cloudflare tunnel 即可解决,无需开端口。
除非 cloudflare 内鬼,不然就是耶稣来了也白扯。 我现在就都是这么搞的,最主要还省事,配置证书啥的都省了。 |
18
expy 2023-12-27 16:31:31 +08:00
dns 历史记录,直接扫 ip 段搜索网站内容,扫 ip 段检查证书对应的域名。
|
19
LnTrx 2023-12-27 16:38:41 +08:00
禁止 IPv4 入站,纯 IPv6 入站,且不出现在任何解析中
|
20
cnhongwei 2023-12-27 18:02:12 +08:00
不开 80 端口,只开 443 。
|
21
cnhongwei 2023-12-27 18:05:42 +08:00
不开 80 端口,只开 443 。
nginx 默认站点设置如下: server { listen 443 ssl default_server; ssl_reject_handshake on; } 这样防止取 ssl 证书判断你的域名。正式站点可以过滤 ip ,可以设置 cloudflare 客户端证书验证。这样扫描到你的服务器时候,没有办法探测你的域名,所以也就没有办法来搞你,如果通过 ssl 证书已经把你的 ip 和域名对应了,只能换个 ip 。 |
22
chocotan 2023-12-27 18:53:10 +08:00
先和 cf 要托管提供商,然后扫这个提供商的所有 ip ,80 、443 端口能通就说明在这个 ip 上
我有几个网站就是被这么投诉的,然后被服务器提供商要求整改 |
23
yianing 2023-12-28 00:33:48 +08:00
tunnel, 不开端口扫到了也没用
|