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

Содержание

Чтобы поднять свой VPN, нам потребуется сервер с Ubuntu или Debian, пакет OpenVPN и Easy-RSA. Если сервер у вас уже есть, хорошо. Если нет, то не расстраивайтесь. В наши дни купить подходящий VDS/VPS можно за небольшую плату в месяц. Компаний, предлагающих соответствующие услуги — десятки. Советовать какой-то конкретный сервис я не буду, как говорится: — «На вкус и цвет товарищей нет».

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

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

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

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

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

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

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

Перейдем в только что скопированную директорию

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

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

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

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

sudo touch /etc/openvpn/server.conf

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

 port 1194
 # Протокол может быть UDP или TCP, я выбрал 2-й вариант.
 proto tcp
 # Если вы выберите протокол TCP, здесь должно быть устройство tap. Однако, я поставил tun и все прекрасно работает.
 dev tun
 # Указываем где искать ключи
 ca /etc/openvpn/easy-rsa/keys/ca.crt
 cert /etc/openvpn/easy-rsa/keys/server.crt
 key /etc/openvpn/easy-rsa/keys/server.key
 dh /etc/openvpn/easy-rsa/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/easy-rsa/keys/ta.key 0
 tls-timeout 120
 auth SHA1
 cipher BF-CBC
 # Если нужно, чтобы клиенты видели друг друга раскомментируйте
 ;client-to-client
 keepalive 10 120
 # Сжатие трафика
 comp-lzo
 # Максимум клиентов
 max-clients 10
 # Права для клиентов
 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

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

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

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

sudo apt install openvpn
cd /etc/openvpn
scp user@vpn-server:/etc/openvpn/client1.crt ./
scp user@vpn-server:/etc/openvpn/client1.key ./
scp user@vpn-server:/etc/openvpn/ca.crt ./
scp user@vpn-server:/etc/openvpn/ta.crt ./

где,
user — это пользователь на сервере
vpn-server — это IP адрес вашего сервера

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

sudo touch /etc/openvpn/client.conf

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

client
proto tcp
dev tun
# !!! замените на настоящий ip адрес сервера
remote 123.45.67.89 1194

# следующие две строчки актуальны только для *nix систем
# на практике они не очень удобны, так как OpenVPN не сможет
# нормально все за собой почистить по завершению работы
user nobody
group nogroup

persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
cipher AES-256-CBC
comp-lzo
verb 3

Подрубаемся к серверу, внимательно читаем логи:

sudo openvpn --config client.conf

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

ping 10.8.0.1

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

 

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *