Firewalld 转发的端口拒绝连接

Firewalld 转发的端口拒绝连接

我的 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

目标虚拟机上的转发端口已打开,并且其 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 作为连接到互联网的接口,然后使用“internal”或更确切地说“dmz”作为连接到您的网络服务器的接口。使用“external”将启动NAT(伪装:是);应该只对外部区域执行此操作。

相关内容