Tartalomjegyzék
NAT iptables segítségével
- Szerző: Sallai András
- Copyright © Sallai András, 2020
- Web: https://szit.hu
A NAT
IPv4-s címtérben a címek egy része privát tartományba esik, ezeket sosem használjuk nyilvános interneten. A privát IP cím tartományok így minden helyi magánhálózatban használhatók. Az ilyen privát hálózatokból is szeretnénk azonban elérni az Internetet. Ehhez kell egy router vagy egy szerver ami a címeket fordítja. Ha router ellátja ezt a feladatot, akkor nekünk ezzel nincs dolgunk, de ha a szerverre szeretnénk ezt bízni, a Netfilter segít számunkra.
Továbbítás engedélyezése
Ha egy csomag a privát hálózatunkból az Internetre tart, a prerouting lánc után a forward láncon át, a postrouting láncot érintve távozik a rendszerből.
A Linux kernelben az ilyen átmentő forgalom alapból nincs engedélyezve. az engedélyezéshez egy kernel beállítás szükséges.
Nézzük meg, mi van beállítva jelenleg:
sysctl net.ipv4.ip_forward
A kimenetben ezt látjuk:
net.ipv4.ip_forward = 0
A engedélyezéshez a 0-t, 1-re kell állítani:
sysctl -w net.ipv4.ip_forward=1
Ez a beállítás beírható a tűzfal parancsállományába is, de a kernelbeállításoknak van saját helye. Szerkesszük a /etc/sysctl.conf állományt:
nano /etc/sysctl.conf
Írjuk bele, valahova a fájl végére:
net.ipv4.ip_forward = 1
Ha sysctl -w paranccsal nem engedélyeztük, akkor most beolvastathatjuk a kernellel a sysctl.conf tartalmát:
sysctl -p /etc/sysctl.conf
A továbbítás engedélyezhető így is:
echo 1 > /proc/sys/net/ipv4/ip_forward
Címfordítás
A címfordítást a POSTROUTING láncon fogjuk beállítani.
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
- A -t kapcsoló: a tevékenység nat típusú.
- A -A kapcsoló: a POSTROUTING láncra fűzzük fel.
- A -o kapcsoló: az Internet felé eső hálózati eszköz
- A -j kapcsoló: cél a maszkolás
Azt is beállíthatjuk, milyen gép, vagy hálózat számára szeretnénk internetet biztosítani, a -s kapcsolóval:
iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.10.0/24 -j MASQUERADE
Ellenőrizzük a beállítást:
iptables -t nat -L
Egyetlen gépnek Internet:
iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.10.11 -j MASQUERADE