원래 IP를 유지하면서 포트 포워딩

원래 IP를 유지하면서 포트 포워딩

나는 방화벽을 사용하여 인터넷(9999)에서 들어오는 포트를 다음과 같이 로컬 LAN IP 주소(100.1.1.1)로 전달합니다.

external (active)
  target: default
  icmp-block-inversion: no
  interfaces: tailscale0
  sources:
  services: ssh
  ports: 9999/tcp
  protocols:
  forward: yes
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources:
  services: dhcpv6-client ssh
  ports: 9999/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
port=9999:proto=tcp:toport=9999:toaddr=100.1.1.1
  source-ports:
  icmp-blocks:
  rich rules

LAN IP(100.1.1.1)는 인터넷을 통해 다른 컴퓨터로 트래픽을 보내는 동일한 컴퓨터에서 실행되는 Tailscale(VPN) 인터페이스에서 제공됩니다.

전달은 잘 작동하지만 문제는 대상 시스템의 모든 트래픽이 원래 소스 IP가 아닌 100.1.1.1(Tailscale)에서 나오는 것 같다는 것입니다. 이는 Fail2ban 또는 통계와 같은 작업에는 편리하지 않습니다.

전달된 트래픽을 허용하면서 소스 주소를 보존하는 방법이 있습니까?

편집: 이 기사를 바탕으로https://mghadam.blogspot.com/2020/05/forward-traffic-from-public-ip-to.html?m=1가능해야 하지만 복잡합니다.

답변1

외부 영역에서 매스커레이딩을 비활성화하고 포트 9999로 전달하면 많은 라우터에서와 같은 일반적인 방식으로 수행되며 실제 클라이언트 주소를 볼 수 있습니다.

가장 무도회 명령을 비활성화합니다.

firewall-cmd --permanent --zone=external --remove-masquerade

외부 영역에 대해 인터넷을 공유해야 하는 경우 공개용으로 가장을 활성화합니다.

firewall-cmd --permanent --zone=public --add-masquerade

관련 정보