Jak zainstalowa膰 w艂asny VPN na serwerze VPS?

Istnieje wiele komercyjnych us艂ug VPN do wyboru (cho膰by NordVPN czy ExpressVPN); wi臋kszo艣膰 z nich jest niedroga i 艂atwa w u偶yciu. Ale postawienie w艂asnej sieci VPN daje pewne korzy艣ci wzgl臋dem takich VPN贸w.

Po pierwsze, korzystaj膮c z dowolnej komercyjnej us艂ugi VPN, dzielisz zasoby serwera z innymi u偶ytkownikami (np. CPU, RAM); Im wi臋cej u偶ytkownik贸w 艂膮czy si臋 z serwerem VPN, tym wolniej on dzia艂a. Z w艂asnym serwerem VPN nie dzielisz si臋 zasobami z nikim, wi臋c uzyskasz maksymaln膮 wydajno艣膰 po艂膮czenia. Kolejna kwestia, przy darmowych czy ma艂o zaufanych VPN-ach istnieje ryzyko, 偶e dostawca zbiera logi Twoich po艂膮cze艅 etc. Przy w艂asnej sieci VPN nie ma oczywi艣cie takiego ryzyka. I ostatnia sprawa, dostawcy us艂ug typu Netflix czy serwis贸w VOD cz臋sto blokuj膮 adresy IP z puli popularnych dostawc贸w VPN-贸w, przy w艂asnym serwerze VPN ryzyko zablokowania IP jest praktycznie zerowe.

W tym poradniku poka偶臋 jak skonfigurowa膰 w艂asny serwer VPN i jak si臋 z nim po艂膮czy膰.

Wyb贸r w艂asnego serwera VPS

Po pierwsze potrzebujesz w艂asnego serwera VPS (ang. Virtual Private Server). Przy wyborze VPS-a warto znale藕膰 co艣 taniego i niezawodnego. Dobrymi opcjami b臋d膮 OVH czy MyDevil.

Poni偶sze instrukcje zosta艂y przetestowane na systemie Linux – CentOS.

Po zakupie w艂asnego VPS-a zwykle w panelu mo偶emy od razu wybra膰 serwer Linux do instalacji, CentOS to jedna z najpopularniejszych opcji i z niego skorzystamy. Oprogramowanie jakie wykorzystamy do instalacji VPN-a to darmowy open-source o nazwie OpenVPN. Wszystkie poni偶ej przedstawione komendy wklejamy czy wpisujemy za pomoc膮 konsoli (dost臋p root).

Konfiguracja w艂asnego serwera OpenVPN

Najpierw zaktualizujemy serwer do najnowszej wersji.

yum install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

Nast臋pnie zainstalujmy OpenVPN i Easy-RSA. OpenVPN to solidne i mocno konfigurowalne oprogramowanie VPN, kt贸re wykorzystuje wszystkie funkcje szyfrowania, uwierzytelniania i certyfikacji biblioteki OpenSSL do implementacji w wirtualnej sieci prywatnej (VPN). Easy-RSA to ma艂y pakiet do zarz膮dzania kluczami RSA oparty na narz臋dziu wiersza polece艅 openssl. B臋dziemy go u偶ywa膰 do generowania certyfikat贸w i zarz膮dzania (prywatnymi) kluczami.

sudo apt install openvpn easy-rsa -y yum install openvpn easy-rsa -y

Skopiujemy teraz wszystkie pliki konfiguracyjne VPN do folderu 鈥/etc/openvpn/鈥.

# Kopiujemy pliki konfiguracyjne OpenVPN do „/etc/openvpn” cp /usr/share/doc/openvpn-2.3.2/sample/sampleconfigfiles/server.conf /etc/openvpn

# Kopiujemy pliki konfiguracyjne Easy-rsa do „/etc/openvpn” cp R /usr/share/easyrsa /etc/openvpn

