Разное

Настройка vpn ubuntu: Ubuntu Linux / Настройка VPN-соединения

Содержание

Создание VPN-соединения на Ubuntu

Для перехода на главную страницу нажмите здесь.

Система Ubuntu Linux сегодня является одной из наиболее активно развиваемых и многообещающих операционных систем. Многие пользователи нуждаются в анонимности своих действий в интернете. Кроме того, конфиденциальность информации для некоторых является крайне необходимой заботой. Добиться анонимности в интернете и конфиденциальности всей передаваемой информации можно посредство настройки в ubuntu VPN соединения, которое создаст виртуальный туннель между вашим и другим компьютером в сети, по которому информация будет передаваться в зашифрованном виде. Такой способ отправки данных позволяет повысить степень защищенности всей передаваемой информации.
Рассмотрим все этапы создания VPN-подключения.
1. Правой кнопкой мыши щелкаем по апплете сети.
2. Выбираем пункт «Соединение VPN-настроить VPN».
3. В появившемся окне находим и выбираем вкладку VPN.
4. Нажимаем «Добавить».
5. Выбираем типа подключения «Point-to-Point Tunneling Protocol (PPTP) ». Нажимаем кнопку «Создать»
6. В появившемся окне вводим требуемое имя шлюза, не забываем весть пароль и имя пользователя для VPN-соединения
7. В окне аутентификации ставим галочку напротив «MSCHAPv2».
8. В окне шифрования снимаем все выделения.
9. Нажимаем «Готово».
Теперь, выбрав соединение в апплете, мы можем без труда установить подключение. Если вы твердо решили установить свой туннель для подключения, например, к рабочей сети, то вам потребуется реализация технологии VPN на Ubuntu Open VPN. Она позволяет создавать соединения типа точка-точка или сервер-клиенты.
Настройка Ubuntu OpenVPN не представляет больших трудностей и доступна любому пользователю, достаточно лишь проявить немного терпения и настойчивости. По окончанию настройки вы получите туннель в виртуальном пространстве, по которому будет передаваться информация в зашифрованном виде. Данный способ передачи данных обеспечивает не только достоверность получаемой информации, но и ее сохранность.

Читайте также:

Особенности подключения технологии Windows vpn
Особенности OpenVPN: установка и настройка
Изменяем IP-адрес на вашем ПК

Как настроить VPN | Kubuntu.ru

Автор: CoderInside
e-mail: [email protected]
icq: 233503535

Версия 1.3

В статье описывается процесс настройки VPN клиента для организации подключения к услуге «Интернет+Дом» компании Информсвязь. Все данные которые необходимы для описанной ниже настройке выдаются на руки при подключении. Подключать будем машину с одной сетевой картой и установленной Ubuntu 6.06 LTS. Данные из карточки клиента (естественно вымышленные 😉 ):

  • Ваше учетное имя для доступа в сеть (Login): coder
  • Ваш пароль для доступа в сеть: qwerty
  • Адрес PPTP сервера: 192.168.149.1
  • Адреса сервера DNS: первичный 195.98.64.65, вторичный 195.98.64.66
  • Локальный IP-адрес: 192.168.172.15
  • Маска подсети: 255.255.255.192
  • Шлюз доступа в сеть: 192.168.172.1

Для подключения к VPN серверу будем использовать pptp-linux. Переходим в терминал и устанавливаем этот пакет:

sudo aptitude install pptp-linux

Обратите внимание что вместо утилиты apt-get используется ее улучшенный вариант – aptitude. Она лучше справляется с зависимостями да и на сайте Debian ее настоятельно рекомендуют использовать вместо устаревшей apt-get.

Пакет установлен и первоначально сконфигурирован. Теперь переходим в каталог /etc/ppp, открываем только что созданный файл options.pptp, удаляем из него все строчки и добавляем следующее:

# Использовать lock в стиле UUCP для последовательного устройства
lock
# Не требовать удаленную сторону назвать себя
noauth
# Не отключаться когда соединение закрыто, пробовать открыть его снова
persist

Добавим в систему будущее соединие, назовем его ic. Для этого создадим файл /etc/ppp/peers/ic и наполним его следующим содержимым:

# При отсутствии связи всегда пытаемся подключиться
maxfail 0
# Узнаем о «самочуствии» удаленной стороны каждые 60 сек
lcp-echo-interval 60
# Если удаленная сторона не ответила 4 раза – считаем что нас отключили
lcp-echo-failure 4
# Установить маршрут по умолчанию
defaultroute
# Комманда для соединения
pty "pptp 192.168.149.1 --nolaunchpppd"
# Устанавливаем имя нашего хоста
name coder
# Устанавливаем имя удаленного хоста
remotename PPTP
# Читать дополнительные настройки из options.pptp
file /etc/ppp/options.pptp
# Дополнительный параметр для скриптов ip-up, ip-pre-up, ip-down
ipparam ic
# Включить «Deflate» сжатие (так работает заметно быстрее)
deflate 15,15
# Если переодически отваливается, следует ограничить максимальный размер пакета
mtu 1412

Теперь введем имя пользователя и пароль. Открываем файл /etc/ppp/chap-secrets и добавляем в него следующую строчку

coder PPTP qwerty *

Тунель настроен. Далее сконфигурируем сетевую карту. Правим файл /etc/network/interfaces, делам его похожим на мой (комментарии не пишу, тут и так все понятно)

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.172.15
netmask 255.255.255.192
up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.172.1 dev eth0

Проверяем правильность перезагрузкой сети

sudo /etc/init.d/networking restart

Комманда должна выполниться без ошибочных сообщений. Если ошибки есть – то скорее всего в файле /etc/network/interfaces есть опечатки. Совет – ошибка пишется вместе с номером строки где она произошла, так что сразу смотрим на сроку номер х и делам все как надо.

Проверяем интерфейсы

ifconfig

Комманда должна показать два интерфейса lo0 и eth0

Если так и есть – все хорошо. Сеть настроена. Сейчас должен идти пинг на шлюз и PPTP сервер. Проверим

ping 192.168.172.1
ping 192.168.149.1

Если не идет пинг на шлюз – проверьте подключен ли кабель, если на шлюз пинг есть а на PPTP сервер нет – смотрим правильно ли прописана маршрутизация

route -n

Если все хорошо, пингуется как шлюз так и PPTP сервер – переходим к следующему шагу.

Создаем файл /etc/resolv.conf, прописываем в нем адреса наших DNS серверов

search
nameserver  195.98.64.65
nameserver  195.98.64.66

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

sudo pon ic

Проверим. Вывод ifconfig должен показать интерфейсы lo0, eth0 и новый интерфейс ppp0 с вашим IP. Это и есть тунель. Все. Можно запускать браузер и наслаждаться настроящим скоростным интернетом 🙂

Выключать тунель коммандой poff ic

Если подключать и отключать руками вам не хочется – то можно добавить пару строк в файл /etc/network/interfaces и тунель будет автоматически подниматься при активации сетевой карты. Открываем /etc/network/interfaces и дописываем в конец следующие строки

auto ic
iface ic inet ppp
pre-up ip link set eth0 up
provider ic

Теперь тунель будет автоматически подниматься при старте 🙂

Удачи!

По всем вопросам пишите на [email protected]

Хочу добавить что в KUbuntu можно очень удобно для всего этого пользоваться утилитой KVPNC, предварительно установив следующие пакеты:

sudo aptitude install pptp-linux
sudo aptitude install pptpd
sudo aptitude install kvpnc

Настройка VPN клиента в Ubuntu 16.04

Настройка VPN клиента для OpenVPN сервера на Ubuntu 16.04.

Пример .ovpn файла конфигурации клиента:

client

remote XX.XX.XX.XX
port 1198

auth SHA512
auth-user-pass /path-to/username-password.txt

## @note Включаем компрессию данных
comp-lzo yes

dev tun
proto udp
nobind
auth-nocache
persist-key
persist-tun

cipher AES-256-CBC

verb 3

## @note В документации рекомендуется этот пункт для клиентов с нестабильным доступом, например Wi-Fi
resolv-retry infinite

key-direction 1

##push "route-nopull"
##push "route no-pull"
##push "redirect-gateway def1 bypass-dhcp"

##route-nopull
##route 172. 21.227.0 255.255.255.0 172.21.103.33  ## @note Пример установки статического маршрута 

# Скрипт работает при подключении, он обновляет записи в resolv.conf при подключении к OpenVPN серверу и очищает их при отключении от OpenVPN сервера
#script-security 2
#up /etc/openvpn/update-resolv-conf
#down /etc/openvpn/update-resolv-conf

#ca ca.crt
#cert client.crt
#key client.key
#tls-auth clients-auth.key 1

<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>

<cert>
Certificate:
    Data:
        ...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
</key>

<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
...
-----END OpenVPN Static key V1-----
</tls-auth>

Этот файл можно импортировать в NetworkManager, утилита nm-connection-editor. Придется повторно указать username и password (если заданы).

Будет создано новое VPN соединение. Файл конфигурации: /etc/NetworkManager/system-connections/Some-VPN-Connection.

Нет возможности из ovpn-конфига указать параметры IPv4 «Способ настройки: Автоматически (VPN, только адрес)» или параметры маршрутизации «Использовать это соединение только для ресурсов в этой сети» (Use this connection only for resources on its network). А в Ubuntu 16.04 при настройке/редактировании VPN маршрутов через nm-connection-editor слетает значение Metrics, из-за чего не устанавливаются статичные маршруты, которые вы указали в настройках соединения.

Окно настройки маршрутов OpenVpn клиента в Ubuntu 16.04

Чтобы изменить эти опции, отредактируйте файл вручную:

sudo gedit /etc/NetworkManager/system-connections/Some-VPN-Connection

И укажите параметры ignore-auto-dns=true и never-default=true:

[connection]
id=Some-VPN-Connection
uuid=33278466-4d4d-4781-ad1f-0edaf1919ba6
type=vpn
permissions=
secondaries=
timestamp=1568982399

[vpn]
ta-dir=1
connection-type=password-tls
password-flags=1
remote=XX. XX.XX.XX
comp-lzo=yes
cert-pass-flags=0
port=1198
username=YouUsername
cert=/home/user/.cert/nm-openvpn/Some-VPN-Connection-cert.pem
ca=/home/user/.cert/nm-openvpn/Some-VPN-Connection-ca.pem
key=/home/user/.cert/nm-openvpn/Some-VPN-Connection-key.pem
ta=/home/user/.cert/nm-openvpn/Some-VPN-Connection-tls-auth.pem
dev=tun
service-type=org.freedesktop.NetworkManager.openvpn

[ipv4]
dns-search=
ignore-auto-dns=true
method=auto
never-default=true
route1=172.21.227.0/24,172.21.254.49 ## @note Удалите значение метрики 4294967295, если указано

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=ignore

Перезапустите сервис после редактирования:

sudo service network-manager restart
## или
sudo systemctl restart NetworkManager.service
Примечание

Чтобы добавить маршрут временно вручную:

sudo ip route add 172.21.227.0/24 via 172.21.103.33 dev tun0

#VPN, #OVPN, #OpenVPN, #NetworkManager, #Ubuntu 16.04

как настроить vpn ubuntu server

Всем привет, я Артем! Возникла у меня необходимость поднять на домашнем компе на Убунту VPN-сервер, чтобы получить удаленный доступ из офиса, запускать/останавливать закачки, стягивать нужные файлы, видеть через веб-камеру, что творится в доме и все такое прочее. Мне друг объяснял, как настроить vpn ubuntu server легко и просто, но всего сразу не запомнишь. Буду благодарен, если объясните. С командной строкой работаю нормально, править конфиги не боюсь.

Это хорошо, что вы уверены в своих силах и хотите самостоятельно настроить VPN сервер на Ubuntu. Такие задачи обычно решаются нами в корпоративных условиях при предоставлении услуг it аутсорсинга. Но они вполне выполнимы и в домашних условиях.

Значит так.
Устанавливаем сам VPN сервер:

Настройка VPN сервера.
Редактируем файл /etc/ppp/pptpd-options

Редактируем файл /etc/pptpd. conf

Мы получили возможность добавлять новых пользователей.
Для этого редактируем файл /etc/ppp/chap-secrets

Вы только что добавили пользователя heiniken с паролем vladimir и дали ему возможность доступа с любого ip-адреса.
Если вы хотите установить определенный ip-адрес, с которого будет разрешен доступ этому пользователю, то вместь «*» вписываете нужный айпишник.

Совершаем перезапуск VPN-сервера

На этом этапе настройка VPN-сервера завершена и остается только настроить форвардинг пакетов и firewall.

Настраиваем firewall
Для начала создаем простой скрипт фаервола в директории /home:

В новом открывшемся окне прописываем:

Прописываем скрипт в автозагрузку. Для этого редактируем файл /etc/rc.local
В результате получаем следующее:

Запускаем скрипт фаервола. Должно быть выдано сообщение ”vpn firewall loaded OK.”

На этом настройку можно считать законченной. Теперь можете приступить к настройке windows-клиентов. Для этого не требуются никакие особые параметры. Достаточно просто создать подключение VPN, указать адрес вашего сервера, снять отметку с пункта «Требуется шифрование данных …» на вкладке «Безопасность», прописать логин и пароль, которые вы перед этим указали в конфигурационном файле на сервере.

В случае, если у вас не установлен pptpd, устанавливаем его следующей командой:

Теперь все нужные пакеты установлены, и вы можете перейти к редактированию файлов конфигурации VPN-сервера. Сначала внесем изменения в файл /etc/ppp/pptpd-options.

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

Внутри пишете:

Дальше правите файл /etc/pptpd.conf выполнив такие команды в терминале:

Файл выглядит вот так:

Дальше в файл /etc/ppp/chap-secrets добавляете нужных пользователей которые получат доступ к VPN-сети. В терминале прописываете:

Добавляете в тот же файл следующее:

Вы только что дали возможность пользователю youruser с паролем yourpassword делать подключения к вашей VPN-сети с любого адреса. Если вы хотите ограничить подключения только одним IP-адресом, тогда звездочку «*» меняете на соответствующий IP-адрес.

Так, с настройкой серверы мы закончили, теперь его следует перезапустить, чтобы вступили в силу внесенные нами изменения. Для этого в терминале вводите:

После перезапуска VPN-сервер работает уже с новыми параметрами, заданными вами. Осталось разрешить к нему доступ через firewall и провести настройку форвардинга. Одним из вариантов будет написание специального скрипта. Пишем в терминале:

Вводим текст скрипта в редактор:

В предпоследней строке подставляете вместо eth0 имя вашего сетевого подключения. Желательно, чтобы скрипт запускался автоматически при старте системы. Значит, добавляете его в автозагрузку. Управлением автозагрузки занимается файл: /etc/rc.local

Добавляете в него следующие строки (как правило, нужна только средняя, так как первые две должны содержаться в файле по умолчанию):

После всего, запускаете скрипт фаерволла:

Если все прошло правильно, последней строчкой вывода будет ”vpn firewall loaded OK.”

Вот и все!

 

Настройка VPN-соединения в Linux на RuDevice.ru

Настройка VPN-соединения в Ubuntu

Настройка VPN-соединения в Debian

Здесь представлен пример настройки VPN-подключения для Debian Linux через командную строку. Но не менее полезна она будет обладателям дистрибутивов, основанных на Debian, например, Ubuntu.

  1. Для начала Вам понадобится пакет pptp:
    # apt-get install pptp-linux
  2. Редактируем (или создаем, если его нет) файл /etc/ppp/options.pptp. В нем должны быть следующие параметры:
    lock
    noauth
    nobsdcomp
    nodeflate
  3. Далее вам необходимо добавить в файл /etc/ppp/chap-secrets строку вида:
    “имя пользователя” PPTP “пароль” *
  4. Создайте файл /etc/ppp/peers/XXX (XXX — название сети). В него впишите следующее:
    pty "pptp vpn.XXX.ru --nolaunchpppd"
    name “имя пользователя”
    remotename PPTP
    file /etc/ppp/options.pptp
    defaultroute

    “имя пользователя” и “пароль” необходимо заменить Вашими именем пользователя и паролем без кавычек, так, как указанно в Вашем договоре. vpn.XXX.ru — адрес vpn-сервера — узнаете у провайдера.
  5. Для автоматической замены дефолтного роута создаем файл /etc/ppp/ip-up.d/routes-up:
    # su touch /etc/ppp/ip-up.d/routes-up
    # su chown a+x /etc/ppp/ip-up.d/routes-up

    И вписываем в него следующее:
    #!/bin/sh
    /sbin/route del default
    /sbin/route add default dev ppp0

    Создаем файл /etc/ppp/ip-down.d/routes-down:
    # su touch /etc/ppp/ip-down.d/routes-down
    # su chown a+x /etc/ppp/ip-down.d/routes-down

    И вписываем в него следующее:
    #!/bin/sh
    /sbin/route del default
    /sbin/route add default dev eth0

  6. Теперь можете подключаться командой:
    # su pon XXX
    Для подробного вывода информации о процессе подключения наберите:
    # su pon XXX debug dump logfd 2 nodetach
    Проверить подключены ли вы к VPN можно набрав команду ifconfig. Если в ее выводе есть секция ppp0, то вы подключены и можете начинать работу с Интернетом. Для отключения нажмите ctrl+c, либо наберите:
    # su poff XXX
  7. Для того, что ваш компьютер получал роуты от нашего сервера, в файле /etc/dhcp3/dhclient.conf должны присутствовать такие строки:
    #
    option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
    option ms-classless-static-routes code 249 = array of unsigned integer 8;
    #
    request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, static-route, rfc3442-classless-static-routes, ms-classless-static-routes;
    #
  8. Для автоматического подключения к интернету при загрузке операционной системы создадим файл/etc/init. d/XXX
    # touch /etc/init.d/XXX
    # su chown a+x /etc/init.d/XXX
    # su ln -s /etc/init.d/XXX /etc/rc2.d/S99XXX

    Впишем него следующее:
    #!/bin/sh
    su /usr/bin/pon XXX

Во всех командах XXX — это название вашей сети.

Настройка VPN-сервера Linux | ITmain

Рассмотрим вариант настройки VPN на Linux-операционных системах. Сервер openVPN используется для установления зашифрованных каналов при установлении соединения между компьютерами. Данная технология имеет открытый исходный код и подходит для соединений типа «точка-точка» и «сервер-точка». Качественная настройка сервера openvpn позволяет устанавливать соединение без необходимости изменения. Для таких целей также можно настроить VPN сервер на роутере. Набор используемых в данном сервере шифров позволяет обеспечить надежную безопасность канала и всего потока данных. Чаще всего сервер openvpn используется в операционных системах Windows, Linux и Apple. Он имеет несколько видов аутентификации: в виде предустановленного ключа, метод сертификатной аутентификации, а также доступ с помощью логина и пароля. Данный сервер настраивается на назначение сетевых настроек клиенту, в виде IP-адреса, параметров соединения и характеристик маршрутизатора. Данный сервер может быть отличным решением, если провайдер блокирует некоторые типы VPN протоколов.

Один из известных дистрибутивов Linux – это система Ubuntu, использующая собственные репозитории пакетов с утилитами. Постоянные доработки данной системы позволили использовать Ubuntu, как надежную систему. Сообщество энтузиастов по всему миру занимается созданием дополнительных дистрибутивов специального назначения, например, подходящих для полноценной работы со свободным программным обеспечением. Благодаря этому выбор Ubuntu для настройки сервера vpn обеспечивает надежное и безопасное соединение с провайдером.

Чтобы настройка vpn сервера на linux прошла успешно, важно уделить особое внимание созданию ключей и сертификатов протокола. Они необходимы для шифрования соединений. Чтобы получить все необходимые конфигурации можно воспользоваться пакетом с набором скриптов easy-rsa и PKI файлы для принятия входящих подключений. После установки и инициализации всех необходимых дополнительных программ следует непосредственно настройка vpn сервера linux. Она включает в себя указание приватного ключа, сертификата данного сервера, указание виртуальной подсети, а также модификацию таблицы роутинга. Во время настройки директории роутинга следует создать отдельный файл с именем подключаемого к локальной сети клиента. Если этого не сделать, то подключивший пользователь увидит все компьютеры, находящиеся в сети openVPN, но остальные клиенты данную сеть увидеть не смогут, она станет недоступной. После того, как настройка vpn сервера ubuntu будет выполнена полностью, необходимо заняться вопросом проверки созданного подключения. Делать это нужно не с имеющихся роутеров, а с компьютеров другой локальной сети. Если в настройках имеется ошибка, то клиент и сервер будут видеть друг друга, а остальные пользователи нет. В целом же, если пользователь не обладает нужными знаниями в данной сфере, он всегда может обратиться в нашу компанию. Профессиональные ИТ-специалисты быстро и качественно проведут нужную установку и настройку.

Еще одна система, на которой успешно работает сервер VPN – это FreeBSD. Она разработана в виде целостной операционной системы, чаще всего используется для корпоративных сетей, поскольку обладает надежными сетевыми службами и имеет эффективное управление памятью. Настройка сервера vpn freebsd позволяет подключить к системе удаленных пользователей с различными операционными системами, в том числе Linux и Windows.Установка протокола VPN не отличается сложностью. Для этого достаточно распаковать при помощи командной строки протокол, создать сертификаты и ключи, отредактировать файл с переменными окружения и загрузить все в удобную оболочку. Далее необходимо распаковывать файлы и выполнять команды в строгой последовательности. А для этого важно иметь определенные знания и навыки. Поэтому, если настройка vpn сервера freebsd кажется слишком сложной для пользователя, то рекомендуем обратиться к нам.

Другой вид протокола – pptp, имеет туннельный тип соединения «точка-точка», позволяющий защищать данные путем создания туннеля в стандартной сети, не имеющей защиты шифрования. Сервер PPTP помещает кадры в определенные пакеты для последующей передачи по сети. Чаще всего настройка сервера pptp linux используется для организации туннеля защит данных между двумя локальными сетями. Многие Linux-дистрибутивы стали поддерживать сервер PPTP только с 2005 года, поскольку ранее были неполадки с протоколом MPPE. Теперь компания выпускает полноценный пакет с утилитами, протоколами и серверами. На протяжении всего периода разработок протокола PPTP было обнаружено множество серьезных недостатков и уязвимостей. Продвинутые хакеры при желании и старании могут быстро расшифровать и перехватить передаваемую информацию. Настройка сервера pppoe freebsd производится при помощи подсистемы netgraph и специальной программы. Сама операционная система поддерживает данный тип протокола в виде отдельного порта. А применение модульной сетевой подсистемы на принципе графов с несколькими входами и выходами позволяет производить определенные действия над устанавливаемым пакетом.


Наши клиенты

Настройка PPTP клиента в Debian Ubuntu

Для работы Ubuntu Server в качестве PPTP-клиента необходимо установить пакет pptp-linux:

sudo apt-get install pptp-linux

Основные настройки пакета, применяемые ко всем PPTP соедниненям по умолчанию хранятся в /etc/ppp/options.pptp, в большинстве случаев менять их нет необходимости, однако вы можете добавить какие-то свои опции, общие для всех соединений.

Для настройки подключения создадим в /etc/ppp/peers файл настроек с его именем:

sudo touch /etc/ppp/peers/test-vpn

Откроем его и внесем следующее содержимое:

pty "pptp pptp-l2tp-vpn-russia-1. atomintersoft.com --nolaunchpppd" 
defaultroute

Номер ppp интрефейса создает для подключения всегда один и тот же сетевой интерфейс, в нашем случае это будет ppp12.

Отдельно стоит остановиться на наборе опций для автоматического переподключения. Мы настоятельно советуем ограничить количество попыток (0 — неограничено) разумным числом и не ставить слишком маленький промежуток времени. Это позволит ограничить нагрузку на VPN-сервер в случае проблем с подключением (например нет денег на балансе или изменились учетные данные).

Теперь укажем авторизационные данные для нашего пользователя, для этого в файл /etc/ppp/chap-secrets добавим следующую строку:

"vpnuser" TEST "vpnpassword"

которая предусматривает использование указанных учетных данных, где vpnpassword -пароль соединения, для удаленного соеднинения TEST (это имя мы указали в опции remotename).
Теперь самое время проверить наше соединение. Первый раз лучше запустить его в интерактивном режиме, тогда все сообщения об ошибках и ходе подключения вы будете видеть прямо в консоли:

pon test-vpn nodetach

В дальнейшем управлять соединением можно при помощи команд pon и poff (подключить и отключить соответственно).

Чтобы автоматически поднимать соединение при запуске системы в файл /etc/network/interfaces добавим секцию: 

auto tunnel
iface tunnel inet ppp
provider test-vpn

Для доступа в корпоративную сеть может понадобиться добавление статических маршрутов, это тоже можно делать автоматически, для этого в конец созданой секции добавим строку:

up route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.222

Мы привели реальный маршрут используемый в нашем случае, вы должны указать здесь свои данные, если они не известны — уточните их у системного администратора.

Перезапустим сеть и убедимся что все работает правильно:

sudo /etc/init.d/networking restart

Для получения списка маршрутов воспользуйтесь командой route, также можно пропинговать какой-нибудь внутренний хост.

При подключении к сети интернет через PPTP бывают ситуации, когда, несмотря на указанные опции, нулевой маршрут через туннель не устанавливается. В этом случае можно в конец соответсвующей секции в /etc/network/interfaces добавить:

up route del default
up route add default dev ppp12

где ppp12 — имя вашего ppp интерфейса.

Как настроить сервер OpenVPN в Ubuntu 18.04

Предыдущая версия этого руководства была написана Джастином Эллингвудом

Введение

Хотите безопасно и надежно выходить в Интернет со своего смартфона или ноутбука при подключении к ненадежной сети, такой как Wi-Fi в отеле или кафе? Виртуальная частная сеть (VPN) позволяет вам безопасно и конфиденциально проходить через ненадежные сети, как если бы вы были в частной сети. Трафик выходит с сервера VPN и продолжает свой путь к месту назначения.

В сочетании с HTTPS-соединениями эта настройка позволяет защитить ваши беспроводные логины и транзакции. Вы можете обойти географические ограничения и цензуру, а также защитить свое местоположение и любой незашифрованный HTTP-трафик от ненадежной сети.

OpenVPN — это полнофункциональное решение VPN с открытым исходным кодом Secure Socket Layer (SSL), которое поддерживает широкий спектр конфигураций. В этом руководстве вы настроите сервер OpenVPN на сервере Ubuntu 18.04, а затем настроите доступ к нему из Windows, macOS, iOS и / или Android.В этом руководстве шаги по установке и настройке будут максимально простыми для каждой из этих настроек.

Примечание: Если вы планируете настроить сервер OpenVPN на DigitalOcean Droplet, имейте в виду, что мы, как и многие хостинг-провайдеры, взимаем плату за превышение пропускной способности. По этой причине помните, сколько трафика обрабатывает ваш сервер.

См. Эту страницу для получения дополнительной информации.

Предварительные требования

Для выполнения этого руководства вам потребуется доступ к Ubuntu 18.04 для размещения вашей службы OpenVPN. Перед тем, как начать это руководство, вам нужно будет настроить пользователя root с привилегиями sudo . Вы можете следовать нашему руководству по начальной настройке сервера Ubuntu 18.04, чтобы настроить пользователя с соответствующими разрешениями. Связанное руководство также настроит брандмауэр , который предполагается использовать в этом руководстве.

Кроме того, вам понадобится отдельный компьютер, который будет служить вашим центром сертификации (ЦС). Хотя технически возможно использовать ваш сервер OpenVPN или локальный компьютер в качестве центра сертификации, это не рекомендуется, поскольку это открывает вашу VPN для некоторых уязвимостей безопасности.Согласно официальной документации OpenVPN, вы должны разместить свой центр сертификации на автономном компьютере, который предназначен для импорта и подписания запросов на сертификаты. По этой причине в этом руководстве предполагается, что ваш ЦС находится на отдельном сервере Ubuntu 18.04, который также имеет пользователя root с привилегиями sudo и базовым брандмауэром.

Обратите внимание, что если вы отключите аутентификацию по паролю при настройке этих серверов, вы можете столкнуться с трудностями при передаче файлов между ними позже в этом руководстве.Чтобы решить эту проблему, вы можете повторно включить аутентификацию по паролю на каждом сервере. В качестве альтернативы вы можете сгенерировать пару ключей SSH для каждого сервера, а затем добавить открытый ключ SSH сервера OpenVPN в файл CA authorized_keys и наоборот. См. Как настроить ключи SSH в Ubuntu 18.04, чтобы узнать, как выполнить любое из этих решений.

Когда у вас есть эти предварительные условия, вы можете переходить к шагу 1 этого руководства.

Шаг 1. Установка OpenVPN и EasyRSA

Для начала обновите индекс пакетов вашего VPN-сервера и установите OpenVPN.OpenVPN доступен в репозиториях Ubuntu по умолчанию, поэтому для установки можно использовать apt :

  
  • sudo apt update
  • sudo apt установить openvpn

OpenVPN — это TLS / SSL VPN. Это означает, что он использует сертификаты для шифрования трафика между сервером и клиентами. Для выдачи доверенных сертификатов вы создадите собственный простой центр сертификации (CA). Для этого мы загрузим последнюю версию EasyRSA, которую мы будем использовать для создания нашей инфраструктуры открытого ключа CA (PKI), из официального репозитория проекта на GitHub.

Как указано в предварительных условиях, мы построим центр сертификации на автономном сервере. Причина этого подхода заключается в том, что, если злоумышленник сможет проникнуть на ваш сервер, он сможет получить доступ к вашему закрытому ключу CA и использовать его для подписания новых сертификатов, предоставляя им доступ к вашей VPN. Соответственно, управление CA с автономного компьютера помогает предотвратить доступ неавторизованных пользователей к вашей VPN. Также обратите внимание, что в качестве дополнительной меры предосторожности рекомендуется выключать сервер CA, когда он не используется для подписи ключей.

Чтобы начать построение инфраструктуры CA и PKI, используйте wget , чтобы загрузить последнюю версию EasyRSA на как на ваш компьютер CA, так и на ваш сервер OpenVPN . Чтобы получить последнюю версию, перейдите на страницу Releases официального проекта EasyRSA GitHub, скопируйте ссылку для загрузки для файла, заканчивающегося на .tgz , а затем вставьте ее в следующую команду:

  
  • wget -P ~ / https://github. com/OpenVPN/easy-rsa/releases/download/v3.0.4 / EasyRSA-3.0.4.tgz

Затем распакуйте архив:

  
  • кд ~
  • tar xvf EasyRSA-3.0.4.tgz

Вы успешно установили все необходимое программное обеспечение на свой сервер и компьютер CA. Продолжите настройку переменных, используемых EasyRSA, и настройку каталога CA, из которого вы будете генерировать ключи и сертификаты, необходимые вашему серверу и клиентам для доступа к VPN.

Шаг 2 — Настройка переменных EasyRSA и построение CA

EasyRSA поставляется с установленным файлом конфигурации, который вы можете редактировать, чтобы определить ряд переменных для вашего CA.

На компьютере CA перейдите в каталог EasyRSA:

  

Внутри этого каталога находится файл с именем vars.example . Сделайте копию этого файла и назовите копию vars без расширения файла:

  

Откройте этот новый файл с помощью предпочитаемого вами текстового редактора:

  

Найдите настройки, устанавливающие значения полей по умолчанию для новых сертификатов. Это будет выглядеть примерно так:

~ / EasyRSA-3.0,4 / варс

 . . .

#set_var EASYRSA_REQ_COUNTRY "США"
#set_var EASYRSA_REQ_PROVINCE "Калифорния"
#set_var EASYRSA_REQ_CITY "Сан-Франциско"
#set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"
#set_var EASYRSA_REQ_EMAIL "[email protected]"
#set_var EASYRSA_REQ_OU "Моя организационная единица"

. . .
  

Раскомментируйте эти строки и обновите выделенные значения, как хотите, но не оставляйте их пустыми:

~ / EasyRSA-3.0.4 / варианты

 .. .

set_var EASYRSA_REQ_COUNTRY "США"
set_var EASYRSA_REQ_PROVINCE "Нью-Йорк"
set_var EASYRSA_REQ_CITY "Нью-Йорк"
set_var EASYRSA_REQ_ORG "DigitalOcean"
set_var EASYRSA_REQ_EMAIL "admin@example. com"
set_var EASYRSA_REQ_OU "Сообщество"

. . .
  

Когда вы закончите, сохраните и закройте файл.

В каталоге EasyRSA находится сценарий easyrsa , который вызывается для выполнения множества задач, связанных с построением и управлением ЦС.Запустите этот сценарий с опцией init-pki , чтобы запустить инфраструктуру открытого ключа на сервере CA:

  
  

Выход

. . . init-pki завершен; теперь вы можете создать CA или запросы. Ваш недавно созданный каталог PKI: /home/sammy/EasyRSA-3.0.4/pki

После этого снова вызовите сценарий easyrsa , после чего укажите опцию build-ca . В результате будет создан центр сертификации и два важных файла — ca.crt и ca.ключ — которые составляют публичную и приватную стороны сертификата SSL.

  • ca.crt — это общедоступный файл сертификата ЦС, который в контексте OpenVPN сервер и клиент используют для информирования друг друга о том, что они являются частью одной и той же сети доверия, а не кем-то, выполняющим злоумышленник. средняя атака. По этой причине вашему серверу и всем вашим клиентам потребуется копия файла ca.crt .
  • ca.key — это закрытый ключ, который CA-машина использует для подписи ключей и сертификатов для серверов и клиентов.Если злоумышленник получит доступ к вашему ЦС и, в свою очередь, к вашему файлу ca.key , он сможет подписывать запросы сертификатов и получать доступ к вашей VPN, что снижает ее безопасность. Вот почему ваш файл ca.key должен быть только на вашем компьютере CA и что, в идеале, ваш компьютер CA должен оставаться в автономном режиме, когда вы не подписываете запросы сертификатов, в качестве дополнительной меры безопасности.

Если вы не хотите, чтобы вам предлагалось вводить пароль каждый раз при взаимодействии с центром сертификации, вы можете запустить команду build-ca с опцией nopass , например:

  
  • . / easyrsa build-ca nopass

В выводе вам будет предложено подтвердить общее имя для вашего CA:

  

Выход

. . . Общее имя (например: ваш пользователь, хост или имя сервера) [Easy-RSA CA]:

Общее имя — это имя, используемое для обозначения этого аппарата в контексте центра сертификации. Вы можете ввести любую строку символов для общего имени CA, но для простоты нажмите ENTER , чтобы принять имя по умолчанию.

Итак, ваш центр сертификации готов к подписанию запросов на сертификаты.

Шаг 3. Создание сертификата сервера, ключей и файлов шифрования

Теперь, когда у вас есть готовый ЦС, вы можете сгенерировать закрытый ключ и запрос сертификата со своего сервера, а затем передать запрос в свой ЦС для подписи, создав требуемый сертификат. Вы также можете создавать дополнительные файлы, используемые в процессе шифрования.

Начните с перехода к каталогу EasyRSA на вашем сервере OpenVPN :

  

Оттуда запустите сценарий easyrsa с опцией init-pki .Хотя вы уже запускали эту команду на машине CA, необходимо запустить ее здесь, потому что ваш сервер и CA будут иметь отдельные каталоги PKI:

  

Затем снова вызовите сценарий easyrsa , на этот раз с опцией gen-req , за которой следует общее имя машины. Опять же, это может быть что угодно, но может быть полезно сделать что-то описательное. В этом руководстве обычным именем сервера OpenVPN будет просто «сервер».Не забудьте также включить опцию nopass . В противном случае файл запроса будет защищен паролем, что в дальнейшем может привести к проблемам с разрешениями:

Примечание : Если вы выберете здесь имя, отличное от «server», вам придется изменить некоторые из приведенных ниже инструкций. Например, при копировании сгенерированных файлов в каталог / etc / openvpn вам нужно будет подставить правильные имена. Вам также придется изменить файл / etc / openvpn / server.conf позже, чтобы указать на правильные файлы .crt и .key .

  
  • ./easyrsa gen-req server nopass

Это создаст закрытый ключ для сервера и файл запроса сертификата с именем server.req . Скопируйте ключ сервера в каталог / etc / openvpn / :

  
  • sudo cp ~ / EasyRSA-3.0.4 / pki / private / server.key / etc / openvpn /

Используя безопасный метод (например, SCP в нашем примере ниже), перенесите сервер .req на компьютер CA:

  
  • scp ~ / EasyRSA-3.0.4 / pki / reqs / server.req sammy @ your_CA_ip: / tmp

Затем на вашем компьютере CA перейдите в каталог EasyRSA:

  

Снова используя сценарий easyrsa , импортируйте файл server.req , следуя пути к файлу с его общим именем:

  
  • ./easyrsa import-req /tmp/server.req server

Затем подпишите запрос, запустив сценарий easyrsa с опцией sign-req , за которой следует запрос , тип и общее имя.Тип запроса может быть , клиент или , сервер , поэтому для запроса сертификата сервера OpenVPN обязательно используйте тип запроса сервер :

  
  • ./easyrsa sign-req server server

В выводе вам будет предложено подтвердить, что запрос исходит из надежного источника. Введите yes , затем нажмите ENTER для подтверждения:

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

Тема запроса, подписываемая в виде сертификата сервера на 3650 дней:

subject =
    commonName = сервер


Введите слово «да», чтобы продолжить, или любой другой ввод для отмены.
  Подтвердите детали запроса: да
  

Если вы зашифровали ключ CA, вам будет предложено ввести пароль.

Затем перенесите подписанный сертификат обратно на ваш VPN-сервер, используя безопасный метод:

  
  • scp pki / выданный / server.crt sammy @ your_server_ip: / tmp

Перед выходом из системы CA также перенесите файл ca.crt на свой сервер:

  
  • scp pki / ca.crt sammy @ ваш_сервер_ip: / tmp

Затем снова войдите на свой сервер OpenVPN и скопируйте сервер .crt и ca.crt в каталог / etc / openvpn / :

  
  • sudo cp /tmp/{server.crt,ca.crt} / etc / openvpn /

Затем перейдите в свой каталог EasyRSA:

  

Оттуда создайте надежный ключ Диффи-Хеллмана для использования во время обмена ключами, набрав:

  

Это может занять несколько минут. Как только это произойдет, сгенерируйте подпись HMAC, чтобы усилить возможности проверки целостности TLS сервера:

  
  • openvpn --genkey --secret ta.ключ

Когда команда завершится, скопируйте два новых файла в каталог / etc / openvpn / :

  
  • sudo cp ~ / EasyRSA-3.0.4 / ta.key / etc / openvpn /
  • sudo cp ~ / EasyRSA-3.0.4 / pki / dh.pem / и т. Д. / Openvpn /

Таким образом, все файлы сертификатов и ключей, необходимые для вашего сервера, были сгенерированы. Вы готовы создать соответствующие сертификаты и ключи, которые ваш клиентский компьютер будет использовать для доступа к вашему серверу OpenVPN.

Шаг 4. Создание сертификата клиента и пары ключей

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

Для этого руководства мы создадим единую пару клиентского ключа и сертификата. Если у вас более одного клиента, вы можете повторить этот процесс для каждого из них. Однако обратите внимание, что вам нужно будет передать уникальное значение имени скрипту для каждого клиента. В этом руководстве первая пара сертификат / ключ обозначается как client1 .

