CentOS 방화벽이 Java 애플리케이션의 GET 요청을 차단합니다.

CentOS 방화벽이 Java 애플리케이션의 GET 요청을 차단합니다.

CentOS 서버에 dockerized Java 웹 애플리케이션을 배포했습니다. 애플리케이션은 포트 80에 노출되며, 먼저 서버는 해당 포트에 대한 모든 요청을 차단합니다. 포트 80에서 통신을 활성화하여 이 문제를 해결했습니다.이것가이드.

그러나 내 애플리케이션은 주로 이러한 엔드포인트에 대한 GET 요청을 통해 다른 API에 요청합니다. 내 컴퓨터에서는 Docker 이미지가 제대로 작동하지만 내 애플리케이션이 CentOS 서버 내부에서 이러한 외부 API와 통신할 수 없습니다. 방화벽을 끄려고 했더니 애플리케이션이 외부 API와 다시 통신하기 시작했습니다.

이러한 요청을 활성화하는 방법을 찾으려고 노력했지만 작동하게 만드는 방법을 찾을 수 없었습니다. 저는 네트워킹 및 보안 문제에 대한 경험이 많지 않아서 검색 키워드를 효과적으로 사용하지 못하고 있는 것 같습니다.

내 애플리케이션에서 외부 API로의 요청을 활성화하려면 방화벽을 어떻게 구성해야 합니까?

편집: CentOS 8에서 FirewallD를 사용하고 있습니다. 무슨 일이 일어나고 있는지 잘 모르겠습니다. 내 앱의 로그에 요청한 대상에 도달할 수 없다고 표시됩니다.

답변1

신뢰할 수 있는 방화벽 영역에 Doket 인터페이스를 추가해야 합니다.

firewall-cmd --zone=trusted --change-interface=docker0
firewall-cmd --zone=trusted --add-masquerade --permanent
firewall-cmd --reload

또한 /etc/firewalld/firewalld.conf에서 방화벽 백엔드를 "nftables"에서 "iptables"로 전환하면 즉시 작동한다고 들었습니다.

답변2

죄송합니다. 아직 댓글을 추가할 수 없습니다. 하지만 다음과 같습니다.

어떤 방화벽을 사용하시나요?

상태를 요청할 때 무엇을 인쇄합니까?

당신이 사용하는 ufw경우ufw allow out ...

관련 정보