Настройка vpn под linux ubuntu/mint

Известные проблемы и их решение

Если у вас в процессе использования «PPTP Client» возникнет проблема, то вполне возможно, что решение проблемы вы найдёте на страничке Руководства по диагностике «PPTP Client»

В большинстве случаев, новички, при запуске PPTP-подключения к провайдеру, для установки VPN-соединения с Интернет, столкнутся с проблемой маршрутизации, которая заключается в том, чтобы на момент активности PPTP-подключения, заменить старые маршруты на новые, а после завершения PPTP-подключения — заменить новые маршруты обратно на старые. Правильный выход из данной ситуации был описан выше, в разделе «Маршрутизация (Роутинг)». При настройке pppd, использование параметров defaultroute и replacedefaultroute не рекомендуется, во избежание возможных и никому не нужных проблем с маршрутами на машине.

Также, при возникновении проблем после переподключения PPTP-подключения (pon,poff,pon,…) можете добавить в скрипт /etc/ppp/ip-down следующее:

ifdown eth0
ifup eth0

где eth0 — это интерфейс вашей сетевой карточки, через который, в таблице маршрутизации, доступен PPTP-сервер.

На практике, обычно, также вы можете заметить, просматривая, в процессе хода работы программы PPTP, файл /var/log/syslog, что он переполнен сообщениями типа

non log: buffering packet

от программы PPTP.

буферизация «out-of-order» («не в обычном порядке») пакета

Признак: при работе pptp, появляется это сообщение, которое, возможно, связано и с любым другим событием:

log: buffering out-of-order packet 272 (expecting 271)

Диагноз: это — нормальная ситуация. Множество сетевых соединений блокирует или меняет порядок следования пакетов в общем потоке пакетов — это обычная нормальная штатная ситуация как часть в их работе. Данное сообщение информирует вас о том, что пакет был потерян или у него был изменён порядок следования в общем потоке пакетов. Сетевая инфраструктура TCP (в модели OSI), которая находится выше этого уровня, ретранслирует потерянные данные.

(фраза «out-of-order» («не в обычном порядке») в этом контексте относится к последовательности пакетов, и не должна быть перепутана с использованием фразы в некоторых переводах на другие языки для предупреждения о неработоспособности общедоступного оборудования.)

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

Вы можете также использовать возможность подсчёта статистики PPTP-соединения, для получения и понимания статистики смотрите руководство страниц man.

Собственно, если проблем на вашем физическом уровне — нет, это не исключает наличие проблем на физическом уровне PPTP-сервера, т.н. провайдера.

Чтобы запретить запись сообщений в лог syslog, раздумывая кто виноват — проблемы физического уровня провайдера или проблемы «PPTP Client» (в любом случае, не проблемы службы, реализующей протокол точка-точка, ppp), добавьте параметр-ключ —loglevel 0 (уровень записи в лог, 0=низкий, 1=по-умолчанию, 2=высокий) в запуск программы pptp интерфейсом псевдотерминала pty (файл «/etc/ppp/$TUNNEL»).

Параметр-ключ —timeout установит время для ожидания перед восстановлением пакетов в общем потоке (от 0.01 до 10 секунд). Добавление параметра-ключа —nobuffer позволит вам полностью отключить буферизацию и восстановление пакетов в общем потоке, при этом любое значение параметра-ключа —timeout будет проигнорировано.

Заметьте, что сообщений очень много, что увеличивает файл syslog до огромных размеров, а это значит, что сообщение, добавленное в файл syslog, пишется после удачной проверки каждого «out-of-order» («не в обычном порядке») пакета, и скорость VPN-соединения из-за этого снижается очень значительно, что не наблюдается при использовании, основанного на netgraph(4), аналога «PPTP Client» — mpd для операционной системы FreeBSD.

Универсального и единого решения для данной проблемы — нет, и если вас не устраивает текущая ситуация, то используйте альтернативы «PPTP Client» (в любом случае, не службы, реализующей протокол точка-точка, ppp), т.н. уточните, а использует ли VPN-сервер (vpn.internet.beeline.ru ), совместно с PPTP, протокол L2TP ?

И если ответ от техподдержки был — да, посмотрите описание настройки VPN-подключения по протоколу L2TP с помощью openl2tp — здесь, и с помощью демона xl2tpd — здесь.

