Już kiedyś miałem stawiać sobie vpna ale dopiero wpis Inzaghi89 zagonił mnie do roboty. Instalacja i konfiguracja przebiega niemalże identycznie w porównaniu z CentOS.
Potrzebujemy włączyć TUN/TAP (w moim przypadku z poziomu Solusa). Następnie kopiujemy easy-rsa do folderu z openvpn (w wersji stable easy-rsa jest jeszcze w paczce, w nowszych trzeba ją pobrać z githuba):
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
W pliku vars ustawiamy wielkość klucza, od 1024 do 4096, wedle uznania:
export KEY_SIZE=4096
Następnie, przystępujemy do konfiguracji:
. ./vars ./clean-all ./build-ca
Podajemy dane wedle uznania, mamy już klucz ca i certyfikat. Tworzymy serwer:
./build-key-server server
Znowu podajemy dane, server to oczywiście tylko nazwa, na końcu podpisujemy certyfikat dając “y”. Mamy już klucz i certyfikat serwera. To samo robimy dla klienta:
./build-key client
Podobnie jak poprzednio wypełniamy dane wedle uznania i podpisujemy.Teraz generujemy DH o wielkości jaką ustaliliśmy na początku:
./build-dh
Pojawi nam się plik dhx.pem gdzie x to oczywiście wielkość :). Co by się logować kluczem można użyć jeszcze użyć tls-auth:
openvpn --genkey --secret ta.key mv ta.key keys
Na koniec konfigurujemy samo openvpn:
cd /etc/openvpn cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz . gunzip server.conf.gz
Zmieniamy co trzeba:
port xxx proto tcp dev tun ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/server.crt key /etc/openvpn/easy-rsa/keys/server.key # This file should be kept secret dh /etc/openvpn/easy-rsa/keys/dh4096.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" keepalive 10 120 tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 # This file is secret comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log log-append openvpn.log verb 3
Startujemy i sprawdzamy czy ruszy:
/etc/init.d/openvpn restart
Pozostaje nam jeszcze dodać odpowiednie reguły do iptables:
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A INPUT -i tun0 -j ACCEPT iptables -A FORWARD -i tun0 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE #gdyby ostatnia linijka nie przechodziła można użyć tej (x.x.x.x to ip serwera): iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to x.x.x.x
Na koniec ustawiamy już na lokalnej maszynie openvpn:
cd /etc/openvpn cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf .
Korzystając z takich danych:
client dev tun proto tcp remote xxx.xxx.xxx.xxx xxx #ip port resolv-retry infinite nobind user nobody group nogroup persist-key ca /etc/openvpn/ca.crt cert /etc/openvpn/client1.crt key /etc/openvpn/client1.key ns-cert-type server tls-auth /etc/openvpn/ta.key 1 comp-lzo verb 3
Kopiujemy w odpowiednie miejsce client.crt, client.key, ca.crt, ta.key, startujemy:
openvpn /etc/openvpn/client.conf
Można też skonfigurować sobie vpna w gnome, potrzebne nam paczki to:
network-manager-openvpn network-manager-openvpn-gnome
Potem już tylko należy wyklikać te same dane w NM.
Opis konfiguracji telefonów z androidem w podał już Inzaghi89. Wpis bazowany na poradniku Uwe Hermann’a.
Prawie działa na Debianie 7, bo jebany ma buga 😛
to co pisałeś z build-dh? Bo u mnie soa#1 a też siódemka 😛
Podpisz więc taki sam cert, najpierw zrób cert 1024, a później np 2048 z takimi samymi danymi. DZIURAWY Debian nie pozwoli na to 😛
😛