OpenVPN u偶ywa PKI (Public Key Infrastructure) do uwierzytelniania. Klient musi uwierzytelni膰 certyfikat serwera, a serwer musi uwierzytelni膰 certyfikat klienta przed nawi膮zaniem po艂膮czenia. W kolejnych krokach utworzymy 3 pary certyfikat贸w i powi膮zanych z nimi kluczy. Pierwsza para jest dla serwera, a druga dla klienta. Ostatnia para to certyfikat g艂贸wny (znany r贸wnie偶 jako CA lub Certificate Authority) i jego klucz prywatny, kt贸ry b臋dzie u偶ywany do podpisywania certyfikat贸w serwera i klienta. Tworzymy pary kluczy za pomoc膮 Easy-RSA:

cd /etc/openvpn/easy-rsa/2.0
# Edit the vars script to use the correct path.
vi vars
# Change line: export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA` to
export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf
# Back at the command prompt, use the following command to reflect the changes.
# Notice the space between . and vars.
. vars
# Remove all certificates created previously.
./clean-all
# Build the certificate authority (CA) certificate and key.
# Pick a unique name as „Common Name”. Other fields are optional.
./build-ca
# Generate a certificate and private key for the server.
# Pick a unique „Common Name” such as „server”.
# Enter „.” when prompted for a challenge password.
./build-key-server server
# Build Diffie-Hellman parameters for the server.
# This operation may take a while to complete.
./build-dh
# create a certificate for the client: RobbC.
# Pick a unique „Common Name” such as „RobbC”.
# Enter „.” when prompted for a challenge password.
./build-key RobbC
# Repeat the above command should you need to add more clients.

Teraz przeniesiemy 3 pliki: ca.crt, 97228.crt i 97228.key z katalogu 鈥/etc/openvpn/easy-rsa/keys/鈥 na serwerze do klienta. Utw贸rz 3 pliki tekstowe na kliencie o takich samych nazwach. Na serwerze u偶yj polecenia 鈥瀋at鈥, aby wy艣wietli膰 zawarto艣膰 ka偶dego pliku. Skopiuj i wklej zawarto艣膰 ka偶dego pliku do odpowiedniego pliku w kliencie.

Teraz edytujemy plik konfiguracyjny serwera OpenVPN znajduj膮cy si臋 w folderze: 鈥/etc/openvpn/server.conf鈥.

# Edit the server configuration file.
cd /etc/openvpn
vi server.config
# Include the followings settings.
# Which TCP/UDP port should OpenVPN listen on?
port 1194
# TCP or UDP server?
proto udp
# Create a routed IP tunnel
dev tun
# Point to our ca, cert, key, and dh files.
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
# Supply a VPN subnet for the server and clients
server 10.8.0.0 255.255.255.0
# Assign the previously used IP address
ifconfig-pool-persist ipp.txt
# Redirect all IP traffic through the VPN
push „redirect-gateway def1 bypass-dhcp”
# The addresses below refer to the DNS servers from
# Comodo DNS. Change to Google DNS should you prefer.
push „dhcp-option DNS 8.26.56.26”
push „dhcp-option DNS 8.20.247.20”
# Allow multiple clients to share the same certificate/key files.
duplicate-cn
keepalive 10 120
# Enable compression
comp-lzo
# reduce the OpenVPN daemon’s privileges after initialization.
user nobody
group nobody
# The persist options
persist-key
persist-tun
# Logging options
status openvpn-status.log
log-append /var/log/openvpn.log
verb 3
# Add an extra username/password authentication for clients
plugin /usr/lib/openvpn/plugin/lib/openvpn-auth-pam.so login

Konfiguracja klienta OpenVPN

W tym momencie聽Tw贸j serwer VPN powinien by膰 w pe艂ni funkcjonalny i gotowy do po艂膮czenia z klientem (urz膮dzeniem). Aby pod艂膮czy膰 klienta do serwera, najpierw zainstaluj oprogramowanie OpenVPN na kliencie. Nast臋pnie skonfiguruj klienta do komunikacji z serwerem VPN. W przypadku klienta mobilnego zainstaluj aplikacj臋 OpenVPN Connect; na komputerze stacjonarnym pobierz aplikacj臋 Tunnelblick.

