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
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