VPN (server+klient)

Dzisiaj nastała chwila kiedy potrzebowałem zestawić VPNa do firmowego serwera, by mój szef mógł sobie podejrzeć sobie jak wygląda sieć kiedy on siedzi na działeczce na swoim iPlusie.
Jako, że jeszcze jeszcze nie miałem okazji stawiać innego VPNa aniżeli Cisco'wego, to stwierdziłem, że przyszedł najwyższy czas.

A przy okazji uznałem, że przyda się jakieś polskie HOWTO odnośnie instalacji OpenVPN'a pod Centkiem toteż płodzę poniższy tekst :-)

No to od początku:

Instalacja i konfiguracja serwera na Centku

1. Ściągamy openvpn'a (musimy mieć dodane repozytorium RPMForge, bo inaczej nici)
# yum -y install openvpn

2. Po instalacji kopiujemy sobie podstawowe konfigi:
# cp -r /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn/
# cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf
/etc/openvpn/


3. Konfigurujemy CA:
# cd /etc/openvpn/easy-rsa/
Następnie dzięki ulubionemu edytorowi tesktowemu edytujemy plik: vars
Zjeżdżamy na sam dół pliku a tam podmieniamy wg upodobania:
export KEY_COUNTRY=PL
export KEY_PROVINCE=LDZ
export KEY_CITY=LODZ
export KEY_ORG=”NazwaFirmy”
export KEY_EMAIL=”adres@e-mail.tld”

Następnie sprytnie z katalogu w którym się znajdujemy wywołujemy polecenia:
# . ./vars (zwrócić proszę uwagę na spację pomiędzy kropkami)
# . ./clean-all (to samo tutaj zwracamy uwagę na spację pomiędzy kropkami)

4. Budujemy CA:
# . ./build-ca (jak wyżej)
Naszym oczom ukazuje się generowanie pliku, chwilę potem następuje standardowy zestaw pytań na który wystarczy, że przeklikamy enterem.

5. Budujemy klucz serwera:
# . ./build-key-server naszserwerek
I znowu naszym oczom ukazuje się generowanie kolejnego pliku i znowu zestaw pytań do przeklikania enterem. Po drodze będzie pytanko o "challange password", warto wprowadzić jakieś dla zabezpieczenia naszego klucza serwera. Na koniec dostaniemy informację do kiedy ważny jest certyfikat oraz czy zgadzamy się na dodanie go do naszej bazy certyfikatów, oczywiście zgadzamy się na to.

6. Budowanie Diffie Hellmana:
Jest to dodatkowy klucz, który pozwoli uchronić nasz serwer przed pasywnym podsłuchem.
# . ./build-dh
(generowanie może chwilę potrwać, więc proszę się nie niecierpliwić)

7. Kopiujemy wygenerowane klucze i certyfikaty w odpowiednie miejsce:
#cp keys/ca.crt /etc/openvpn/
# cp keys/dh1024.pem /etc/openvpn/
# cp keys/naszserwerek.key /etc/openvpn/
# cp keys/naszserwerek.crt /etc/openvpn/


8. Konfigurujemy nasz serwer do korzystania z wygenerowanych kluczy:
# cd /etc/openvpn/
# vim server.conf (podmieniamy poniższe linijki)
dev tap
;dev tun
ca ca.crt
cert naszsserwerek.crt
key naszserwerek.key


9. Startujemy serwer i dodajemy go do autostartu:
# service openvpn start
# chkconfig openvpn on


Instalacja i konfiguracja klienta Windowsowego


1. Ściągamy klienta windzianego z http://openvpn.net/

2. Tworzymy CA na Windowsie:
Otwieramy grzecznie Uruchom, wklepujemy stare dobre cmd, a następnie przechodzimy do katalogu c:\Program Files\OpenVPN (chyba, że podaliśmy podczas instalacji inną ścieżkę)
> copy vars.bat.sample vars.bat
Edytujemy plik vars.bat i podmieniamy końcówkę wg tego co wpisaliśmy na serwerze (pamiętajmy, że wszystko musi się zgadzać z tym co wklepaliśmy na serwerze):
set KEY_COUNTRY=PL
set KEY_PROVINCE=LDZ
set KEY_CITY=LODZ
set KEY_ORG="NazwaFirmy"
set KEY_EMAIL="adres@e-mail.tld"


3. Odpalamy generowanie:
> vars.bat

4. Budujemy certyfikat i klucz klienta:
> copy openssl.cnf.sample openssl.cnf
> md keys
> build-key vpnklient

Może się okazać, że przy instalacji OpenVPNa nie wyeksportowała się ścieżka do pliku openssl.exe, więc będziemy ją musieli ręcznie zmienić w pliku build-key (zamiast openssl wklepujemy: ..\bin\openssl).

5. Kopiujemy pliczek vpnklient.csr na nasz serwer do katalogu: /etc/openvpn/easy-rsa/keys , a następnie na serwerze:
# cd /etc/openvpn/easy-rsa/
# . ./sign-req vpnklient

Znowu generujemy, trzeba potwierdzić będzie, że chcemy podpisać certyfikat i po sprawie.

6. Kopiujemy podpisane certyfikat i klucz na naszą maszynę windowsową:
W katalogu /etc/openvpn/easy-rsa/keys będą dwa nowe pliczki: ca.crt oraz vpnklient.crt .
Kopiujemy oba na naszego Windowsa do katalogu: C:\Program Files\OpenVPN\config .
Dodatkowo z katalogu C:\Program Files\OpenVPN\easy-rsa\keys kopiujemy do katalogu config plik vpnklient.key.

7. Konfigurujemy klienta OpenVPNa do łączenia:
Kopiujemy przykładowy plik konfiga (client.ovpn) z katalogu C:\Program Files\OpenVPN\config-sample do katalogu config.
Zmieniamy w tymże pliku kilka linijek wg poniższego wzoru:
dev tap
;dev tun
remote adres_ip_serwera_vpna 1194
ca ca.crt
cert vpnklient.crt
key vpnklient.key
ns-cert-type server


8. Łączymy się z VPNem:
Odpalamy z menu Start OpenVPN GUI, klikamy prawym na ikonce przy taskbarze i wybieramy z menu Connect.
Jeśli wszystko dobrze zrobiliśmy, powinniśmy bezproblemowo połączyć się z naszym VPNem i cieszyć połączeniem z naszą siecią wewnętrzną.

Źródło: http://greyer.jogger.pl/2009/08/04/howto-openvpn-i-centos-5/

2 komentarze:

  1. duplicate-cn (na serwerze config) - połączenie wielu userów jednoczesnie (ten sam certyfikat)


    http://debian.linux.pl/threads/6454-Openvpn-konfiguracja-adres%C3%B3w-dla-wielu-klient%C3%B3w

    OdpowiedzUsuń
  2. server 192.168.200.0 255.255.255.0

    Oznacza, że serwer openvpn będzie przydzielał adresy z wyżej wymienionej puli.

    push "route 192.168.1.0 255.255.255.0"
    push "route 192.168.2.0 255.255.255.0"
    push "route 10.10.0.0 255.255.0.0"

    Oznacza, że adresy będą routowane do wymienionych podsieci.

    OdpowiedzUsuń

LinkWithin-4

Related Posts Plugin for WordPress, Blogger...