ファイアウォールを使用して、インターネット(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