- Установка VPN-сервера PPTP для FreeBSD, Linux
- Содержание
- VPN-сервер MPD5 на FreeBSD 9.2-RELEASE
- Установка MPD5
- Настройка DNS-сервера
- Первоначальная проверка работоспособности
- Настройка NAT
- Установка VPN-сервера PopTop на Debian-6-i386-minimal
- MPD 5.7 настройка VPN-сервера в FreeBSD
- Содержание
- Установка MPD5
- Настройка MPD5
- Включение маршрутизации
- Настройка брандмауэра
- Настройка логов MPD5
- Запуск MPD5
- Возможные проблемы
- Анализ логов MPD5
- Простейший отчет по сессиям
- Mpdstat
- Парсер на PHP
- Ссылки
- Смотрите также
- Комментарии:
- Развертывание собственного OpenVPN
- Установка OpenVPN сервера (FreeBSD).
- Создание клиентского сертификата OpenVPN
- Инструкция по настройка клиентского подключения OpenVPN
Установка VPN-сервера PPTP для FreeBSD, Linux
Установка VPN-сервера PPTP для FreeBSD
Инсталляция проводилась на чистый сервер на шаблоне программного обеспечения KVM-FreeBSD-8.2-i386-minimal. На него был установлен сервер mpd5 (Multi-link PPP daemon), выход в интернет будет осуществляться через этот сервер используя трансляцию адресов (NAT) с компьютера под управлением Windows Vista.
Работать MPD будет только на виртуальном сервере с виртуализацией KVM или на выделенном сервере.
Преимущество использвания MPD перед сервером OpenVPN в том, что не требуется установка дополнительного ПО на клиентские компьютеры и их настройках гораздо проще — требуется ввести в настройках подключения только адрес сервера и логин и пароль.
СодержаниеVPN-сервер MPD5 на FreeBSD 9.2-RELEASEУстановка MPD5Подключитесь к серверу по протоколу SSH и установите дерево портов Изменения в файле конфигурации в diff-формате (diff mpd.conf.sample mpd.conf): Настройка DNS-сервераПервоначальная проверка работоспособностиВ принципе можно уже пробовать подключаться со своего компьютера к VPN-серверу — создайте подключение к удаленному рабочему месту со всеми настройками по-умолчанию и подключитесь. И на самом сервере будет видно командой ifconfig поднятный тунель. Настройка NATТеперь следует настроить NAT для трансляции IP-адресов чтобы можно выходить в интернет через VPN-сервер Посмотреть также работу ipfw nat можно командой Установка VPN-сервера PopTop на Debian-6-i386-minimalMPD 5.7 настройка VPN-сервера в FreeBSDНастраиваем MPD5 в качестве VPN-сервера для подключений Windows-клиентов к офисной сети по протоколу PPTP. MPD5 также может использоваться в качестве VPN-клиента для доступа к удаленной сети, или подключения к интернет провайдеру. Для объединения нескольких сетей через интернет обратите внимание на OpenVPN. Ключевые отличия OpenVPN: туннель по UDP или TCP протоколу, TLS-шифрование, возможность задать клиенту маршруты к обслуживаемым сетям. СодержаниеУстановка MPD5Для установки из коллекции портов, обновляем коллекцию: Затем, устанавливаем порт: Настройка MPD5Переходим в папку с файлами конфигурации: В папке имеются следующие файлы:
Копируем файл конфигурации из шаблона: Открываем в редакторе: Идентификаторы секций в файле конфигурации задаются с начала строки и заканчиваются двоеточием. Значения параметров в начале строки обязательно отделяются табуляцией, пробелы также допустимы. Удаляем все секции кроме 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-трафик. Подключенным клиентам также необходимо открыть доступ к локальной сети. В простейшем варианте, для пула 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. Мониторим физический канал: Возможные проблемыОшибка: «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: messages: Если я подключаюсь из дома к офису, то в лог валятся такие сообщения. Да и вообще всё тормозить начинает. Если впн подключение делается из локальной сети офиса для выхода в интернет, то всё работает, ошибок нет. pkg info mpd5 pptp_server: table const <10> Поделитесь мыслями по этому поводу. В интернете не нашёл ответов. За ранее спасибо! Развертывание собственного OpenVPNИнструкция описывает процесс установки и настройки серверной и клиентской частей OpenVPN. Решение предназначено для подключения удаленных клиентов к сети предприятия. После подключения у клиента сохраняется собственный шлюз по-молчанию и не блокируется выход в интернет. Решение показало простоту в настройке клиентской части, было опробовано (и используется в настоящее время) на Windows-XP, Windows-7, Andriod 3.x, Archlinux, Ububnu. Есть информация об успешном подключении и iPad. Установка OpenVPN сервера (FreeBSD).Устанавливаем пакет из портов. Опции можно оставить по умолчанию. Главное, не отключайте ‘easy-rsa’, так как он потребуется для настройки и генерации сертификатов: Создаем каталоги для конфигов: Копируем каталог easy-rsa в каталог конфигов OpenVPN: Переходим в скопированный каталог: Переходим в оболочку sh: Выполняем команду для генерации собственного сертификата: Данные для сертификата заполните в соотвествии с вопросами. ‘Common name’ должно соответствовать DNS имени вашего VPN-сервера, например: ‘vpn0.example.com’. На последние вопросы отвечаем ‘Y’. Теперь делаем сертификат для клиента с именем ‘client’. Тут также на последние вопросы отвечаем ‘Y’ Выходим из sh оболочки: Cоздаем ключ для tls-аутификации: Создаем файл server.conf (ниже под спойлером). Не забудьте в нем указать адрес внутреннего DNS-сервера, которых знает имена ваших локальных хостов. Для каждого клиента надо будет создавать на сервере файл-конфиг пользователя, где указывается назначаемый клиенту IP адрес и шлюз. Например, для клиента с именем ‘client’: Для запуска даймона OpenVPN при загрузке операционной системы добавим в ‘/etc/rc.conf’ строки: Если стоит задача предоставлять пользователям через OpenVPN Интернет, то потребуется наличие NAT. Можно включить его поддержку через загружаемые модули, для этого в файл ‘/boot/loader.conf’ надо добавить строки: Пример настройки NAT IPFW: Все, сервер OpenVPN установлен, настроен и запущен. Теперь можно заняться клиентами. Создание клиентского сертификата OpenVPNОписание приведено для сервера на операционной системе FreeBSD с установленным и настроеным, как описано выше, сервисом OpenVPN. Сертификат генерируется из системной консоли сервера с правами суперпользователя из каталога easy-rsa: В результате будут сгенерированы клиентские файлы сертификатов для подключения. Далее, необходимо создать файл `/usr/local/etc/openvpn/ccd/ЛОГИН_ПОЛЬЗОВАТЕЛЯ` с одной строкой вида: Каждая пара адресов в ifconfig-push соответствует виртуальным IP-адресам конечных точек (клиента и сервера) — каждому клиенту в момент подключения назначается своя подсеть. Сюда-же можно добавить дополнительные маршруты, если клиенты подключаются к разным подсетям (филиалы, технические специалисты) Чтобы сохранить совместимость с Windows-клиентами и драйвером TAP-Win32 эти адреса должны быть взяты из следующих друг за другом подсетей с маской /30. Например, для диапазона `172.17.0.1-172.17.0.254` последний октет IP-адреса каждой пары клиент-сервер следует назначать из набора: Для удобства работы я создал текстовый файл «/usr/local/etc/openvpn/not_use_ip.txt» в котором перечислены свободные пары адресов, удаляемые по мере раздачи клиентам. Обратите внимание, что в конфигурационном фале первым задается назначаемый клиенту IP адрес (старший), вторым — адрес сервера (на единицу меньше). После добавления клиента желательно перезапустить сервис OpenVPN: Клиенту необходимо передать пять файлов (ca.crt, vpn0.crt, vpn0.key, ta.key, vpn0.example.com.ovpn):
Перечисленные файлы копируются в отдельную (временную) папку с именем «config», файлы вида «ЛОГИН_ПОЛЬЗОВАТЕЛЯ.*» в ней переименовываются в «vpn0.*», папка упаковывается в архив и высылается пользователю электронной почтой со ссылкой на инструкцию по настройке клиентского подключения OpenVPN (см. ниже). Инструкция по настройка клиентского подключения OpenVPN(Для пользователей не имеющих технической подготовки) Для установки и настройки OpenVPN соединения необходимо вначале определить разрядность своей операционной системы. Для 32-разрядных систем установочный файл клиента OpenVPN оканчивается на «-i686.exe». Если же у Вас 64-разрядная MS-Windows, то Вам нужен файл, в названии которого есть «-x86_64.exe». Кроме того, для VPN подключения к сети Вам потребуются клиентские сертификаты и файл настройки, которые можно получить у системного администратора. Для MS-Windows cкачайте и установите соответствующую клиентскую программу OpenVPN (для Android и iOS есть пакеты в собственных репозиториях market/store). Перейдите в каталог программы OpenVPN (C:Program Files\OpenVPN) и скопируте в него папку config со всем содержимым, полученную у системного администратора. В этой папке расположены ваши клиентские сертификаты и настройки подключения к серверу VPN. Названия файлов в папке config у Вас могут незначительно отличаться. Запустите OpenVPN клиент от имени Администратора или измените свойства ярлыка на Рабочем столе (установить галочку “выполнять от имени администратора”). Подключение к локальной сети предприятия через Интернет производися через контекстное меню или двойным кликом на иконке OpenVPN в системной области панели задач. Подключиться можно только находясь за пределами сети предприятия. Соединения изнутри сети сервер OpenVPN не принимает. После успешного завершения процедуры подключения иконка OpenVPN в панели задач изменит цвет на зеленый и появится всплывающая подсказка с назначенным VPN-клиенту IP адресом. Адрес «привязыватся» к сертификату, поэтому с одним и тем-же сертификатом одновременно с двух и более рабочих мест работать не получится из-за конфликта адресов. |