Отредактировано 3 Несколько недель назад от ExtremeHow Редакционная команда
ДебианOpenVPNНастройка сервераСетевые подключенияБезопасностьЛинуксVPNАдминистрирование системыОткрытый исходный кодКомандная строка
Перевод обновлен 3 Несколько недель назад
Настройка сервера OpenVPN на Debian может показаться сложной, но, внимательно следуя нескольким шагам, вы сможете настроить безопасный VPN. Этот гид предполагает, что вы имеете базовые знания работы с командной строкой и установленную Debian. Мы рассмотрим каждый шаг в деталях, предоставляя все необходимые команды и конфигурации для запуска вашего OpenVPN сервера. Это будет включать настройку, конфигурирование и тестирование вашего VPN сервера.
Прежде чем начать, убедитесь, что:
sudo apt update && sudo apt upgrade -y
После того как уверены, что ваша система обновлена, следующим шагом будет настройка фаервола.
Несложный фаервол (UFW) — это простой способ управления настройками фаервола. Если UFW еще не установлен, используйте следующую команду для установки:
sudo apt install ufw
Затем разрешите SSH соединения через фаервол (если еще не разрешено) следующим образом:
sudo ufw allow OpenSSH
Разрешите соединения OpenVPN:
sudo ufw allow 1194/udp
Включите фаервол:
sudo ufw enable
Проверьте статус UFW, чтобы убедиться, что правила установлены правильно:
sudo ufw status
Установите пакет OpenVPN на Debian с помощью следующей команды:
sudo apt install openvpn
После установки пора настроить сервер. Вам понадобится пакет easy-rsa, чтобы помочь вам создать центр сертификации и сертификаты клиента/сервера.
Скачайте пакет easy-rsa, который содержит скрипты для управления инфраструктурой публичных ключей (PKI):
sudo apt install easy-rsa
Затем мы копируем скрипт easy-rsa в новый каталог, который будет использован для хранения всех ключей и сертификатов:
make-cadir ~/openvpn-ca
Перейдите в новый каталог:
cd ~/openvpn-ca
Отредактируйте файл 'vars' в этом каталоге, чтобы установить переменные, необходимые для создания сертификатов:
nano vars
Вот некоторые ключевые переменные для редактирования:
export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Example" export KEY_EMAIL="email@example.com" export KEY_OU="MyOrganizationalUnit"
Сохраните и выйдите из редактора, нажав CTRL + X, затем Y, и нажмите Enter.
Инициализируйте каталог инфраструктуры открытых ключей (PKI):
./easyrsa init-pki
Создайте Центр Сертификации (CA), выполнив следующее:
./easyrsa build-ca
Вам будет предложено ввести другие детали, такие как пароль и общее имя для CA. Установите их по своему усмотрению.
Далее создайте серверный сертификат и ключ. Выполните:
./easyrsa gen-req server nopass
Эта команда генерирует закрытый серверный ключ с именем 'server.key'.
Теперь подпишите сертификат с помощью CA:
./easyrsa sign-req server server
Вам будет предложено подтвердить запрос на подпись. Введите "yes" и нажмите Enter.
Аналогично подготовьте сертификаты для клиентов:
./easyrsa gen-req client1 nopass
Подпишите клиентский сертификат:
./easyrsa sign-req client client1
Повторите эти шаги, чтобы создать больше клиентских сертификатов по мере необходимости.
Сгенерируйте файл Диффи-Хеллмана:
./easyrsa gen-dh
И создайте статическую HMAC-подпись для усиления возможностей проверки целостности TLS на сервере:
openvpn --genkey secret ta.key
Создайте новый конфигурационный файл для сервера OpenVPN:
sudo nano /etc/openvpn/server.conf
Вставьте следующую конфигурацию в файл:
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt 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 tls-auth ta.key 0 cipher AES-256-CBC user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3
Убедитесь, что все пути к файлам указывают на правильные файлы. Теперь сохраните файл и выйдите из редактора.
Вам нужно будет внести изменения в сеть, чтобы разрешить переадресацию трафика. Откройте `/etc/sysctl.conf`:
sudo nano /etc/sysctl.conf
Раскомментируйте строку:
net.ipv4.ip_forward=1
Примените изменения:
sudo sysctl -p
Добавьте правило UFW:
sudo nano /etc/ufw/before.rules
Добавьте в начало файла:
# START OPENVPN RULES *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE COMMIT # END OPENVPN RULES
Разрешите IP-маскарадинг:
sudo nano /etc/default/ufw
Измените `DEFAULT_FORWARD_POLICY` на:
DEFAULT_FORWARD_POLICY="ACCEPT"
Наконец примените правила UFW:
sudo ufw allow 1194/udp
Перезапустите UFW:
sudo ufw disable
sudo ufw enable
Запустите и включите службу OpenVPN:
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
Проверьте статус, чтобы убедиться, что она работает без ошибок:
sudo systemctl status openvpn@server
Последний шаг — настройка клиента. Установите клиент OpenVPN, выполнив команду установки, специфичную для вашей операционной системы клиента. Затем создайте клиентский конфигурационный файл, обычно это файл `.ovpn`, который содержит всю информацию о сервере, клиентский сертификат и закрытый ключ для аутентификации.
Создайте новый клиентский конфигурационный файл на вашей машине (client1.ovpn):
client dev tun proto udp remote your-server-ip 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC auth SHA256 auth-nocache tls-auth ta.key 1 verb 3 # paste ca.crt content here # paste client1.crt content here # paste client1.key content here # paste ta.key content here
Передайте сертификаты и настройте клиентскую конфигурацию на вашем клиентском устройстве.
Наконец, настало время для тестирования. Запустите клиент OpenVPN на вашей машине, используя созданный конфигурационный файл. Если все настроено правильно, вы сможете подключиться без проблем, и ваш сетевой трафик будет направлен через ваш VPN!
После подключения проверьте ваш внешний IP-адрес, чтобы убедиться, что он соответствует IP-адресу сервера, а не исходному IP-адресу клиента.
Следуя этим детализированным шагам, вы успешно установили сервер OpenVPN на машину Debian. Эта настройка обеспечивает безопасное общение ваших данных через потенциально небезопасную сеть. Всегда помните держать ваш сервер и клиента в актуальном состоянии и постоянно следить за обновлениями безопасности.
Если вы найдете что-то неправильное в содержании статьи, вы можете