Если у вас имеется какая-то другая проблема при работе с «PPTP Client», то вполне возможно, что решение проблемы вы найдёте на страничке Руководства по диагностике «PPTP Client»

Шаг 9: Настройка параметров сети

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

Во-первых, разрешить пересылку IP . Это можно сделать, изменив файл /etc/sysctl.conf . Открой это.

$ sudo nano /etc/sysctl.conf

Найдите строку ниже и удалите символ « # », чтобы раскомментировать ее.

# net.ipv4.ip_forward = 1

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

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

$ sudo sysctl –p

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

$ ip route | grep default

В какой-то момент полученная строка будет содержать слово « dev ». Далее следует имя вашего интерфейса. Например, в строке ниже w1p11s0 – это имя интерфейса.

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

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

$ sudo nano /etc/ufw/before.rules

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

# НАЧАТЬ ОТКРЫТИЕ ПРАВИЛ

Ниже вы увидите строку, которая начинается с « -A POSTROUTING ». Здесь вам нужно добавить имя интерфейса. Замените ХХХХ этим.

-A POSTROUTING -s 10.8.0.0/8 -o XXXX -j MASQUERADE

Теперь сохраните и закройте файл.

$ sudo nano / etc / default / ufw

После этого найдите строку с пометкой « DEFAULT_FORWARD_POLICY ». Измените «DROP» на « ACCEPT ». После этого это должно выглядеть следующим образом:

DEFAULT_FORWARD_POLICY =»ПРИНЯТЬ»

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

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

$ sudo ufw allow 443 / tcp
$ sudo ufw allow OpenSSH

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

$ sudo uwf отключить
$ sudo uwf enable

Ваш сервер теперь настроен для обработки вашего VPN трафика. Вы почти там!

Notes

  • Your VPN can connect/disconnect successfully, and have no effect on how the rest of your communications function, unless traffic is routed over the VPN (tunnel).
  • Bringing up the VPN, thus, involves both establishing that secure link, and doing the appropriate re-routing.
  • You can add/remove routes in script using route add and route del.

  • You can have scripts run automatically as a connection (e.g. VPN) is brought up and down by placing them in /etc/ppp/ip-up.d and /etc/ppp/ip-down.d
  • You can check the current route table by typing route in a terminal.

  • The connection client may re-route automatically unless you tell it not to (pon has an option nodefaultroute i think).
  • (this happened to me) If you route all traffic over the tunnel once the VPN connection is up, even your encrypted packets will get routed over the tunnel. Thus, your original packet A will get encrypted into A*, and sent over the tunnel, encrypted into A**, sent over the tunnel, etc… (see below under ‘Packet recursion’).
  • Thus, a typical route table after connection of the VPN will have traffic sent over the tunnel by default, unless it’s headed for your VPN server, in which case it’s routed straight to your interface card (e.g. eth1).
  • More advanced routing is possible, with some traffic going over the tunnel, and some going out as usual, but this is not covered here.
  • Let’s face it, we’ve barely covered routing at all, but I just wanted to give some hints…

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

Клиентскую часть можно настроить под любой операционной системой, я буду использовать в качестве примера Ubuntu Linux 16.04.

На клиентском компьютере открываем сетевые соединения (на скриншотах приведено для Ubuntu + Cinnamon, для GNOME делается аналогично, в Kubuntu похоже и сложностей не вызовет). Нажимаем кнопку «Добавить» и выбираем PPTP-соединение:

Имя VPN-подключения можно оставить стандартное, а можно указать удобное и понятное для вас – это дело вкуса. Вводим в поле «шлюз» внешний IP-адрес сервера, к которому мы подключаемся (указан при настройке в опции «listen»), ниже имя и пароль. Справа в поле «Пароль» предварительно нужно выбрать вариант «Сохранить пароль для этого пользователя»):

Далее обязательно нажимаем кнопку «Дополнительно» и отмечаем опцию «Использовать шифрование MPPE», иначе сервер не примет ваше подключение:

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

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

Cертификат

С высокой вероятностью ничего не запустится, а выхлоп openconnect будет выглядеть как-то вот так:

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

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

Для того, чтобы openconnect всё-таки подключился к серверу, нужно явным образом сказать ему, какой сертификат должен прийти от VPN сервера с помощью помощью ключа —servercert

А узнать какой сертификат нам отослал сервер можно прямо из того, что напечатал openconnect. Вот из этого куска:

