~~META:
date created = 2017-04-01 09:00
~~
====== Linux Packet Forwarding ======
===== Basic outgoing masquerding script =====
#!/bin/bash
network=192.168.3.0/24
ext_if=eth0
ext_ip=$(ip address show $ext_if | awk -F "[ /]" '/inet / { print $6 }')
# Turn off forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward
# Create NAT rule
iptables -t nat -I POSTROUTING -s $network -o $ext_if -j SNAT --to-source $ext_ip
# Create FW rules to allow traffic
iptables -I FORWARD -s $network -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate ESTABLISHED -j ACCEPT
# Turn on forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
===== Incoming port forwarding =====
#!/bin/bash
port=80
host=192.168.3.80
iptables -t nat -A PREROUTING -m tcp -p tcp --dport $port -j DNAT --to-destination $host:$port
{{tag>kb linux network iptables}}