This environment has twins of virtually everything, including two web server / firewall / gateway systems, and they were getting long-in-the-tooth version wise, so I decided to upgrade from Fedora Server 30 to 38
on one of them. The idea was, of course, to bring both "into the modern era", but one at a time.
My timing was curious because at the very same time I began the upgrade, without even touching (physically or electronically) the other server, it decided to fail! So, now I have a "server down" scenario. -ugh- Unfortunately, this also means I don't have a working example to look at.
The one I didn't touch apparently has hardware issues and I can't address them right now, so I'm focused on the one I already started, which has now emerged from the upgrade / update to Fedora Server 38 just fine... EXCEPT for the fact that it has an issue where it's not serving as an actual gateway! ACK!
To be clear, FROM it you can access the internet and internal nets just fine. But it's not passing bits THROUGH it.
Of course, it's all generic Fedora Server (Fedora Core 38 with whatever tweaks the Server version gets) and whatever differences there are between 30 and 38 are likely substantial, though here all that matters is the networking.
It's got two NICs, and I configured them as was (that is, IP addresses, masks, etc), and in fact the installation process seemed to help by helping identify which NIC was internal and which external. I used my past experience and was pretty sure I'd done it correctly.
Indeed, once up I was instantly able to get to the box via ssh via the internal net. And, well, there's a lot to do on such a system but soon enough I got to the firewall aspects of it all. (At that point I didn't realize the other system was not-responsive.)
The first thing I did was move the interfaces to internal and external zones, and then turn on masquerading on the external zone. I forwarded mail through, and so forth, using the forward-port commands, etc, and ended up with the external looking like this:
# firewall-cmd --zone=external --list-all
external (active)
target: default
icmp-block-inversion: no
interfaces: enp1s0
sources:
services: http https ssh
ports:
protocols:
forward: yes
masquerade: yes
forward-ports:
port=25:proto=tcp:toport=25:toaddr=192.168.1.1
source-ports:
icmp-blocks:
rich rules:
The other, internal:
# firewall-cmd --zone=internal --list-all
internal (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: dhcpv6-client mdns samba-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
As an aside, I didn't add any of the services to the internal zone - they're apparently just defaults, I guess.
I spent PLENTY of time with the routing as it looked pretty screwy to me from the start. However, it's now this:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default router 0.0.0.0 UG 100 0 0 enp1s0
router 0.0.0.0 255.255.255.255 UH 100 0 0 enp1s0
192.168.1.1 0.0.0.0 255.255.255.0 U 101 0 0 enp2s0
192.168.1.1 0.0.0.0 255.255.255.0 U 101 0 0 enp2s0
FYI, this version of Fedora doesn't use IP Tables but rather Network Manager - a toolset I've loathed from the first, but now seems more mature. And anyway, MOST of the materials to be found on the net speak of this older strategy and is of no help. However, this page points people in the right general direction.
UPDATE 1
I got the older hardware that had apparently failed back up. It wasn't that hard to do, but it increases our odds. ...And I say "our", because a colleague has joined me in the fray; he's focused on the older box, and I'm focused on the newer one.
NEITHER is passing bits through as a gateway / firewall, and that puzzled me. However my colleague reminds that the one system was already not really working right, likely due to a botched attempt to get a particular OpenVPN installation going. And since he did that work, well, he's going to continue there.
This HAS to be something simple; what basic fundamental is being overlooked?!