Biztos létezik már egy pár HowTo, ami ezzel a kérdéssel foglalkozik, ám nekem több mint egy órámba tellett értelmes megoldást találni, így inkább leírom. A címben nem véletlenül Ubuntu-ra hivatkozok, ugyanis az egyes Linux disztribúciókban némely beállítás különbözhet, annak ellenére, hogy az IP szintű csomagszűrés a kernel része. Nos, aki csak emiatt tévedt ide, nem kertelek tovább íme a beállítás:
Feltételezve, hogy az A számítógépen létezik felépített internet kapcsolat, amit a /dev/eth0 hálókártyán keresztűl szeretnénk megosztani a B számítógép számára. Az A gépen a következő parancsokat kell lefuttatni root-ként:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
iptables --flush -t nat
iptables --table nat --append POSTROUTING --out-interface wlan1 -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
Az első sor az eth0 hálózatát állítja be, az eth0-ra csatlakoztatott gépeknek 192.168.1.* tartományból adunk IP címet, az A gépnek 192.168.1.1-et. Természetesen ha ez a beállítás más eszközzel (pl. GUI-val, KNetworkManager, vagy hasonlóval) történik, akkor ez a sor kihagyhandó. Az ezt követő három sor az IP csomagszűrőt állítja be, hogy az eth0 eszközön érkezett IP csomagokat egyszerűen továbbítsa a wlan1 interfészen, ami jelen esetben az internet kapcsolatot adja. Az iptables részletes működését én itt nem írom le, egyrészt mert túl hosszú lenne, más részt én sem vagyok biztos benne, hogy 100%-ig értem. Az utolsó sor szinte minden linux disztrón más. Ez engedélyezi rendszer szinten az IP csomagok továbbítását.
Ha a szervert beállítottuk, a kliens beállítássa már jóval egyszerűbb. Rendszerfüggetlenül fogalmazva, a szerverrel kompatibilis módon be kell állítani a hálózatot, pl. 192.168.1.2 IP címet adunk neki, majd alapértelmezett átjárónak a szerver címét adjuk meg. Ha a kliens gép is linux, és parancssorból kívánjuk beállítani, akkor a következőt kell tenni:
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
route add default gw 192.168.1.1 eth0