SVN: PLD-doc/queue/ovpn.txt

qwiat qwiat at pld-linux.org
Sun Jan 14 18:50:54 CET 2007


Author: qwiat
Date: Sun Jan 14 18:50:54 2007
New Revision: 8163

Added:
   PLD-doc/queue/ovpn.txt
Log:
- kolejny rodzial do queue


Added: PLD-doc/queue/ovpn.txt
==============================================================================
--- (empty file)
+++ PLD-doc/queue/ovpn.txt	Sun Jan 14 18:50:54 2007
@@ -0,0 +1,135 @@
+W niniejszym opracowaniu krok po kroku pokażę jak stworzyć sieć VPN używając OpenVPN.
+
+najpierw instalujemy potrzebne rzeczy:
+
+poldek -i openvpn easy-rsa pam
+
+(pam instalujemy jeżeli chcemy robić autoryzację użytkowników za pomocą loginu/hasła. Jeśli wystarczą Nam certyfikaty to nie musimy)
+
+Pierwsze co robimy tgo generowanie certyfikatów dla serwera i opcjonalnie dla klientów (jeżeli chcemy autoryzację certyfikatami).
+przechodzimy do katalogu /etc/easy-rsa i wydajemy polecenia:
+
+/usr/share/easy-rsa/clean-all
+. ./vars
+/usr/share/easy-rsa/build-ca
+
+generujemy Diffie Hellman (dla zainteresowanych: http://www.rsasecurity.com/rsalabs/node.asp?id=2248)
+
+/usr/share/easy-rsa/build-dh
+
+a następnie odpowiadamy na kilka pytań. Aby skrócić czas możemy najpierw wyedytować plik /etc/easy-rsa/vars tak aby domyślne podpowiedzi przy 
+generowaniu certyfikatu były tymi które nam będą odpowiadały. Ważne jest aby podać Common Name.
+Mamy już certfyikat centrum autoryzacyjnego którym będziemy podpisywać inne certyfikaty. teraz generujemy certyfikat i klucz serwera:
+
+/usr/share/easy-rsa/build-key-server serwer
+
+(zamiast serwer możemy podać dowolną nazwę)
+[ odpowiadamy dwa razy twierdząco (y) ]
+oraz certyfikaty dla klientów (tylko jeśli chcemy autoryzować certyfikatami):
+
+/usr/share/easy-rsa/build-key klient1
+/usr/share/easy-rsa/build-key klient2
+/usr/share/easy-rsa/build-key klient3
+
+jeśli zależy nam aby każdy miał swoje hasło do klucza to zamiast powyższego wydajemy polecenie: /usr/share/easy-rsa/build-key-pass
+Po pomyślnym wygenerowaniu certyfikatów przystępujemy do konfigurowania OpenVPN. W tym celu tworzymy plik /etc/openvpn/tunel.conf i wpisujemy tam:
+
+#numer IP na którym ma nasłuchiwać OpenVPN (nieobowiązkowy)
+local 1.2.3.4
+port 1194
+proto udp
+dev tun
+ca /etc/easy-rsa/keys/ca.crt
+cert /etc/easy-rsa/serwer.crt
+key /etc/easy-rsa/serwer.key  # This file should be kept secret
+
+#trzy linijki poniżej są tylko dla tych co chcą autoryzować za pomocą pam
+plugin /usr/lib/openvpn/plugins/openvpn-auth-pam.so ovpn
+client-cert-not-required
+username-as-common-name
+dh certs/dh1024.pem
+# pula adresów używana przez vpn. można dobrać dowolne nieroutowalne 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
+# należy przy tym pamiętać żeby dobrać maksymalnie niestandardowe (po to aby były różne od nieroutowalnego IP
+# które dostanie klient np z publicznego AP
+server 10.8.0.0 255.255.255.0
+ifconfig-pool-persist ipp.txt
+push "redirect-gateway"
+
+#poniżej możemy wstawić dowolne opcje które będą ustawione u klienta za pomocą DHCP
+push "dhcp-option DNS 10.8.0.1"
+;push "dhcp-option WINS 10.8.0.1"
+
+# jeżeli autoryzujemy certyfikatami i nie chce Nam się generować dla każdego klienta osobno można odśrednikować
+# poniższą opcję (generalnie niezalecane jeśli nie masz 100% zaufania do klientów)
+;duplicate-cn
+keepalive 10 120
+# włączamy kompresję danych
+comp-lzo
+persist-key
+persist-tun
+status openvpn-status.log
+log         openvpn.log
+log-append  openvpn.log
+verb 3
+#eof
+
+po zapisaniu tego pliku robimy plik /etc/pam.d/ovpn i wpisujemy tam
+
+#%PAM-1.0
+auth            required        pam_unix.so
+auth            required        pam_shells.so
+account         required        pam_unix.so
+password        required        pam_unix.so md5 shadow use_authtok
+password        required        pam_make.so /var/db
+
+teraz w pliku /etc/sysconfig/openvpn zmieniamy TUNNELS="tunel" (nazwa pliku z konfiguracją bez .conf)
+
+serwer mamy gotowy
+plik konfiguracyjy klienta:
+
+client 
+proto udp 
+#adres naszego serwera
+remote 148.81.222.122 1194 
+dev tun 
+resolv-retry 
+infinite 
+nobind 
+tun-mtu 1500 
+tls-client 
+#jeśli autoryzujemy przez pam to poniższa linijka jest potrzebna.jeśli nie to nie
+auth-user-pass 
+# ścieżka do plik ca.crt (który klientowi przekazujemy). jeżeli klient jest windowsowy to ścieżka może wyglądać jak poniżej
+ca "c:\\Program Files\\OpenVPN\\config\\ca.crt" 
+# poniżej dwie linijki tylko dla tych co autoryzują certyfikatami
+# oczywiście wygenerowane pliki klient1.crt i klient1.key przekazujemy bezpiecznym kanałem klientowi
+cert "c:\\Program Files\\OpenVPN\\config\\klient1.crt" 
+key "c:\\Program Files\\OpenVPN\\config\\klient1.key" 
+
+ping-restart 60 
+ping-timer-rem 
+persist-tun 
+persist-key 
+resolv-retry 86400 
+ping 10 
+comp-lzo 
+verb 4
+; eof 
+
+teraz możemy przetestować naszą konfigurację.
+odpalamy serwer: service openvpn start
+obdlokowujemy na firewallu port 1194 (jeśli potrzeba)
+i próbujemy się połączyć klientem (uwaga: przestanie działać internet na maszynie klienckiej - tylko połączenie z serwerem będzie możliwe. po 
+rozłączeniu prawidłowym wszystko powinno wrócić do normy)
+po kilku chwilach z klienta wpisujemy ping 10.8.0.1 - powinno działać.
+jeśli nie działa mamy noc z głowy i przystępujemy do szukania odpowiedzi na pytanie "dlaczego?"
+zakładamy jednak że działa i chcemy teraz aby korzystać z zasobów internetu jako 1.2.3.4 (czyli przez vpn)
+to tylko dwie krótkie zmiany na serwerze:
+
+echo "1" >/proc/sys/net/ipv4/ip_forward
+iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
+
+zakładamy że eth0 jest interfejsem przez który serwer łączy się ze światem.
+wszystko fajnie działa i możemy iść spać
+ps. bardzo miły w użytkowaniu klient pod windows: http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe
+


More information about the pld-cvs-commit mailing list