元の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

関連情報