====== Firewall configuration ====== ===== Source NAT ===== First enable IPv4 packet forwarding by editing ''/etc/sysctl.conf'', uncomment (or add) the following line: net.ipv4.ip_forward=1 Apply by ''sudo sysctl -p'' Then add the following lines to ''/etc/rc.local'' (so the rule is enabled on reboot): # source NAT # alter the source address of the packets from the internal network Ext_IF="eth0" Ext_IP="1.1.1.1" Int_IF="eth1" Int_Net="192.168.1.0/24" iptables -t nat -A POSTROUTING -s $Int_Net -o $Ext_IF -j SNAT --to-source $Ext_IP iptables -A FORWARD -s $Int_Net -o $Ext_IF -j ACCEPT iptables -A FORWARD -d $Int_Net -i $Int_IF -m state --state ESTABLISHED,RELATED -j ACCEPT ===== Destination NAT ===== # destination NAT # forward ssh to Int_IP if the external IP Ext_IP_2 was used Ext_IP_2="1.1.1.2" Int_IP="192.168.1.2" iptables -t nat -I PREROUTING -p tcp -d $Ext_IP_2 --dport 22 -j DNAT --to-destination $Int_IP:22 iptables -A FORWARD -i $Ext_IF -o $Int_IF -p tcp --dport 22 -j ACCEPT ===== Monitoring ===== sudo iptables -t nat -L ===== References ===== * [[https://help.ubuntu.com/10.04/serverguide/C/firewall.html]] * [[https://www.networkreverse.com/2020/06/how-to-build-linux-router-with-ubuntu.html]]