Вот такой командой можно попробовать подключиться ещё раз

Возможно теперь заработало, тогда можно переходить к концу. Но лично мне Убунта показала фигу вот в такой форме

/etc/resolv.conf

/run/resolvconf/resolv.conf

habr.com будет ресолвиться, но зайти туда будет нельзя. Адреса типа jira.evilcorp.com вообще не ресолвятся.

Что тут произошло, мне не понятно. Но эксперимент показывает, что если добавить в /etc/resolv.conf строку

то адреса внутри VPN начнут магическим образом ресолвиться и по ним можно будет ходить, то есть то, что ищет какими DNS ресолвить адреса, смотрит именно в /etc/resolv.conf, а не куда-то ещё.

Что подключение к VPN есть и оно работает, можно убедиться и без правок в /etc/resolv.conf, для этого достаточно ввести в браузере не символьное имя ресурса из vpn, а его ip адрес

По итогу получается две проблемы

  • при подключении к VPN не подхватывается её dns
  • весь трафик идёт через vpn, который не позволяет ходить в интернет

Что делать я сейчас расскажу, но сначала немного автоматизации.

Шаг 3 — Настройка клиентских узлов

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

В этом обучающем руководстве мы ориентируемся на определенную модель и поэтому настроим client-01 и client-02 практически одинаково с очень небольшими отличиями. Поэтому многие из указанных на этом шаге команд необходимо запускать на обоих компьютерах. Следует отметить, что если для client-01 или client-02 потребуется определенная команда или особая конфигурация, эти указания будут показаны в синем или красном блоке команд соответственно.

Проведите на компьютерах client-01 и client-02 репликацию структуры директорий, созданную на сервере server-01:

client-01 & client-02

Затем создайте файл :

client-01 & client-02

Добавьте в файл следующие строки на обоих компьютерах:

client-01 & client-02 /etc/tinc/netname/tinc.conf

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

Этот файл содержит директиву с указанием на , а на сервере server-01 файл не содержит такой директивы. Отсутствие выражения на server-01 означает, что server-01 будет только прослушивать входящие соединения. Это подходит для нашей схемы, поскольку сервер не будет подключаться к другим компьютерам.

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

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

client-01 & client-02

Для компьютера client-01 добавьте следующую строку:

client-01:/etc/tinc/netname/hosts/client_01

Для компьютера client-02 добавьте следующую строку:

client-02:/etc/tinc/netname/hosts/client_02

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

Затем сгенерируйте пары ключей на каждом клиентском компьютере:

client-01 & client-02

Как и в случае с server-01, в диалогах выбора файлов для сохранения ключей RSA нажимайте для использования вариантов по умолчанию.

После этого создайте на каждом клиенте скрипт запуска сетевого интерфейса:

client-01 & client-02

Для client-01 добавьте следующие строки:

client-01:/etc/tinc/netname/tinc-up

Для client-02 добавьте следующие строки:

client-02:/etc/tinc/netname/tinc-up

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

Затем создайте скрипт остановки сетевого интерфейса для каждого клиента:

client-01 & client-02

Для client-01 добавьте в пустой файл следующее:

client-01:/etc/tinc/netname/tinc-down

Для client-02 добавьте следующее:

client-02:/etc/tinc/netname/tinc-down

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

Сделайте сетевые скрипты исполняемыми, запустив следующую команду на каждом клиентском компьютере:

client-01 & client-02

В завершение откройте порт на каждом клиенте:

client-01 & client-02

Теперь клиентские узлы практически настроены, хотя и не до конца. Им необходим открытый ключ, созданный на server-01 на предыдущем шаге, для аутентификации подключения к VPN.

Nord VPN – лучший VPN-сервис → обзор

NordVPN – лучший VPN-сервис, который гарантирует максимальную конфиденциальность и безопасность пользователей. Работает с 2012 года (что является весомым показателем надёжности) и предоставляет целую плеяду смежных сервисов: шифрованное хранилище в облаке (с бесплатным планом) и менеджер паролей (тоже с облачной базой данных и бесплатным тарифом). Всеми подписками можно управлять централизованно в своём аккаунте.

Как VPN-сервис, NordVPN предлагает ряд специфических функций, призванных повысить безопасность и комфорт пребывания в сети, такие как: раздельное туннелирование (сразу несколько параллельных шифрованных подключений), двойное шифрование (внутри первого VPN-канала можно организовать ещё один вложенный VPN-канал), блокировка рекламы/вирусов и поддержка сети ONION («луковая» маршрутизация или Tor).