Teraz poka偶臋, jak skonfigurowa膰 klienta VPN na komputerze stacjonarnym za pomoc膮 programu Tunnelblick.

Najpierw utw贸rz folder zawieraj膮cy pliki konfiguracyjne. Mo偶esz nada膰 temu folderowi dowoln膮 nazw臋, pod warunkiem, 偶e ko艅czy si臋 on na .tblk (wi臋c Tunnelblick mo偶e uzyska膰 dost臋p do plik贸w konfiguracyjnych). Nazw臋 m贸j folder EN-100500.tblk, aby przypomnie膰 mi, 偶e folder zawiera pliki konfiguracyjne dla u偶ytkownika VPN: 100500. Prefiks 鈥濫N鈥 wskazuje, 偶e serwer VPN znajduje si臋 w Anglii.

Nast臋pnie wybierz 3 pliki przeniesione z serwera do klienta w kroku 5 i skopiuj pliki do folderu .tblk. Kliknij tutaj prawym przyciskiem myszy i zapisz przyk艂adowy plik konfiguracyjny VPN (config.txt) do folderu .tblk.

Teraz otw贸rz config.txt w edytorze tekstu i zast膮p: MY-SERVER-IP, CA-CERTIFICATE.crt, CLIENT-CERTIFICATE.crt i CLIENT-KEY.key w艂asnymi ustawieniami, post臋puj膮c zgodnie z komentarzami (wiersze z 鈥 # 鈥漃refiks) powy偶ej ka偶dego ustawienia. Po zako艅czeniu edycji pliku zmie艅 jego nazw臋 na config.conf.

Oto jak wygl膮da przyk艂adowy plik konfiguracyjny 鈥瀋onfig.txt鈥:

# Sample client-side OpenVPN configuration
# Lines starting with 鈥#鈥 or 鈥;鈥 are comments

# Specify that this is a client.
client

# Specify the interface to use. Use the same interface the server uses.
;dev tap
dev tun

# Choose a protocol: TCP or UDP. Use the same protocol the server uses.
proto tcp
;proto udp

# Specify the IP address (or fully qualified domain name)
# and port of the server.
remote VPN-SERVER-IP 443

# Keep resolving the host name of the server indefinitely.
resolv-retry infinite

# No need to bind to a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nobody

# route everything over VPN” via the server
redirect-gateway def1

# uses the subnet topology and that it should use the IP address and routing the VPN server provides
topology subnet
pull

# Try to preserve some state across restarts.
persist-key
persist-tun

cipher AES-256-CBC
auth SHA256
key-direction 1
remote-cert-tls server

# Authenticate client by username/password
auth-user-pass

# Enable compression on the VPN link.
comp-lzo

# Set log file verbosity.
verb 3

# Specify the names of your CA certificate, client certificate, and client key.
ca CA-CERTIFICATE.crt
cert CLIENT-CERTIFICATE.crt
key CLIENT-KEY.key
tls-auth

Na koniec nale偶y zezwoli膰 programowi Tunnelblick na dost臋p do plik贸w konfiguracyjnych. W tym celu przeci膮gnij folder .tblk i upu艣膰 go na ikonie Tunnelblick na pasku menu lub na li艣cie konfiguracji znajduj膮cych si臋 na karcie „Configurations” okna „VPN details”.

To wszystko, serwer VPN zosta艂 ju偶 zainstalowany. Proces ten mo偶e nie by膰 szczeg贸lnie 艂atwy dla pocz膮tkuj膮cego u偶ytkownika, w takim przypadku lepiej si臋gn膮膰 po gotowe rozwi膮zania przedstawione cho膰by w naszym rankingu VPN-贸w.

Dodaj komentarz