Начните с создания структуры каталогов в домашнем каталоге для хранения сертификата клиента и файлов ключей:

  
  • mkdir -p ~ / client-configs / keys

Поскольку вы будете хранить пары сертификат / ключ и файлы конфигурации своих клиентов в этом каталоге, вы должны заблокировать его разрешения сейчас в качестве меры безопасности:

  
  • chmod -R 700 ~ / client-configs

Затем перейдите обратно в каталог EasyRSA и запустите сценарий easyrsa с параметрами gen-req и nopass , а также с общим именем для клиента:

  
  • cd ~ / EasyRSA-3.0,4 /
  • ./easyrsa gen-req client1 nopass

Нажмите ENTER , чтобы подтвердить общее имя. Затем скопируйте файл client1.key в каталог / client-configs / keys / , который вы создали ранее:

  
  • cp pki / private / client1.key ~ / client-configs / keys /

Затем перенесите файл client1.req на компьютер CA, используя безопасный метод:

  
  • scp pki / reqs / client1.req sammy @ your_CA_ip: / tmp

Войдите в систему CA, перейдите в каталог EasyRSA и импортируйте запрос сертификата:

  
  • SSH Sammy @ your_CA_ip
  • компакт-диск EasyRSA-3.0.4 /
  • ./easyrsa import-req /tmp/client1.req client1

Затем подпишите запрос, как вы это делали для сервера на предыдущем шаге. Однако на этот раз обязательно укажите тип запроса client :

  
  • ./ easyrsa sign-req client client1

В командной строке введите да , чтобы подтвердить, что вы собираетесь подписать запрос на сертификат и что он поступил из надежного источника:

  

Выход

Введите слово «да» для продолжения или любой другой ввод для отмены. Подтвердите детали запроса: да

Опять же, если вы зашифровали свой ключ CA, вам будет предложено ввести пароль здесь.

Будет создан файл сертификата клиента с именем client1.crt . Перенесите этот файл обратно на сервер:

  
  • scp pki / выданный / client1.crt sammy @ ваш_сервер_ip: / tmp

SSH обратно на сервер OpenVPN и скопируйте сертификат клиента в каталог / client-configs / keys / :

  
  • cp /tmp/client1.crt ~ / client-configs / keys /

Затем скопируйте файлы ca. crt и ta.key в каталог / client-configs / keys / :

  
  • cp ~ / EasyRSA-3.0.4 / ta.key ~ / client-configs / keys /
  • sudo cp /etc/openvpn/ca.crt ~ / client-configs / keys /

Таким образом, все сертификаты и ключи вашего сервера и клиента были сгенерированы и хранятся в соответствующих каталогах на вашем сервере. Есть еще несколько действий, которые необходимо выполнить с этими файлами, но они будут выполнены позже. А пока вы можете перейти к настройке OpenVPN на своем сервере.

Шаг 5 — Настройка службы OpenVPN

Теперь, когда сертификаты и ключи вашего клиента и сервера созданы, вы можете приступить к настройке службы OpenVPN для использования этих учетных данных.

Начните с копирования образца файла конфигурации OpenVPN в каталог конфигурации, а затем извлеките его, чтобы использовать в качестве основы для вашей установки:

  
  • sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz / etc / openvpn /
  • судо gzip -d /etc/openvpn/server.conf.gz

Откройте файл конфигурации сервера в предпочитаемом текстовом редакторе:

  
  • sudo nano / etc / openvpn / server.конф

Найдите раздел HMAC в директиве tls-auth . Эта строка уже должна быть раскомментирована, но если это не так, удалите «; », чтобы раскомментировать:

/etc/openvpn/server.conf

  tls-auth ta.key 0 # Этот файл является секретным
  

Затем найдите раздел о криптографических шифрах, просмотрев закомментированные строки шифра . Шифр AES-256-CBC предлагает хороший уровень шифрования и хорошо поддерживается.Опять же, эта строка уже должна быть раскомментирована, но если это не так, просто удалите «; ”перед ним:

/etc/openvpn/server. conf

  шифр AES-256-CBC
  

Ниже этого добавьте директиву auth для выбора алгоритма дайджеста сообщения HMAC. Для этого SHA256 — хороший выбор:

/etc/openvpn/server.conf

  аутентификация SHA256
  

Затем найдите строку, содержащую директиву dh , которая определяет параметры Диффи-Хеллмана.Из-за некоторых недавних изменений, внесенных в EasyRSA, имя файла для ключа Диффи-Хеллмана может отличаться от того, что указано в примере файла конфигурации сервера. При необходимости измените имя файла, указанное здесь, удалив 2048 , чтобы оно соответствовало ключу, который вы сгенерировали на предыдущем шаге:

/etc/openvpn/server.conf

  dh dh.pem
  

Наконец, найдите настройки пользователя и группы и удалите «; »в начале каждой, чтобы раскомментировать эти строки:

/ и т.д. / openvpn / server.conf

  пользователь none
группа nogroup
  

Изменения, которые вы внесли в образец файла server.conf до этого момента, необходимы для работы OpenVPN. Изменения, описанные ниже, не являются обязательными, хотя они также необходимы для многих распространенных случаев использования.

(Необязательно) Отправка изменений DNS для перенаправления всего трафика через VPN

Приведенные выше настройки создадут VPN-соединение между двумя машинами, но не заставят какие-либо соединения использовать туннель.Если вы хотите использовать VPN для маршрутизации всего вашего трафика, вы, вероятно, захотите передать настройки DNS на клиентские компьютеры.

В файле server.conf есть несколько директив, которые вы должны изменить, чтобы включить эту функцию. Найдите раздел redirect-gateway и удалите точку с запятой «; »от начала строки redirect-gateway , чтобы раскомментировать ее:

/etc/openvpn/server. conf

  push "redirect-gateway def1 bypass-dhcp"
  

Чуть ниже найдите раздел dhcp-option .Снова удалите «; ”перед обеими строками, чтобы раскомментировать их:

/etc/openvpn/server.conf

  push "dhcp-option DNS 208.67.222.222"
нажмите "dhcp-option DNS 208.67.220.220"
  

Это поможет клиентам перенастроить настройки DNS для использования VPN-туннеля в качестве шлюза по умолчанию.

(дополнительно) Настройте порт и протокол

По умолчанию сервер OpenVPN использует порт , 1194, и протокол UDP для приема клиентских подключений.Если вам нужно использовать другой порт из-за ограниченных сетевых сред, в которых могут находиться ваши клиенты, вы можете изменить параметр порт . Если вы не размещаете веб-контент на своем сервере OpenVPN, популярным выбором является порт 443 , поскольку он обычно разрешен правилами брандмауэра.

/etc/openvpn/server.conf

  # Необязательно!
порт 443
  

Часто протокол также ограничен этим портом. Если это так, измените proto с UDP на TCP:

/ и т.д. / openvpn / server.conf

  # Необязательно!
протокол TCP
  

Если вы с по переключаете протокол на TCP, вам нужно будет изменить значение директивы explicit-exit-notify с 1 на 0 , поскольку эта директива используется только UDP. Невыполнение этого требования при использовании TCP приведет к ошибкам при запуске службы OpenVPN:

/etc/openvpn/server.conf

  # Необязательно!
явное-выход-уведомление 0
  

Если вам не нужно использовать другой порт и протокол, лучше оставить эти две настройки по умолчанию.

(необязательно) Укажите учетные данные не по умолчанию

Если вы ранее выбрали другое имя во время выполнения команды . /build-key-server , измените строки cert и key , которые вы видите, чтобы они указывали на соответствующие файлы .crt и .key . Если вы использовали имя по умолчанию, «сервер», оно уже установлено правильно:

/etc/openvpn/server.conf

  сертификат server.crt
ключ server.key
  

Когда вы закончите, сохраните и закройте файл.

После прохождения и внесения любых изменений в конфигурацию OpenVPN вашего сервера, необходимых для вашего конкретного случая использования, вы можете приступить к внесению некоторых изменений в сеть вашего сервера.

Шаг 6 — Настройка сетевой конфигурации сервера

Есть некоторые аспекты сетевой конфигурации сервера, которые необходимо настроить, чтобы OpenVPN мог правильно маршрутизировать трафик через VPN. Первым из них является IP forwarding , метод определения, куда должен маршрутизироваться IP-трафик.Это важно для функциональности VPN, которую будет предоставлять ваш сервер.

Измените настройки IP-переадресации по умолчанию для вашего сервера, изменив файл /etc/sysctl.conf :

  
  • sudo nano /etc/sysctl.conf

Внутри найдите строку с комментариями, которая устанавливает net.ipv4.ip_forward . Удалите символ « # » из начала строки, чтобы раскомментировать этот параметр:

/etc/sysctl.conf

  net.ipv4.ip_forward = 1
  

Сохраните и закройте файл, когда закончите.

Чтобы прочитать файл и изменить значения для текущего сеанса, введите:

  
  

Выход

net.ipv4.ip_forward = 1

Если вы следовали руководству по начальной настройке сервера Ubuntu 18.04, указанному в предварительных требованиях, у вас должен быть установлен брандмауэр UFW. Независимо от того, используете ли вы брандмауэр для блокировки нежелательного трафика (что вам почти всегда следует делать), для этого руководства вам понадобится брандмауэр, чтобы управлять частью трафика, поступающего на сервер. Некоторые правила брандмауэра необходимо изменить, чтобы включить маскировку, концепцию iptables, которая обеспечивает динамическую трансляцию сетевых адресов (NAT) на лету для правильной маршрутизации клиентских подключений.

Перед открытием файла конфигурации брандмауэра для добавления правил маскировки необходимо сначала найти общедоступный сетевой интерфейс вашего компьютера. Для этого наберите:

  

Ваш общедоступный интерфейс — это строка в выходных данных этой команды, следующая за словом «dev».Например, этот результат показывает интерфейс с именем wlp11s0 , который выделен ниже:

  

Выход

по умолчанию через 203.0.113.1 dev wlp11s0 proto static

Когда у вас есть интерфейс, связанный с вашим маршрутом по умолчанию, откройте файл /etc/ufw/before.rules , чтобы добавить соответствующую конфигурацию:

  
  • судо нано /etc/ufw/before.rules

правил UFW обычно добавляются с помощью команды ufw .Однако правила, перечисленные в файле before.rules , читаются и вводятся в действие до загрузки обычных правил UFW. Вверху файла добавьте выделенные строки ниже. Это установит политику по умолчанию для цепочки POSTROUTING в таблице nat и замаскирует любой трафик, поступающий из VPN. Не забудьте заменить wlp11s0 в строке -A POSTROUTING ниже на интерфейс, который вы нашли в приведенной выше команде:

/ etc / ufw / before.правила

  #
# rules.before
#
# Правила, которые должны быть выполнены до того, как в командной строке ufw добавлены правила. Обычай
В одну из этих цепочек нужно добавить # правила:
# ufw-before-input
# ufw-before-output
# ufw-before-forward
#

# START OPENVPN ПРАВИЛА
# Правила таблицы NAT
* нац
: ПРИНЯТИЕ ПОСТРОУТИРОВКИ [0: 0]
# Разрешить трафик от клиента OpenVPN на wlp11s0 (измените интерфейс, который вы обнаружили!)
-A ПОСТРОУТИРОВАНИЕ -s 10. 8.0.0/8 -o wlp11s0 -j ​​МАСКАРАД
СОВЕРШИТЬ
# КОНЕЦ ПРАВИЛА OPENVPN

# Не удаляйте эти обязательные строки, иначе будут ошибки
*фильтр
.. .
  

Сохраните и закройте файл, когда закончите.

Затем вам нужно указать UFW разрешить пересылку пакетов по умолчанию. Для этого откройте файл / etc / default / ufw :

  
  • судо нано / и т. Д. / По умолчанию / ufw

Внутри найдите директиву DEFAULT_FORWARD_POLICY и измените значение с DROP на ACCEPT :

/ etc / default / ufw

  DEFAULT_FORWARD_POLICY = "ПРИНЯТЬ"
  

Сохраните и закройте файл, когда закончите.

Затем настройте сам брандмауэр, чтобы разрешить трафик в OpenVPN. Если вы не меняли порт и протокол в файле /etc/openvpn/server.conf , вам нужно будет открыть UDP-трафик на порт 1194 . Если вы изменили порт и / или протокол, замените здесь выбранные вами значения.

Если вы забыли добавить порт SSH, следуя предварительному руководству, также добавьте его сюда:

  
  • sudo ufw разрешить 1194 / udp
  • sudo ufw разрешить OpenSSH

После добавления этих правил отключите и снова включите UFW, чтобы перезапустить его и загрузить изменения из всех файлов, которые вы изменили:

  
  • sudo ufw отключить
  • sudo ufw включить

Теперь ваш сервер настроен для правильной обработки трафика OpenVPN.

Шаг 7 — Запуск и включение службы OpenVPN

Наконец-то вы готовы запустить службу OpenVPN на своем сервере. Это делается с помощью утилиты systemd systemctl .

Запустите сервер OpenVPN, указав имя файла конфигурации в качестве переменной экземпляра после имени файла модуля systemd. Файл конфигурации для вашего сервера называется /etc/openvpn/server.conf , поэтому добавьте @server в конец файла модуля при его вызове:

  
  • sudo systemctl start openvpn @ сервер

Еще раз проверьте, что служба запустилась успешно, набрав:

  
  • sudo systemctl status openvpn @ server

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

  

Вывод

● openvpn @ server.сервис - OpenVPN подключение к серверу Загружено: загружено (/lib/systemd/system/[email protected]; отключено; предустановка поставщика: включена) Активен: активен (работает) с Вт 2016-05-03 15:30:05 EDT; 47с назад Документы: man: openvpn (8) https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Процесс: 5852 ExecStart = / usr / sbin / openvpn --daemon ovpn-% i --status /run/openvpn/%i.status 10 --cd / etc / openvpn --script-security 2 --config / etc / openvpn /% i.conf --writepid /run/openvpn/%i.pid (code = exited, sta Основной PID: 5856 (openvpn) Задач: 1 (ограничение: 512) CGroup: /system.slice/system-openvpn.slice/[email protected] └─5856 / usr / sbin / openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd / etc / openvpn --script-security 2 --config / etc / openvpn / server. conf --writepid /run/openvpn/server.pid

Вы также можете проверить доступность интерфейса OpenVPN tun0 , набрав:

  

Будет выведен сконфигурированный интерфейс:

  

Выход

4: tun0: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100 ссылка / нет инет 10.8.0.1 одноранговый узел 10.8.0.2/32 глобальная область tun0 valid_lft навсегда предпочтительный_lft навсегда

После запуска службы включите ее, чтобы она запускалась автоматически при загрузке:

  
  • sudo systemctl включить openvpn @ server

Ваша служба OpenVPN запущена и работает. Однако, прежде чем вы сможете начать его использовать, вы должны сначала создать файл конфигурации для клиентской машины. В этом руководстве уже рассказывалось, как создавать пары сертификат / ключ для клиентов, а на следующем шаге мы продемонстрируем, как создать инфраструктуру, которая будет легко создавать файлы конфигурации клиентов.

Шаг 8 — Создание инфраструктуры конфигурации клиента

Создание файлов конфигурации для клиентов OpenVPN может быть несколько сложным, поскольку каждый клиент должен иметь свою собственную конфигурацию, и каждый должен соответствовать настройкам, указанным в файле конфигурации сервера. Вместо того, чтобы писать один файл конфигурации, который может использоваться только на одном клиенте, на этом шаге описывается процесс построения инфраструктуры конфигурации клиента, которую вы можете использовать для генерации файлов конфигурации на лету.Сначала вы создадите «базовый» файл конфигурации, а затем создадите сценарий, который позволит вам генерировать уникальные файлы конфигурации клиента, сертификаты и ключи по мере необходимости.

Начните с создания нового каталога, в котором вы будете хранить файлы конфигурации клиента в каталоге client-configs , который вы создали ранее:

  
  • mkdir -p ~ / client-configs / files

Затем скопируйте пример файла конфигурации клиента в каталог client-configs , чтобы использовать его в качестве базовой конфигурации:

  
  • cp / usr / share / doc / openvpn / examples / sample-config-files / client.конф ~ / client-configs / base.conf

Откройте этот новый файл в текстовом редакторе:

  
  • нано ~ / client-configs / base.conf

Внутри найдите директиву remote . Это указывает клиенту на адрес вашего сервера OpenVPN — общедоступный IP-адрес вашего сервера OpenVPN. Если вы решили изменить порт, который прослушивает сервер OpenVPN, вам также потребуется изменить 1194 на выбранный вами порт:

~ / client-configs / base.конф

 . . .
# Имя хоста / IP и порт сервера.
# У вас может быть несколько удаленных записей
# для балансировки нагрузки между серверами.
удаленный your_server_ip 1194
. . .
  

Убедитесь, что протокол соответствует значению, которое вы используете в конфигурации сервера:

~ / client-configs / base.conf

  proto udp
  

Затем раскомментируйте директивы user и group , удалив «; »в начале каждой строки:

~ / client-configs / base.conf

  # Понижение привилегий после инициализации (только не для Windows)
пользователь никто
группа nogroup
  

Найдите директивы, которые устанавливают ca , cert и key . Закомментируйте эти директивы, так как вы вскоре добавите сертификаты и ключи в сам файл:

~ / client-configs / base.conf

  # Параметры SSL / TLS.
# См. Файл конфигурации сервера для получения дополнительной информации
# описание. Лучше использовать
# отдельная пара файлов .crt / .key
# для каждого клиента.Единый ca
# файл можно использовать для всех клиентов.
#ca ca.crt
#cert client.crt
#key client.key
  

Аналогичным образом закомментируйте директиву tls-auth , поскольку вы добавите ta.key непосредственно в файл конфигурации клиента:

~ / client-configs / base.conf

  # Если на сервере используется ключ tls-auth
# тогда у каждого клиента должен быть ключ.
# tls-auth ta.key 1
  

Отразите параметры cipher и auth , которые вы установили в файле / etc / openvpn / server.conf файл:

~ / client-configs / base.conf

  шифр AES-256-CBC
авторизация SHA256
  

Затем добавьте в файл директиву key-direction . Вы должны установить это в «1» для правильной работы VPN на клиентском компьютере:

~ / client-configs / base.conf

  направление ключа 1
  

Наконец, добавьте несколько закомментированных строк для обработки различных методов, которые клиенты VPN на базе Linux будут использовать для разрешения DNS.Вы добавите два похожих, но отдельных набора закомментированных строк. Первый набор предназначен для клиентов, у которых не использует с разрешением systemd для управления DNS. Эти клиенты используют утилиту resolvconf для обновления информации DNS для клиентов Linux.

~ / client-configs / base.conf

 ; скрипт-безопасность 2
; вверх / и т.д. / openvpn / update-resolv-conf
; вниз / etc / openvpn / update-resolv-conf
  

Теперь добавьте еще один набор строк для клиентов, которые используют с системным разрешением для разрешения DNS:

~ / client-configs / base.conf

 ; скрипт-безопасность 2
; вверх / etc / openvpn / update-systemd-resolved
; вниз / etc / openvpn / update-systemd-resolved
; вниз-до
; dhcp-option ДОМЕН-МАРШРУТ.
  

Сохраните и закройте файл, когда закончите.

Позже, на шаге 10 — установка шага настройки клиента в этом руководстве, вы узнаете, как определить, как разрешение DNS работает на клиентах Linux и какой раздел раскомментировать.

Затем создайте простой сценарий, который скомпилирует вашу базовую конфигурацию с соответствующими файлами сертификата, ключа и шифрования, а затем поместите сгенерированную конфигурацию в каталог ~ / client-configs / files .Откройте новый файл с именем make_config.sh в каталоге ~ / client-configs :

  
  • нано ~ / client-configs / make_config.sh

Внутри добавьте следующее содержимое:

~ / client-configs / make_config. sh

  #! / Bin / bash

# Первый аргумент: идентификатор клиента

KEY_DIR = ~ / клиентские конфигурации / ключи
OUTPUT_DIR = ~ / клиентские конфигурации / файлы
BASE_CONFIG = ~ / client-configs / base.conf

кошка $ {BASE_CONFIG} \
    <(echo -e '') \
    $ {KEY_DIR} / ок.crt \
    <(echo -e ' \ n ') \
    $ {KEY_DIR} / $ {1} .crt \
    <(echo -e ' \ n ') \
    $ {KEY_DIR} / $ {1} .key \
    <(echo -e ' \ n ') \
    $ {KEY_DIR} /ta.key \
    <(echo -e '') \
    > $ {OUTPUT_DIR} / $ {1} .ovpn
  

Сохраните и закройте файл, когда закончите.

Прежде чем двигаться дальше, обязательно отметьте этот файл как исполняемый, набрав:

  
  • chmod 700 ~ / client-configs / make_config.ш

Этот сценарий создаст копию созданного вами файла base.conf , соберет все файлы сертификатов и ключей, которые вы создали для своего клиента, извлечет их содержимое, добавит их в копию файла базовой конфигурации и экспортирует все это содержимое в новый файл конфигурации клиента. Это означает, что вместо того, чтобы отдельно управлять конфигурацией, сертификатом и ключевыми файлами клиента, вся необходимая информация хранится в одном месте.Преимущество этого заключается в том, что если вам когда-либо понадобится добавить клиента в будущем, вы можете просто запустить этот сценарий, чтобы быстро создать файл конфигурации и убедиться, что вся важная информация хранится в одном легкодоступном месте.

Обратите внимание, что каждый раз, когда вы добавляете нового клиента, вам нужно будет сгенерировать для него новые ключи и сертификаты, прежде чем вы сможете запустить этот скрипт и сгенерировать его файл конфигурации. На следующем шаге вы получите некоторую практику использования этого сценария.

Шаг 9 — Создание клиентских конфигураций

Если вы следовали руководству, вы создали сертификат клиента и ключ с именем client1. crt и client1.key , соответственно, на шаге 4. Вы можете сгенерировать файл конфигурации для этих учетных данных, перейдя в каталог ~ / client-configs и запустив сценарий, созданный в конце предыдущего шага:

  
  • cd ~ / client-configs
  • sudo ./make_config.sh client1

Это создаст файл с именем client1.ovpn в вашем каталоге ~ / client-configs / files :

  
  • ls ~ / client-configs / files
  

Выход

client1.овпн

Вам необходимо передать этот файл на устройство, которое вы планируете использовать в качестве клиента. Например, это может быть ваш локальный компьютер или мобильное устройство.

Хотя конкретные приложения, используемые для выполнения этой передачи, будут зависеть от операционной системы вашего устройства и ваших личных предпочтений, надежным и безопасным методом является использование SFTP (протокол передачи файлов SSH) или SCP (безопасное копирование) на сервере. Это позволит транспортировать файлы аутентификации VPN вашего клиента по зашифрованному соединению.

Вот пример команды SFTP с использованием примера client1.ovpn , который вы можете запустить со своего локального компьютера (macOS или Linux). Он помещает файл .ovpn в ваш домашний каталог:

  
  • sftp sammy @ your_server_ip: client-configs / files / client1.ovpn ~ /

Вот несколько инструментов и руководств для безопасной передачи файлов с сервера на локальный компьютер:

Шаг 10 — Установка конфигурации клиента

В этом разделе рассказывается, как установить клиентский профиль VPN в Windows, macOS, Linux, iOS и Android.Ни одна из этих клиентских инструкций не зависит друг от друга, поэтому не стесняйтесь переходить к тому, что применимо к вашему устройству.

Соединение OpenVPN будет иметь то же имя, что и файл .ovpn, . Что касается этого руководства, это означает, что соединение называется client1.ovpn , что соответствует первому созданному вами клиентскому файлу.

Windows

Установка

Загрузите клиентское приложение OpenVPN для Windows со страницы загрузок OpenVPN.Выберите подходящую версию установщика для вашей версии Windows.

Примечание

Для установки OpenVPN требуются права администратора.

После установки OpenVPN скопируйте файл .ovpn по адресу:

  C: \ Program Files \ OpenVPN \ config
  

Когда вы запускаете OpenVPN, он автоматически видит профиль и делает его доступным.

Вы должны запускать OpenVPN от имени администратора каждый раз, когда он используется, даже с использованием административных учетных записей. Чтобы сделать это без необходимости щелкать правой кнопкой мыши и выбирать Запуск от имени администратора каждый раз, когда вы используете VPN, вы должны предварительно установить это из учетной записи администратора.Это также означает, что обычным пользователям потребуется ввести пароль администратора для использования OpenVPN. С другой стороны, обычные пользователи не могут правильно подключиться к серверу, если приложение OpenVPN на клиенте не имеет прав администратора, поэтому необходимы повышенные привилегии.

Чтобы приложение OpenVPN всегда запускалось от имени администратора, щелкните его ярлык правой кнопкой мыши и перейдите к Свойства . Внизу вкладки Совместимость нажмите кнопку Изменить настройки для всех пользователей .В новом окне отметьте Запустить эту программу от имени администратора .

Подключение

Каждый раз, когда вы запускаете графический интерфейс OpenVPN, Windows спрашивает, хотите ли вы разрешить программе вносить изменения в ваш компьютер. Щелкните Да . Запуск клиентского приложения OpenVPN только помещает апплет в системный лоток, так что вы можете подключаться и отключать VPN по мере необходимости; это фактически не устанавливает соединение VPN.

После запуска OpenVPN инициируйте соединение, войдя в апплет на панели задач и щелкнув правой кнопкой мыши значок апплета OpenVPN.Откроется контекстное меню. Выберите client1 вверху меню (это ваш профиль client1.ovpn ) и выберите Connect .

Откроется окно состояния, показывающее вывод журнала, пока соединение установлено, и сообщение появится после того, как клиент будет соединен.

Отключитесь от VPN таким же образом: войдите в апплет на панели задач, щелкните правой кнопкой мыши значок апплета OpenVPN, выберите профиль клиента и щелкните Отключить .

macOS

Установка

Tunnelblick — это бесплатный клиент OpenVPN с открытым исходным кодом для macOS. Вы можете загрузить последний образ диска со страницы загрузок Tunnelblick. Дважды щелкните загруженный файл .dmg и следуйте инструкциям по установке.

Ближе к концу процесса установки Tunnelblick спросит, есть ли у вас файлы конфигурации. Ответ У меня есть файлы конфигурации , и пусть Tunnelblick завершит работу. Откройте окно Finder и дважды щелкните client1.овпн . Tunnelblick установит профиль клиента. Требуются права администратора.

Подключение

Запустите Tunnelblick, дважды щелкнув значок Tunnelblick в папке Applications . После запуска Tunnelblick в строке меню в правом верхнем углу экрана появится значок Tunnelblick для управления подключениями. Щелкните значок, а затем пункт меню Connect client1 , чтобы инициировать VPN-соединение.

Linux

Установка

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

Однако самый универсальный способ подключения — просто использовать программное обеспечение OpenVPN.

В Ubuntu или Debian вы можете установить его так же, как и на сервере, набрав:

  
  • sudo apt update
  • sudo apt установить openvpn

В CentOS вы можете включить репозитории EPEL, а затем установить его, набрав:

  
  • sudo yum install epel-release
  • sudo yum установить openvpn
Настройка клиентов, использующих

systemd-resolved

Сначала определите, использует ли ваша система systemd-resolved для обработки разрешения DNS, проверив файл / etc / resolv.conf файл:

  
  

Вывод

# Этим файлом управляет man: systemd-resolved (8). Не редактировать. . . . сервер имен 127.0.0.53 варианты edns0

Если ваша система настроена на использование с разрешением systemd для разрешения DNS, IP-адрес после параметра nameserver будет 127.0.0.53 . В файле также должны быть комментарии, подобные показанному результату, которые объясняют, как systemd-resolved управляет файлом.Если у вас IP-адрес, отличный от 127.0.0.53 , скорее всего, ваша система не использует systemd-resolved , и вы можете перейти к следующему разделу по настройке клиентов Linux, у которых вместо этого есть сценарий update-resolv-conf .

Для поддержки этих клиентов сначала установите пакет openvpn-systemd-resolved . Он предоставляет сценарии, которые заставят с разрешением systemd использовать VPN-сервер для разрешения DNS.

  
  • sudo apt install openvpn-systemd-resolved

Один из этих пакетов установлен, настройте клиента на его использование и отправку всех DNS-запросов через интерфейс VPN. Откройте файл VPN клиента:

  

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

client1.ovpn

  скрипт-безопасность 2
вверх / etc / openvpn / update-systemd-resolved
вниз / etc / openvpn / update-systemd-resolved
вниз-до
dhcp-option ДОМЕН-МАРШРУТ.
  
Настройка клиентов, использующих

update-resolv-conf

Если ваша система не использует с системным разрешением для управления DNS, проверьте, включает ли ваш дистрибутив сценарий / etc / openvpn / update-resolv-conf :

  
  

Выход

update-resolv-conf

Если ваш клиент включает файл update-resolv-conf , отредактируйте файл конфигурации клиента OpenVPN, который вы передали ранее:

  

Раскомментируйте три строки, которые вы добавили, чтобы изменить настройки DNS:

клиент1.овпн

  скрипт-безопасность 2
вверх / и т.д. / openvpn / update-resolv-conf
вниз / etc / openvpn / update-resolv-conf
  

Если вы используете CentOS, измените директиву group с nogroup на никто в соответствии с доступными группами дистрибутива:

client1.ovpn

  группа никто
  

Сохраните и закройте файл.

Теперь вы можете подключиться к VPN, просто указав команду openvpn на файл конфигурации клиента:

  
  • sudo openvpn --config client1.овпн

Это должно подключить вас к вашей VPN.

iOS

Установка

В iTunes App Store найдите и установите OpenVPN Connect, официальное клиентское приложение iOS OpenVPN. Чтобы перенести конфигурацию клиента iOS на устройство, подключите его напрямую к компьютеру.

Здесь описан процесс завершения передачи с помощью iTunes. Откройте iTunes на компьютере и нажмите iPhone > приложений .Прокрутите вниз до раздела File Sharing и щелкните приложение OpenVPN. Пустое окно справа, OpenVPN Documents , предназначено для обмена файлами. Перетащите файл .ovpn в окно документов OpenVPN.

Теперь запустите приложение OpenVPN на iPhone. Вы получите уведомление о том, что новый профиль готов к импорту. Коснитесь зеленого знака плюса, чтобы импортировать его.

Подключение

OpenVPN теперь готов к использованию с новым профилем.Начните соединение, сдвинув кнопку Connect в положение On . Отключите, сдвинув ту же кнопку на Off .

Примечание

Переключатель VPN под Настройки не может использоваться для подключения к VPN. Если вы попытаетесь, вы получите уведомление о необходимости подключаться только с помощью приложения OpenVPN.

Android

Установка

Откройте магазин Google Play. Найдите и установите Android OpenVPN Connect, официальное клиентское приложение Android OpenVPN.

Вы можете передать профиль .ovpn , подключив устройство Android к компьютеру через USB и скопировав файл. В качестве альтернативы, если у вас есть устройство для чтения SD-карт, вы можете извлечь SD-карту устройства, скопировать на нее профиль, а затем снова вставить карту в Android-устройство.

Запустите приложение OpenVPN и коснитесь меню, чтобы импортировать профиль.

Затем перейдите в папку с сохраненным профилем (на снимке экрана используется / sdcard / Download / ) и выберите файл.Приложение отметит, что профиль был импортирован.

Подключение

Для подключения просто нажмите кнопку Connect . Вас спросят, доверяете ли вы приложению OpenVPN. Выберите OK , чтобы инициировать соединение. Чтобы отключиться от VPN, вернитесь в приложение OpenVPN и выберите Отключить .

Шаг 11. Тестирование VPN-соединения (необязательно)

Примечание: Этот метод тестирования VPN-соединения будет работать только в том случае, если вы выбрали маршрутизацию всего своего трафика через VPN на шаге 5.

После того, как все установлено, простая проверка подтверждает, что все работает правильно. Не включив VPN-соединение, откройте браузер и перейдите к DNSLeakTest.

Сайт вернет IP-адрес, назначенный вашим интернет-провайдером, а также ваш внешний вид для остального мира. Чтобы проверить настройки DNS на том же веб-сайте, щелкните Extended Test , и он сообщит вам, какие DNS-серверы вы используете.

Теперь подключите клиент OpenVPN к VPN вашего Droplet и обновите страницу в браузере.Теперь должен появиться совершенно другой IP-адрес (ваш VPN-сервер), и именно так вы выглядите для мира. Опять же, DNSLeakTest Extended Test проверит ваши настройки DNS и подтвердит, что вы теперь используете DNS-преобразователи, установленные вашей VPN.

Шаг 12 — Отзыв клиентских сертификатов

Иногда может потребоваться отозвать сертификат клиента, чтобы предотвратить дальнейший доступ к серверу OpenVPN.

Для этого перейдите в каталог EasyRSA на вашем компьютере CA:

  

Затем запустите сценарий easyrsa с опцией revoke , за которой следует имя клиента, которое вы хотите отозвать:

  

Вам будет предложено подтвердить отзыв, введя да :

  

Выход

Подтвердите, что вы хотите отозвать сертификат со следующей темой: subject = commonName = client2 Введите слово «да», чтобы продолжить, или любой другой ввод для отмены.Продолжить с отзывом: да

После подтверждения действия центр сертификации полностью отзовет сертификат клиента. Однако ваш сервер OpenVPN в настоящее время не имеет возможности проверить, были ли отозваны сертификаты клиентов, и у клиента по-прежнему будет доступ к VPN. Чтобы исправить это, создайте список отзыва сертификатов (CRL) на вашем компьютере CA:

  

Будет создан файл с именем crl.pem . Безопасно перенесите этот файл на свой сервер OpenVPN:

  
  • scp ~ / EasyRSA-3.0.4 / pki / crl.pem sammy @ ваш_сервер_ip: / tmp

На сервере OpenVPN скопируйте этот файл в каталог / etc / openvpn / :

  
  • sudo cp /tmp/crl.pem / и т. Д. / Openvpn

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

  
  • sudo nano /etc/openvpn/server.conf

В нижней части файла добавьте параметр crl-verify , который укажет серверу OpenVPN проверять список отзыва сертификатов, который мы создали каждый раз при попытке подключения:

/ и т.д. / openvpn / server.conf

  crl-verify crl.pem
  

Сохраните и закройте файл.

Наконец, перезапустите OpenVPN, чтобы реализовать отзыв сертификата:

  
  • sudo systemctl перезапустить openvpn @ server

Клиент больше не сможет успешно подключаться к серверу с использованием старых учетных данных.

Чтобы отозвать дополнительных клиентов, выполните следующие действия:

  1. Отозвать сертификат с ./ easyrsa отозвать команду client_name
  2. Создать новый CRL
  3. Перенесите новый файл crl.pem на свой сервер OpenVPN и скопируйте его в каталог / etc / openvpn , чтобы перезаписать старый список.
  4. Перезапустите службу OpenVPN.

Вы можете использовать этот процесс, чтобы отозвать любые сертификаты, которые вы ранее выпустили для своего сервера.

Заключение

Теперь вы безопасно выходите в Интернет, защищая свою личность, местоположение и трафик от шпионов и цензоров.

Чтобы настроить больше клиентов, вам нужно всего лишь выполнить шаги 4 и 9-11 для каждого дополнительного устройства. Чтобы отозвать доступ для клиентов, просто выполните шаг 12 .

Как настроить сервер OpenVPN в Ubuntu 16.04

Введение

Хотите безопасно и надежно выходить в Интернет со своего смартфона или ноутбука при подключении к ненадежной сети, такой как Wi-Fi в отеле или кафе? Виртуальная частная сеть (VPN) позволяет вам безопасно и конфиденциально проходить через ненадежные сети, как если бы вы были в частной сети.Трафик выходит с сервера VPN и продолжает свой путь к месту назначения.

В сочетании с HTTPS-соединениями эта настройка позволяет защитить ваши беспроводные логины и транзакции. Вы можете обойти географические ограничения и цензуру, а также защитить свое местоположение и любой незашифрованный HTTP-трафик от ненадежной сети.

OpenVPN — это полнофункциональное решение VPN с открытым исходным кодом Secure Socket Layer (SSL), которое поддерживает широкий спектр конфигураций.В этом руководстве мы настроим сервер OpenVPN на капле, а затем настроим доступ к нему из Windows, OS X, iOS и Android. В этом руководстве шаги по установке и настройке будут максимально простыми для этих настроек.

Примечание: Если вы планируете настроить сервер OpenVPN на DigitalOcean Droplet, имейте в виду, что мы, как и многие хостинг-провайдеры, взимаем плату за превышение пропускной способности. По этой причине помните, сколько трафика обрабатывает ваш сервер.

См. Эту страницу для получения дополнительной информации.

Предварительные требования

Для выполнения этого руководства вам потребуется доступ к серверу Ubuntu 16.04.

Перед тем, как приступить к работе с этим руководством, вам необходимо настроить пользователя без полномочий root с привилегиями sudo . Вы можете следовать нашему руководству по начальной настройке сервера Ubuntu 16.04, чтобы настроить пользователя с соответствующими разрешениями. Связанное руководство также настроит брандмауэр , который, как мы предполагаем, установлен в этом руководстве.

Когда вы будете готовы начать, войдите на свой сервер Ubuntu как пользователь sudo и продолжайте ниже.

Шаг 1. Установите OpenVPN

Для начала мы установим OpenVPN на наш сервер. OpenVPN доступен в репозиториях Ubuntu по умолчанию, поэтому для установки мы можем использовать apt . Мы также установим пакет easy-rsa , который поможет нам настроить внутренний ЦС (центр сертификации) для использования с нашей VPN.

Чтобы обновить индекс пакетов вашего сервера и установить необходимые пакеты, введите:

  
  • sudo apt-get update
  • sudo apt-get install openvpn easy-rsa

Теперь необходимое программное обеспечение находится на сервере и готово к настройке.

Шаг 2. Настройка каталога CA

OpenVPN — это TLS / SSL VPN. Это означает, что он использует сертификаты для шифрования трафика между сервером и клиентами. Чтобы выдавать доверенные сертификаты, нам нужно будет создать собственный простой центр сертификации (CA).

Для начала мы можем скопировать каталог шаблонов easy-rsa в наш домашний каталог с помощью команды make-cadir :

  

Перейдите во вновь созданный каталог, чтобы начать настройку CA:

  

Шаг 3. Настройте переменные CA

Чтобы настроить значения, которые будет использовать наш CA, нам нужно отредактировать файл vars в каталоге.Откройте этот файл в текстовом редакторе:

  

Внутри вы найдете некоторые переменные, которые можно настроить, чтобы определить, как будут создаваться ваши сертификаты. Нам нужно беспокоиться только о некоторых из них.

В нижней части файла найдите настройки, устанавливающие значения полей по умолчанию для новых сертификатов. Должно получиться примерно так:

~ / openvpn-ca / vars

 . . .

экспорт KEY_COUNTRY = "США"
экспорт KEY_PROVINCE = "CA"
экспорт KEY_CITY = "Сан-Франциско"
экспорт KEY_ORG = "Форт-Фанстон"
экспорт KEY_EMAIL = "меня @ myhost.mydomain "
export KEY_OU = "MyOrganizationalUnit"

. . .
  

Измените значения, выделенные красным цветом, по своему усмотрению, но не оставляйте их пустыми:

~ / openvpn-ca / vars

 . . .

экспорт KEY_COUNTRY = "США"
экспорт KEY_PROVINCE = "NY"
export KEY_CITY = "Нью-Йорк"
экспорт KEY_ORG = "DigitalOcean"
экспорт KEY_EMAIL = "[email protected]"
экспорт KEY_OU = "Сообщество"

. . .
  

Пока мы здесь, мы также отредактируем значение KEY_NAME чуть ниже этого раздела, который заполняет поле темы.Для простоты в этом руководстве мы будем называть его server :

.

~ / openvpn-ca / vars

  экспорт KEY_NAME = "server"
  

Когда вы закончите, сохраните и закройте файл.

Шаг 4. Создайте центр сертификации

Теперь мы можем использовать заданные нами переменные и утилиты easy-rsa для создания нашего центра сертификации.

Убедитесь, что вы находитесь в каталоге CA, а затем создайте файл vars , который вы только что отредактировали:

  
  • cd ~ / openvpn-ca
  • исходные переменные

Если источник был получен правильно, вы должны увидеть следующее:

  

Выход

ПРИМЕЧАНИЕ: Если вы запустите./ clean-all, я сделаю rm -rf для / home / sammy / openvpn-ca / keys

Убедитесь, что мы работаем в чистой среде, набрав:

  

Теперь мы можем создать наш корневой ЦС, набрав:

  

Это запустит процесс создания ключа и сертификата корневого центра сертификации. Поскольку мы заполнили файл vars , все значения должны быть заполнены автоматически. Просто нажмите ENTER через подсказки, чтобы подтвердить выбор:

  

Выход

Создание 2048-битного закрытого ключа RSA ................................................... ....................................... +++ ............................... +++ запись нового закрытого ключа в 'ca.key' ----- Вас вот-вот попросят ввести информацию, которая будет включена в ваш запрос на сертификат. То, что вы собираетесь ввести, называется отличительным именем или DN. Поля довольно много, но можно оставить пустыми. Для некоторых полей будет значение по умолчанию, Если вы введете ".", Поле останется пустым.----- Название страны (двухбуквенный код) [США]: Название штата или провинции (полное название) [NY]: Название населенного пункта (например, город) [Нью-Йорк]: Название организации (например, компания) [DigitalOcean]: Название организационной единицы (например, раздел) [Сообщество]: Общее имя (например, ваше имя или имя хоста вашего сервера) [DigitalOcean CA]: Имя [сервер]: Адрес электронной почты [[email protected]]:

Теперь у нас есть CA, который можно использовать для создания остальных файлов, которые нам нужны.

Шаг 5: Создайте сертификат сервера, ключ и файлы шифрования

Затем мы сгенерируем наш сертификат сервера и пару ключей, а также некоторые дополнительные файлы, используемые в процессе шифрования.

Начните с создания сертификата сервера OpenVPN и пары ключей. Мы можем сделать это, набрав:

Примечание : Если вы выберете здесь имя, отличное от server , вам придется изменить некоторые из приведенных ниже инструкций. Например, при копировании сгенерированных файлов в директрой / etc / openvpn вам нужно будет подставить правильные имена. Вам также придется изменить файл /etc/openvpn/server.conf позже, чтобы он указывал на правильный . crt и .key файлов.

  
  • ./build-key-server сервер

И снова подсказки будут иметь значения по умолчанию, основанные на аргументе, который мы только что передали ( server ), и содержимом нашего файла vars , который мы получили.

Не стесняйтесь принять значения по умолчанию, нажав ENTER . Не вводите ли , а не пароль проверки для этой настройки. В конце вам нужно будет ввести y к двум вопросам, чтобы подписать и подтвердить сертификат:

  

Выход

.. . Сертификат необходимо заверить до 1 мая 17:51:16 2026 мск (3650 дней) Подпишите сертификат? [д / н]: д 1 из 1 запросов на сертификат подтвержден, совершить? [д / н] д Записать базу данных с 1 новой записью База данных обновлена

Затем мы сгенерируем еще несколько элементов. Мы можем сгенерировать надежные ключи Диффи-Хеллмана для использования во время обмена ключами, набрав:

  

Это может занять несколько минут.

После этого мы можем сгенерировать подпись HMAC, чтобы усилить возможности проверки целостности TLS сервера:

  
  • openvpn --genkey --secret keys / ta.ключ

Шаг 6. Создание сертификата клиента и пары ключей

Затем мы можем сгенерировать сертификат клиента и пару ключей. Хотя это можно сделать на клиентском компьютере, а затем подписать сервером / центром сертификации в целях безопасности, в этом руководстве для простоты мы сгенерируем подписанный ключ на сервере.

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

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

Для создания учетных данных без пароля и помощи в автоматических подключениях используйте команду build-key , например:

  
  • cd ~ / openvpn-ca
  • исходные переменные
  • ./ build-key client1

Если вместо этого вы хотите создать защищенный паролем набор учетных данных, используйте команду build-key-pass :

  
  • cd ~ / openvpn-ca
  • исходные переменные
  • ./build-key-pass client1

Опять же, значения по умолчанию должны быть заполнены, поэтому вы можете просто нажать ENTER , чтобы продолжить. Оставьте поле пароля проверки пустым и обязательно введите y в ответ на запрос о подписании и подтверждении сертификата.

Шаг 7. Настройте службу OpenVPN

Затем мы можем приступить к настройке службы OpenVPN с использованием созданных нами учетных данных и файлов.

Скопируйте файлы в каталог OpenVPN

Для начала нам нужно скопировать нужные нам файлы в конфигурационный каталог / etc / openvpn .

Мы можем начать со всеми файлами, которые мы только что сгенерировали. Они были помещены в каталог ~ / openvpn-ca / keys по мере их создания.Нам нужно переместить наш сертификат CA, наш сертификат и ключ сервера, подпись HMAC и файл Diffie-Hellman:

  
  • cd ~ / openvpn-ca / keys
  • sudo cp ca.crt server.crt server.key ta.key dh3048.pem / etc / openvpn

Затем нам нужно скопировать и разархивировать образец файла конфигурации OpenVPN в каталог конфигурации, чтобы мы могли использовать его в качестве основы для нашей установки:

  
  • gunzip -c / usr / share / doc / openvpn / examples / sample-config-files / server. conf.gz | sudo tee /etc/openvpn/server.conf

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

Теперь, когда наши файлы на месте, мы можем изменить файл конфигурации сервера:

  
  • sudo nano /etc/openvpn/server.conf
Базовая конфигурация

Сначала найдите раздел HMAC, ища директиву tls-auth . Удалите «; », чтобы раскомментировать строку tls-auth :

/ и т.д. / openvpn / server.conf

  tls-auth ta.key 0 # Этот файл секретный
  

Затем найдите раздел о криптографических шифрах, просмотрев закомментированные строки шифра . Шифр AES-128-CBC предлагает хороший уровень шифрования и хорошо поддерживается. Удалите «; ”, чтобы раскомментировать шифр AES-128-CBC строка:

/etc/openvpn/server.conf

  шифр AES-128-CBC
  

Ниже добавьте строку auth , чтобы выбрать алгоритм обзора сообщения HMAC.Для этого SHA256 — хороший выбор:

/etc/openvpn/server.conf

  аутентификация SHA256
  

Наконец, найдите настройки пользователя и группы и удалите «; »в начале, чтобы раскомментировать эти строки:

/etc/openvpn/server.conf

  пользователь none
группа nogroup
  
(Необязательно) Отправка изменений DNS для перенаправления всего трафика через VPN

Приведенные выше настройки создадут VPN-соединение между двумя машинами, но не заставят какие-либо соединения использовать туннель.Если вы хотите использовать VPN для маршрутизации всего вашего трафика, вы, вероятно, захотите передать настройки DNS на клиентские компьютеры.

Вы можете сделать это, раскомментируя несколько директив, которые будут настраивать клиентские машины для перенаправления всего веб-трафика через VPN. Найдите раздел redirect-gateway и удалите точку с запятой «; »от начала строки redirect-gateway , чтобы раскомментировать ее:

/etc/openvpn/server.conf

  push "redirect-gateway def1 bypass-dhcp"
  

Чуть ниже найдите раздел dhcp-option .Снова удалите «; ”перед обеими строками, чтобы раскомментировать их:

/etc/openvpn/server.conf

  push "dhcp-option DNS 208.67.222.222"
нажмите "dhcp-option DNS 208.67.220.220"
  

Это должно помочь клиентам перенастроить настройки DNS для использования VPN-туннеля в качестве шлюза по умолчанию.

(дополнительно) Настройте порт и протокол

По умолчанию сервер OpenVPN использует порт 1194 и протокол UDP для приема клиентских подключений.Если вам нужно использовать другой порт из-за ограниченных сетевых сред, в которых могут находиться ваши клиенты, вы можете изменить параметр порт . Если вы не размещаете веб-контент на своем сервере OpenVPN, популярным выбором является порт 443, поскольку это обычно разрешено правилами брандмауэра.

/etc/openvpn/server.conf

  # Необязательно!
порт 443
  

Часто, если протокол также будет ограничен этим портом. Если это так, измените proto с UDP на TCP:

/ и т.д. / openvpn / server.conf

  # Необязательно!
протокол TCP
  

Если вам не нужно использовать другой порт, лучше оставить эти две настройки по умолчанию.

(необязательно) Укажите учетные данные не по умолчанию

Если вы ранее выбрали другое имя во время выполнения команды ./build-key-server , измените строки cert и key , которые вы видите, чтобы они указывали на соответствующие файлы .crt и .key . Если вы использовали сервер по умолчанию , это уже должно быть правильно установлено:

/ и т. д. / openvpn / server.conf

  cert server.crt
ключ server.key
  

Когда вы закончите, сохраните и закройте файл.

Шаг 8: Настройте сетевую конфигурацию сервера

Затем нам нужно настроить некоторые аспекты сети сервера, чтобы OpenVPN мог правильно маршрутизировать трафик.

Разрешить переадресацию IP

Во-первых, нам нужно разрешить серверу пересылать трафик. Это очень важно для функциональности, которую мы хотим, чтобы наш VPN-сервер предоставлял.

Мы можем изменить этот параметр, изменив файл /etc/sysctl.conf :

  
  • sudo nano /etc/sysctl.conf

Внутри найдите строку, которая устанавливает net.ipv4.ip_forward . Удалите символ « # » из начала строки, чтобы раскомментировать этот параметр:

/etc/sysctl.conf

  net.ipv4.ip_forward = 1
  

Сохраните и закройте файл, когда закончите.

Чтобы прочитать файл и изменить значения для текущего сеанса, введите:

  

Настройте правила UFW для маскировки клиентских подключений

Если вы выполнили предварительные требования руководства по начальной настройке сервера Ubuntu 16.04, у вас должен быть установлен брандмауэр UFW. Независимо от того, используете ли вы брандмауэр для блокировки нежелательного трафика (что вам почти всегда следует делать), в этом руководстве нам понадобится брандмауэр, чтобы управлять частью трафика, поступающего на сервер.Нам нужно изменить файл правил, чтобы настроить маскировку, концепцию iptables , которая обеспечивает динамический NAT на лету для правильной маршрутизации клиентских подключений.

Прежде чем мы откроем файл конфигурации брандмауэра, чтобы добавить маскировку, нам нужно найти общедоступный сетевой интерфейс нашей машины. Для этого наберите:

  

В вашем общедоступном интерфейсе должно быть слово «dev». Например, этот результат показывает интерфейс с именем wlp11s0 , который выделен ниже:

  

Вывод

по умолчанию через 203.0.113.1 dev wlp11s0 proto static metric 600

Когда у вас есть интерфейс, связанный с вашим маршрутом по умолчанию, откройте файл /etc/ufw/before.rules , чтобы добавить соответствующую конфигурацию:

  
  • судо нано /etc/ufw/before.rules

Этот файл обрабатывает конфигурацию, которая должна быть введена в действие перед загрузкой обычных правил UFW. Вверху файла добавьте выделенные строки ниже. Это установит политику по умолчанию для цепочки POSTROUTING в таблице nat и замаскирует любой трафик, исходящий из VPN:

Примечание : Не забудьте заменить wlp11s0 в строке -A POSTROUTING ниже на интерфейс, который вы нашли в приведенной выше команде.

/etc/ufw/before.rules

  #
# rules.before
#
# Правила, которые должны быть выполнены до того, как в командной строке ufw добавлены правила. Обычай
В одну из этих цепочек нужно добавить # правила:
# ufw-before-input
# ufw-before-output
# ufw-before-forward
#

# START OPENVPN ПРАВИЛА
# Правила таблицы NAT
* нац
: ПРИНЯТИЕ ПОСТРОУТИРОВКИ [0: 0]
# Разрешить трафик от клиента OpenVPN на wlp11s0 (измените интерфейс, который вы обнаружили!)
-A ПОСТРОУТИРОВАНИЕ -s 10.8.0.0/8 -o wlp11s0 -j ​​МАСКАРАД
СОВЕРШИТЬ
# КОНЕЦ ПРАВИЛА OPENVPN

# Не удаляйте эти обязательные строки, иначе будут ошибки
*фильтр
.. .
  

Сохраните и закройте файл, когда закончите.

Нам нужно указать UFW разрешить пересылку пакетов по умолчанию. Для этого откроем файл / etc / default / ufw :

  
  • судо нано / и т. Д. / По умолчанию / ufw

Внутри найдите директиву DEFAULT_FORWARD_POLICY . Мы изменим значение с DROP на ACCEPT :

/ etc / default / ufw

  DEFAULT_FORWARD_POLICY = "ПРИНЯТЬ"
  

Сохраните и закройте файл, когда закончите.

Откройте порт OpenVPN и активируйте изменения

Затем мы настроим сам брандмауэр, чтобы разрешить трафик в OpenVPN.

Если вы не меняли порт и протокол в файле /etc/openvpn/server.conf , вам необходимо открыть UDP-трафик на порт 1194. Если вы изменили порт и / или протокол, замените значения, которые вы выбрано здесь.

Мы также добавим порт SSH на случай, если вы забыли добавить его, следуя предварительному руководству:

  
  • sudo ufw разрешить 1194 / udp
  • sudo ufw разрешить OpenSSH

Теперь мы можем отключить и снова включить UFW для загрузки изменений из всех файлов, которые мы изменили:

  
  • sudo ufw отключить
  • sudo ufw включить

Наш сервер теперь настроен для правильной обработки трафика OpenVPN.

Шаг 9. Запустите и включите службу OpenVPN

Мы наконец готовы запустить службу OpenVPN на нашем сервере. Мы можем сделать это с помощью systemd.

Нам нужно запустить сервер OpenVPN, указав имя нашего файла конфигурации в качестве переменной экземпляра после имени файла модуля systemd. Наш файл конфигурации для нашего сервера называется /etc/openvpn/server.conf , поэтому мы добавим @server в конец нашего файла модуля при его вызове:

  
  • sudo systemctl start openvpn @ сервер

Еще раз проверьте, что служба запустилась успешно, набрав:

  
  • sudo systemctl status openvpn @ server

Если все прошло хорошо, результат должен выглядеть примерно так:

  

Вывод

● openvpn @ server. сервис - OpenVPN подключение к серверу Загружено: загружено (/lib/systemd/system/[email protected]; отключено; предустановка поставщика: включена) Активен: активен (работает) с Вт 2016-05-03 15:30:05 EDT; 47с назад Документы: man: openvpn (8) https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Процесс: 5852 ExecStart = / usr / sbin / openvpn --daemon ovpn-% i --status /run/openvpn/%i.status 10 --cd / etc / openvpn --script-security 2 --config / etc / openvpn /% i.conf --writepid /run/openvpn/%i.pid (code = exited, sta Основной PID: 5856 (openvpn) Задач: 1 (ограничение: 512) CGroup: /system.slice/system-openvpn.slice/[email protected] └─5856 / usr / sbin / openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd / etc / openvpn --script-security 2 --config / etc / openvpn / server. conf --writepid /run/openvpn/server.pid 3 мая 15:30:05 openvpn2 ovpn-server [5856]: / sbin / ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2 03 мая 15:30:05 openvpn2 ovpn-server [5856]: / sbin / ip route add 10.8.0.0 / 24 через 10.8.0.2 3 мая, 15:30:05 openvpn2 ovpn-server [5856]: GID установлен в nogroup 3 мая, 15:30:05 openvpn2 ovpn-server [5856]: UID не задан никому 3 мая 15:30:05 openvpn2 ovpn-server [5856]: UDPv4 ссылка локальная (привязанная): [undef] 3 мая 15:30:05 openvpn2 ovpn-server [5856]: удаленная ссылка UDPv4: [undef] 3 мая 15:30:05 openvpn2 ovpn-server [5856]: MULTI: вызов multi_init, r = 256 v = 256 3 мая 15:30:05 openvpn2 ovpn-server [5856]: IFCONFIG POOL: base = 10.8.0.4 size = 62, ipv6 = 0 3 мая 15:30:05 openvpn2 ovpn-server [5856]: СПИСОК ПУЛА IFCONFIG 3 мая 15:30:05 openvpn2 ovpn-server [5856]: последовательность инициализации завершена

Вы также можете проверить доступность интерфейса OpenVPN tun0 , набрав:

  

Вы должны увидеть настроенный интерфейс:

  

Выход

4: tun0: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100 ссылка / нет инет 10. 8.0.1 одноранговый узел 10.8.0.2/32 глобальная область tun0 valid_lft навсегда предпочтительный_lft навсегда

Если все прошло хорошо, включите службу, чтобы она запускалась автоматически при загрузке:

  
  • sudo systemctl включить openvpn @ server

Шаг 10: Создание инфраструктуры конфигурации клиента

Далее нам нужно настроить систему, которая позволит нам легко создавать файлы конфигурации клиентов.

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

Создайте структуру каталогов в домашнем каталоге для хранения файлов:

  
  • mkdir -p ~ / client-configs / files

Поскольку в наши файлы конфигурации клиента будут встроены клиентские ключи, мы должны заблокировать разрешения для нашего внутреннего каталога:

  
  • chmod 700 ~ / client-configs / files

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

Затем давайте скопируем пример конфигурации клиента в наш каталог, чтобы использовать его в качестве базовой конфигурации:

  
  • cp / usr / share / doc / openvpn / examples / sample-config-files / client.конф ~ / client-configs / base.conf

Откройте этот новый файл в текстовом редакторе:

  
  • нано ~ / client-configs / base.conf

Внутри нам нужно внести некоторые изменения.

Сначала найдите директиву remote . Это указывает клиенту на адрес нашего сервера OpenVPN. Это должен быть общедоступный IP-адрес вашего сервера OpenVPN. Если вы изменили порт, который прослушивает сервер OpenVPN, измените 1194 на выбранный вами порт:

~ / client-configs / base.конф

 . . .
# Имя хоста / IP и порт сервера.
# У вас может быть несколько удаленных записей
# для балансировки нагрузки между серверами. 
удаленный IP-адрес_сервера 1194
. . .
  

Убедитесь, что протокол соответствует значению, которое вы используете в конфигурации сервера:

~ / client-configs / base.conf

  proto udp
  

Затем раскомментируйте директивы user и group , удалив «; ”:

~ / client-configs / base.conf

  # Понижение привилегий после инициализации (только не для Windows)
пользователь никто
группа nogroup
  

Найдите директивы, которые устанавливают ca , cert и key . Закомментируйте эти директивы, поскольку мы будем добавлять сертификаты и ключи внутри самого файла:

~ / client-configs / base.conf

  # Параметры SSL / TLS.
# См. Файл конфигурации сервера для получения дополнительной информации
# описание. Лучше использовать
# отдельная пара файлов .crt / .key
# для каждого клиента.Единый ca
# файл можно использовать для всех клиентов.
#ca ca.crt
#cert client.crt
#key client.key
  

Отразите настройки шифра и auth , которые мы установили в файле /etc/openvpn/server.conf :

~ / client-configs / base.conf

  шифр AES-128-CBC
авторизация SHA256
  

Затем добавьте в файл директиву key-direction . Этот должен быть установлен на «1» для работы с сервером:

~ / client-configs / base.conf

  клавиша-направление 1
  

Наконец, добавьте несколько закомментированных строк . Мы хотим включать их в каждую конфигурацию, но должны включать их только для клиентов Linux, которые поставляются с файлом / etc / openvpn / update-resolv-conf . Этот сценарий использует утилиту resolvconf для обновления информации DNS для клиентов Linux.

~ / client-configs / base.conf

  # безопасность-скрипт 2
# вверх / etc / openvpn / update-resolv-conf
# вниз / etc / openvpn / update-resolv-conf
  

Если ваш клиент работает под управлением Linux и имеет файл / etc / openvpn / update-resolv-conf , вы должны раскомментировать эти строки из сгенерированного файла конфигурации клиента OpenVPN.

Сохраните файл, когда закончите.

Создание сценария создания конфигурации

Затем мы создадим простой сценарий для компиляции нашей базовой конфигурации с соответствующими файлами сертификата, ключа и шифрования. Это поместит сгенерированную конфигурацию в каталог ~ / client-configs / files .

Создайте и откройте файл с именем make_config.sh в каталоге ~ / client-configs :

  
  • nano ~ / client-configs / make_config.ш

Внутри вставьте следующий скрипт:

~ / client-configs / make_config.sh

  #! / Bin / bash

# Первый аргумент: идентификатор клиента

KEY_DIR = ~ / openvpn-ca / ключи
OUTPUT_DIR = ~ / клиентские конфигурации / файлы
BASE_CONFIG = ~ / client-configs / base.conf

кошка $ {BASE_CONFIG} \
    <(echo -e '') \
    $ {KEY_DIR} /ca.crt \
    <(echo -e ' \ n ') \
    $ {KEY_DIR} / $ {1} .crt \
    <(echo -e ' \ n ') \
    $ {KEY_DIR} / $ {1}.ключ \
    <(echo -e ' \ n ') \
    $ {KEY_DIR} /ta.key \
    <(echo -e '') \
    > $ {OUTPUT_DIR} / $ {1} .ovpn
  

Сохраните и закройте файл, когда закончите.

Отметьте файл как исполняемый, набрав:

  
  • chmod 700 ~ / client-configs / make_config.sh

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

Теперь мы можем легко создавать файлы конфигурации клиента.

Если вы следовали руководству, вы создали сертификат клиента и ключ с именем client1.crt и client1.key соответственно, выполнив команду ./build-key client1 на шаге 6. Мы можем сгенерировать конфигурацию для этих учетных данных, перейдя в наш каталог ~ / client-configs и используя созданный нами скрипт:

  
  • cd ~ / client-configs
  • ./make_config.sh client1

Если все прошло хорошо, у нас должен быть client1.ovpn в нашем каталоге ~ / client-configs / files :

  
  • ls ~ / client-configs / files
  

Выход

client1.ovpn

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

Нам нужно передать файл конфигурации клиента на соответствующее устройство. Например, это может быть ваш локальный компьютер или мобильное устройство.

Хотя конкретные приложения, используемые для выполнения этой передачи, будут зависеть от вашего выбора и операционной системы устройства, вы хотите, чтобы приложение использовало SFTP (протокол передачи файлов SSH) или SCP (безопасное копирование) на бэкэнде.Это позволит транспортировать файлы аутентификации VPN вашего клиента по зашифрованному соединению.

Вот пример команды SFTP с использованием нашего примера client1.ovpn. Эту команду можно запустить с вашего локального компьютера (OS X или Linux). Он помещает файл .ovpn в ваш домашний каталог:

  
  • sftp sammy @ openvpn_server_ip: client-configs / files / client1.ovpn ~ /

Вот несколько инструментов и руководств для безопасной передачи файлов с сервера на локальный компьютер:

Шаг 12: Установите конфигурацию клиента

Теперь мы обсудим, как установить клиентский профиль VPN в Windows, OS X, iOS и Android.Ни одна из этих клиентских инструкций не зависит друг от друга, поэтому не стесняйтесь переходить к тому, что подходит вам.

Соединение OpenVPN будет называться так, как вы назвали файл .ovpn . В нашем примере это означает, что соединение будет называться client1.ovpn для первого созданного нами клиентского файла.

Windows

Установка

Клиентское приложение OpenVPN для Windows можно найти на странице загрузок OpenVPN.Выберите подходящую версию установщика для вашей версии Windows.

Примечание

Для установки OpenVPN требуются права администратора.

После установки OpenVPN скопируйте файл .ovpn по адресу:

  C: \ Program Files \ OpenVPN \ config
  

Когда вы запускаете OpenVPN, он автоматически видит профиль и делает его доступным.

OpenVPN должен запускаться от имени администратора каждый раз, когда он используется, даже с использованием административных учетных записей. Чтобы сделать это без необходимости щелкать правой кнопкой мыши и выбирать Запуск от имени администратора каждый раз, когда вы используете VPN, вы можете предварительно установить это, но это должно быть сделано из учетной записи администратора.Это также означает, что обычным пользователям потребуется ввести пароль администратора для использования OpenVPN. С другой стороны, обычные пользователи не могут правильно подключиться к серверу, если приложение OpenVPN на клиенте не имеет прав администратора, поэтому необходимы повышенные привилегии.

Чтобы приложение OpenVPN всегда запускалось от имени администратора, щелкните его ярлык правой кнопкой мыши и перейдите к Свойства . Внизу вкладки Совместимость нажмите кнопку Изменить настройки для всех пользователей .В новом окне отметьте Запустить эту программу от имени администратора .

Подключение

Каждый раз, когда вы запускаете графический интерфейс OpenVPN, Windows спрашивает, хотите ли вы разрешить программе вносить изменения в ваш компьютер. Щелкните Да . Запуск клиентского приложения OpenVPN только помещает апплет в системный лоток, так что VPN можно подключать и отключать по мере необходимости; это фактически не устанавливает соединение VPN.

После запуска OpenVPN инициируйте соединение, войдя в апплет на панели задач и щелкнув правой кнопкой мыши значок апплета OpenVPN.Откроется контекстное меню. Выберите client1 вверху меню (это наш профиль client1.ovpn ) и выберите Connect .

Откроется окно состояния, показывающее вывод журнала, пока соединение установлено, и сообщение появится после того, как клиент будет соединен.

Отключитесь от VPN таким же образом: войдите в апплет на панели задач, щелкните правой кнопкой мыши значок апплета OpenVPN, выберите профиль клиента и щелкните Отключить .

OS X

Установка

Tunnelblick — это бесплатный клиент OpenVPN с открытым исходным кодом для Mac OS X. Вы можете загрузить последний образ диска со страницы загрузок Tunnelblick. Дважды щелкните загруженный файл .dmg и следуйте инструкциям по установке.

Ближе к концу процесса установки Tunnelblick спросит, есть ли у вас файлы конфигурации. Может быть проще ответить Нет и дать Tunnelblick закончить. Откройте окно Finder и дважды щелкните client1.овпн . Tunnelblick установит профиль клиента. Требуются права администратора.

Подключение

Запустите Tunnelblick, дважды щелкнув Tunnelblick в папке Applications . После запуска Tunnelblick в строке меню в правом верхнем углу экрана появится значок Tunnelblick для управления подключениями. Щелкните значок, а затем пункт меню Connect , чтобы инициировать VPN-соединение. Выберите соединение client1 .

Linux

Установка

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

Однако самый универсальный способ подключения — просто использовать программное обеспечение OpenVPN.

В Ubuntu или Debian вы можете установить его так же, как и на сервере, набрав:

  
  • sudo apt-get update
  • sudo apt-get install openvpn

В CentOS вы можете включить репозитории EPEL, а затем установить его, набрав:

  
  • sudo yum install epel-release
  • sudo yum установить openvpn
Настройка

Проверьте, есть ли в вашем дистрибутиве сценарий / etc / openvpn / update-resolv-conf :

  
  

Выход

update-resolve-conf

Затем отредактируйте файл конфигурации клиента OpenVPN, который вы передали:

  

Раскомментируйте три строки, которые мы поместили для настройки параметров DNS, если вам удалось найти файл update-resolv-conf :

клиент1.овпн

  скрипт-безопасность 2
вверх / и т.д. / openvpn / update-resolv-conf
вниз / etc / openvpn / update-resolv-conf
  

Если вы используете CentOS, измените группу с nogroup на никто в соответствии с доступными группами дистрибутива:

client1.ovpn

  группа никто
  

Сохраните и закройте файл.

Теперь вы можете подключиться к VPN, просто указав команду openvpn на файл конфигурации клиента:

  
  • sudo openvpn --config client1.овпн

Это должно соединить вас с вашим сервером.

iOS

Установка

В iTunes App Store найдите и установите OpenVPN Connect, официальное клиентское приложение iOS OpenVPN. Чтобы перенести конфигурацию клиента iOS на устройство, подключите его напрямую к компьютеру.

Здесь будет описано завершение переноса с помощью iTunes. Откройте iTunes на компьютере и нажмите iPhone > приложений .Прокрутите вниз до раздела File Sharing и щелкните приложение OpenVPN. Пустое окно справа, OpenVPN Documents , предназначено для обмена файлами. Перетащите файл .ovpn в окно документов OpenVPN.

Теперь запустите приложение OpenVPN на iPhone. Появится уведомление о том, что новый профиль готов к импорту. Коснитесь зеленого знака плюса, чтобы импортировать его.

Подключение

OpenVPN теперь готов к использованию с новым профилем.Начните соединение, сдвинув кнопку Connect в положение On . Отключите, сдвинув ту же кнопку на Off .

Примечание

Переключатель VPN под Настройки не может использоваться для подключения к VPN. Если вы попытаетесь, вы получите уведомление о необходимости подключаться только с помощью приложения OpenVPN.

Android

Установка

Откройте магазин Google Play. Найдите и установите Android OpenVPN Connect, официальное клиентское приложение Android OpenVPN.

Профиль .ovpn можно передать, подключив устройство Android к компьютеру через USB и скопировав файл. В качестве альтернативы, если у вас есть устройство для чтения SD-карт, вы можете извлечь SD-карту устройства, скопировать на нее профиль, а затем снова вставить карту в Android-устройство.

Запустите приложение OpenVPN и коснитесь меню, чтобы импортировать профиль.

Затем перейдите в папку с сохраненным профилем (на снимке экрана используется / sdcard / Download / ) и выберите файл.Приложение отметит, что профиль был импортирован.

Подключение

Для подключения просто нажмите кнопку Connect . Вас спросят, доверяете ли вы приложению OpenVPN. Выберите OK , чтобы инициировать соединение. Чтобы отключиться от VPN, вернитесь в приложение OpenVPN и выберите Отключить .

Шаг 13: Проверьте ваше VPN-соединение

После того, как все установлено, простая проверка подтверждает, что все работает правильно.Не включив VPN-соединение, откройте браузер и перейдите к DNSLeakTest.

Сайт вернет IP-адрес, назначенный вашим интернет-провайдером, а также ваш внешний вид для остального мира. Чтобы проверить настройки DNS на том же веб-сайте, щелкните Extended Test , и он сообщит вам, какие DNS-серверы вы используете.

Теперь подключите клиент OpenVPN к VPN вашего Droplet и обновите страницу в браузере. Теперь должен появиться совершенно другой IP-адрес вашего VPN-сервера.Вот как вы сейчас представляетесь миру. Опять же, DNSLeakTest Extended Test проверит ваши настройки DNS и подтвердит, что вы теперь используете DNS-преобразователи, установленные вашей VPN.

Шаг 14: Отзыв клиентских сертификатов

Иногда может потребоваться отозвать сертификат клиента, чтобы предотвратить дальнейший доступ к серверу OpenVPN.

Для этого войдите в свой каталог CA и повторно загрузите файл vars :

  
  • cd ~ / openvpn-ca
  • исходные переменные

Затем вызовите команду revoke-full , используя имя клиента, которое вы хотите отозвать:

  

Это покажет некоторые выходные данные, заканчивающиеся ошибкой 23 .Это нормально, и в процессе должна быть успешно сгенерирована необходимая информация об отзыве, которая хранится в файле с именем crl.pem в подкаталоге keys .

Перенесите этот файл в каталог конфигурации / etc / openvpn :

  
  • sudo cp ~ / openvpn-ca / keys / crl.pem / etc / openvpn

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

  
  • sudo nano / etc / openvpn / server.конф

В нижней части файла добавьте параметр crl-verify , чтобы сервер OpenVPN проверял список отзыва сертификатов, который мы создали при каждой попытке подключения:

/etc/openvpn/server.conf

  crl-verify crl.pem
  

Сохраните и закройте файл.

Наконец, перезапустите OpenVPN, чтобы реализовать отзыв сертификата:

  
  • sudo systemctl перезапустить openvpn @ server

Теперь клиент должен больше иметь возможность успешно подключаться к серверу, используя старые учетные данные.

Чтобы отозвать дополнительных клиентов, выполните следующие действия:

  1. Создайте новый список отзыва сертификатов, найдя файл vars в каталоге ~ / openvpn-ca и затем вызвав сценарий revoke-full для имени клиента.
  2. Скопируйте новый список отзыва сертификатов в каталог / etc / openvpn , чтобы перезаписать старый список.
  3. Перезапустите службу OpenVPN.

Этот процесс можно использовать для отзыва любых сертификатов, которые вы ранее выдавали для своего сервера.

Заключение

Поздравляем! Теперь вы безопасно выходите в Интернет, защищая свою личность, местоположение и трафик от шпионов и цензоров.

Чтобы настроить больше клиентов, вам нужно всего лишь выполнить шаги 6 и 11-13 для каждого дополнительного устройства. Чтобы отозвать доступ для клиентов, выполните шаг 14 .

Установка VPN в Linux — Linux Подсказка

Вы хотите установить VPN в Linux, верно? В этой статье мы покажем вам, как установить VPN.Но прежде чем мы начнем с шагов, давайте начнем с некоторой справочной информации, чтобы убедиться, что у вас есть контекст.

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

Здесь мы начинаем спрашивать себя: «Как мы защищаем наши данные?» Выбор операционной системы должен быть вашим первым шагом при защите ваших личных данных.Сегодня популярным выбором многих пользователей будет Windows. Но эта популярность Windows сама по себе оказалась проблемой, поскольку она стала огромным игровым полем для вредоносных программ. Более надежной и безопасной альтернативой будет Linux, поскольку он является открытым исходным кодом, который позволяет любому читать и комментировать его код, и, следовательно, гораздо меньше уязвимостей, ошибок и угроз, на которые следует обратить внимание. Однако сам Linux не безупречен. По-прежнему требуются дополнительные ресурсы для обеспечения большей безопасности. Одна из них — это виртуальная частная сеть (VPN), частная контролируемая сеть, которая защищает подключение вашего компьютера к Интернету, гарантируя, что все данные, которые вы отправляете или получаете, зашифрованы, что затрудняет подслушивание кем-либо извне того, что вы делаем.

Использование OpenVPN для установки VPN в Linux

OpenVPN — это протокол VPN с открытым исходным кодом, который сам не является поставщиком VPN, а скорее действует как мост между программным обеспечением VPN и сервером VPN. Используя это, мы сможем установить VPN в Linux. Давайте теперь пройдемся по шагам.

Шаг 1. Проверка версии Ubuntu

.

Поскольку доступны 32- и 64-разрядные версии программного обеспечения VPN, первое, что вам нужно сделать перед началом работы, это проверить, какую версию Ubuntu вы используете в настоящее время.Для этого сначала откройте Терминал через Ubuntu Dash или ярлык Ctrl + Alt + T . После открытия Терминала введите следующую команду:

Запись о режиме (ах) ЦП сообщает вам, какая разрядная версия Ubuntu у вас работает в данный момент.

Шаг 2. Обновление кэша и пакетов System Apt

Затем мы хотим обновить кэш и пакеты apt нашей системы до последних версий, чтобы не возникало проблем во время установки. Это можно сделать, выполнив следующие команды:

$ sudo apt-get update
$ sudo apt-get upgrade

Шаг 3: Установка OpenVPN

В большинстве дистрибутивов Linux OpenVPN уже установлен.Но лучше заранее в этом убедиться. Для этого введите следующую команду:

$ sudo apt-get install openvpn

Если OpenVPN уже установлен на вашем рабочем столе, вы увидите что-то вроде этого:

Шаг 4: Установка пакетов Network Manager

Самый простой способ настроить и установить VPN в Linux — использовать Network Manager. По сути, это обязательный пакет, который позволяет нам импортировать и использовать файлы конфигурации OpenVPN.Установить этот пакет можно с помощью следующих команд:

$ sudo apt установить сетевой менеджер-openvpn network-manager-openvpn-gnome

Шаг 5. Загрузите конфигурации OpenVPN

Теперь вам нужно выбрать службу VPN, которую вы будете использовать для настройки VPN в своем дистрибутиве Linux. Важно отметить, что вы должны выбрать файлы конфигурации OpenVPN вашего VPN-сервиса для настройки. Чтобы получить конфигурации OpenVPN, вам необходимо войти в свою учетную запись VPN и проверить слот поддержки Linux или OpenVPN (различается для всех служб VPN).Файлы, которые вы получите, будут в Zip Archive . Для эффективной работы нашего VPN было бы лучше создать для него отдельный каталог. Для этого введите в терминал:

имя_файла здесь относится к имени вашего каталога. Например, в моем случае это было:

Затем мы должны войти в этот каталог, который мы только что создали. Для этого мы должны ввести команду:

Здесь имя файла снова относится к имени вашего каталога, который вы создали ранее.Примерно так:

Поскольку наш файл имеет формат Zip, мы должны сначала распаковать его, чтобы получить к нему доступ. Это можно сделать, введя следующую команду:

filename.zip здесь означает загруженный вами заархивированный файл. Это будет выглядеть так:

Шаг 5: Настройка VPN

Теперь, наконец, мы будем использовать Network Manager для настройки нашего VPN-соединения.

Для пользователей Ubuntu 18.04 и 19.10:

Прежде всего, закройте Терминал и щелкните значок сети в правом верхнем углу экрана, как показано ниже.Теперь нажмите «Подключено к проводной сети» и выберите «Настройки проводной связи».

Отсюда вы попадете в Настройки, и автоматически откроется вкладка Сеть. Найдите заголовок VPN и щелкните значок плюса (+) рядом с ним .

Вы увидите окно «Добавить VPN». Выберите Импорт из файла.

Теперь нам нужно импортировать файл конфигурации OpenVPN VPN-сервера, к которому мы хотим подключиться. Это можно сделать, просмотрев каталог, в который мы распаковали заархивированный файл конфигурации , который мы скачали ранее.Щелкните файл и выберите Открыть .

Все настройки OpenVPN из этого файла конфигурации будут импортированы. Теперь вам просто нужно ввести свое имя пользователя и пароль для службы VPN и нажать Сохранить .

VPN-соединение теперь добавлено в ваш Network Manager. Теперь вы можете щелкнуть значок сети в правом верхнем углу экрана и иметь возможность подключать или отключать VPN с домашнего экрана.

Для Ubuntu 16.04 и ранняя версия Пользователей:

Аналогичным образом закройте Терминал и щелкните значок символа соединения в правом верхнем углу экрана, как показано ниже, и выберите Редактировать соединения .

В сетевых подключениях щелкните Добавить.

Это приведет вас к подсказке с просьбой выбрать тип подключения . В раскрывающемся меню выберите «Импортировать сохраненную конфигурацию VPN» и нажмите «Создать».

Теперь нам нужно импортировать файл конфигурации OpenVPN VPN-сервера, к которому мы хотим подключиться.Это можно сделать, просмотрев каталог, в который мы распаковали заархивированный файл конфигурации , который мы скачали ранее. Щелкните файл и выберите Открыть .

Все настройки OpenVPN из этого файла конфигурации будут импортированы. Теперь вам просто нужно ввести свое имя пользователя и пароль для службы VPN и нажать Сохранить .

VPN-соединение теперь добавлено в ваши сетевые подключения.

Теперь вы можете щелкнуть значок с символом подключения в правом верхнем углу экрана, выбрать VPN Connections и затем щелкнуть имя вашего VPN-сервера, к которому вы хотите подключиться.Вы должны получить это после успешного подключения:

Заключение

Благодаря шифрованию, обеспечиваемому VPN, вы можете быть уверены, что ваше общение и данные в безопасности.

Ubuntu 18.04 LTS Настройка сервера OpenVPN за 5 минут

Я новый пользователь сервера Ubuntu Linux 18.04 LTS. Как настроить сервер OpenVPN на сервере LTS Ubuntu Linux версии 18.04, чтобы защитить мою активность просмотра от злоумышленников в общедоступном Wi-Fi и т. Д.?

Введение OpenVPN — это полнофункциональная SSL VPN (виртуальная частная сеть).Он реализует расширение защищенной сети уровня 2 или 3 OSI с использованием протокола SSL / TLS. Это программное обеспечение с открытым исходным кодом и распространяется под лицензией GNU GPL. VPN позволяет безопасно подключаться к незащищенной общедоступной сети, например к сети Wi-Fi в аэропорту или отеле. VPN также требуется для доступа к ресурсам вашего корпоративного или корпоративного или домашнего сервера. Вы можете обойти геоблокировку сайта и повысить свою конфиденциальность или безопасность в Интернете. В этом руководстве представлены пошаговые инструкции по настройке сервера OpenVPN в Ubuntu Linux 18.04 LTS сервер.

Подробности руководства
Уровень сложности Easy
Права root Да
Требования Ubuntu 18.04 LTS
Est. время чтения 5 минут

Процедура: Ubuntu 18.04 LTS настраивает сервер OpenVPN за 5 минут

Шаги следующие:

Шаг 1. Обновите вашу систему

Запустите команду apt / apt-get command:
$ sudo apt update
$ sudo apt upgrade

Шаг 2. Найдите и запишите свой IP-адрес

Используйте команду ip следующим образом:
$ ip a
$ ip a show eth0

Другой вариант — запустить следующую команду dig command / host, чтобы узнать ваш общедоступный IP-адрес из командной строки Linux:
$ dig + short myip.opendns.com @ resolver1.opendns.com
ИЛИ
dig TXT + кратко o-o.myaddr.l.google.com @ ns1.google.com | awk -F '"' '{print $ 2}'

Примечание об IP-адресе

Большинство облачных серверов имеют два типа IP-адресов:

  1. Общедоступный статический IP-адрес , непосредственно назначенный вашему ящику и маршрутизируемый из Интернета. Например, Linode, Digital Ocean и другие предоставляют вам прямой публичный IP-адрес.
  2. Частный статический IP-адрес, напрямую подключенный к вашему серверу, и ваш сервер находится за NAT с общедоступным IP-адресом .Например, AWS EC2 / Lightsail предоставит вам такой общедоступный IP-адрес NAT.

Скрипт автоматически определит настройки вашей сети. Все, что вам нужно сделать, это указать правильный IP-адрес, когда вас об этом попросят.

Шаг 3. Загрузите и запустите скрипт openvpn-install.sh

Я собираюсь использовать команду wget:
$ wget https://git.io/vpn -O openvpn-install.sh

Разрешения на установку с помощью команды chmod:
$ chmod + x openvpn-install.ш
Просмотреть сценарий можно с помощью текстового редактора, например nano / vim:
$ vim openvpn-install.sh

Запустите openvpn-install.sh, чтобы установить сервер OpenVPN

Теперь все, что вам нужно сделать, это:
$ sudo ./openvpn-install.sh
Пример сеанса из AWS / Lightsail, где мой облачный сервер находится за NAT :

Пример сеанса с сервера Linode / DO, где облачный сервер имеет прямой общедоступный IPv4-адрес :

Чтобы избежать проблем, всегда выбирайте DNS как 1.1.1.1 или Google DNS. Это быстрый DNS-сервер, доступный из любой точки Интернета.

Как запустить / остановить / перезапустить сервер OpenVPN в Ubuntu 18.04 LTS?

Нам нужно использовать команду systemctl:
$ sudo systemctl stop [email protected] # <--- остановить сервер
$ sudo systemctl start [email protected] # <--- запустить сервер
$ sudo systemctl restart [email protected] # <--- перезапустить сервер
$ sudo systemctl status openvpn-server @ server.service # <--- получить статус сервера

[email protected] - сервис OpenVPN для сервера
   Загружено: загружено (/lib/systemd/system/[email protected]; косвенный; предустановка поставщика: включена)
   Активен: активен (работает) с Sun 2020-11-22 13:42:38 UTC; 3мин 55с назад
     Документы: man: openvpn (8)
           https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
 Основной PID: 825 (openvpn)
   Статус: «Последовательность инициализации завершена»
    Задач: 1 (лимит: 536)
   CGroup: / system.слайс / система-openvpn \ x2dserver.slice/[email protected]
           └─825 / usr / sbin / openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

22 ноября 13:42:39 ip-172-26-5-75 openvpn [825]: не удалось определить протокол IPv4 / IPv6. Использование AF_INET
22 ноября 13:42:39 ip-172-26-5-75 openvpn [825]: Буферы сокетов: R = [212992-> 212992] S = [212992-> 212992]
22 ноября 13:42:39 ip-172-26-5-75 openvpn [825]: UDPv4 ссылка локальная (привязанная): [AF_INET] 172.26.5.75: 1194
22 ноября 13:42:39 ip-172-26-5-75 openvpn [825]: удаленный канал UDPv4: [AF_UNSPEC]
22 ноября, 13:42:39 ip-172-26-5-75 openvpn [825]: GID установлен в nogroup
22 ноября, 13:42:39 ip-172-26-5-75 openvpn [825]: UID не установлен на none
22 ноября 13:42:39 ip-172-26-5-75 openvpn [825]: MULTI: вызов multi_init, r = 256 v = 256
22 ноября 13:42:39 ip-172-26-5-75 openvpn [825]: IFCONFIG POOL: base = 10.8.0.2 size = 252, ipv6 = 0
22 ноября, 13:42:39 ip-172-26-5-75 openvpn [825]: IFCONFIG POOL LIST
22 ноября, 13:42:39 ip-172-26-5-75 openvpn [825]: Последовательность инициализации завершена


 

Предупреждение : пользователям AWS EC2 / Lightsail необходимо открыть порт OpenVPN по умолчанию UDP / 1194, используя группы безопасности Amazon EC2 для функции инстансов Linux.Выполните следующую команду ss, чтобы увидеть свой порт OpenVPN в экземпляре облака EC2:
sudo ss -tulpn | grep -i openvpn

OpenVPN UDP-порт 1194 открыт с использованием экземпляра AWS EC2 / Lightsail Linux

Шаг 4 - Подключите сервер OpenVPN с помощью клиента IOS / Android / Linux / Windows

На сервере вы найдете файл конфигурации клиента с именем ~ / desktop.ovpn. Все, что вам нужно сделать, это скопировать этот файл на локальный рабочий стол с помощью команды scp:
$ scp vivek @ 104.20.187.5: ~ / deskcop.ovpn.
Затем предоставьте этот файл своему клиенту OpenVPN для подключения:

  1. Клиент Apple iOS
  2. Клиент Android
  3. Клиент Apple MacOS (OS X)
  4. Клиент Windows 8/10

Забыли местоположение вашего файла .opvn, например desktop.ovpn, на сервере Ubuntu? Попробуйте найти, введя следующую команду:
sudo find / -iname "* .ovpn"

Рабочий стол Linux: конфигурация клиента OpenVPN

Сначала установите клиент openvpn для рабочего стола, введите:
$ sudo yum install openvpn
ИЛИ
$ sudo apt install openvpn
Затем скопируйте рабочий стол.ovpn следующим образом:
$ sudo cp desktop.ovpn /etc/openvpn/client.conf
Проверить подключение через интерфейс командной строки:
$ sudo openvpn --client --config /etc/openvpn/desktop.conf
Ваш Система Linux автоматически подключится при перезагрузке компьютера с помощью скрипта / службы openvpn:
$ sudo systemctl start openvpn @ client #

Шаг 5 - Проверьте / протестируйте подключение

После подключения к серверу OpenVPN с рабочего стола Linux выполните следующие команды:
$ ping 10.8.0.1 # Ping к шлюзу сервера OpenVPN
$ ip route # Убедитесь, что настройка маршрутизации работает
$ dig TXT + short oo.myaddr.l.google.com @ ns1.google.com # Необходимо вернуть общедоступный IP-адрес сервера OpenVPN

Шаг 6 - Добавление или удаление клиента OpenVPN

Войдите на свой сервер и снова запустите сценарий:
$ sudo ./openvpn-install.sh

 OpenVPN уже установлен.

Выберите вариант:
   1) Добавить нового клиента
   2) Отозвать существующего клиента
   3) Удалить OpenVPN
   4) Выход
Вариант:
 

Используйте опцию № 1, чтобы добавить нового клиента, и опцию № 2, чтобы удалить или отозвать существующий клиент OpenVPN с сервера.

Примечание об устранении неполадок сервера и клиента OpenVPN

Проверьте сервер OpenVPN на наличие ошибок с помощью команды jourlctl:
$ sudo journalctl --identifier openvpn
## ИЛИ отфильтруйте его с помощью команды grep / egrep ##
$ sudo journalctl -x -e | grep -i 'error'
$ sudo journalctl -x -e | egrep -i 'error | warn | your_ip_here'
$ sudo journalctl -xe -u [email protected]

Нажмите, чтобы увеличить изображение

Правильно ли настроено правило брандмауэра на вашем сервере? Используйте команду cat, чтобы увидеть правила:
$ cat / etc / systemd / system / openvpn-iptables.обслуживание

 [Единица]
До = network.target
[Услуга]
Тип = oneshot
ExecStart = / sbin / iptables -t nat -A ПОСТРОУТИРОВАНИЕ -s 10.8.0.0/24! -d 10.8.0.0/24 -j SNAT --to 172.xxx.yyy.zzz
ExecStart = / sbin / iptables -I ВВОД -p udp --dport 1194 -j ПРИНЯТЬ
ExecStart = / sbin / iptables -I FORWARD -s 10.8.0.0/24 -j ПРИНЯТЬ
ExecStart = / sbin / iptables -I FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
ExecStop = / sbin / iptables -t nat -D POSTROUTING -s 10.8.0.0/24! -d 10.8.0.0/24 -j SNAT --to 172.xxx.yyy.zzz
ExecStop = / sbin / iptables -D ВВОД -p udp --dport 1194 -j ПРИНЯТЬ
ExecStop = / sbin / iptables -D ВПЕРЕД -s 10.8.0.0 / 24 -j ПРИНЯТЬ
ExecStop = / sbin / iptables -D FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
ExecStart = / sbin / ip6tables -t nat -A ПОСТРОУТИРОВАНИЕ -s fddd: 1194: 1194: 1194 :: / 64! -d fddd: 1194: 1194: 1194 :: / 64 -j SNAT --to 2600: xxxx :: yyyy: zzzz: dddd: cccc
ExecStart = / sbin / ip6tables -I FORWARD -s fddd: 1194: 1194: 1194 :: / 64 -j ПРИНЯТЬ
ExecStart = / sbin / ip6tables -I FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
ExecStop = / sbin / ip6tables -t nat -D ПОСТРОУТИРОВАНИЕ -s fddd: 1194: 1194: 1194 :: / 64! -d fddd: 1194: 1194: 1194 :: / 64 -j SNAT --to 2600: xxxx :: yyyy: zzzz: dddd: cccc
ExecStop = / sbin / ip6tables -D FORWARD -s fddd: 1194: 1194: 1194 :: / 64 -j ПРИНЯТЬ
ExecStop = / sbin / ip6tables -D FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
RemainAfterExit = да
[Установить]
WantedBy = многопользовательский.цель 

Конечно, мы проверяем статус правил iptables, необходимых для OpenVPN, с помощью следующей команды:
$ sudo systemctl status openvpn-iptables.service
Если не запущен или не удалось запустить его:
$ sudo systemctl start openvpn-iptables .service
Другой вариант - запустить команду iptables и команды sysctl для проверки настройки правила NAT на вашем сервере:
$ sudo iptables -t nat -L -n -v
$ sysctl net.ipv4.ip_forward

Вставьте правила, если они не вставлены из / etc / rc.локальный
$ sudo systemctl start openvpn-iptables.service
$ sudo sysctl -w net.ipv4.ip_forward = 1

Сервер OpenVPN работает и порт открыт? Используйте команду ss или команду netstat и команду pidof / ps:
$ netstat -tulpn | grep: 1194 ## 1194 - это порт сервера openvpn ##
$ ss -tulpn | grep: 1194 ## 1194 - это порт сервера openvpn ##
$ ps aux | grep openvpn ## сервер openvpn запущен? ##
$ ps -C openvpn ## запущен ли сервер openvpn? ##
$ pidof openvpn ## найти PID сервера openvpn ##

Если он не запущен, перезапустите сервер OpenVPN:
$ sudo systemctl start openvpn-server @ server.обслуживание
Обратите внимание на ошибки:
$ sudo systemctl status [email protected]
Может ли настольный клиент Linux подключиться к серверу OpenVPN? Сначала вам нужно запустить простой тест, чтобы увидеть, принимает ли порт сервера OpenVPN (UDP 1194) соединения:
$ nc -vu 104.20.187.5 1194
Соединение с портом 104.20.187.5 1194 [udp / openvpn] выполнено успешно!

Если он не подключен, это означает, что либо настольный брандмауэр Linux, либо ваш маршрутизатор блокирует доступ к серверу.Убедитесь, что и клиент, и сервер используют один и тот же протокол и порт, например UDP-порт 1194.

Заключение

Поздравляю. Вы успешно настроили сервер OpenVPN на сервере Ubuntu Linux 18.04 LTS, работающем в облаке. Дополнительную информацию см. На сервере веб-сайта OpenVPN, на странице сценария Github и на сервере / проекте Ubuntu.

Как установить OpenVPN в Ubuntu 20.04

OpenVPN - это быстрая и популярная программа с открытым исходным кодом для создания VPN ( Virtual Private Network ).Он использует протоколы передачи TCP и UDP , а VPN-туннели защищены протоколом OpenVPN с аутентификацией SSL / TLS , сертификатами, учетными данными и, возможно, блокировкой MAC-адреса, а также многофакторной аутентификацией.

Его можно использовать в самых разных устройствах и системах. Как и большинство протоколов VPN , он имеет архитектуру клиент-сервер. Сервер доступа OpenVPN работает в системе Linux, и клиенты могут быть установлены в других системах Linux, Windows, macOS, а также в мобильных операционных системах, таких как Android, Windows Mobile и iOS.

Сервер доступа OpenVPN принимает входящие VPN-подключения, а клиенты OpenVPN Connect или любые клиенты с открытым исходным кодом, совместимые с OpenVPN, могут инициировать подключение к серверу.

В этой статье вы узнаете, как настроить сервер доступа OpenVPN на Ubuntu 20.04 и подключить VPN-клиентов из других систем Linux.

Предварительные требования:

Шаг 1. Настройка сервера OpenVPN в Ubuntu

1. Установка и настройка сервера OpenVPN вручную - непростая задача, исходя из моего опыта.По этой причине мы будем использовать скрипт, который позволит вам настроить собственный безопасный сервер OpenVPN за считанные секунды.

Перед загрузкой и запуском сценария обратите внимание, что сценарий автоматически определит частный IP-адрес вашего сервера. Но вам нужно обратить внимание на общедоступный IP-адрес вашего сервера, особенно если он работает за NAT.

Чтобы узнать общедоступный IP-адрес вашего сервера, выполните следующую команду wget или команду dig.

 $ wget -qO - icanhazip.com
ИЛИ ЖЕ
$ dig + короткий myip.opendns.com @ resolver1.opendns.com
 

Проверьте IP-адрес сервера Ubuntu

2. Теперь загрузите скрипт установщика с помощью инструмента командной строки curl, затем сделайте его исполняемым с помощью команды chmod , как показано ниже.

 $ curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
$ chmod + x openvpn-install.sh
 

3. Затем запустите исполняемый сценарий установщика, как показано.

 $ sudo bash openvpn-install.ш
 

При первом запуске сценарий задаст вам несколько вопросов, внимательно их прочитает и предоставит ответы в соответствии с вашими предпочтениями для настройки сервера OpenVPN.

Запустите сценарий установщика OpenVPN

4. После завершения процесса установки VPN файл конфигурации клиента будет записан в текущем рабочем каталоге. Это файл, который вы будете использовать для настройки клиента OpenVPN, как описано в следующем разделе.

Сводка по установке OpenVPN

5. Затем убедитесь, что служба OpenVPN запущена и работает, проверив ее состояние с помощью следующей команды systemctl.

 $ sudo systemctl статус openvpn
 

6. Также убедитесь, что демон OpenVPN прослушивает порт, который вы указали сценарию, используя команду ss, как показано.

 $ sudo ss -tupln | grep openvpn
 

Проверьте порт прослушивания OpenVPN

7. Если вы проверите свои сетевые интерфейсы, новый интерфейс был создан для туннеля VPN, вы можете подтвердить это с помощью команды IP.

 $ ip добавить
 

Проверьте интерфейс туннеля VPN

Шаг 2. Настройка клиентов OpenVPN в Ubuntu

8. Теперь пришло время настроить клиент OpenVPN и подключить его к серверу VPN. Сначала установите пакет OpenVPN на клиентском компьютере следующим образом.

 $ sudo yum install openvpn #CentOS 8/7/6
$ sudo apt install openvpn # Ubuntu / Debian
$ sudo dnf install openvpn #Fedora 22 + / CentOS 8
 

9. В настольной системе вам также необходимо установить пакет network-manager-openvpn , чтобы настроить VPN из графического интерфейса.

 $ sudo yum install network-manager-openvpn #CentOS 8/7/6
$ sudo apt install network-manager-openvpn # Ubuntu / Debian
$ sudo dnf install network-manager-openvpn #Fedora 22 + / CentOS 8
 

10. После установки вышеуказанных пакетов запустите службу OpenVPN , а пока включите ее автоматический запуск при загрузке системы и проверьте ее статус, чтобы убедиться, что она запущена и работает.

 $ sudo systemctl start openvpn
$ sudo systemctl включить openvpn
$ sudo systemctl статус openvpn
 

11. Теперь вам нужно импортировать настройки клиента OpenVPN с сервера OpenVPN. Откройте окно терминала и используйте команду SCP, чтобы захватить файл, как показано.

 $ cd ~
$ scp [адрес электронной почты защищен]: / home / tecmint / tecmint.ovpn.
 

Импортировать настройки клиента OpenVPN

12. Откройте настройки системы , затем перейдите в Сети . Под VPN нажмите кнопку добавления, чтобы получить необходимые параметры.

Добавить новую настройку VPN

13. Во всплывающем окне выберите « Импорт из файла », как показано на следующем снимке экрана. Затем просмотрите свой файловый менеджер и выберите файл конфигурации клиента .ovpn , который вы загрузили с сервера.

Импорт настроек VPN Выберите файл OpenVPN для импорта

