Kod: Zaznacz cały
# apt install openvpn easy-rsa
Generowanie kluczy i certyfikatów
Kod: Zaznacz cały
# cp -r /usr/share/easy-rsa/ /etc/openvpn
Kod: Zaznacz cały
# mkdir /etc/openvpn/easy-rsa/keys
Kod: Zaznacz cały
# cd /etc/openvpn/easy-rsa
/etc/openvpn/easy-rsa/vars
Kod: Zaznacz cały
export KEY_SIZE=2048
Kod: Zaznacz cały
# source ./vars
Kod: Zaznacz cały
# ./clean-all
Kod: Zaznacz cały
# ./build-ca
Kod: Zaznacz cały
# ./build-key-server openvpn-server
Generujemy certyfikat dla klienta (nazwa openvpn-client także jest opcjonalna)
Kod: Zaznacz cały
# ./build-key openvpn-client
Kod: Zaznacz cały
# ./build-dh
uruchamianiu transmisji. Dane, które nie są odpowiednio podpisane takim kluczem są automatycznie odrzucane)
Kod: Zaznacz cały
# openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key
Certyfikaty i klucze serwera kopiujemy do /etc/openvpn/
Kod: Zaznacz cały
# cd /etc/openvpn/easy-rsa/keys/
Kod: Zaznacz cały
# cp ca.crt openvpn-server.crt openvpn-server.key dh2048.pem /etc/openvpn/
/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/openvpn-client.crt
/etc/openvpn/easy-rsa/keys/openvpn-client.key
Konfiguracja serwera
Tworzymy plik server.conf w lokacji /etc/openvpn/
/etc/openvpn/server.conf
Kod: Zaznacz cały
port xxxx ##port
proto udp ##protokół
dev tun ##interfejs
ca ca.crt ##cert CA
cert openvpn-server.crt ##cert serwera
key openvpn-server.key ##klucz prywatny serwera
dh dh2048.pem ##parametry algorytmu diffiego-hellmana
server 10.8.0.0 255.255.255.0 ##klasa ip
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp" ##przekierowanie calego ruchu przez VPN
push "dhcp-option DNS 8.8.8.8" ##konfiguracja DNS dla DHCP
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120 ##utrzymuje polaczenie
comp-lzo ##kompresja
user nobody ##uzytkownik na potrzeby OpenVPN
group nogroup ##grupa na potrzeby OpenVPN
persist-key ##zapamietuje klucz
persist-tun ##podtrzymuje interfejs TUN
status openvpn-status.log
verb 3 ##poziom logowania
key-direction 0 ##tu wklejamy klucz HMAC (ta.key)
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END OpenVPN Static key V1-----
</tls-auth>
/etc/sysctl.conf
Kod: Zaznacz cały
net.ipv4.ip_forward=1
Kod: Zaznacz cały
# sysctl -p
Kod: Zaznacz cały
# iptables -A POSTROUTING --table nat -s 10.8.0.0/24 -o eth0 -j MASQUERADE
/etc/rc.local
Kod: Zaznacz cały
iptables -A POSTROUTING --table nat -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Konfiguracja klienta
Instalujemy paczkę openvpn
Kod: Zaznacz cały
# apt install openvpn
ca.crt
openvpn-client.crt
openvpn-client.key
Przerzucamy je na klienta do lokacji:
/etc/openvpn/
oraz tworzymy tam plik client.conf
/etc/openvpn/client.conf
Kod: Zaznacz cały
client
dev tun
proto udp
remote xxx.xxx.xxx xxxxx ##adres serwera+port
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ca.crt
cert openvpn-client.crt
key openvpn-client.key
ns-cert-type server
comp-lzo
verb 3
key-direction 1 ##ta.key tu se wklej
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END OpenVPN Static key V1-----
</tls-auth>
Kod: Zaznacz cały
# systemctl restart openvpn
Kod: Zaznacz cały
ip a s dev tun0
Kod: Zaznacz cały
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0
Uszczelnienie zapytań DNS (DNS leak)
https://morfitronik.pl/przeciek-dns-dns ... esolvconf/
test >> https://www.dnsleaktest.com/
Uszczelnienie Serwera
Szybka konfiguracja netfiltera na Debianie >> klik
Jeżeli konfigurujemy tylko serwer OpenVPN oczywiście nie dodajemy makr DNS oraz HTTP zamiast tego wpuszczamy makro OpenVPN w lokacji /etc/shorewall/rules:
oraz dodajemy interfejs tun0 na tych samych zasadach co interfejs eth0 w lokacji /etc/shorewall/interfaces:
Warto też uzupełnić blacklistę netfiltera o świeże droplisty >> https://www.spamhaus.org/drop/