homeInternetLinux

Konfiguracja OpenVPN w Ubuntu LTS 12.04.

Instalacja OpenVPN umożliwi nam zestawianie szyfrowanego połączenia miedzy hostami.
Aby zainstalować openvpn w oknie konsoli wprowadź:

sudo apt-get install openvpn

Teraz, kiedy openvpn jest już zainstalowany musimy utworzyć certyfikaty dla serwera VPN (generowanie certyfikatów w Ubuntu 12.04).
Najpierw skopiuj katalog easy-rsa do katalogu /etc/openvpn. Musimy również zmienić właściciela katalogu abyśmy mieli odpowiednie prawa.

sudo mkdir /etc/openvpn/easy-rsa/
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
sudo chown -R $USER /etc/openvpn/easy-rsa/

Następnie przeprowadź edycje pliku /etc/openvpn/easy-rsa/vars dopasowując poniższe zmienne do twojego środowiska:

nano /etc/openvpn/easy-rsa/vars
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"

Wykonaj poniższe polecenia aby wygenerować certyfikaty dla serwera:

cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
cd keys
openvpn --genkey --secret ta.key
sudo cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/

Klient OpenVPN w celu autoryzacji również potrzebuje swojego certyfikatu, aby zachować porządek podaj nazwę hosta, który będzie korzystał z tego certyfikatu:

cd /etc/openvpn/easy-rsa/
source vars
./pkitool hostname

Klient podłączający się do naszej wirtualnej sieci musi posiadać następujące pliki (należy przekazać je w bezpieczny sposób):

  • /etc/openvpn/ca.crt
  • /etc/openvpn/easy-rsa/keys/hostname.crt
  • /etc/openvpn/easy-rsa/keys/hostname.key
  • /etc/openvpn/ta.key

KONFIGURACJA SERWERA OpenVPN

W celu konfiguracji tworzymy plik /etc/openvpn/server.conf, wykorzystamy plik z przykładową konfiguracją dołączony do pakietu. W tym przypadku zależy nam na utworzeniu prostego tunelu punkt-punkt do szyfrowania VNC i tym podobnych rzeczy.

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz

Edytujemy powstały plik sudo nano /etc/openvpn/server.conf dostosowując konfigurację do naszych potrzeb.
Najważniejsze opcje do ustawienia:

port 1194 #port nasłuchiwania usługi
proto udp #rodzaj wykorzystanego protokołu
dev tun #tun-tryb pracy jako ruter tap-tryb bridge
ca ca.crt #wskazanie certyfikatu Root CA
cert server.crt #certyfikat serwera
key server.key #tajny klucz serwera
dh dh1024.pem #plik klucza protokołu Diffiego-Hellmana do uzgadniania kluczy
server 192.168.199.0 255.255.255.0 #adres sieci do wykorzystania serwer zajmie pierwszy adres, a więc w naszym przypadku 192.168.199.1
tls-auth ta.key 0#tajny klucz, użycie tej opcji chroni dodatkowo przed atakami typu DoS na port OpenVPN, powoduje odrzucenie błędnych połączeń SSL/TLS zaraz na samym początku.
cipher AES-128-CBC #zmiana standardowego algorytmu szyfrowania z Blowfish na AES (należy zwrócić uwagę aby ustawienie było identyczne na kliencie).
comp-lzo #włączenie kompresji danych
user nobody
group nogroup #obniżenie uprawnień demona openvpn

Po ukończeniu edycji pliku restartujemy demona sudo /etc/init.d/openvpn restart

KONFIGURACJA KLIENTA OpenVPN

Plik z przykładową konfiguracją (client.ovpn) znajduje się w katalogu OpenVPN\sample-config. Należy skopiować go do katalogu config.
Najważniejsze opcje do ustawienia:

client
dev tun
proto udp
remote nasz_serwer.pl 1194
ca ca.crt
cert host.crt
key host.key
tls-auth ta.key 1
cipher AES-128-CBC
comp-lzo

Oczywiści możliwości konfiguracji wirtualnej sieci są znacznie większe, tutaj zostały przedstawione jedynie podstawy jak zestawić prostą sieć punkt-punkt.
Jeśli blokujemy ruch z zewnątrz do naszego serwera musimy dodać wyjątek dla portu 1194.

iptables -A INPUT -p udp --dport 1194 -j ACCEPT

6 komentarzy do “Konfiguracja OpenVPN w Ubuntu LTS 12.04.

  • witam nie uzywam linux ale zalezy mi aby przenies wygebnerowane certyfikaty na windows
    jest mozliwosc?

  • Witam, mam pytanie, jak skonfigurować OpenVPN do pracy punkt-wielopunkt? Chodzi o to że z zewnątrz chciałbym mieć dostęp do sieci domowej, a nie tylko do serwera.

  • Heh :) do wykonania restartu demona trzeba podnieść uprawnienia zapomniałem dodać, trzeba wywołać przez sudo (sudo /etc/init.d/openvpn restart) zaraz poprawię.

  • po wykonaniu całości mam –
    /etc/init.d/openvpn restart
    * Stopping virtual private network daemon(s)… * No VPN is running.
    * Starting virtual private network daemon(s)… * Autostarting VPN 'server’ [fail]

  • Chodzi o szczegóły wystawcy certyfikatu, w naszym przypadku możesz wpisać co chcesz jest to jedynie pole informacyjne, które zawiera certyfikat. Nie wysyłamy żądania certyfikacji do zaufanego centrum certyfikacji.

  • Mam pytanie – czemu służy edycja pliku „/etc/openvpn/easy-rsa/vars” ? Czy ona musi być wypełniona tak jak autor pokazał czy wypełniam tak jak mi się podoba – jakiś kraj, jakieś miasto, itd ?

    Pozdrawiam

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *