OpenVPN — это одно из самых популярных и безопасных решений для создания виртуальных частных сетей (VPN). VPN позволяет пользователям подключаться к удаленным сетям через зашифрованные туннели, обеспечивая безопасность и анонимность передачи данных. В этой статье мы рассмотрим, как самостоятельно настроить сервер OpenVPN на Linux и подключить клиента к нему.
Установка OpenVPN на сервере Linux
- Установите OpenVPN и EasyRSA (для генерации сертификатов) с помощью менеджера пакетов вашего дистрибутива. Например, для Ubuntu или Debian:
sudo apt-get update sudo apt-get install openvpn easy-rsa
- Скопируйте пример конфигурационного файла сервера в каталог /etc/openvpn:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ sudo gzip -d /etc/openvpn/server.conf.gz
Настройка PKI (Public Key Infrastructure)
- Создайте каталог для хранения ключей и сертификатов:
sudo mkdir /etc/openvpn/easy-rsa sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa
- Измените файл vars в каталоге /etc/openvpn/easy-rsa, указав ваши собственные значения для различных переменных, таких как KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG и KEY_EMAIL.
- Инициализируйте PKI:
cd /etc/openvpn/easy-rsa source vars ./clean-all ./build-ca
Создание сертификатов и ключей для сервера и клиента
- Создайте сертификат и ключ для сервера:
./build-key-server server
- Создайте сертификат и ключ для клиента:
./build-key client1
- Генерируйте ключ Diff-Hellman для обмена ключами:
./build-dh
- Скопируйте созданные файлы в соответствующие каталоги:
sudo cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt,dh2048.pem} /etc/openvpn/
Настройка конфигурационного файла сервера
- Отредактируйте /etc/openvpn/server.conf, указав путь к ключам и сертификатам:
ca ca.crt cert server.crt key server.key dh dh2048.pem
- Укажите подсеть для VPN-клиентов, например:
server 10.8.0.0 255.255.255.0
- Включите пересылку пакетов между клиентами и интернетом:
push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"
Полный конфиг:port 1194
proto udp
dev tunca ca.crt
cert server.crt
key server.key
dh dh2048.pemserver 10.8.0.0 255.255.255.0
push «redirect-gateway def1 bypass-dhcp»
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»keepalive 10 120
cipher AES-256-CBC
comp-lzopersist-key
persist-tunstatus openvpn-status.log
log openvpn.log
verb 3 - Сохраните файл и перезапустите сервер OpenVPN:
sudo systemctl restart openvpn@server
php Copy code
Настройка клиентского конфигурационного файла
- Создайте файл client1.ovpn с примером конфигурации клиента:
client dev tun proto udp remote [YOUR_SERVER_IP] 1194 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ca ca.crt cert client1.crt key client1.key ns-cert-type server cipher AES-256-CBC comp-lzo verb 3
- Скопируйте этот файл и сертификаты/ключи (client1.crt, client1.key, ca.crt) на клиентскую машину.
php Copy code
Подключение клиента к серверу OpenVPN
- Установите OpenVPN на клиентском компьютере:
sudo apt-get update sudo apt-get install openvpn
- Поместите файлы client1.ovpn, client1.crt, client1.key и ca.crt в каталог /etc/openvpn на клиентском компьютере.
- Подключитесь к серверу:
sudo openvpn --config /etc/openvpn/client1.ovpn
css Copy code
После успешного подключения ваш трафик будет проходить через сервер OpenVPN, обеспечивая безопасность и анонимность.
Заключение
Теперь вы знаете, как самостоятельно настроить сервер OpenVPN на Linux и подключить клиента к нему. Опираясь на эту информацию, вы сможете создать свой собственный VPN-сервер для защиты вашей приватности и безопасности в интернете.