Плюсы:

  • Масштабная сеть (более 5500 серверов в 60 странах).
  • Продвинутая маскировка интернет-трафика и шифрование военного уровня.
  • Блокировка подозрительных сайтов/фильтрация рекламы.
  • Автоматическое отключение от сети при проблемах с VPN (опция KillSwitch).
  • Дополнительная защита трафика с помощью сети Onion (Tor).
  • Беспроблемная работа стриминговых платформ.
  • Подключение до 6 устройств на одном аккаунте.
  • Прием оплаты в биткоинах.
  • Скрытие и подмена реального IP-адреса.
  • Удачная юрисдикция и полное отсутствие ведения логов.

Минусы:

  • С пиринговыми (P2P используются в первую очередь для торрентов) работают не все серверы сети.
  • Если не планируете приобретать подписку сразу на год или два, будет дороговато.
  • Нет бесплатного пробного периода (даже на мобильных устройствах).

Стоимость:

Цены на использование будут зависеть от периода разовой оплаты (чем дольше, тем выгоднее):

  • Подписка на 1 месяц — 11,95 доллара.
  • Подписка на 1 год — 59 долларов (4,92 долл./месяц).
  • Подписка на 2 года — 89 долларов (3,71 долл./месяц).

Гарантия возврата денег — 30 дней. Для бизнеса и команд у NordVPN отдельные тарифы.

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

Если вы хотите выполнить это обучающее руководство в точном соответствии с указаниями, разместите два сервера Ubuntu 18.04 (server-01 и client-01) в одном вычислительном центре и активируйте на каждом из них частные сети. Затем создайте еще один сервер Ubuntu 18.04 (client-02) в отдельном вычислительном центре. На каждом сервере должен быть пользователь с правами администратора и брандмауэр, настроенный с помощью . Для подготовки следуйте указаниям руководства по начальной настройке сервера Ubuntu 18.04.

На последующих шагах данного обучающего руководства нам нужно будет переместить несколько файлов между компьютерами с помощью . Для этого вам нужно будет сгенерировать ключи SSH на каждом из ваших серверов, добавить ключи SSH компьютеров client-01 и client-02 на сервер server-01 в файл , а затем добавить ключ SSH server-01 на компьютеры client-01 и client-02 в файлы . Дополнительную информацию по настройке можно найти в обучающем руководстве Настройка ключей SSH в Ubuntu 18.04.

Как настроить собственный VPN-сервер под Ubuntu вручную

Можно развернуть собственный ВПН сервер на VPS под управлением Ubuntu (версии 18 и 20) вручную, для этого воспользуемся пакетом strongSwan, который предназначен для реализации IPSec на различных платформах. Для начала, как обычно, выполним обновление серверной ОС:

apt update && apt full-upgrade -y

Затем приступаем к настройкам.

1. Инсталлируем strongSwan командой*:

apt-get install strongswan

*Примечание: в процессе инсталляции отвечайте «нет» на запросы об установке сертификата во всех диалоговых окнах.

 2. Затем установим модуль xl2tpd для реализации протокола L2TP:

apt-get install xl2tpd

3. Выполним автозагрузку этих пакетов:

systemctl enable ipsec
systemctl enable xl2tpd

4. В редакторе Nano выполним редактирование конфигурационного файла IPSec:

nano /etc/ipsec.conf

Вписываем в файл следующие строки (соблюдая все отступы):

config setup
          nat_traversal=yes
          virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
          oe=off
          protostack=netkey

conn L2TP-PSK-NAT
          rightsubnet=vhost:%priv
          lso=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
          authby=secret
          pfs=no
          auto=add
          keyingtries=3
          r4ekey=no
          ikelifetime=8h
          keylife=1h
          type=transport
          left=SERVER.IP
          leftprotoport=17/1701
          right=%any
          rightprotoport=17/%any

*Примечание: в параметр left вместо SERVER.IP подставьте IP адрес своего VPS.

 5. Прописываем общий ключ IPsec PSK, для этого запускаем следующий файл на редактирование:

nano /etc/ipsec.secrets

Вносим данные:

SERVER.IP %any : PSK "MyNewSharedSecretKey20"

