Skonfiguruj własną sieć prywatną z OpenVPN

Vultr oferuje niesamowite połączenie z siecią prywatną dla serwerów działających w tej samej lokalizacji. Ale czasami chcesz, aby dwa serwery w różnych krajach / centrach danych mogły komunikować się w prywatny i bezpieczny sposób. Ten samouczek pokaże, jak to osiągnąć za pomocą OpenVPN. Stosowane tutaj systemy operacyjne to Debian i CentOS, aby pokazać dwie różne konfiguracje. Można to łatwo dostosować do Debiana -> Debian, Ubuntu -> FreeBSD i tak dalej.

  • Maszyna 1: Debian, będzie działać jako serwer (Lokalizacja: NL)
  • Maszyna 2: CentOS, będzie działać jako klient (Lokalizacja: FR)

Maszyna 1

Uruchom na komputerze 1, instalując OpenVPN:

apt-get install openvpn

Następnie skopiuj przykładową konfigurację i narzędzie do generowania kluczy easy-rsa, do /etc/openvpn:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn

Domyślne wartości kluczy nie są już całkowicie bezpieczne, aby to naprawić za /etc/openvpn/easy-rsa/2.0/varspomocą ulubionego edytora tekstu i zmodyfikować następujący wiersz:

export KEY_SIZE=4096

Następnie upewnij się, że wartości są ładowane do bieżącej sesji, wyczyść ostatecznie istniejące klucze i wygeneruj ośrodek certyfikacji:

cd /etc/openvpn/easy-rsa/2.0
source ./vars
./clean-all
./build-ca

Zostaniesz poproszony o podanie informacji. Ułatw sobie życie, dostarczając informacje o serwerze, na przykład, gdzie się znajduje i jaka jest / będzie nazwa FQDN. Jest to przydatne, gdy trzeba debugować problemy:

