August 2

Поднимаем свой VPN-сервер на Raspberry Pi

Пошаговая инструкция по настройке VPN-сервера с OpenVPN на Raspberry Pi:

Подготовка Raspberry Pi:

  • Обновление системы:
  • sudo apt update && sudo apt upgrade

Установка OpenVPN:

  • sudo apt install openvpn

Настройка OpenVPN-сервиса:

  • Генерация ключей
  • 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

Создание конфигурационного файла сервера:

  • sudo vim /etc/openvpn/server.conf

Вставляем следующие данные в 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 # Разрешение соединения между клиентами

Запуск OpenVPN-сервера:

Создание конфигурационного файла клиента:

  • sudo vim /etc/openvpn/client.conf

Вставляем следующие данные:

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-адрес устройства, на которое вы хотите скопировать файлы, а `<путь/к/папке>` - на путь к папке, где вы хотите их сохранить.

4. Подключение к VPN-серверу:

* **На устройстве, на котором нужно подключиться к 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.