где: SERVER.IP IP — адрес вашего VPS;

 6. Создаем скрипт для настройки сетевого подключения к VPN-серверу, для этого открываем для редактирования файл:

nano /usr/local/bin/ipsec

Вносим туда следующие команды:

iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart

7. Затем выполняем следующие команды, чтобы сделать данный скрипт исполняемым:

Включаем rc.local (он выключен в Ubuntu 20), для этого отредактируем файл:

nano /etc/systemd/system/rc-local.service


       Description=/etc/rc.local Compatibility
       ConditionPathExists=/etc/rc.local


       Type=forking
       ExecStart=/etc/rc.local start
       TimeoutSec=0
       StandardOutput=tty
       RemainAfterExit=yes
       SysVStartPriority=99


       WantedBy=multi-user.target

Делаем этот файл исполняемым:

chmod +x /etc/rc.local

Добавляем этот скрипт в /etc/rc.local и запускаем его:

nano /etc/rc.local
#!/bin/sh -e 
/usr/local/bin/ipsec_conf 
exit 0

8. Перезагружаем список доступных демонов и включаем в автозагрузку rc-local:

systemctl daemon-reload
systemctl enable rc-local

9. Выполним настройку L2TP, для чего c помощью следующей команды отредактируем файл xl2tpd.conf:

nano /etc/xl2tpd/xl2tpd.conf

Вписываем эти строки в файл:

ipsec saref = yes


ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

10. Настраиваем авторизацию PPP, для этого произведем редактирование файла:

nano /etc/ppp/options.xl2tpd

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

require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name VPNTEST20
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

где: параметр name — название нашего VPN сервера (к примеру, VPNTEST20)

11. На следующем этапе, добавим пользователей в файл chap-secrets и укажем их логины и пароли (на примере одного пользователя с логином uservpn1 и паролем password1):

nano /etc/ppp/chap-secrets
uservpn1 VPNTEST20 password1 *

12. Проводим рестарт всех настроенных сервисов:

/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart

13. Перезагружаем сервер и пробуем подсоединиться к нашему VPN-серверу с помощью клиента (про настройки клиентов читайте в следующих разделах нашей статьи).

Начните с настройки на личной странице сайта

Вам необходимо создать столько туннелей, сколько устройств будут подключаться к системе. Одно устройство — один туннель!

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

Пример. Представим себе: У вас есть два туннеля.

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

Второй туннель (в отличии от первого) описывает и адресацию дачной сети, расположенной «за» маршрутизатором. В нашем примере — 192.168.2.0 / 24

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

    

Приведенных в примере настроек на личной странице достаточно (!), чтобы система начала принимать VPN соединения от ваших устройств по протоколам:

  • PPTP
  • L2TP
  • L2TP/IPsec

Устанавливает пакет network-manager-openvpn

И так, приступим, сначала разберемся как осуществить подключение к протоколу OpenVPN в оболочке рабочего стола Gnome 3 используя скаченные файла .ovpn. Для начала необходимо установить пакет “network-manager-openvpn-gnome”, и начнем с Debian. Соответственно, этот же пакет устанавливаем и в Ubuntu, а так же в их ответвлениях, таких как Pop!_OS, а затем установим этот же пакет в дистрибутиве Manjaro. Отмечу, что данный пакет необходим именно в Gnome, так как в той же KDE ставится другой пакет:

Debian/Ubuntu GNOME 3

KDE

Для установке VPN соединения с окружением рабочего стола KDE необходимо поставить пакет network-manager-openvpn:

Manjaro

Для возможности подключения к VPN в Manjaro необходимо установить пакет networkmanager-openvpn

И в случае необходимости, да и на всякий случай перезагружаем networkmanager командой:

Шаг 11: Конфигурации клиента

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

$ mkdir -p ~ / client-configs / files
$ chmod 700 ~ / client-configs / files

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

$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~ / client-configs / base.conf

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

$ nano ~ / client-configs / base.conf

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

удаленный сервер_IP_адрес 443

Ниже измените строку с надписью « proto » с UDP на TCP

прото ткп

Удалите точки с запятой из строк «user» и «group», чтобы раскомментировать их:

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

Найдите строки ca, cert и key и закомментируйте их, добавив хеш в начале. Они должны выглядеть так:

key client.key

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

шифр AES-128-CBC,
аутентификация SHA256

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

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

Наконец, скопируйте и вставьте следующие закомментированные строки в конец файла:

