RHCSA 10.1: Firewall settings
A rich rule that allows SSH from one network only, port forwarding, and sending a network's traffic to another zone.
Before you start
Do this lab at the VM's console, or keep a console open: task 1 changes who may reach SSH, and a mistake can lock you out.
The lab installs and starts firewalld if it isn't running, and notes its
configuration so reset can put it back. It installs and starts httpd
with a test page on port 80, and adds a second machine, peer
(10.99.0.2), on the lab network 10.99.0.0/24 (this VM is 10.99.0.1
there), to test from. Get a shell there with
sudo ip netns exec lepeer bash. Make every change persistent.
Tasks
- Allow SSH only from the network your SSH client is on (such as
10.0.2.0/24for a QEMU user-mode network), with a rich rule, and take thesshservice out of the zone. You can still log in from inside that network; the peer can't reach SSH any more. - Forward TCP port 8080 to port 80 on this host, so that from the peer
curl http://10.99.0.1:8080/reaches httpd. - Send all traffic from
192.168.50.0/24to theinternalzone.
Hints
ss -tn state established '( sport = :22 )'shows where your SSH client connects from. Add the rule before you removessh:firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=NETWORK service name=ssh accept',--remove-service=ssh,--reload,--list-rich-rules.--add-forward-port=port=8080:proto=tcp:toport=80,--list-forward-ports;sudo ip netns exec lepeer curl http://10.99.0.1:8080/.--zone=internal --add-source=,--get-active-zones.