ファイアウォール転送ポートが接続を拒否する

ファイアウォール転送ポートが接続を拒否する

Firewalldポートの転送に問題があります。問題は、転送されたポートが接続を拒否または応答しないことです(ポート転送が確立されたハイパーバイザーのTCPフラグRSET?)。

オペレーティング・システム: Oracle Linux 8.4、カーネル 4.18

ファイアウォール構成:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp9s0
  sources:
  services: cockpit dhcpv6-client http https ssh
  ports: 81/tcp 55565/udp
  protocols:
  forward: no
  masquerade: yes
  forward-ports:
        port=25:proto=tcp:toport=25:toaddr=192.168.1.3
        port=143:proto=tcp:toport=143:toaddr=192.168.1.3
        port=465:proto=tcp:toport=465:toaddr=192.168.1.3
        port=587:proto=tcp:toport=587:toaddr=192.168.1.3
        port=993:proto=tcp:toport=993:toaddr=192.168.1.3
        port=3389:proto=tcp:toport=3389:toaddr=192.168.1.4
        port=3389:proto=udp:toport=3389:toaddr=192.168.1.4
  source-ports:
  icmp-blocks:
  rich rules:
        rule family="ipv6" source address="fd00::0/121" masquerade

ターゲットVMの転送ポートが開いていて、対応するIPv4アドレスが正しい(192.168.1.3)。

PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
80/tcp  open  http
110/tcp open  pop3
143/tcp open  imap
443/tcp open  https
465/tcp open  smtps
587/tcp open  submission
993/tcp open  imaps
995/tcp open  pop3s

ポート80と443はNginx(HTTPロードバランサー)を使用してロードバランシングされ、配信が正常に機能します。

IPv4 および IPv6 ポート転送をイネーブルにします。

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
# sysctl net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding = 1

ここで何が間違っている可能性がありますか?

答え1

あなたのzone = publicは奇妙に見えます。 Linuxをルーターとして使用する場合は、zone = externalをインターネットに接続するためのインターフェースとして使用し、Webサーバーへのインターフェースとして「internal」または「dmz」を使用する必要があるとします。 「外部」を使用すると、NATが有効になります(最もはい)。これは外部領域に対してのみ行われるべきです。

関連情報