Tunnlar HUR-GÖR-MAN Fredrik Rambris, Sep 12, 1999 Privata nät är förbjudna på Internet. För att kunna nå ett privat nät via Internet måste det omhändertas på ett speciellt sätt. Detta dokument beskriver hur. Introduktion

Här går jag igenom lite begrepp och sådant.

Vad är privata adresser

När man byggde Internet insåg man att vissa serier med IP-adresser skulle förbli privata. Dessa privata adresser och allt ikring det finns beskrivna i .

Vad behövs tunnlarna till?

Paket med privata adresser får inte lov att routas på Internet. Så om du ska kunna nå ett privat nät över Internet upprättar man ett system där man kapslar in paketen i lagliga paket. När man då skickar dessa inkapslade paket mellan två datorer kallar man detta att man upprättar en tunnel.

VPN, Kryptering?

Tack vare Microsofts uppmärksamhet på tunnlar och VPN (Virutal Private Network) förknippas ofta VPN med krypterade tunnlar. Det är dock inget som säger att VPN = krypterade tunnlar. VPN är när man kopplar samman privata nätverk (privata i den mening att de har privata IP-adresser) över internet. Det är alltså inget krav att det ska krypteras. Dock finns det ibland fördelar om tunnlarna är krypterade men jag skulle hellre se att applikationerna som behöver kryptering hade det själva eftersom kryptering och dekryptering är väldigt tidsödande.

Vad krävs

ipip Ligger som modul i de flesta moderna distributioner av Linux. Kernel 2.2 Den använde jag iaf. Ska fungera med tidigare kernel versioner men har då annan syntax. iproute opch net-tools Dessa ligger som fina RPMer i Red Hat Linux. iproute fanns tydligen inte på Mandrake.

Dra igång tunneln

Efter att du installerat programmen så är det bara att väja ipadresser i scriptet nedan o köra det på repektive sida av tunneln. Tänk då på att du får redigera det på varje sida så att de motsvarar den egna sidan av tunneln.

tunnel-up #!/bin/sh # This script may not be used for the benefit of anyone but Fredrik Rambris # if not written permission is given to this person. # IP Address of the local end of our tunnel LOCAL_TUNNEL="192.168.100.1" # IP Address of the remote enf of our tunnel REMOTE_TUNNEL="192.168.100.2" # IP Address of local, public interface LOCAL_IF="10.0.101.1" # IP Address of remote, public interface REMOTE_IF="10.0.101.2" # Remote private network REMOTE_NET="192.168.3.0" REMOTE_MASK="255.255.255.0" if ! ( grep -q "ipip" /proc/modules ) ; then echo "Loading module 'ipip'" insmod ipip fi echo "Establishing tunnel" ip tunnel add tunl1 mode ipip remote $REMOTE_IF local $LOCAL_IF echo "Setting IP address of our end of the tunnel" ip addr add $LOCAL_TUNNEL dev tunl1 echo "Fireing up the tunnel" ip link set tunl1 up echo "Telling the system how to reach it" ip route add ${REMOTE_TUNNEL}/32 dev tunl1 echo "Telling the system how to reach the net on other end" route add -net $REMOTE_NET netmask $REMOTE_MASK gw $REMOTE_TUNNEL

Brandväggen

Du måste även blockera allt som ska till erat privata nät som inte kommer från andra sidan tunneln. Så att ingen hackar det. ipchains -I forward -j DENY -s !192.168.3.0/24 -d 192.168.2.0/24