Wstęp
VTun umożliwia tworzenie tuneli poprzez sieci TCP/IP wraz
z przydzielaniem pasma, kompresją, szyfrowaniem danych w tunelach.
Wspierane typy tuneli to: PPP, IP, Ethernet i większość pozostałych
protokołów szeregowych. VTun jest łatwy i elastyczny w konfiguracji.
Może zostać wykorzystany do takich sieciowych zastosowań jak VPN,
Mobil IP, łącza o określonym paśmie oraz innych. Działa w warstwie
user space.
Opis procesu konfiguracji tunelu podzielony został na część
klient oraz serwer. Adresacja użyta
na listingach może zostać użyta o ile nie będzie się ona kłóciła z bieżącą
konfiguracją Twojej sieci. Zaczynamy
od instalacji pakietu vtun na obu maszynach
będących końcami tunelu. Dodatkowo ładujemy moduł
tun do pamięci.
Na tym kończy się wstępne przygotowanie systemu do konfiguracji tunelu.
Konfiguracja
Serwer
Po zainstalowaniu pakietu, opcja VTUND_MODE w pliku
/etc/sysconfig/vtun powinna
być ustawiona tak jak na listingu poniżej
# grep VTUND_MODE /etc/sysconfig/vtun
VTUND_MODE="server" |
Plikiem konfiguracyjnym dla VTuna jest
/etc/vtund.conf. Po instalacji pakietu jest on
wypełniony przykładami konfiguracji różnego rodzaju tuneli po obu
stronach (klient - serwer). Warto je sobie zostawić. W tym celu
wystarczy jedynie zmienić nazwę pliku.
# mv /etc/vtund.conf /etc/vtund.conf.orig |
Przy użyciu ulubionego edytora stwórzmy nowy plik
/etc/vtund.conf. Możemy w nim wyodrębnić kilka
sekcji: options, default,
nazwa, up oraz
down. Sekcje up oraz down są podsekcjami sekcji
nazwa.
options - opcje dotyczące działania demona oraz
wykorzystywanych przez niego programów.
options {
port 5000;
syslog daemon;
ppp /usr/sbin/pppd;
ifconfig /sbin/ifconfig;
route /sbin/route;
firewall /sbin/iptables;
ip /sbin/ip;
} |
-
port - port na którym ma nasłuchiwać demon.
-
syslog - sposób logowania zdarzeń na interfejsie tunelu.
-
ppp ifconfig route firewall ip - zmienne, które zawierają
ścieżki do wykorzystywanych przez VTun programów.
default - domyślne ustawienia transmisji danych.
default {
compress yes;
speed 0;
} |
vpn1 - wymieniona wcześniej nazwa tunelu. W tym miejscu
znajduje się właściwa konfiguracja parametrów połączenia.
vpn1 {
passwd tajne.haslo;
type tun;
proto tcp;
compress zlib:9;
encrypt yes;
keepalive yes;
up {
...
};
down {
...
};
} |
-
passwd - hasło, które posłuży do szyfrowania połączenia.
-
type - typ tunelu (w przykładzie tunel IP)
-
proto - protokół warstwy transmisyjnej tunelu.
-
compress - metoda oraz stopień kompresji.
-
encrypt - włączenie szyfrowania transmisji.
-
keepalive - utrzymywanie połączenia
-
up, down - co ma się wykonać po nawiązaniu połączenia oraz
jego zakończeniu. Szerzej o tym poniżej.
up - akcje wykonywane po nawiązaniu połączenia.
up {
ifconfig "%% 192.168.2.10 pointopoint 192.168.2.11 mtu 1450";
route "add -host 192.168.2.11 gw 192.168.2.10";
}; |
Po nawiązaniu połączenia należy uruchomić odpowiedni interfejs. Jego nazwa zostanie rozwiązana
dzięki zmiennej %%. Określamy oczywiście typ interfejsu oraz jego MTU.
Kolejną czynnością jest podanie trasy do drugiego końca tunelu. Adres IP po prawej stronie
jest oczywiście adresem naszego (czyli serwera) końca i przez niego prowadzi droga na drugą
stronę.
down - czynności następujące po wyłączeniu tunelu.
down {
ifconfig "%% down";
ifconfig "%% delete";
route "delete -host 192.168.2.11"
};
|
Po zakończeniu działania połączenia powinniśmy wyłączyć oraz skasować interfejs który nam do
niego służył. Usuwamy również zbędną trasę do drugiego końca tunelu z tablicy routingu. Zwróć
uwagę na konstrukcję tych dwóch podsekcji. polecenie "argument". Polecenie
zostało określone w sekcji options, natomiast argumentami są odpowiednie
parametry danego polecenia.
Na tym kończy się konfiguracja serwera. Możemy przystąpić teraz do konfiguracji klienta.
Klient
Konfigurację klienta zaczniemy od edycji pliku
/etc/sysconfig/vtun. Opcje w nim zawarte
powinieneś ustawić zgodnie z tym co jest przedstawione na
listingu.
VTUND_MODE="client"
VTUND_SESSION="vpn1"
VTUND_SERVER_ADDR="123.45.67.89"
VTUND_SERVER_PORT="5000" |
-
VTUND_MODE - tryb pracy demona.
-
VTUND_SESSION - nazwa sesji, którą ustawimy w pliku
konfiguracyjnym
-
VTUND_SERVER_ADDR - publiczny adres IP serwera.
-
VTUND_SERVER_PORT - port na którym nasłuchuje serwer.
Również po stronie klienta musimy wyedytować plik /etc/vtund.conf. Także
i tutaj możemy mu zmienić nazwę na vtund.conf.orig, aby zachować
przykłady konfiguracji. Krok po kroku omówię sekcje vtund.conf po
stronie klienta.
options {
type stand;
port 5000;
syslog daemon;
timeout 60;
ppp /usr/sbin/pppd;
ifconfig /sbin/ifconfig;
route /sbin/route;
firewall /sbin/iptables;
ip /sbin/ip;
} |
-
type - tryb pracy VTuna. Na listingu ustawiony został
standalone.
-
port - port na którym nasłuchuje VTun.
-
syslog - logi VTuna zbierane będą przez syslog.
-
timeout - timeout VTuna.
-
ppp, ifconfig, route, firewall, ip - ścieżki do programów
wykorzystywanych w czasie konfiguracji.
Przystępujemy teraz do konfiguracji połączenia o nazwie vpn1. Jak pamiętasz
nazwa została już wstępnie określona w pliku /etc/sysconfig/vtun.
vpn1 {
passwd tajne.haslo;
type tun;
proto tcp;
compress zlib:9;
encrypt yes;
keepalive yes;
stat yes;
persist yes;
up {
...
};
down {
...
};
} |
-
passwd - hasło które posłuży nam do szyfrowania
połączenia.
-
type - typ tunelu, w przykładzie jest to tunel IP.
-
proto - protokół warstwy transmisyjnej tunelu.
-
compress - typ oraz stopień kompresji. Na listingu ustawiona
została kompresja przy użyciu zlib dziewiątego stopnia.
-
encrypt - włączamy szyfrowanie połączenia.
-
keepalive - utrzymywanie połączenia w przypadku braku
ruchu na interfejsie tunelu.
-
stat - statystyki pracy tunelu, które VTun będzie zapisywał
do sysloga co pięć minut.
-
persist - opcja ustawiona tak jak na listingu sprawi, że w przypadku
zerwania połączenia z serwerem klient będzie nawiązywał połączenie.
-
up, down - programy wykonywane po nawiązaniu połączenia i po jego
zerwaniu.
up {
ifconfig "%% 192.168.2.11 pointopoint 192.168.2.10 mtu 1450";
route "add -host 192.168.2.10 gw 192.168.2.11";
}; |
Poleceniem ifconfig uruchamiamy interfejs naszego tunelu o parametrach
takich jakie zostały podane w przykładzie. Następnym krokiem jest wyznaczenie trasy do naszego
serwera, czyli drugiego końca tunelu. Jak doskonale widać, ta część konfiguracji jest
analogiczna do serwera. Należy tylko zwrócić uwagę na adresację. Adres następujący po
parametrze gw określa nasz (czyli klienta) koniec tunelu. Przez niego wiedzie
droga na drugi koniec.
down {
ifconfig "%% down";
ifconfig "%% delete";
route "del -host 192.168.2.10";
}; |
Polecenia które się wykonają po zamknięciu połączenia. Kolejno, wyłączamy oraz kasujemy
interfejs tunelu. Następnie kasujemy z tablicy routingu trasę do serwera.
Na tym kończy się etap konfiguracji VTuna. Możemy przejść do jego uruchomienia.
Uruchomienie
Uruchomienie VTuna sprowadza się do wykonania jednego polecenia na serwerze oraz
kliencie.
# /etc/rc.d/init.d/vtund start |
Po jego wykonaniu na komputerach będących końcami tunelu za kilka chwil powinny
się utworzyć interfejsy tun0. Numeracja zaczyna się od "0".
Nazwy kolejnych interfejsów będą kończyć się następną w kolejności liczbą
naturalną.
|