Меню

Freebsd настройка vpn подключения



MPD 5.7 настройка VPN-сервера в FreeBSD

Настраиваем MPD5 в качестве VPN-сервера для подключений Windows-клиентов к офисной сети по протоколу PPTP.

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

Для объединения нескольких сетей через интернет обратите внимание на OpenVPN. Ключевые отличия OpenVPN: туннель по UDP или TCP протоколу, TLS-шифрование, возможность задать клиенту маршруты к обслуживаемым сетям.

Содержание

Установка MPD5

Для установки из коллекции портов, обновляем коллекцию:

Затем, устанавливаем порт:

Настройка MPD5

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

В папке имеются следующие файлы:

  • mpd.conf.sample — шаблон файла конфигурации,
  • mpd.script.sample — скрипты для модемов,
  • mpd.secret.sample — пример списка пользователей и паролей.

Копируем файл конфигурации из шаблона:

Открываем в редакторе:

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

Удаляем все секции кроме startup, default и pptp_server. Для удаления строк в ee используем Ctrl+K. Также конфиг можно создать копипастом приведенного ниже листинга.

Задаем параметры. Строки, требующие корректировки, выделены жирным шрифтом:

Задаем список пользователей нашего VPN-сервера в файле mpd.secret:

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

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

Включение маршрутизации

Проверяем, включена ли маршрутизация, командой:

Если в результате видим: » net.inet.ip.forwarding: 1 «, значит маршрутизация включена, переходим к следующему разделу.

Если видим: » net.inet.ip.forwarding: «, значит в /etc/rc.conf необходимо добавить параметр: gateway_enable=»YES» :

Проверяем, включена ли маршрутизация:

В результате получаем:

Настройка брандмауэра

Для приема PPTP-подключений необходимо открыть входящие TCP-соединения на порт 1723 и разрешить GRE-трафик.
Для IPFW правила будут примерно следующие:

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

Настройка логов MPD5

Для записи логов MPD5 использует syslog. Идентификатор источника сообщений задается ключом командной строки «—syslog-ident», значение по умолчанию — «mpd».

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

Таким образом, все сообщения от источника «mpd» будут направлены в mpd.log.

Задаем параметры ротации логов:

Ежедневная ротация в полночь с сохранением 7-ми логов в сжатом формате:

Альтернативный вариант, с ежемесячной ротацией и хранением логов за последние три месяца:

Подробнее о файле конфигурации читаем в справке: man newsyslog.conf.

Перезагружаем конфигурацию syslog:

Запуск MPD5

Разрешаем запуск MPD, добавляем в /etc/rc.conf параметр: mpd_enable=»YES» :

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

В результате получаем:

Проверяем, слушается ли порт:

Результат должен быть следующим:

Проверяем сообщения в лог-файле:

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

Заходим браузером в веб-админку: http:/адрес.сервера:5006, проверяем параметры соединений.

Создаем подключение в Windows, либо настраиваем на удаленной стороне MPD-клиент и пробуем подключиться. При настройке клиентского подключения в Windows, чтобы предотвратить туннелирование всего интернет трафика в удаленную сеть, в дополнительных настройках протокола TCP/IP, необходимо отключить флажок «Использовать основной шлюз в удаленной сети». В этом случае будет туннелироваться только трафик удаленной подсети в соответствии с ее классом.

В случае проблем используем tcpdump.

Читайте также:  Настройки для assassins creed revelations

Мониторим физический канал:

Возможные проблемы

Ошибка: «Can’t create socket node: No such file or directory. Netgraph initialization failed», может возникнуть после установки новой версии системы. Проблема возникает из-за линковки программы со старыми системными библиотеками. В этом случае необходимо переустановить или пересобрать MPD.

Анализ логов MPD5

Чтобы быть в курсе как используется наш VPN-сервер, организуем ежедневную отправку на почту отчета по сессиям. Для получения административных почтовых уведомлений по протоколу POP3 потребуется установить Dovecot или Qpopper.

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

Простейший отчет по сессиям

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

Результат работы выдает следующий:

Добавим в /usr/local/etc/periodic/daily скрипт с именем 800.mpd:

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

Задаем права доступа:

Mpdstat

Единственный готовый скрипт, который мне удалось накопать на просторах интернета.

Perl-скрипт интегрируется в periodic, выдает следующий результат:

Создаем папку для загрузки в пользовательском профиле:

Переходим в папку с программой:

В случае ошибки установки, переименовываем файл 900.mpdstatus в 900.mpdstat и запускаем установку повторно:

Открываем /etc/periodic.conf, если файл отсутствует в вашей системе, создаем его:

Разрешаем исполнения скрипта и задаем путь к лог файлам:

Выполняем тестовый запуск:

Скрипт ищет лог за прошедший день, если он не найден, обрабатывает mpd.log.

Парсер на PHP

Я использую свой парсер на PHP, генерирующий следующий вывод:

Скрипт отображает IP-адреса, с которых устанавливаются соединения, и выполняет реверсные DNS-запросы. Параметр «log +PHYS2» должен быть включен в mpd.conf.

Создаем папку программы в профиле пользователя и переходим в нее:

Переходим в папку с программой:

Создаем файл конфигурации:

Выполняем пробный запуск, лог-файл, заданный в конфиге (mpd.log.0.bz2) должен существовать, автопоиск не предусмотрен:

Добавим в /usr/local/etc/periodic/daily скрипт с именем 800.mpd:

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

Задаем права доступа:

Выполняем тестовый запуск:

Вывод команды будет отправлен на почту пользователя root.

Ссылки

Смотрите также

Комментарии:

Добрый день! Перешёл на FreeBSD 9.3 и у меня с mpd такая проблема случилась:

uname:
9.3-RELEASE-p2 FreeBSD 9.3-RELEASE-p2 #0: Mon Sep 15 16:44:27 UTC 2014 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 GENERIC

messages:
Sep 20 20:49:06 router kernel: pf: state key linking mismatch! dir=OUT, if=sis0, stored af=2, a0: 80.253.237.5, a1
: 80.100.154.56, proto=47, found af=2, a0: 93.88.162.194:443, a1: 172.16.2.5:52134, proto=6.
Sep 20 20:49:06 router kernel: pf: state key linking mismatch! dir=OUT, if=sis0, stored af=2, a0: 80.253.237.5, a1
: 80.100.154.56, proto=47, found af=2, a0: 93.88.162.194:443, a1: 172.16.2.5:52134, proto=6.
Sep 20 20:49:06 router kernel: pf: state key linking mismatch! dir=OUT, if=sis0, stored af=2, a0: 80.253.237.5, a1
: 80.100.154.56, proto=47, found af=2, a0: 93.88.162.194:443, a1: 172.16.2.5:52134, proto=6.
Sep 20 20:49:06 router kernel: pf: state key linking mismatch! dir=OUT, if=sis0, stored af=2, a0: 80.253.237.5, a1
: 80.100.154.56, proto=47, found af=2, a0: 93.88.162.194:443, a1: 172.16.2.5:52134, proto=6.

Если я подключаюсь из дома к офису, то в лог валятся такие сообщения. Да и вообще всё тормозить начинает.

Если впн подключение делается из локальной сети офиса для выхода в интернет, то всё работает, ошибок нет.

Читайте также:  Настройка плоттера canon ipf770

pkg info mpd5
mpd5-5.7_1
Name : mpd5
Version : 5.7_1

pptp_server:
set ippool add poolsat 172.16.2.5 172.16.2.20
create bundle template B
set iface enable proxy-arp
set iface idle 0
set iface enable tcpmssfix
set ipcp yes vjcomp
set ipcp ranges 172.16.2.1/32 ippool poolsat
set ipcp dns 77.88.8.88
set bundle enable compression
set ccp yes mppc
set mppc yes e128
set mppc yes stateless
create link template L pptp
set link enable multilink
set link yes acfcomp protocomp
set link action bundle B
set link no pap chap
set link enable chap
set link enable chap-msv1
set link enable chap-msv2
set link mtu 1460
set pptp self 0.0.0.0
set link enable incoming

table const <10/8, 172.16/12, 192.168/16>
table <1.1.1.1>
table persist
table persist file «/etc/pf.badhost»
set block-policy drop
set skip on lo
scrub in all
nat on $ext_if from $local_net to !$local_net -> $ext_if:0
nat on $ext_if from $vpn_net to !$local_net -> $ext_if:0
antispoof quick for $ext_if
block inet6
block in quick on <$ext_if>from to any label «Ssh bruteforce»
block quick from label «Block badhost»
block in on <$ext_if>
block out on <$ext_if>from to any label «Block out private addr»
pass in on <$ext_if>from label «Trust hosts»
pass in on <$ext_if>proto tcp to port ssh
pass in on <$ext_if>inet proto icmp from any to any icmp-type $icmp_types label «Allow ICMP»
pass out on

Поделитесь мыслями по этому поводу. В интернете не нашёл ответов. За ранее спасибо!

Источник

Настройка VPN во FreeBSD с помощью mpd5 ­ Дневник ­ Максим Боголепов

Настройка VPN во FreeBSD с помощью mpd5

Количество windows-терминальных лицензий в нашей конторе подходит к концу. На закупку дополнительных денег все равно не дадут, вот и возникла идея поднять VPN -сервер на FreeBSD шлюзе, для организации подключения к нашей частной сети из вне.
Итак, имеем сервер под управлением FreeBSD 8.1- RELEASE (архитектура amd64), для реализации VPN -сервера был выбран порт mpd-5.5.

