ip6nat
Zde představím ukázkovou konfiguraci pro zprovoznění aplikace, která umožní přesměrovat TCP spojení na konkrétním portu na jiný server.
Aplikace by měla běžet na igw a to zejména pro účely
*redsysu
*varování, že není zaplaceno
*okamžitého povolení do internetu v případě dynamické adresy pomocí dashboardu (který není ještě hotový)
Je potřeba
*aplikace ip6nat http://www.suse.de/~krahmer/ip6nat/ http://d-network.hkfree.org/ip6nat-0.6.tgz
*Láďův patch http://d-network.hkfree.org/ip6nat-0.6-lada.patch
*ke kompilaci build-essential a libnetfilter-queue-dev
Instalace
cd /usr/srv wget [http://d-network.hkfree.org/ip6nat-0.6.tgz] wget [http://d-network.hkfree.org/ip6nat-0.6-lada.patch] tar xzvf ip6nat-0.6.tgz cd ip6nat cat ../ip6nat-0.6-lada.patch \| patch \-p1 make
Konfigurace
- Je potřeba vytvořit soubor ip6nat.conf
tcp dnat 2000::/3 80->::1 1234
- Spustit
./ip6dnat \-c ip6dnat.conf
- Nastavit iptables
ip6tables \-t raw \-A PREROUTING \-p tcp \--dport 80 \-j QUEUE ip6tables \-t raw \-A OUTPUT \-p tcp \--sport 1234 \-j QUEUE
Tímto bude spojení nasměrováno na localhost (::1) na routeru, na kterém ip6nat běží (tam už může čekat http server, který vrací redirect). Pokud budeme chtít nasměrovat jinam, je pak nutné v druhém pravidle místo OUTPUT použít opět PREROUTING.
První pravidlo v iptables lze přenastavit, aby nasměrovávalo pouze vybrané adresy např. parametrem -s, nebo použít extra chain.
Co dělá patch:
V případě, že do dnat cílové routy (kam chceme lidem zabránit se dostat) patřil zároveň nasměrovaný uživatel, vracející se paket byl opět nasměrován na cílový server. Autor zřejmě nepočítal s tím, že použijeme default routu a že se tudíž zakázaná oblast nebude překrývat se zdrojem. Patch toto opravuje jednoduše - pravidla pro vracející se pakety se vyhodnocují před pravidlem pro odeslané pakety. Nic dalšího se snad nerozbilo