# script-security 2 # up / etc / openvpn / update-resolv-conf # down / etc / openvpn / update-resolv-conf

Сохраните изменения и выйдите из редактора.

Последнее, что нам нужно сделать, – это создать скрипт , который скомпилирует все, что мы сделали. Начните с создания файла в каталоге ~ / client-configs с именем « make_config.sh », затем откройте его с помощью nano. Вставьте следующий код в скрипт:

! / bin / bash

# Первый аргумент: идентификатор клиента
KEY_DIR = ~ / openvpn-ca / keys
OUTPUT_DIR = ~ / client-configs / files
BASE_CONFIG = ~ / client-configs / base.conf
cat $ {BASE_CONFIG} \

Сохраните файл и выйдите. Теперь сделайте его исполняемым с помощью этой команды:

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

Подготовительные операции

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

Для включения форвардинга пакетов откроем файл “/etc/sysctl.conf” и изменим значение параметра “net.ipv4.ip_forward” на 1.

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

Трансляция адресов настраивается средствами iptables. Предварительно уточним имя внешнего сетевого интерфейса, выполнив команду “ip link show”, оно понадобится на следующем шаге. В нашем случае имя интерфейса “ens3”.

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

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

По умолчанию все созданные правила iptables сбрасываются после перезагрузки сервера, для того, чтобы этого избежать, воспользуемся утилитой “iptables-persistent”
 Устанавливаем пакет.

В процессе установки откроется окно конфигурации, в котором система предложит сохранить текущие правила iptables. Так как правила уже настроены, соглашаемся и дважды нажимаем “Yes”. Теперь, после перезагрузки сервера правила будут восстанавливаться автоматически.

Шаг 12. Настройте VPN на Linux

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

$ sudo apt-get update
$ sudo apt-get установить openvpn

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

$ nano client1.ovpn

Раскомментируйте следующие три строки:

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

Сохраните и закройте файл. Теперь вы настроили свой компьютер Linux для подключения к VPN.

Чтобы подключиться к вашему новому VPN, выполните следующую команду:

$ sudo openvpn –config client1.ovpn

Теперь вы должны быть подключены к вашему VPN!

PPTP сервер

Настройка сервера

Устанавливаем пакет

После завершения установки открываем в любом текстовом редакторе файл “/etc/pptpd.conf” и приводим его к следующему виду.

Далее редактируем файл “/etc/ppp/pptpd-options”, большинство параметров уже установлены по умолчанию.

На следующем этапе необходимо создать учетную запись для подключения клиентов. Предположим, мы хотим добавить пользователя “vpnuser”, с паролем “1” и разрешить для него динамическую адресацию. Открываем файл “/etc/ppp/chap-secrets” и добавляем в конец строку с параметрами пользователя.

Значение “pptpd” это имя сервиса, которое мы указали в файле “pptpd-options”. Вместо символа “*” для каждого клиента можно указать фиксированный ip-адрес. В результате содержимое файла “chap-secrets” будет таким.

Для применения настроек перезагружаем службу pptpd и добавляем её в автозагрузку.

Настройка сервера завершена.

Настройка клиента

Открываем “Пуск” — “Параметры” — “Сеть и интернет” — “VPN” и нажимаем “Добавить VPN-подключение”

В открывшемся окне вводим параметры подключения и нажимаем “Сохранить”

  • Поставщик услуг VPN: “Windows (встроенные)”
  • Имя подключения: “vpn_connect” (можно ввести любое)
  • Имя или адрес сервера: (указываем внешний ip адрес сервера)
  • Тип VPN: “Автоматически”
  • Тип данных для входа: “Имя пользователя и пароль”
  • Имя пользователя: vpnuser (имя, которое указано в файле “chap-secrets” на сервере)
  • Пароль: 1 (так же из файла “chap-secrets”)

После сохранения параметров, в окне VPN появится новое подключение. Щелкаем по нему левой кнопкой мыши и нажимаем “Подключиться”. При успешном соединении с сервером, на значке подключения появится надпись “Подключено”.

В свойствах подключения отображаются внутренние адреса клиента и сервера. В поле “Адрес назначения” указан внешний адрес сервера.

При установленном соединении внутренний ip-адрес сервера, в нашем случае 172.16.0.1, становится шлюзом по умолчанию для всех исходящих пакетов.

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
DS-сервис
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: