Mikrotik VPN
Ogólne punkty wspólne dla wszystkich VPN
1. Utworzenie puli adresów
ip pool add name=vpn-pool ranges=192.168.99.200-192.168.99.210
Jeśli używamy split dns w Windows to pula musi się znajdować w sieci używanej przez użytkowników sieci docelowej, jeśli nie może być w innej sieci
2. Utworzenie profilu VPN
ppp profile add change-tcp-mss=yes local-address=vpn-pool name=vpn-profile remote-address=vpn-pool use-encryption=yes
3. Utworzenie użytkowników
ppp secret add name=user1 password=p@sSword1 profile=vpn-profile
Uwaga – dodając użytkowników bez precyzowania service=… możemy użyć tych samych użytkowników do różnych rodzajów VPN. Możemy też sprecyzować service i użytkownicy zadziałają tylko np. w pptp vpn lub openvpn
4. Dostęp do urządzeń w sieci lokalnej
/interface bridge
add arp=proxy-arp comment="enable access to all devices in lan" name=bridge
bridge-lan to nasz most w mikrotiku dla sieci lokalnej
Konfiguracja PPTP VPN
1. Włączenie serwera PPTP VPN
interface pptp-server server set authentication=chap,mschap1,mschap2 default-profile=vpn-profile enabled=yes
2. Dodanie wyjątku na zaporze mikrotika
/ip firewall filter
add chain=input protocol=tcp dst-port=1723 action=accept place-before=0 comment="PPTP VPN"
3. Konfiguracja PPTP VPN w artykułach
https://www.bgocloud.com/knowledgebase/32/mikrotik-chr-how-to-setup-pptp-vpn-server.html
https://rbgeek.wordpress.com/2014/08/26/pptp-server-setup-on-mikrotik/
4. Konfiguracja klienta PPTP w Windows
Konfiguracja OpenVPN
1. Utworzenie certyfikatów
/certificate
add name=ca-template common-name=example.com days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign
add name=server-template common-name=*.example.com days-valid=3650 key-size=2048 key-usage=digital-signature,key-encipherment,tls-server
add name=client-template common-name=client.example.com days-valid=3650 key-size=2048 key-usage=tls-client
Jako domenę podajemy domenę mikrotika np. jeśli mikrotik mamy na adresie klient.arwal.com.pl to example.com zastępujemy przez klient.arwal.com.pl
2. Podpisanie certyfikatów
/certificate sign ca-template name=ca-certificate sign server-template name=server-certificate ca=ca-certificate sign client-template name=client-certificate ca=ca-certificate
Podpisanie certyfikatów jest czasochłonne , czasami mikrotik pokazuje błąd przy podpisie. W przypadku błędu powtarzamy podpis. Aby usunąć podpisane certyfikaty kasujemy certyfikat ca
3. Włączenie interface VPN
/interface ovpn-server server set default-profile=vpn-profile certificate=server-certificate require-client-certificate=yes auth=sha1 cipher=aes128,aes192,aes256 enabled=yes
4. Dodanie wyjątku na zaporze mikrotika
/ip firewall filter add chain=input protocol=tcp dst-port=1194 action=accept place-before=0 comment="OpenVPN"
5. Konfiguracja klienta openvpn pod windows
Pliki ca.crt , client.crt , client.key kopiujemy do C:\Program Files\OpenVPN\config\ .
Plik client.ovpn powinien wyglądać następująco
client dev tun proto tcp remote example.com 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key remote-cert-tls server cipher AES-128-CBC auth SHA1 auth-user-pass redirect-gateway def1 verb 3
Należy pamiętać aby example.com było zgodne z domeną podaną w punkcie 1. Klienta ovpn importujemy w openvpn. Po imporcie zostanie on zapisany w katalogu: C:\Users\xxx\OpenVPN\config\nazwa_profilu ( gdzie xxx to folder użyykownika ), do tego katalogu trzeba przegrać wszystkie pliki .crt i .key
Czasami mimo prawidłowej konfiguracji występuje błąd tls
W takim wypadku do pliku .ovpn dopisujemy
tls-cipher DEFAULT
Uwaga – dla Windows maksymalny zalecany klient to 2.5.9 – na wyższych wersjach błąd w Windows 11
6. Eksport certyfikatów z mikrotika
/certificate export-certificate ca-certificate export-passphrase="" export-certificate client-certificate export-passphrase=12345678
W wyniku eksportu zostaną utworzone pliki: cert_export_ca-certificate.crt
, cert_export_client-certificate.crt
, cert_export_client-certificate.key
. Po przekopiowaniu na komputer do katalogu C:\Users\xxx\OpenVPN\config\nazwa_profilu zmieniamy ich nazwy na ca.crt
, client.crt
, client.key
.
Mikrotik wymaga utworzenie hasła klienta, nie jest to hasło użytkownika
Można uniknąć pytania o hasło klienta i sprawnie zmienić nazwy plików, na komputerze z którego będziemy się łączyli uruchamiamy cmd
move "cert_export_ca-certificate.crt" "ca.crt"
move "cert_export_client-certificate.crt" "client.crt"
move "cert_export_client-certificate.key" "client.key"
"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" rsa -in client.key -out client.key
Enter pass phrase for client.key: 12345678
writing RSA key
7. Konfiguracja w jednym pliku
Zamiast 4 plików (profil.ovpn, ca.cert, client.cert, client.key) można mieć jeden – profil.ovpn w nim sekcje:
W tych sekcjach należy wkleić odpowiednie certyfikaty (ca.cert, client.cert, client.key).
Z pliku profilu client.ovpn trzeba usunąć linie:
ca ca.crt
cert client.crt
key client.key
8. Konfiguracja OpenVPN w artykułach
https://www.medo64.com/2016/12/simple-openvpn-server-on-mikrotik/