Konfiguracja VPN (OpenVPN)

Konfiguracja VPN (OpenVPN)

Źródła z których korzystałem:

1. Własne centrum certyfikacji


I. Instalacja i organizacja CA:
sudo aptitude install openvpn
sudo cp -a /usr/share/easy-rsa/ /etc/CA


II. Edycja pliku /etc/CA/vars:
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="PL"
export KEY_PROVINCE="Pomorskie"
export KEY_CITY="Gdansk"
export KEY_ORG="bujakiewiczpawel@gmail.com"
export KEY_EMAIL="bujakiewiczpawel@gmail.com"
export KEY_OU="Centrum Certyfikacji"


III. Tworzenie CA:
cd /etc/CA
sudo source ./vars
sudo ./build-ca
sudo ./build-dh
sudo openvpn --genkey --secret ta.key

Jeśli skryptom brakuję -x do wykonanie, trzeba dodać.


Zawartość katalogu /etc/CA/keys/:
ca.crt – certyfikat naszego CA (chmod 644)
ca.key – plik z kluczem prywatnym naszego CA (chmod 600)
dh2048.pem – klucz algorytmu Diffie-Hellman (chmod 600)

W katalogu głównym /etc/CA/:
ta.key – dzięki temu komputer, który nie posiada pliku ta.key nie jest w stanie nawet spróbować nawiązać połączenia (chmod 600)


IV. Utworzenie certyfikatu i klucza serwera OpenVPN:
sudo ./ build-key-server vpn.bujakiewiczpawel.pl
Hasło tutaj pozostawiamy puste.
Wynikiem polecenia będą pliki vpn.bujakiewiczpawel.pl.key i vpn.bujakiewiczpawel.pl.crt


V. Utworzenie certyfikatu i klucza klienta OpenVPN:
sudo ./build-key-pass siwy
Tutaj wpisujemy hasło.


2. Konfiguracja klienta


I. Przygotowanie paczki dla klienta (Windows)
Potrzebne pliki wcześnie wygenerowane:
– ca.crt
– siwy.crt
– siwy.key
– ta.key
– vpn.bujakiewiczpawel.pl.crt
– oraz nowy plik openvpn.ovpn, który zawiera:
# Nazwa naszego klucza i certyfikatu
cert siwy.crt
key siwy.key
remote vpn.bujakiewiczpawel.pl 1194 # Adres IP i port docelowy
client
fragment 1000
dev tun
proto udp
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
ns-cert-type server # Upewniamy sie ze laczymy sie z serwerem
tls-auth ta.key 1
tls-version-min 1.2
cipher AES-256-CBC
verb 3


II. Sprawdzanie połączenia z serwerem
Testowanie pingu w CMD:
ping -t vpn.bujakiewiczpawel.pl
Jeśli brakuję połączenia trzeba dokonać zmian w DNS lub zmienić konfiguracje żeby działała po IP serwera.


4. Dostęp do sieci lokalnej z przeniesieniem całego ruchu przez VPN


I Konfiguracja serwera
Na serwerze tworzymy plik /etc/openvpn/openvpn.conf o treści:
port 1194 # Port na którym nasluchujemy
proto udp
dev tun # Rodzaj tunelu
mssfix 1000 # Wartosci dobrane eksperymentalnie
fragment 1000 # Wartosci dobrane eksperymentalnie
keepalive 10 120 # Czestotliwosc pakietow keepalive
ca /etc/CA/keys/ca.crt
cert /etc/CA/keys/vpn.bujakiewiczpawel.pl.crt
key /etc/CA/keys/vpn.bujakiewiczpawel.pl.key
dh /etc/CA/keys/dh2048.pem
tls-auth /etc/CA/ta.key 0
tls-version-min 1.2
cipher AES-256-CBC
server 192.168.1.0 255.255.255.0 # Adresy IP klientow vpn
ifconfig-pool-persist ipp.txt
push "route 0.0.0.0 0.0.0.0" # przekierowanie całego ruchu klienta
push "redirect-gateway" # przekierowanie całego ruchu klienta
client-config-dir /etc/openvpn/konta_vpn # Katalog ustawien klientow
ccd-exclusive # Dopuszczamy tylko ZNANYCH klientow


II. Testowanie konfiguracji serwera:
sudo openvpn /etc/openvpn/openvpn.conf
Jeśli coś jest nie tak, dokonywać zmian zgodnie z podpowiedziami wyniku komendy.
Serwer openvpn nie musi być włączony żeby połączyć się z nim.


III. Dodanie NATu
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.0.3
192.168.1.0/24 – IP przydzielone dla klientów VPN
192.168.0.3 – IP serwera VPN
Backup iptables i wgrywanie polecam tak jak w tym artykule Automatically loading iptables rules on Debian/Ubuntu.


5. Instalacja i konfiguracja klienta VPN (Windows)


I. Pobranie klienta: openvpn-install-2.4.4-I601.exe


II. Konfiguracja klienta:
Po zainstalowaniu aplikacji w katalogu C:\Program Files\OpenVPN\ umieszczamy wszystkie pliku wymienione w punkcie 2.1.
W trayu klikamy PPM na nową ikonę i wybieramy połącz.
Podajemy hasło i połączenie gotowe.
Można sprawdzić jakie teraz mamy IP zewnętrzne.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.