Настройка sstp linux mint

Обновлено: 05.07.2024

В данной статье речь пойдет о сетевых настройках в операционных системах по управлением Debian, Ubuntu, Linux Mint, Knoppix.

Debian - операционная система на основе Linux, состоящая из свободного ПО с открытым исходным кодом. На основе этого дистрибутива выпущено огормное количество различных дистрибутивов таких как: Ubuntu, Linux Mint, Knoppix т.п.

Основные конфигурационные файлы

Сетевые настройки осуществляются методом правки конфигурационных файлов, а также с помощью графических программ. В этом разделе рассмотрим файлы конфигурации, используемые в операционных системах Ubuntu, Linux Mint, Knoppix т.п.

Файл настройки сетевых интерфейсов /etc/network/interfaces

В этом файле настраиваются основные данные для сетевых интерфейсов, такие как ip адрес (address), сетевая маска (netmask), адрес сети (network), braodcast адрес (broadcast), шлюз по умолчанию (gateway).

Пример настройки интерфейса "lo", "eth0" и "eth1" для Ubuntu, Linux Mint, Debian.

Файл /etc/hosts

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

Файл с настройкой сетевого имени /etc/hostname

В Debian и Ubuntu существует специальный файл /etc/hostname, в котором можно изменить сетевое имя, однако чтобы изменения вступили в силу, требуется перезагрузка системы.

Файл настроек DNS серверов /etc/resolv.conf

В этом файле перечисляется список ip адресов DNS серверов.

Управление сетевыми интерфейсами.

Для просмотра состояния и конфигурации интерфейса существуют специальные команды:

Посмотреть таблицу маршрутизации можно используя команду:

В Ubuntu, Debian, Linux Mint, Knoppix существуют специальные сценарии для управления сетевыми интерфейсами.

Сценарии ifup и ifdown позволяют включить или отключить сетевой интерфейс. В качестве аргумента эти сценарии принимают имя интерфейса.

Сценарий rcnetwork или /etc/init.d/networking позволяют включить (start), отключить (stop) или перезапустить (restart) все интерфейсы разом.

И напоследок, функция маршрутизации между интерфейсами по умолчанию отключена, однако ее можно включить. Для этого надо добавить в файл /ete/sysctl.conf запись net.ipv4.ip_forward=1 и перезапустить систему.

Вот и все. На этом рассмотрение настройки сети в операционных системах Ubuntu, Debian, Linux Mint, Knoppix завершено.

Установка SSTP VPN на примере Ubuntu 16.04

  • Установите python3 версии не ниже 3.4.4 sudo apt-get install python3
  • Установите pip3 sudo apt-get install -y python3-pip
  • Установите pppd sudo apt-get install ppp
  • Установите openssl sudo apt-get install openssl

Генерация SSL-сертификата и ключа

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

Получение доверенного сертификата для домена

Для начала привяжите IP-адрес Вашего сервера к домену, путём добавления A-записи в DNS домена.

Далее следует установить приложение certbot:

Генерация своего сертификата

Для того, чтобы сгенерировать SSL-сертификат и ключ, необходимо выполнить следующую команду: openssl req -newkey rsa:2048 -nodes -keyout privkey.pem -x509 -days 365 -out cert.pem

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

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

Установка и настройка sstpd-server

Установите sstp-server с помощью pip3: pip3 install sstp-server

Создайте конфигурационный файл /etc/ppp/options.sstpd с помощью команды nano /etc/ppp/options.sstpd и добавьте в него следующее содержимое:

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

Создайте конфигурационный файл sstp-server командой nano /etc/sstpd.ini и добавьте в него следующее содержимое:

Осталось лишь запустить наш сервер командой sudo nohup sstpd -f /etc/sstpd.ini & > sstpd.log

VPN сервер запущен! Теперь нужно настроить доступ в интернет для клиентов.

Настройка доступа в интернет через VPN

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

  • Для начала нужно включить перенаправление трафика, отредактировав файл /etc/sysctl.conf nano /etc/sysctl.conf
  • Добавьте или раскомментируйте строку net.ipv4.ip_forward=1
  • После этого необходимо запустить команду sysctl -p для применения изменений.

Также следует добавить следующие правила IPTABLES:

Теперь у Вас есть свой SSTP VPN сервер с доступом к интернету!

Чтобы VPN-сервер запускался каждый раз при запуске компьютера, следует создать файл службы. Это делается путём создания файла в папке systemd nano /etc/systemd/system/sstpd.service со следующим содержимым:

После этого осталось включить автозапуск службы командой systemctl enable sstpd.service и запустить VPN-сервер командой systemctl start sstpd.service .

Рекомендуется запретить ping к серверу: Одноразово это можно сделать командой echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all . Для отключения насовсем:

  • Отредактируйте файл /etc/sysctl.conf nano /etc/sysctl.conf
  • Добавьте или раскомментируйте строку net.ipv4.icmp_echo_ignore_all=1
  • После этого необходимо запустить команду sysctl -p для применения изменений.

Для автоматического обновления сертификата (если используется certbot ) следует добавить в планировщик crontab -e данную строку 0 4 * * 1 certbot renew && systemctl restart sstpd .

Проблема в парольной аутентификации.


Можно еще port knocking прикрутить сверху, чтобы от active probing спрятать

Но там-же сертификаты еще

Хм, похоже на Cisco AnyConnect. Про сервак не знаю, а вот клиент под Линукс родной (OpenVPN ЕМНИП).

Эм нет - это два разных vpn.

Да, перепутал.
Вот так подключаюсь:

Kroz ★★★★★ ( 07.12.16 15:08:22 )
Последнее исправление: Kroz 07.12.16 15:11:00 (всего исправлений: 2)

Сервак тоже есть, но я не пробовал:


surefire ★★★ ( 07.12.16 15:22:42 )
Последнее исправление: surefire 07.12.16 15:28:09 (всего исправлений: 1)


2. Уже проверяет. Хотя клиенту можно еще добавить -verify_return_error
3. Мы ведь уже в приватном канале, кому какая разница какое там приветствие?
4. Тоже, что и в 3.

surefire ★★★ ( 07.12.16 15:40:57 )
Последнее исправление: surefire 07.12.16 15:42:48 (всего исправлений: 2)

Не для аутентификации вроде. По крайней мере в микротике.

Надо по открытому ключу.

Та мсначала SSL/TLS устанавлвиавется,а уже потом парользая авториазция по pap/chap/ms-chap/ms-chap2.

Спасибо, сам уже сообразил, когда комментарий отправлял :)


Линуксовый клиент не умеет обрабатывать ситуацию смены пароля. Если на сервере пароли регулярно меняются, придётся держать виртуалку с Windows.

Эм, а просто поменять пароль руками - нет?


а просто поменять пароль руками - нет?

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

Хотя если ты контролируешь и клиент, и сервер, то можно. Можно вообще отключить принудительную ротацию паролей.

i-rinat ★★★★★ ( 07.12.16 17:50:02 )
Последнее исправление: i-rinat 07.12.16 17:51:17 (всего исправлений: 1)


пользователи win его не придумывают ведь

Тут то же самое, только удалённо.


Типа пароль задает не сервер а пользователь?

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

Это же вроде стандартно у всех, разве нет?

i-rinat ★★★★★ ( 07.12.16 18:11:07 )
Последнее исправление: i-rinat 07.12.16 18:11:18 (всего исправлений: 1)


Так вот это я и сам хотел бы выяснить. Как dpi понимает, что именно по шифрованному передается.


SSTP-сервер есть на Windows, начиная с Windows Server 2008, SSTP-сервер для Linux, на MikroTik SSTP-сервер тоже есть и прекрасно работает.

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

Что такое VPN и зачем это нужно?

VPN (Virtual Private Network) – виртуальная частная сеть, способ объединить в одну логическую сеть несколько компьютеров, физически находящихся на некотором расстоянии друг от друга.

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

В России использование VPN не является наказуемым действием, исключая случаи использования с заведомо противоправными целями. То есть, если вы хотите зайти на сайт президента соседней страны (допустим, Сомали) и написать, какой он нехороший, скрыв при этом свой IP-адрес, это само по себе не является нарушением (при условии, что содержание высказывания не нарушает законы). А вот использовать эту технологию для доступа к запрещённым в России ресурсам является правонарушением.

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

Настройка серверной части на Ubuntu Linux

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

Вначале установим нужные пакеты:

Далее нам нужно задать диапазон адресов и несколько других основных настроек. Открываем для редактирования файл /etc/pptpd.conf:

Если нам нужно более 100 одновременных подключений, ищем параметр «connections», раскомментируем его и указываем нужное значение, например:

Если нам нужно передавать по виртуальной сети широковещательные пакеты, следует убедиться, что параметр bcrelay также раскомментирован:

После этого переходим в конец файла и добавляем настройки адресов:

Первый параметр указывает IP-адрес сервера в локальной сети, второй – диапазон выдаваемых клиентам IP-адресов (диапазон должен обеспечить возможность указанного количества подключений, лучше адреса выделить с запасом), третий указывает, по какому внешнему адресу прослушивать интерфейсы для приёма входящих подключений. То есть, при наличии нескольких внешних адресов прослушивать можно только один. Если третий параметр не указать, прослушиваться будут все доступные внешние адреса.

Сохраняем файл и закрываем. Дополнительные тонкие настройки указываем в файле /etc/ppp/pptpd-options:

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

Также проверяем, что опция proxyarp включена (соответствующая строка раскомментирована) и дополнительно для разрешения или запрета множественных подключений одного пользователя комментируем (разрешение) или раскомментируем (запрет) опцию lock.

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

На каждого пользователя VPN отводится одна строка, в которой последовательно (разделитель – пробел) указывается его имя, удалённый адрес, пароль и локальный адрес.

Удалённый адрес можно указывать, если у пользователя есть внешний статический IP и только он будет использоваться, иначе лучше указать звёздочку, чтобы точно можно было принять подключение. Локальный нужно указать, если вы хотите, чтобы пользователю выделялся один и тот же IP-адрес в виртуальной сети. Например:

Для пользователя user1 подключения будут приниматься с любого внешнего адреса, локальный будет выделяться первый доступный. Для user2 будет выделять первый доступный локальный адрес, но подключения будут приниматься только с адреса 11.22.33.44. Для user3 подключения принимаются из любой точки, но локальный адрес всегда будет выделяться 10.10.10.10, который мы для него зарезервировали.

На этом настройка VPN-сервера закончена, перезапускаем его (под Linux перезагружать компьютер не нужно):

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

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

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


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


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


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

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

Настройка доступа в интернет через VPN

На vpn-сервере вводим следующие команды:

где 10.10.10.1/24 – локальный адрес сервера и маска сети.

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

И применяем все изменения:

После этого у вас появится доступ в интернет. Если зайти на какой-либо сайт, отображающий ваш IP-адрес, вы увидите внешний адрес сервера, а не свой (если они не совпадают).

Напоминаю, что ответственность за последствия своих действий несёте только вы.

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