Instalacja VPN pod Linuxem (wskazówki J. Tarasiuka)

2006-07-08

  1. Do jakiego systemu to się nadaje?
    Linux, ale ani bardzo stary (co najmniej 2.4), ani najnowszy (z 2.6.18 i nowszymi nie działa). Połączenie z Internetem może być zarówno bezpośrednie, jak i poprzez router z NAT-em, ale firewall (jeśli jest) powinien przepuszczać pakiety używane przez ten program - port 500 na UDP, port 4500 na TCP... Działanie było sprawdzone dla Linux-a Slackware 10.2 (2.4.31).
  2. Skąd wziąć programy i hasła?
    Na stronie poświęconej dostępowi zdalnemu do zasobów lokalnych FUW uzyskamy informację, że trzeba założyć konto - bierzemy wtedy również kartkę z hasłem grupowym - oraz wgrać program, i link do strony, z której należy go pobrać (dostęp do strony wymaga podania nazwy użytkownika i hasła konta, które założyliśmy; nazwa grupy, użytkownika, i oba hasła będą jeszcze potrzebne później). Z tej strony ściągamy potrzebne pliki z programami - do Linux-a będzie to vpnclient-linux-4.6.02.0030-k9.tar.gz dokumentacja jest w vpnclient-linux-4.0-UserGuide.pdf
  3. Jak zainstalować program?
    Po pierwsze, trzeba sprawdzić, czy są zainstalowane wszystkie potrzebne pakiety Linux-a - oprócz tych, które są wymagane do działania Linux-a, to: (a) sysklogd, (d) binutils, gcc, make, kernel-headers, libtool, (k) kernel-source, (n) tcpip, openssh, openssl (i warto jeszcze: inetd, iptables, nail, sendmail, traceroute); i jeśli nie mamy stałego adresu IP, to dhcpcd. Jeśli chcemy instalować również obsługę WiFi, to dodatkowo: (a) glibc-solibs, usbutils, (l) glibc, (n) wireless-tools; niestety VPN Cisco nie działa z wersjami kernela, które mają sterownik do obsługi WiFi, i trzeba go doinstalować ręcznie. Rozpakowujemy ściągnięty plik poleceniem tar xzf nazwa_pliku, przechodzimy do katalogu vpnclient, i jako 'root' piszemy ./vpn_install, następnie jeszcze odpowiadamy na kilka pytań:
    • gdzie mają być zainstalowane binaria: /usr/local/bin
    • czy automatycznie ładować moduł kernela przy bootowaniu? jeśli nie, to po każdym bootowaniu trzeba będzie ładować go ręcznie, jeśli zechcemy użyć VPN-u; zajmuje 500kB RAM; działa to dla dystrybucji Linux-a, które używają katalogów rc?.d (np. RedHat i pochodne), dla Linux-a Slackware nie, i trzeba dopisać polecenie ładowania do /etc/rc.d/rc.local
    • gdzie znajdują się źródła kernela: /lib/modules//build ( oznacza wersję, podawaną przez 'uname -r', np. 2.4.31)
    • i na koniec potwierdzamy, że to jest prawidłowe;
    vpn_install sam proponuje odpowiedzi - wystarczy więc wciskać Enter. Jeśli chcemy potem uruchomić VPN bez bootowania komputera, to nawet, jeśli na drugie pytanie odpowiedzieliśmy 'y', musimy załadować moduł ręcznie, np. przez '/etc/rc.d/vpnclient_init start'.
  4. Jak skonfigurować, żeby działał?
    Konfiguracja Cisco VPN jest w /etc/CiscoSystemsVPNClient/ - to jest link symboliczny wskazujący rzeczywisty katalog. Instalacja Cisco VPN ustawia prawa dostępu tak, że każdy może wszystko zapisać i skasować; nie jest to potrzebne, więc warto te prawa nieco ograniczyć, ustawiłem następująco:
    drwxrwxr-t /etc/CiscoSystemsVPNClient/
    drwxrwxrwt jego podkatalogi: Certificates Logs Profiles
    -r--r--r-- plik sample.pcf w podkatalogu Profiles
    -rw-r--r-- pliki *.ini w /etc/CiscoSystemsVPNClient/
    to pozwala każdemu wpisać swoje certyfikaty i profile, oraz zapisywać logi, a nie pozwoli kasować zapisów innych - może to zawsze zrobić administrator, i ten, kto je zapisał.
    /etc/CiscoSystemsVPNClient/vpnclient.ini - wpisałem EnableLog=1 (zamiast 0; originał -> vpnclient.ini-inst), ale nie widać, żeby jakieś logi się zapisywały.
    Profile użytkowników: /etc/CiscoSystemsVPNClient/Profiles/ sample.pcf zawiera przykładowy profil, w którym należy zmienić:
    • Description (żeby się nie nazywało sample)
    • Host=193.0.64.118 (takiego używamy, koniecznie wpisać!)
    • GroupName=fuw.2007.fizyk (taka w tym roku, wpisać!)
    • GroupPwd= (albo będzie pytać za każdym razem)
    • Username= (żeby podpowiadało właściwe)
    • EnableNat=0 (w sample jest 1, tylko 0 działa!)
    z tego trzy ustawienia są konieczne, pozostałe dla wygody.
    Hasło grupy, jeśli jest podane w profilu, zostanie zaszyfrowane przy pierwszym użyciu, tak że nie będzie widoczne, ale nie jest to skuteczne zabezpieczenie - skopiowanie zaszyfrowanego hasła do innego profilu da taki sam rezultat, jakby było oryginalne. Prawa dostępu do profilu: ma być czytelny dla grupy (inaczej nie zadziałają ustawienia grupy - trzeba będzie podawać nazwę grupy i hasło przy łączeniu), i dla użytkownika (inaczej nie zadziała nazwa użytkownika, i ewentualnie hasło, jeśli jest); prawo pisania przez użytkownika - konieczne do zaszyfrowania hasła, ale jeśli jest, zostaną wpisane wartości parametrów.
  5. Jak używać programu?
    W celu połączenia się piszemy: vpnclient connect , gdzie jest nazwą profilu bez katalogu i rozszerzenia - więc gdybyśmy mieli użyć przykładowego, to tylko 'sample'. Program powinien zapytać o nazwę użytkownika (podpowie, jeśli jest podana w profilu, i wystarczy wcisnąć Enter) i hasło. Następnie połączy nasz komputer z siecią 193.0.85.0/24, która ma uprawnienia sieci wydziałowej. Terminal, na którym program został uruchomiony, będzie zablokowany; poza tym włączenie VPN-u zawiesi całą łączność - będzie tylko VPN. W trakcie działania VPN-u będą dostępne wydziałowe serwery nazw, tak że można używać nazw komputerów wydziałowych bez pisania domeny.
    Aby zakończyć łączność przez VPN, piszemy: vpnclient disconnect - trzeba do tego użyć innego terminala, bo ten, na którym było wpisane polecenie connect, jest zablokowany (odblokowuje się po zakończeniu łączności).
    W czasie działania VPN zmieniony jest plik /etc/resolv.conf, który podaje konfigurację DNS, po zakończeniu jest odtwarzany.
Jerzy Tarasiuk

Wróć