Mpd5 – реализация multi-link PPP протокола для FreeBSD, основанная на netgraph(4). В его основе лежат скорость и гибкость как в ручных настройках, так и в организации соединений на пользовательском уровне. При этом маршрутизация данных происходит непосредственно в ядре. Mpd5 поддерживает множество типов соединений, мною было выбрано pptp – соединение точка-точка через интернет посредством PPTP (Point-to-Point Tunnelling Protocol) и поддерживается большинством производителей операционных систем и оборудования.

А вообще, PPTP мной был выбран из-за того, что для его настройки не надо пользоваться сторонними клиентскими программами. Соединение можно установить встроенными средствами операционных систем Microsoft (кстати, даже Android подключился без проблем).

Сперва нам необходимо установить порт:

После установки у вас появится каталог /usr/local/etc/mpd5 с файлами конфигурации по-умолчанию:

Нам необходимо произвести собственные настройки, где файл mpd.conf будет содержать непосредственно конфигурацию, в файле mpd.secret будут храниться пары логин/паролей и выделяемые им ip-адреса, а в файле mpd.script будут храниться скрипты для модемных устройств (если они вам необходимы).

С настройкой mpd5 закончили. Нам осталось не забыть внести в файл /etc/rc.conf строку mpd_enable=“ YES ”, чтобы разрешить запускать демон, и флаг mpd_flags=”-b”, указывающий mpd5 работать в фоновом режиме.

Читайте также:  Настройка куч с 100

Создадим файл /usr/local/etc/mpd5/mpd.secret, в который пишем логины/пароли и выделяемые для них ip-адреса (измените на свои):

И дадим права на его просмотр только root:

Чтобы организовать сбор логов работы mpd5 надо в файл конфигурации syslog – /etc/syslog.conf внести следующие строки:

Создадим файл лога и дадим права на его просмотр только root:

Так же для удобства вы можете организовать ротацию логов с помощью newsyslog. Для этого в конфигурационный файл /etc/newsyslog.conf внесите следующую строку:

Которая организует ротацию лога работы mpd5 при достижении его размера в 1 мегабайт до 7 раз. Дальше ранние логи будут затираться.

Даем команду syslog перечитать свой конфигурационный файл и запустим mpd5:

Проверим работу mpd5 командами:

Web-сервер при заходе в него запросит у вас логин/пароль, который вы указали при настройке mpd5 (не забудьте вдобавок к ip-адресу указать протокол http и порт – 5006, т.е. адрес вашего web-сервера mpd5 будет выглядеть так: http://192.168.100.3:5006). В случае IE:

Сам web-сервер выглядит при простое так:

Теперь надо на клиентской машине настроить pptp соединение. Для этого кликните дважды левой кнопкой мыши в «Панели управления» на ярлыке «Сетевые подключения»:

В открывшемся окне «Сетевые подключения», дважды кликните мышкой по ярлыку «Мастер новых подключений»:

В открывшемся окне «Мастера новых подключений» кликните по кнопке «Далее»:

В следующем окне «Мастера новых подключений» выберите «Подключить к сети на рабочем месте» и кликните по кнопке «Далее»:

В следующем окне «Мастера новых подключений» выберите «Подключение к виртуальной частной сети» и кликните по кнопке «Далее»:

В следующем окне «Мастера новых подключений» введите наименование организации «Organization» и кликните по кнопке «Далее»:

В следующем окне «Мастера новых подключений» введите ip-адрес 12.34.56.78 и кликните по кнопке «Далее»:

В следующем окне «Мастера новых подключений» выберите, чтобы вновь создаваемое подключение было доступным за вашим компьютером только для вас и кликните по кнопке «Далее»:

В завершающем окне «Мастера новых подключений» поставьте галочку рядом с «Добавить ярлык подключения на рабочий стол» и кликните по кнопке «Готово»:

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

Дважды кликнув с помощью левой кнопки мыши по ярлыку подключения «Organization» на своем рабочем столе, вы откроете окно:

В котором в поле «Пользователь» и в поле «Пароль» вы должны будете ввести выданные вам логин и пароль на подключение. Для безопасности не рекомендуется ставить галочку напротив «Сохранять имя пользователя и пароль». Для установления соединения нажмите на кнопку «Подключение». В случае удачного подключения справа внизу в системном трее рядом с часами должна появиться соответствующая иконка.

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

где N – последняя цифра выданного вам ip-адреса.

Вот и все, удачи!

P.S. возможно вам понадобиться еще настроить и firewall (брандмауэр), если он присутствует на вашем шлюзе. Не забудьте про этот момент!

Rating: 4.2/5(13 votes cast)

Источник

Adblock
detector