14. В других настольных системах Linux щелкните значок сети на системной панели, перейдите к Сетевые подключения . Затем нажмите кнопку с плюсом, чтобы добавить новое соединение. В раскрывающемся списке выберите « Импортировать сохраненную конфигурацию VPN… », как показано на следующем снимке экрана.

Создайте соединение и импортируйте файл.

Импортировать настройки VPN-клиента

15. После импорта файла необходимо добавить настройки VPN, как показано на следующем снимке экрана. Затем нажмите Добавить .

Настройки VPN добавлены

16. Настройки вашего VPN-клиента должны быть успешно добавлены. Вы можете подключиться к серверу OpenVPN , включив VPN, как показано на следующем снимке экрана.

Подключиться к VPN

17. Теперь VPN-соединение должно быть установлено успешно, как показано на следующем снимке экрана.

VPN-соединение успешно

18. Если вы проверяете подключения к сетевому интерфейсу с помощью команды IP add, теперь должен существовать интерфейс VPN-туннеля, как показано на следующем снимке экрана.

 $ ip добавить
 

Проверьте интерфейс туннеля VPN

Подключение другого сервера Linux в качестве клиента VPN

19. Чтобы подключить другой сервер Linux в качестве клиента VPN, убедитесь, что вы установили пакет OpenVPN, запустили и включили службу OpenVPN, как описано выше.

Затем загрузите файл клиента .ovpn , скопируйте его в каталог / etc / openvpn / , как показано.

 $ scp [адрес электронной почты защищен]: / home / tecmint / tecmint.ovpn.
$ ls
$ sudo cp tecmint.ovpn /etc/openvpn/client.conf
 

Загрузите файл клиента Openvpn

20. Затем запустите службу клиента VPN, включите ее и проверьте ее состояние с помощью следующих команд.

 $ sudo systemctl start [защита электронной почты]
$ sudo systemctl enable [электронная почта защищена]
$ sudo systemctl status [электронная почта защищена]
 

Запустить клиентскую службу OpenVPN

21. Затем подтвердите, что туннельный интерфейс VPN был создан с помощью команды добавления IP, как показано.

 $ ip добавить
 

Подтвердите интерфейс туннеля VPN

22. Для настройки других клиентов OpenVPN в операционных системах используйте следующие клиенты:

23. Если вы хотите добавить нового пользователя VN, отозвать существующего пользователя или удалить сервер OpenVPN из вашей системы, просто запустите сценарий установщика еще раз. Затем выберите из списка вариантов то, что вы хотите сделать, и следуйте подсказкам.

 $ sudo bash openvpn-install.sh
 

Удалите OpenVPN в Ubuntu

. На этом мы подошли к концу этого руководства. Чтобы поделиться с нами мыслями или задать вопросы, воспользуйтесь формой обратной связи ниже. Для получения дополнительной информации перейдите в репозиторий Github скрипта openvpn-install.

Если вы цените то, что мы делаем здесь, на TecMint, вам следует принять во внимание:

TecMint - это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете.Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей доступны БЕСПЛАТНО для всех.

Если вам нравится то, что вы читаете, пожалуйста, купите нам кофе (или 2) в знак признательности.

Мы благодарны вам за бесконечную поддержку.

Конфигурация VPN для Linux (Ubuntu 19.04)

Каждый активный студент или сотрудник MU может использовать VPN. Для входа в систему необходимо использовать UČO и дополнительный пароль в качестве данных для входа.

Если вы хотите настроить OpenVPN, необходимо установить пакет OpenVPN , который должен быть частью каждого распространенного дистрибутива Linux.

Мы используем Network Manager

Network Manager должен быть стандартным компонентом вашего дистрибутива Linux. Если хотите быть уверенным, проверьте, установлена ​​ли поддержка OpenVPN. (Ubuntu / Debian - пакет network-manager-openvpn-gnome или network-manager-openvpn-kde , в зависимости от используемой графической среды).

Запуск через командную строку

Запуск командной строки предназначен только для опытных пользователей. Мы настоятельно рекомендуем вам использовать NetworkManager.

Для использования OpenVPN через командную строку дополнительное программное обеспечение не требуется. Пакета openvpn достаточно.

  • Скачать файл конфигурации
  • Сохраните файл в / etc / openvpn / (вам потребуются права пользователя root)

На этом настройка завершена.Для запуска туннеля OpenVPN также требуются привилегии root, и это выполняется с помощью команды:

Запуск командной строки в большинстве дистрибутивов приводит к неправильной настройке DNS, и в результате запросы идут на серверы вашего провайдера (так называемая утечка DNS). Для правильных настроек DNS обратитесь к wiki OpenVPN .

При запуске программе потребуется имя пользователя (введите здесь ваш UČO) и пароль (введите здесь ваш второй пароль).Чтобы завершить VPN-туннель, нажмите Ctrl + C.

По-прежнему возникают проблемы с подключением?
Если у вас возникли проблемы с подключением, ознакомьтесь со списком частых проблем . Также не забудьте настроить параметры брандмауэра (порт UDP 1194), чтобы он разрешал VPN-соединение.

Подробнее
Ответы на вопросы о разделенных туннелях, настройках почты или паролях можно найти в разделе Часто задаваемые вопросы .

Как установить OpenVPN в Ubuntu 16.04

Примечание: Ubuntu 16.04 больше не является самой последней версией, рассмотрите возможность установки OpenVPN на Ubuntu 18.04, поскольку это последняя стабильная версия ...

В марте 2017 года правительство США внесло существенные изменения в правила, которые диктуют, как интернет-провайдеры могут упаковывать и продавать данные о своих клиентах. Через несколько недель мы увидели новый массовый интерес к виртуальным частным сетям (VPN). Несмотря на то, что существует ряд платных VPN-решений - подумайте о них как о виртуальном хостинге, - технические СМИ направляют пользователей на создание собственных VPN, а не на безопасность другой компании.Конечно, мы думаем, что это отличный вариант. В этом руководстве мы расскажем, как установить OpenVPN на виртуальный частный сервер (VPS) Ubuntu 16.04.

Предварительные требования

  • VPS под управлением Ubuntu 16.04
  • Обычная (не root) учетная запись с привилегиями sudo. См. Наше руководство по SSH-ключам для получения дополнительной информации.

Запустите OpenVPN на SSD VPS менее чем за 8 долларов в месяц!

Не переплачивайте, чтобы получить ресурсы, необходимые для VPN. Серверы VPS с поддержкой Intel и SSD и сетевые подключения уровня 1 обеспечивают необходимую производительность за меньшие деньги.Запустите свой VPN с узлами SSD!

Шаг 1. Установите OpenVPN

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

  $ sudo apt-get update
$ sudo apt-get install openvpn easy-rsa
  

Шаг 2. Настройка центра сертификации

Сервер OpenVPN использует сертификаты для шифрования трафика между сервером и различными клиентами.Таким образом, нам необходимо настроить центр сертификации (CA) на VPS для создания этих сертификатов и управления ими.

Мы можем использовать шаблон easy-rsa , скопировав его в новый каталог, а затем войдя в этот каталог для перехода в конфигурацию.

  $ make-cadir ~ / openvpn-ca
$ cd ~ / openvpn-ca
  

Нам нужно отредактировать некоторые переменные, которые помогают решить, как создавать сертификаты. Используйте nano - или другой любимый редактор - чтобы открыть файл.Мы будем редактировать некоторые переменные ближе к концу файла.

  $ нано-вары
  

Найдите раздел ниже - шаблон easy-rsa предоставляет некоторые поля по умолчанию для этих переменных, но вы должны изменить их в соответствии с вашими потребностями. Убедитесь, что вы также изменили переменную KEY_NAME . Не так важно , на какой вы их измените, а не оставить их в состоянии по умолчанию или пустым.

 


экспорт KEY_COUNTRY = "США"
экспорт KEY_PROVINCE = "CA"
экспорт KEY_CITY = "Сан-Франциско"
экспорт KEY_ORG = "Форт-Фанстон"
экспорт KEY_EMAIL = "[электронная почта защищена]"
export KEY_OU = "MyOrganizationalUnit"


экспорт KEY_NAME = "EasyRSA"
  

После некоторых настроек:

 


экспорт KEY_COUNTRY = "США"
экспорт KEY_PROVINCE = "CA"
экспорт KEY_CITY = "Тастин"
export KEY_ORG = "Узлы SSD"
экспорт KEY_EMAIL = "[электронная почта защищена]"
экспорт KEY_OU = "Маркетинг"


экспорт KEY_NAME = "vpnserver"
  

Теперь создайте исходный файл vars , который вы только что отредактировали.Если ошибок нет, вы увидите следующий результат.

  $ исходные вары
ПРИМЕЧАНИЕ. Если вы запустите ./clean-all, я сделаю rm -rf для / home / user / openvpn-ca / keys.
  

Теперь мы можем очистить среду и затем создать наш CA.

  $ ./clean-all
$ ./build-ca
  

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

Шаг 3. Создайте открытый / закрытый ключи сервера

Затем вам нужно создать сертификат сервера и пару ключей. Когда вы запускаете следующую команду, вы можете изменить [сервер] на имя по вашему выбору. Позже вам понадобится ссылаться на это имя. Для этого урока мы выбрали vpnserver .

Примечание. При появлении запроса не вводите пароль.

Наконец, вам зададут два вопроса о подписании сертификата и его фиксации.Нажмите y , а затем Введите для обоих, и все будет готово.

  $ ./build-key-server [сервер]
  

Затем вам нужно построить ключи Диффи-Хеллмана.

  $ ./build-dh
  

Наконец, вам нужно сгенерировать подпись HMAC для усиления сертификата.

  $ openvpn --genkey --секретные ключи / ta.key
  

Шаг 4. Создайте открытый / закрытый ключи клиента

Этот процесс создаст единый клиентский ключ и сертификат.Если у вас несколько пользователей, вы захотите создать несколько пар.

При выполнении приведенной ниже команды нажмите Введите , чтобы подтвердить переменные, которые мы установили, а затем оставьте поле пароля пустым.

  $ исходные вары
$ ./build-key client1
  

Если вы хотите создать защищенные паролем учетные данные, используйте вместо этого build-key-pass :

  $ исходные вары
$ ./build-key-pass client1
  

Шаг 5. Настройте сервер OpenVPN

Во-первых, вам нужно скопировать ключевые файлы, которые мы создали в ~ / openvpn-ca , в каталог / etc / openvpn . Примечание: измените файлы vpnserver.crt и vpnserver.key в соответствии с именем [server], которое вы выбрали ранее.

  $ cd ~ / openvpn-ca / keys
$ sudo cp ca.crt ca.key vpnserver.crt vpnserver.key ta.key dh3048.pem / etc / openvpn
  

Теперь извлеките образец конфигурации OpenVPN в папку по умолчанию.

  $ gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee / etc / openvpn / server.конф
  

Теперь нам нужно внести некоторые изменения в файл конфигурации.

  $ sudo nano /etc/openvpn/server.conf
  

Во-первых, давайте убедимся, что OpenVPN ищет нужные файлы .crt и .key .

Раньше:

  ca ca.crt
сертификат server.crt
key server.key # Этот файл следует держать в секрете
  

После (изменить в соответствии с именем [сервера], которое вы выбрали ранее):

  ок. Ок.crt
сертификат vpnserver.crt
key vpnserver.key # Этот файл следует держать в секрете
  

Затем установите одинаковый HMAC между клиентами и сервером.

Раньше:

 ; tls-auth ta.key 0
  

После:

  tls-auth ta.key 0
ключевое направление 0
  

Поскольку мы собираемся использовать эту VPN для маршрутизации нашего трафика в Интернет, нам нужно раскомментировать несколько строк, чтобы помочь нам установить DNS.Вам также следует удалить bypass-dhcp из первой рассматриваемой строки.

Если вы предпочитаете использовать DNS, отличный от opendns, вам следует изменить две строки, которые начинаются с push "dhcp-option .

Раньше:

  # Если включено, эта директива настроит
# все клиенты перенаправляют их по умолчанию
# сетевой шлюз через VPN, вызывающий
# весь IP-трафик, такой как просмотр веб-страниц и
# и поиск DNS для прохождения через VPN
# (Сервер OpenVPN может нуждаться в NAT
# или подключите интерфейс TUN / TAP к Интернету
# для правильной работы).; нажмите "redirect-gateway def1 bypass-dhcp"

# Некоторые настройки сети для Windows
# могут быть отправлены клиентам, например DNS
# или адреса WINS-серверов. ПРЕДОСТЕРЕЖЕНИЕ:
# http://openvpn.net/faq.html
# Адреса ниже относятся к общедоступным
# DNS-серверы, предоставленные opendns.com.
; нажмите "dhcp-option DNS 208.67.222.222"
; нажимаем "dhcp-option DNS 208.67.220.220"
  

После:

  # Если включено, эта директива настроит
# все клиенты перенаправляют их по умолчанию
# сетевой шлюз через VPN, вызывающий
# весь IP-трафик, такой как просмотр веб-страниц и
# и поиск DNS для прохождения через VPN
# (Сервер OpenVPN может нуждаться в NAT
# или подключите интерфейс TUN / TAP к Интернету
# для правильной работы).нажмите "redirect-gateway def1"

# Некоторые настройки сети для Windows
# могут быть отправлены клиентам, например DNS
# или адреса WINS-серверов. ПРЕДОСТЕРЕЖЕНИЕ:
# http://openvpn.net/faq.html
# Адреса ниже относятся к общедоступным
# DNS-серверы, предоставленные opendns.com.
нажмите "dhcp-option DNS 208.67.222.222"
нажмите "dhcp-option DNS 208.67.220.220"
  

Затем нам нужно выбрать используемые шифры. Раскомментируйте шифр AES и измените его на 256 , а затем добавьте auth SHA512 внизу блока.

Раньше:

 


; шифр BF-CBC
; шифр AES-128-CBC
; шифр DES-EDE3-CBC
  

После:

 


; шифр BF-CBC
шифр AES-256-CBC
; шифр DES-EDE3-CBC
авторизация SHA512
  

Наконец, позвольте OpenVPN использовать учетную запись непривилегированного пользователя вместо root, что не особенно безопасно.

  пользователь openvpn
группа nogroup
  

Теперь вы можете сохранить и закрыть этот файл, чтобы создать этого пользователя:

  $ sudo adduser --system --shell / usr / sbin / nologin --no-create-home openvpn
  

Теперь сервер OpenVPN должен быть настроен!

Шаг 6: Запустите сервер OpenVPN

Прежде чем мы настроим наших клиентов, давайте убедимся, что сервер OpenVPN работает так, как мы надеемся.

Не забудьте включить TUN / TAP на панели управления узлами SSD.

  $ sudo systemctl enable [электронная почта защищена]
$ sudo systemctl start [защита электронной почты]
  

Вы можете дважды проверить, что OpenVPN запущен, с помощью команды systemctl status :

  $ sudo systemctl status [электронная почта защищена]
  

Если у вас возникли проблемы с запуском OpenVPN, может быть полезно закомментировать LimitNPROC в / lib / systemd / system / [email protected] , как описано в этой ветке Ask Ubuntu.Затем вам нужно будет запустить sudo systemctl daemon-reload , а затем sudo systemctl start [электронная почта защищена] .

Вам также необходимо настроить iptables для правильного направления трафика. Сначала найдите интерфейс по умолчанию.

  $ sudo ip route | grep по умолчанию
Ссылка на область разработки Venet0 по умолчанию
  

Поле venet0 - это то, что мы ищем. Затем мы установили iptables . Чтобы гарантировать постоянство этого правила между перезагрузками, не нужен пакет iptables-persistent , который предложит вам сохранить существующие правила.Выберите Да , и ваши правила будут сохраняться в дальнейшем.

  $ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
$ sudo apt-get install iptables-persistent
  

Шаг 7. Настройка клиентов

Наконец, вам необходимо создать конфигурации клиента. Вы можете хранить их в любой папке, которую захотите - их не нужно держать в секрете, если это не папка / etc / openvpn . Для этого мы создадим домашний каталог.

  $ кд ~
$ mkdir openvpn-клиенты
cd openvpn-клиенты
  

Теперь скопируйте образец конфигурации клиента в этот новый каталог, а затем откройте его в nano для редактирования.

  $ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~ / openvpn-clients / base.conf
$ nano base.conf
  

Найдите следующий блок строк. Вам нужно будет изменить my-server-1 на общедоступный IP-адрес этого VPS.Вы можете найти эту информацию на панели инструментов SSD Nodes или набрав команду ifconfig и ища поле inet , которое не соответствует как 127.0.0.x .

 


удаленный мой-сервер-1 1194
; удаленный my-server-2 1194
  

Затем раскомментируйте следующие две строки, удалив точку с запятой.

Раньше:

 


  

После:

  # Понижение привилегий после инициализации (только не для Windows)
пользователь никто
группа nogroup
  

Потому что мы будем добавлять ключи и сертификаты прямо в .ovpn , закомментируем следующие строки, добавив в начало точки с запятой.

Раньше:

  # SSL / TLS parms.
# См. Файл конфигурации сервера для получения дополнительной информации
# описание. Лучше использовать
# отдельная пара файлов .crt / .key
# для каждого клиента. Единый ca
# файл можно использовать для всех клиентов.
ca ca.crt
сертификат client.crt
ключ client.key
  

После:

  # SSL / TLS parms.# См. Файл конфигурации сервера для получения дополнительной информации
# описание. Лучше использовать
# отдельная пара файлов .crt / .key
# для каждого клиента. Единый ca
# файл можно использовать для всех клиентов.
; ca ca.crt
; сертификат client.crt
; ключ client.key
  

Наконец, перейдите в конец файла и добавьте следующие строки. Первые два отражают параметры шифрования / аутентификации, которые мы добавили в файл server.conf ранее, а третий устанавливает, что эти файлы будут использоваться для подключения к серверу, а не наоборот.

Мы также добавляем три закомментированных файла, которые следует раскомментировать для систем на базе Linux, использующих update-resolv-conf .

  # Добавлены строки через туториал по узлам SSD
шифр AES-256-CBC
авторизация SHA512
ключевое направление 1

# скрипт-безопасность 2
# вверх / etc / openvpn / update-resolv-conf
# вниз / etc / openvpn / update-resolv-conf
  

Наконец, вам нужно встроить ключи и сертификаты в файл .ovpn, , используя базу .conf в качестве фреймворка. Скопируйте всю эту команду и выполните ее, чтобы встроить ключи и создать окончательный файл client1.ovpn .

  $ cat base.conf
  <(echo -e '') ~ / openvpn-ca / keys / ca.crt <(echo -e '')
  <(echo -e '') ~ / openvpn-ca / keys / client1.crt <(echo -e ' n')
  <(echo -e '') ~ / openvpn-ca / keys / client1.key <(echo -e ' n')
  <(echo -e '') ~ / openvpn-ca / keys / ta.ключ <(echo -e '')
  >> client1.ovpn
  

В этом руководстве не рассматривается подробно конфигурации клиента, но мы расскажем об одном простом способе переноса файла .ovpn на ваш клиент Linux или OS X. Эта команда подключит ssh к вашему VPS, а затем с помощью cat запишет новый файл client1.ovpn на ваш локальный компьютер.

  $ ssh [защита электронной почты] "cat ~ / openvpn-clients / client1.ovpn"> client1.ovpn
  

После настройки клиента вы должны иметь возможность подключиться к VPN , а получить доступ к более широкому Интернету через него.Поздравляю!

Дополнительные ресурсы

Если у вас возникли проблемы, опубликуйте их в комментариях, и мы сделаем все возможное, чтобы помочь вам их решить. Если мы увидим общие проблемы, мы добавим область устранения неполадок с обходными путями и исправлениями.

Для более простого и автоматизированного метода установки OpenVPN, а также некоторых других вариантов VPN, попробуйте наше руководство Стрейзанд.

Добавить комментарий

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