[[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