Налаштуйте власну приватну мережу за допомогою OpenVPN

Vultr пропонує вам чудове підключення до приватної мережі для серверів, які працюють у тому самому місці. Але іноді потрібно, щоб два сервери в різних країнах/центрах обробки даних мали можливість спілкуватися приватним і безпечним способом. Цей підручник покаже вам, як цього досягти за допомогою OpenVPN. Тут використовуються операційні системи Debian та CentOS, просто щоб показати вам дві різні конфігурації. Це можна легко адаптувати для Debian -> Debian, Ubuntu -> FreeBSD тощо.

  • Машина 1: Debian, буде діяти як сервер (Розташування: Німеччина)
  • Машина 2: CentOS, буде діяти як клієнт (Розташування: FR)

Машина 1

Почніть на машині 1, встановивши OpenVPN:

apt-get install openvpn

Потім скопіюйте приклад конфігурації та інструмент для створення ключів, easy-rsa, до /etc/openvpn:

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

Значення за замовчуванням для ваших ключів більше не є безпечними, щоб виправити це, відкрийте /etc/openvpn/easy-rsa/2.0/varsваш улюблений текстовий редактор і змініть наступний рядок:

export KEY_SIZE=4096

Далі переконайтеся, що значення завантажено у ваш поточний сеанс, очистіть наявні ключі та створіть центр сертифікації:

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

Вам буде запропоновано надати інформацію. Спростіть своє життя, надавши інформацію про свій сервер, наприклад, де він розташований і яким є/буде FQDN. Це корисно, коли вам потрібно налагодити проблеми:

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

Ще одна необхідність – параметри для обміну ключами Діффі-Хеллмана. Їх також потрібно створити:

./build-dh

Важливо : build-dhкоманда є відносно складним процесом, який може тривати до десяти хвилин, залежно від ресурсів вашого сервера.

Для подальшого підвищення безпеки цього з’єднання ми створимо статичний секрет, який потрібно розповсюдити між усіма клієнтами:

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

Тепер ви можете згенерувати ключ для сервера:

./build-key-server server1

Ця команда запросить певну інформацію:

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

Останнім кроком є ​​підписання запиту на сертифікат, який щойно був згенерований ключем ЦС:

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

Скопіюйте необхідні ключі та сертифікати в окрему папку:

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/*

Тепер для налаштування, розпакуйте його ...

cd /etc/openvpn
gunzip server.conf.gz

... і відкрийте отриманий результат за server.confдопомогою улюбленого текстового редактора. Конфігурація має виглядати так:

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

Після перезапуску служби вам слід трохи подивитись свій журнал ...

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

... щоб переконатися, що все працює. Якщо помилок не виявлено, ви можете згенерувати ключі для вашого другого сервера:

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

Знову вам буде запропоновано надати інформацію:

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

Тепер вам потрібно передати необхідні файли на ваш другий сервер, бажано зашифрований:

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

Машина 2

Час перейти на SSH-з'єднання вашого другого сервера . Першим кроком є ​​встановлення OpenVPN ...

yum install openvpn

... і деактивувати firewalld. Заміною буде звичайний iptables.

systemctl stop firewalld
systemctl disable firewalld

Розпакуйте архів, який ви щойно перемістили на сервер, і правильно налаштуйте дозволи на файли:

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

Створюйте за /etc/openvpn/client.confдопомогою свого улюбленого текстового редактора. Це має виглядати так:

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

Останнім кроком є ​​запуск та ввімкнення служби:

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

Якщо все працює, у вас не повинно виникнути проблем з pingом першого сервера:

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

Тепер у вас є приватне з’єднання через Інтернет!

Якщо вам потрібно усунути будь-які помилки, спробуйте перевірити журнали за допомогою такої команди:

journalctl -xn

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше