저는 Cloudflare를 사용하고 있습니다.IPv4그리고IPv6Cloudflare가 소유하지 않은 IP에서 내 서버로의 모든 연결을 차단하는 목록입니다.
sudo ufw status
서버에서 이것을 실행 하면 다음과 같은 결과를 얻습니다.
Status: active
To Action From
-- ------ ----
80,443/tcp ALLOW 173.245.48.0/20 # Cloudflare IP
80,443/tcp ALLOW 103.21.244.0/22 # Cloudflare IP
80,443/tcp ALLOW 103.22.200.0/22 # Cloudflare IP
80,443/tcp ALLOW 103.31.4.0/22 # Cloudflare IP
80,443/tcp ALLOW 141.101.64.0/18 # Cloudflare IP
80,443/tcp ALLOW 108.162.192.0/18 # Cloudflare IP
80,443/tcp ALLOW 190.93.240.0/20 # Cloudflare IP
80,443/tcp ALLOW 188.114.96.0/20 # Cloudflare IP
80,443/tcp ALLOW 197.234.240.0/22 # Cloudflare IP
80,443/tcp ALLOW 198.41.128.0/17 # Cloudflare IP
80,443/tcp ALLOW 162.158.0.0/15 # Cloudflare IP
80,443/tcp ALLOW 104.16.0.0/13 # Cloudflare IP
80,443/tcp ALLOW 104.24.0.0/14 # Cloudflare IP
80,443/tcp ALLOW 172.64.0.0/13 # Cloudflare IP
80,443/tcp ALLOW 131.0.72.0/22 # Cloudflare IP
80,443/tcp ALLOW 2400:cb00::/32 # Cloudflare IP
80,443/tcp ALLOW 2606:4700::/32 # Cloudflare IP
80,443/tcp ALLOW 2803:f800::/32 # Cloudflare IP
80,443/tcp ALLOW 2405:b500::/32 # Cloudflare IP
80,443/tcp ALLOW 2405:8100::/32 # Cloudflare IP
80,443/tcp ALLOW 2a06:98c0::/29 # Cloudflare IP
80,443/tcp ALLOW 2c0f:f248::/32 # Cloudflare IP
그러나 telnet xxx.xxx.xxx.xxx 80
로컬 컴퓨터(xxx.xxx.xxx.xxx 서버의 IP)에서 실행하면 다음과 같은 결과가 나타납니다.
Trying xxx.xxx.xxx.xxx...
Connected xxx.xxx.xxx.xxx.
그래서 저는 차단되지 않은 것처럼 보입니다. 제 로컬 IP가 목록에 없기 때문에 차단되어야 합니다. 내가 뭐 잘못 했어요?
업데이트 1:
동일한 테스트를 수행하고 내 IP가 화이트리스트에 포함되지 않았는지 확인하기 위해 다른 서버를 배포했습니다. 결과는 동일합니다.
업데이트 2:
이렇게 하면 tracepath xxx.xxx.xxx.xxx
다음과 같은 결과가 나타납니다(IP 및 도메인이 비난됨).
1?: [LOCALHOST] pmtu 1472
1: <MyComputerName>.mshome.net 0.576ms
1: <MyComputerName>.mshome.net 0.365ms
2: 10.0.0.1 0.790ms
3: my.isp.provider.com 8.934ms
4: <My.Public.IP.Address> 9.595ms asymm 5
5: no reply
6: an.isp.that.i.dont.know.com 33.937ms
7: same.isp.that.i.dont.know.com 46.866ms asymm 6
8: the.isp.that.i.dont.know.com 45.673ms asymm 5
9: <IP.Owned.By.Cloud.My.Provider> 42.138ms asymm 7
10: no reply
11: no reply
12: no reply
13: no reply
14: no reply
15: no reply
16: no reply
17: no reply
18: no reply
19: no reply
20: no reply
21: no reply
22: no reply
23: no reply
24: no reply
25: no reply
26: no reply
27: no reply
28: no reply
29: no reply
30: no reply
Too many hops: pmtu 1472
Resume: pmtu 1472
답변1
서버를 잠그는 IP 대신 Cloudflare 인증 풀을 사용하는 것이 좋습니다.
IP가 동일하게 유지된다고 보장할 수 없으므로 cronjob을 실행하여 cloudlfare에서 IP를 가져오고 방화벽을 업데이트해야 합니다. 또한 귀하의 원래 IP를 알고 있다면 내 Cloudflare 사이트를 통해 해당 DNS에 계속 연결할 수 있습니다. 이는 IP 화이트리스팅 보안 조치를 쉽게 무력화할 수 있습니다.
Cloudflare 개발자 문서에서 인증된 가져오기에 대한 정보를 찾을 수 있습니다. https://developers.cloudflare.com/ssl/origin-configuration/authenticated-origin-pull/
답변2
문제는 Docker가 노출된 포트를 열지만 UFW에는 표시되지 않는다는 것입니다. 죄송합니다. Docker에 대해서는 언급하지 않았습니다. 나는 그것이 그것과 관련이 있다고 상상할 수 없습니다.
이 스레드를 참조하세요:https://serverfault.com/questions/962012/ufw-not-blocking-incoming-traffic