Instalacja VPN pod Linuxem (wskazówki J. Tarasiuka)
2006-07-08
- 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).
- 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
- 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;
- 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!)
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. - 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.