Поднимаем свой VPN-сервер на Raspberry Pi
Пошаговая инструкция по настройке VPN-сервера с OpenVPN на Raspberry Pi:
- Генерация ключей
- sudo openvpn --genkey --secret openvpn-secret.key
sudo openvpn --easy-rsa init-pki
cd easy-rsa/
sudo ./vars.example > vars
sudo ./clean-all
sudo ./build-ca nopass
sudo ./build-server-full nopass server
sudo ./build-client-full nopass client
Создание конфигурационного файла сервера:
Вставляем следующие данные в server.conf:
port 1194 # Порт OpenVPN (можно изменить)
proto udp # Протокол (UDP)
dev tun # Интерфейс OpenVPN
ca /etc/openvpn/easy-rsa/keys/ca.crt # Сертификат CA
cert /etc/openvpn/easy-rsa/keys/server.crt # Сертификат сервера
key /etc/openvpn/easy-rsa/keys/server.key # Ключ сервера
dh /etc/openvpn/easy-rsa/keys/dh.pem # Параметры Diffie-Hellman
server 10.8.0.0 255.255.255.0 # Подсеть VPN
push "redirect-gateway def1 bypass-dhcp" # Перенаправление трафика
keepalive 10 60 # Поддержание соединения
user nobody # Пользователь для запуска OpenVPN
group nogroup # Группа для запуска OpenVPN
persist-key # Сохранение ключей
persist-tun # Сохранение туннеля
status /var/log/openvpn-status.log # Журнал состояния
log /var/log/openvpn.log # Журнал OpenVPN
verb 3 # Уровень логирования
client-to-client # Разрешение соединения между клиентами
sudo systemctl enable [email protected]
sudo systemctl start [email protected]
Создание конфигурационного файла клиента:
client
dev tun
proto udp
remote <ваш_ip_адрес_Raspberry_Pi> 1194 # IP-адрес Raspberry Pi и порт OpenVPN
ca /etc/openvpn/easy-rsa/keys/ca.crt # Сертификат CA
cert /etc/openvpn/easy-rsa/keys/client.crt # Сертификат клиента
key /etc/openvpn/easy-rsa/keys/client.key # Ключ клиента
nobind
persist-key
persist-tun
comp-lzo
verb 3
Перемещение файлов сертификатов для клиента:
-
scp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys/client.crt /etc/openvpn/easy-rsa/keys/client.key <ваша_машина>:/путь/к/папке
Замените `<ваша_машина>` на имя или IP-адрес устройства, на которое вы хотите скопировать файлы, а `<путь/к/папке>` - на путь к папке, где вы хотите их сохранить.
* **На устройстве, на котором нужно подключиться к VPN:**
* Загрузите и установите OpenVPN-клиент (например, [OpenVPN Connect]
* Импортируйте сертификаты CA, клиента и ключ (например, в виде файла .ovpn).
* Подключитесь к VPN-серверу, указав IP-адрес Raspberry Pi и порт OpenVPN.
* Дополнительно можно использовать OpenVPN GUI для удобного подключения и управления VPN.
* **Настройка DNS:** В конфигурационном файле клиента (client.conf) можно изменить DNS-сервер.
* **Настройка порта:** Изменить порт OpenVPN в файле server.conf.
* **Настройка безопасности:** Используйте strongswan для более продвинутой аутентификации.
* **Настройка файервола:** Разрешить VPN-трафик через файервол Raspberry Pi.