Вступление
OpenVPN - это защищенный VPN, который использует SSL (Secure Socket Layer) и предлагает широкий спектр функций. В этом руководстве мы рассмотрим процесс установки OpenVPN в Ubuntu 16 с использованием размещенного в центре easy-rsa центра сертификации.
устанавливать
Для начала нам нужно установить несколько пакетов:
sudo su
apt-get update
apt-get install openvpn easy-rsa
Центр сертификации
OpenVPN - это SSL VPN, что означает, что он действует как центр сертификации для шифрования трафика между обеими сторонами.
Настроить
Мы можем начать с настройки центра сертификации нашего сервера OpenVPN, выполнив следующую команду:
make-cadir ~/ovpn-ca
Теперь мы можем переключиться в наш новый созданный каталог:
cd ~/ovpn-ca
Настройка
Откройте файл с именем vars
и посмотрите на следующие параметры:
export KEY_COUNTRY="US"
export KEY_PROVINCE="NJ"
export KEY_CITY="Matawan"
export KEY_ORG="Your Awesome Organization"
export KEY_EMAIL="me@your_awesome_org.com"
export KEY_OU="YourOrganizationUnit"
И редактируйте их со своими собственными значениями. Нам также нужно найти и отредактировать следующую строку:
export KEY_NAME="server"
Сложение
Теперь мы можем начать создание нашего центра сертификации, выполнив следующую команду:
./clean-all
./build-ca
Выполнение этих команд может занять несколько минут.
Сервер-Key
Теперь мы можем начать создавать ключ нашего сервера, выполнив следующую команду:
./build-key-server server
В то время как server
поле должно быть заменено на KEY_NAME
мы установили в vars
файле ранее. В нашем случае мы можем сохранить server
.
Процесс сборки ключа нашего сервера может задать несколько вопросов, например, срок его действия. Мы отвечаем на все эти вопросы с y
.
Сильный Ключ
На следующем шаге мы создадим сильный Diffie-Hellman
ключ, который будет использоваться при обмене нашими ключами. Введите следующую команду, чтобы создать ее:
./build-dh
HMAC
Теперь мы можем создать подпись HMAC для усиления проверки целостности TLS на сервере:
openvpn --genkey --secret keys/ta.key
Генерация клиентского ключа
./build-key client
После того, как мы успешно создали наш собственный центр сертификации, мы можем начать с копирования всех необходимых файлов и настройки самого OpenVPN. Теперь мы собираемся скопировать сгенерированные ключи и сертификаты в наш каталог OpenVPN:
cd keys
cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
cd ..
После этого мы можем скопировать пример файла конфигурации OpenVPN в наш каталог OpenVPN, выполнив следующую команду:
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | tee /etc/openvpn/server.conf
Изменить Конфиг
Теперь мы можем начать редактирование нашего конфига в соответствии с нашими потребностями. Откройте файл /etc/openvpn/server.conf
и раскомментируйте следующие строки:
push "redirect-gateway def1 bypass-dhcp"
user nobody
group nogroup
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
tls-auth ta.key 0
Нам также нужно добавить новую строку в наш конфиг. Поместите следующую строку под tls-auth
строкой:
key-direction 0
Разрешить пересылку
Поскольку мы хотим предоставить нашим клиентам доступ к Интернету через наш сервер, мы открываем следующий файл /etc/sysctl.conf
и раскомментируем эту строку:
net.ipv4.ip_forward=1
Теперь мы должны применить изменения:
sysctl -p
NAT
Чтобы предоставить доступ к Интернету нашим VPN-клиентам, мы также должны создать правило NAT. Это правило - короткая однострочная, которая выглядит так:
iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE
Начало
Теперь мы можем запустить наш сервер OpenVPN и позволить клиентам подключаться, введя следующий ключ:
service openvpn start
Вывод
На этом мы завершаем наш урок. Наслаждайтесь вашим новым сервером OpenVPN!