로컬 웹 애플리케이션에 대한 역방향 프록시, iptables는 어떤 포트를 열어야 합니까?

로컬 웹 애플리케이션에 대한 역방향 프록시, iptables는 어떤 포트를 열어야 합니까?

Tomcat 애플리케이션에 역방향 프록시(nginx 또는 apache)를 사용하고 싶습니다. 포트 80,443을 역방향 프록시에서 tomcat 포트 8080, 8443으로 리디렉션하고 싶습니다. 역방향 프록시를 설정한 후 인바운드 및 아웃바운드를 위해 어떤 포트를 열어야 합니까?

그렇죠? iptables 인바운드: 포트 80, 443 열기 iptables 아웃바운드: 포트 8080,8443 열기

친절한 안부

검은 수염

답변1

TCP연결은 항상 두 명(그 이상은 아님)의 참가자 사이에서 이루어집니다. 각각은 IP 주소로 식별됩니다.그리고항구. 따라서 실제로 역방향 프록시를 사용하면 다음과 같은 이점이 있습니다.

  • <client_IP>:<random_port>클라이언트 와 클라이언트 간의 연결nginx <server_public_IP>:80물리적 인터페이스를 통해.
  • 사이의 연결nginx 127.0.0.1:80그리고수코양이 127.0.0.1:8080통해루프백 인터페이스.

방화벽이 루프백 인터페이스의 통신을 차단할 이유가 없습니다. 따라서 다음을 사용하여 들어오는 트래픽을 허용하고 싶을 것입니다.목적지포트 80443아웃바운드 트래픽원천포트 80443.

그러나 일반적으로 아웃바운드 트래픽은~ 아니다차단된 경우(policy ACCEPT) 다음 iptables 규칙만 있으면 됩니다.

iptables -A INPUT -i lo -j ACCEPT # loopback interface
# don't block existing traffic
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m comment nginx -j ACCEPT
# Probably you want to allow ssh
iptables -A INPUT -p tcp --dport 22 -m comment SSH -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

추신: 달릴 수도 있습니다수코양이포트에서 직접 동일한 방화벽 규칙을 사용합니다 80.443

관련 정보