Настройка VPN на Ubuntu Server (способ первый)

Содержание

Установка OpenVPN на Ubuntu Server 16.04 | 17.04 | 18.04

Приступим к установке пакетов на нашем сервере. В терминале набираем:

sudo apt update
sudo apt install openvpn easy-rsa -y

Оба пакеты должны быть установлены как на сервере, так и на клиенте. Они понадобятся для настройки программы.

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

Для настройки сертификатов нам потребуется пакет easy-rsa. Копируем директорию /easy-rsa в директорию нашего openvpn сервера. Но для начала станем root пользователем

sudo -su
sudo cp -R /usr/share/easy-rsa /etc/openvpn/

Перейдем в директорию /easy-rsa

cd /etc/openvpn/easy-rsa/

Откроем на редактирование файл vars

sudo nano vars

В конце файла заменим информацию о сертификатах по умолчанию (ваши значения).

export KEY_COUNTRY="RU"
export KEY_PROVINCE="Moscow Region"
export KEY_CITY="Moscow"
export KEY_ORG="MyOrg"
export KEY_EMAIL="vash@email.ru"
export KEY_OU="MyOrganizationalUnit"
# PKCS11 я не использовал, поэтому оставил без изменений.
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234
export KEY_ALTNAMES="VPNtoRUS"

Загружаем переменные

source ./vars

Очищаем от старых сертификатов и ключей директорию /keys

./clean-all

Создаем сертификат ЦС. По умолчанию поля будут заполняться данными, введенными ранее в файле /vars, поэтому можно ничего не менять.

./build-ca

Создаем ключ сервера

./build-key-server server

В конце соглашаемся с запросом на подпись и добавление сертификат в базу.

Создаем ключ Диффи-Хеллмана

./build-dh

Cоздаем ключ для tls-аутификации

openvpn --genkey --secret keys/ta.key

Создаем сертификат клиента:

./easyrsa build-client-full client1

Если же по какой либо причине у Вас при создании сертификатов сервер выдает ошибку. Значит придется скачать и собрать пакет easy-rsa самостоятельно. Как это сделать смотрим эту статью.

Настройка конфигурационного файла OpenVPN сервера

Далее создаем конфигурационный файл openvpn.

sudo touch /etc/openvpn/server.conf

Со следующим содержимым:

# Порт на котором будет крутиться наш VPN (по умолчанию 1194)
port 1194
# Протокол может быть UDP или TCP, я выбрал 2-й вариант.
proto tcp
# Если вы выберите протокол TCP, здесь должно быть устройство tap. Однако, я поставил tun и все прекрасно работает.
dev tun
# Указываем директории с нашими ключами
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh2048.pem
# Для 12.04 dh1024.pem
# Задаем IP и маску виртуальной сети. Произвольно, но если не уверены лучше делайте как показано здесь
server 10.8.0.0 255.255.255.0
# Указываем, где хранятся файлы с настройками IP-адресов клиентов (создадим ниже)
client-config-dir ccd
# Запоминать динамически выданные адреса для VPN-клиентов и при последующих подключениях назначать те же значения.
ifconfig-pool-persist ipp.txt
# Указываем сети, в которые нужно идти через туннель (сеть-клиента). Если надо то раскомментируйте
;route 192.168.0.0 255.255.255.0
### Включаем TLS
tls-server
# Для сервера 0 для клиента 1
tls-auth /etc/openvpn/keys/ta.key 0
tls-timeout 120
auth SHA1
cipher AES-256-CBC
# Если нужно, чтобы клиенты видели друг друга раскомментируйте
;client-to-client
keepalive 10 120
# Сжатие трафика
comp-lzo
# Максимум клиентов
max-clients 10
# Права для клиентов-только для Linux
user nobody
group nogroup
# Не перечитывать ключи, не закрывать и переоткрывать TUN\TAP устройства, после получения SIGUSR1 или ping-restart
persist-key
persist-tun
# Логи
status openvpn-status.log
log /var/log/openvpn.log
# Детальность логирования
verb 3
# Защита от повторов (максимум 20 одинаковых сообщений подряд)
mute 20
# Файл отозванных сертификатов. Раскомментировать, когда такие сертификаты появятся.
;crl-verify /etc/openvpn/crl.pem

Создадим директорию для клиентских конфигов

mkdir /etc/openvpn/ccd

Можно запускать наш сервер OpenVPN

service openvpn restart

Смотрим список интерфейсов

ifconfig

Если среди прочих видим

 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
 inet addr:10.8.0.1 P-t-P:10.8.0.1 Mask:255.255.255.255
 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:100
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

значит VPN-сервер завелся. Если нет, то смотрим лог

tail -f /var/log/openvpn.log

Либо можно попробывать перезагрузить ваш сервер

sudo reboot

После перезагрузки должно все заработать. Если нет, то курим логи

Настройка конфигурационного файла клиента.

Создаем сертификат клиента:

./easyrsa build-client-full client1

Далее необходимо скопировать файлы client1.crt, client1.key ta.crt и ca.crt с сервера на клиентскую машину. Для этого в консоли набираем:

scp /etc/openvpn/{client1.crt,client1.key,ca.crt,ta.crt} user@user-host:/etc/openvpn/

где,
user — это пользователь на клиентской машине с правами sudo
user-host — это IP адрес ПК на которую передаем ключи

Если все прошло гладко,то переходим на ПК клиента. Установим необходимые пакеты

sudo apt install openvpn easy-rsa -y

Создадим файл client.conf:

sudo touch /etc/openvpn/client.conf

с содержимым:

client
proto tcp
dev tun
# !!! замените на настоящий ip адрес сервера
remote 111.111.111.111 1194
# следующие две строчки актуальны только для Linux систем
# на практике они не очень удобны, так как OpenVPN не сможет
# нормально все за собой почистить по завершению работы
user nobody
group nogroup
# Не перечитывать ключи, не закрывать и переоткрывать TUN\TAP устройства
persist-key
persist-tun
# Пути где располагаются сертификаты
ca ca.crt
cert client1.crt
key client1.key
# Используемое шифрование
cipher AES-256-CBC
# Сжатие трафика
comp-lzo
# Детальность логирования 
verb 3

Запускаем VPN туннель:

sudo openvpn --config client.conf

В соседнем терминале набираем:

ping 10.8.0.1

Если все было сделано правильно, вы обнаружите, что пинги успешно доходят до 10.8.0.1

Если есть вопросы, то пишем в комментариях и не забываем проголосовать за статью.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Настройка VPN на Ubuntu Server (способ первый)
5 (100%) 3 votes

1
Оставить комментарий

avatar
1 Цепочка комментария
0 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
1 Авторы комментариев
Евгений Авторы недавних комментариев
  Подписаться  
новее старее большинство голосов
Уведомление о
Евгений
Гость
Евгений

Пути ключей указанных в конфигурации сервера не верны. Надо либо исправить либо переносить ключи в данную категорию.

Меню

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Рейтинг@Mail.ru