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が有効になります(最もはい)。これは外部領域に対してのみ行われるべきです。