Country Name (2 letter code) [US]:NL
State or Province Name (full name) [CA]:-
Locality Name (eg, city) [SanFrancisco]:Vultr Datacenter NL
Organization Name (eg, company) [Fort-Funston]:-
Organizational Unit Name (eg, section) [changeme]:-
Common Name (eg, your name or your server's hostname) [changeme]:yourserver1.yourdomain.tld
Name [changeme]:-
Email Address [mail@host.domain]:youraddress@yourdomain.tld

Inną koniecznością są parametry wymiany kluczy Diffie-Hellmana. Te też trzeba wygenerować:

./build-dh

Ważne : build-dhpolecenie jest stosunkowo złożonym procesem, który może potrwać do dziesięciu minut, w zależności od zasobów serwera.

Aby jeszcze bardziej zwiększyć bezpieczeństwo tego połączenia, wygenerujemy statyczny sekret, który należy rozdzielić między wszystkich klientów:

mkdir /etc/openvpn/keys
openvpn --genkey --secret /etc/openvpn/keys/ta.key

Teraz możesz wygenerować klucz dla serwera:

./build-key-server server1

To polecenie wyświetli monit o podanie niektórych informacji:

Country Name (2 letter code) [US]:NL
State or Province Name (full name) [CA]:-
Locality Name (eg, city) [SanFrancisco]:Vultr Datacenter NL
Organization Name (eg, company) [Fort-Funston]:-
Organizational Unit Name (eg, section) [changeme]:-
Common Name (eg, your name or your server's hostname) [server1]:yourserver1.yourdomain.tld
Name [changeme]:-
Email Address [mail@host.domain]:youraddress@yourdomain.tld

Ostatnim krokiem jest podpisanie właśnie wygenerowanego żądania certyfikatu za pomocą klucza urzędu certyfikacji:

1 out of 1 certificate requests certified, commit? [y/n]y

Skopiuj niezbędne klucze i certyfikaty do osobnego folderu:

cd /etc/openvpn/easy-rsa/2.0/keys
cp dh4096.pem ca.crt server1.crt server1.key /etc/openvpn/keys/
chmod 700 /etc/openvpn/keys
chmod 600 /etc/openvpn/keys/*

Teraz do konfiguracji, rozpakuj go ...

cd /etc/openvpn
gunzip server.conf.gz

... i otwórz wynik server.confswojego ulubionego edytora tekstu. Konfiguracja powinna wyglądać podobnie do tego:

port 1194
proto udp
dev tun

ca keys/ca.crt
cert keys/server1.crt
key keys/server1.key 
dh keys/dh4096.pem
server 10.8.100.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# Uncomment this if you have multiple clients
# and want them to be able to see each other
;client-to-client

keepalive 10 120
tls-auth keys/ta.key 0 

tls-cipher DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES128-SHA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
cipher AES-256-CBC
auth SHA384
comp-lzo

user nobody
group nogroup

persist-key
persist-tun
verb 3
mute 20

Po ponownym uruchomieniu usługi powinieneś trochę obejrzeć dziennik ...

service openvpn restart && tail -f /var/log/syslog

... aby upewnić się, że wszystko działa. Jeśli nie zostaną wykryte żadne błędy, możesz wygenerować klucze dla drugiego serwera:

cd /etc/openvpn/easy-rsa/2.0
source ./vars
./build-key server2

Ponownie pojawi się monit o podanie informacji:

Country Name (2 letter code) [US]:FR
State or Province Name (full name) [CA]:-
Locality Name (eg, city) [SanFrancisco]:Vultr Datacenter FR
Organization Name (eg, company) [Fort-Funston]:-
Organizational Unit Name (eg, section) [changeme]:-
Common Name (eg, your name or your server's hostname) 
[server2]:yourserver2.yourdomain.tld
Name [changeme]:-
Email Address [mail@host.domain]:youraddress@yourdomain.tld

Teraz musisz przenieść niezbędne pliki na drugi serwer, najlepiej zaszyfrowane:

cd /etc/openvpn/easy-rsa/2.0/keys
cp /etc/openvpn/keys/ta.key .
tar -cf vpn.tar ca.crt server2.crt server2.key ta.key
scp vpn.tar yourusername@server2:~/
rm vpn.tar

Maszyna 2

Czas przejść na połączenie SSH drugiego serwera . Pierwszym krokiem jest instalacja OpenVPN ...

yum install openvpn

... i dezaktywować firewalld. Zastąpienie będzie zwykłym iptables.

systemctl stop firewalld
systemctl disable firewalld

Rozpakuj archiwum, które właśnie przeniosłeś na serwer i odpowiednio ustaw uprawnienia do plików:

cd /etc/openvpn
mkdir keys
chmod 700 keys
cd keys
tar -xf ~/vpn.tar -C .
chmod 600 *

Twórz /etc/openvpn/client.confw swoim ulubionym edytorze tekstu. To powinno wyglądać tak:

client
dev tun
proto udp

remote yourserver yourport
resolv-retry infinite
nobind
user nobody
group openvpn


persist-key
persist-tun

ca keys/ca.crt
cert keys/server2.crt
key keys/.key

ns-cert-type server
tls-auth keys/ta.key 1

tls-cipher DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES128-SHA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
cipher AES-256-CBC
auth SHA384

remote-cert-tls server

comp-lzo
verb 3
mute 20

Ostatnim krokiem jest uruchomienie i włączenie usługi:

systemctl start openvpn@client.service
systemctl enable openvpn@client.service

Jeśli wszystko działa, nie powinno być problemu z pingowaniem pierwszego serwera:

PING 10.8.100.1 (10.8.100.1) 56(84) bytes of data.
64 bytes from 10.8.100.1: icmp_seq=1 ttl=64 time=17.8 ms
64 bytes from 10.8.100.1: icmp_seq=2 ttl=64 time=17.9 ms
64 bytes from 10.8.100.1: icmp_seq=3 ttl=64 time=17.8 ms

Masz teraz prywatne połączenie przez Internet!

Jeśli chcesz rozwiązać problemy z błędami, spróbuj sprawdzić dzienniki za pomocą następującego polecenia:

journalctl -xn

Zostaw komentarz

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.