IPTables 및 UFW 문제

Discourse 커뮤니티 여러분,

보통 웹서버를 실행할 때는 Cloudflare와 함께 다음 스크립트를 사용합니다:

Cloudflare 리버스 프록시 뒤에 있더라도 Censys 또는 유사한 도구를 통해 쉽게 발견될 수 있기 때문에 공개된 백엔드 IP를 선호하지 않습니다.

Discourse에서 이를 재현하기 위해 여러 방법을 시도해 보았지만, 작동하지 않습니다.

IPTables를 사용한 시도도 해 보았습니다:

Discourse와 함께 비슷한 솔루션을 성공적으로 적용해 본 분이 계신가요?

Docker는 IP 테이블을 깨뜨리는 작업을 수행합니다. Google에서 검색해 보시는 게 좋을 것 같아요.

저도 그분과 동의합니다. 디스커스가 이렇게 작동했으면 좋겠어요: 직접 IP로 접속하면 흰 화면이나 뭐든 표시되고, 도메인 없이 연결을 끊어주는 거요.

NGINX 설정을 수정하여 Cloudflare에서만 연결을 수락하도록 할 수 있다고 생각합니다.

또한, 맨 IP에 대한 리디렉션을 하지 않도록 설정을 변경할 수도 있지만, 그렇게 한다고 보안이 크게 향상될지는 확실하지 않습니다.

절대 그렇습니다. DNS, Censys/Shodan 등을 통해 IP가 발견되는 것을 방지할 수 있으니까요.
Cloudflare만 허용하는 방법에 대해 구글링을 해봤지만 큰 도움이 되지 않았습니다. 결과가 어땠는지도 기억이 나지 않고, Cloudflare IP만 허용하면서 CF 설정을 통해 실제 IP를 가져오는 경우라면 문제가 생기는 건지 궁금합니다. 관련 문서가 있으면 정말 좋겠습니다.

그리고 nginx 설정을 어떻게 수정해야 하는지 모르겠습니다. 앱에 들어가도 아무것도 수정할 수 없는데, 좀 초보자인 것 같아 죄송합니다 lol

웹 템플릿은 IP(그리고 모든 연결)에 대한 리디렉션을 추가하므로, 해당 부분을 되돌릴 수 있습니다.

Allowing Cloudflare IP addresses only in Nginx | inDev. Journal 은 Cloudflare IP만 허용하는 방법에 대해 설명합니다. 템플릿을 이해하는 사람에게 템플릿이 이를 수행하도록 설정하는 것은 다소 시간이 걸리지만, 가능해야 합니다.

아니요. 실제 주소는 다른 헤더에 있습니다.

그리고 첫 번째 검색 결과(Packet filtering and firewalls | Docker Docs)는 다음을 설명합니다.

따라서 cloudflare 스크립트를 그에 맞게 수정해야 합니다.

제 머리로는 도저히 감당할 수 없는 문제입니다. 답변 주셔서 정말 감사드리며, 곧 해당 문서를 읽어보겠습니다. 이 문제를 볼 수 있는 분이 계시다면 시간을 내어 정리해 주시면 좋겠어요. 이미 이 문제에 대한 게시글을 여러 번 본 적이 있습니다.

특정 이유로 인해 DDoS 공격의 이력이 있는 커뮤니티를 운영하고 있고 더 많은 공격을 예상하는 경우가 아니라면, 이 문제에 더 이상 머리를 쓰지 않는 것이 좋습니다. 이 문제를 파악하고 문서화하는 데 1~3시간이 걸릴 것입니다. 저는 오랫동안 사람들을 위해 Discourse를 설정해 왔는데, DDoS가 실제 문제가 되었던 사용자는 한 번도 없었습니다.

저도 이전에 공격을 받은 적이 있는 포럼을 운영하고 있긴 한데, CF(클라우드플레어) 덕분에 도움을 받을 수 있었습니다(프로 플랜 사용). 하지만 이런 일이 일어나기 전에 미리 '대비’할 수 있으면 좋겠어요. 최고의 보안이 필요하니까요. 하지만 네, 그 일이 얼마나 많은 노력과 시간이 드는지 이해합니다.

ChatGPT와 첫 번째 게시물의 스크립트로 해결할 수 있다고 생각합니다.

아, 그렇군요. OP가 시도해볼 수 있길 바랍니다. 나중에도 내가 한번 확인해볼게요. 도움 주셔서 감사합니다.