[[oktatas:linux:tuzfal:netfilter:iptables|< iptables]]
====== NAT iptables segítségével ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2020
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* 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.
{{:oktatas:linux:tuzfal:netfilter:iptables:nat.png|}}
===== 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.
{{:oktatas:linux:tuzfal:netfilter:iptables:ip_forward.png|}}
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