|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> настройка
—> VPN сервер по средствам mpd5.
Настройка VPN сервера по средствам mpd5 если FreeBSD машина не шлюз а просто комп в локалке.
Автор: Le1.
Значит так, дело было летом, жара, на работе у нас обычная локалка, пров дал нам ADSL Router и он роутил на свич, свич же крутил сетку в диапазоне 192.168.1.1-192.168.1.254
На работе в углу лежал никому не нужный 64-х битный комп, жалко добро не используется, решили поставить его в виде сервака, но так как у нас не было выделенного айпи (он шел на железный ADSL Router), да и по чисто техническим причинам не хотелось переводит роутер в режим бриджа, ставить две сетевухи в машину с фрей и.т.д. пришлесь комп с новоустоновленной Фряхой поставить после свитча т.е. присвоеть ему IP из диапазона локалки.
Все было сделанно и комп с FreeBSD получил IP 192.168.1.254.
Для того чтобы с наруже я мог бы подключатся к компу по SSH юзать FTP и т.д. в железном ADSL роутере я сделал редирект всех портов на внутренний адрес (192.168.1.254).
Первым делом обновил сорсы, порты и все такое, настроил Apach+PHP+MySQL+pureFTPD (но в данной статье не об этом), все работало на ура, но встал вопрос - нам стало нужно из дома подключатся к нашей рабочей локальной сетке, и работать так же как будто бы мы просто физически находимся в той же сети, т.е. видеть шары, использовать Remote Desktop, следить с дома за своим компом и т.д.
Ясно, что нужно было настраивать VPN сервер, но проблема была в том что машина с фрей не была шлюзом, и имела IP 192.168.1.254 из диапазона локальной сетки. После настройки я долго не мог пинговать компы в сети и т.д. проблемы были с натом, я долго рылся, спрашивал на форумах и.т.д. пока смог исправить эту беду.
Вообщем начнем - для VPN-а решил использовать MPD5,
mpd (Multi-link PPP daemon) примечателен тем, что в нём реализован VPN-сервер совместимый с Microsoft. т.е. в подключение с Windows к нашему, FreeBSD-серверу не будет никаких проблем, не нужно устанавливать дополнительный софт в виде VPN клиента.
Значить так, начнем, устонавливаем его из портов:
/usr/ports# whereis mpd5
mpd5: /usr/local/sbin/mpd5 /usr/local/man/man8/mpd5.8.gz /usr/ports/net/mpd5
cd /usr/ports/net/mpd5; make && make install && make clean
|
После этого идем в /usr/local/etc/mpd5 создаем и правим конфиги:
/usr/local/etc/mpd5# touch mpd.conf; touch mpd.secret
| (можно скопировать дефолтные mpd.conf.sample в mpd.conf и mpd.secret.sample в mpd.secret и довести до нужного сосотояния)
Далее правим конфиг mpd.conf:
/usr/local/etc/mpd5# ee mpd.conf
|
И вставляем в него конфиг, это рабочий конфиг для моей сети, вам может придется поменять несколько параметров:
startup:
# Юзер с правами админа Логин: foo, Пароль: bar
set user foo bar admin
set user foo1 bar1
# Нужно чтобы подключится по телнету через 5005 порт
set console self 127.0.0.1 5005
set console open
# Нужно чтобы подключится по http через 5006 порт
set web self 127.0.0.1 5006
set web open
default:
load pptp_server
pptp_server:
# Диапазон IP адрессов,
# который присвоется VPN девайсу.
set ippool add pool1 192.168.100.50 192.168.100.99
# Create clonable bundle template named B
create bundle template B
set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set ipcp yes vjcomp
# Specify IP address pool for dynamic assigment.
set ipcp ranges 192.168.100.1/32 ippool pool1
set ipcp dns 192.168.1.1
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
set bundle enable compression
set ccp yes mppc
set mppc yes e40
set mppc yes e128
set mppc yes stateless
# Create clonable link template named L
create link template L pptp
# Set bundle template to use
set link action bundle B
# Multilink adds some overhead, but gives full 1500 MTU.
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
# We reducing link mtu to avoid GRE packet fragmentation
set link mtu 1460
# Configure PPTP
# Внешний IP на котором будет прослушиватся соединение
set pptp self 192.168.1.254
# Allow to accept calls
set link enable incoming
| Примечание: конфиг mpd строго не любит пробелы, так что позоботтесь об этом, вместо этого пользуйтесь табуляцией <TAB>.
Теперь отредактируем /usr/local/etc/mpd5/mpd.secret:
User1 123123
User2 321321
| Где User1 и User2 это логин для первого и второго юзера ну и рядом соответствующие пароли.
Можно так-же прописать IP тогда конкретному пользователю будет выдаватся один и тот-же IP адресс например:
User1 123123 192.168.100.90
User2 321321 192.168.100.91
|
Далее, чтобы MPD загружался автоматически при стартапе прописываем следующие строки в /etc/rc.conf:
echo 'mpd_enable="YES"' >> /etc/rc.conf
echo 'mpd_flags="-b"' >> /etc/rc.conf
echo 'gateway_enable="YES"' >> /etc/rc.conf
|
Чтобы у нас были логи нашего MPD, в файле /etc/syslog.conf в конце добавляем следующие строки:
ee /etc/syslog.conf
!mpd
*.* /var/log/mpd.log
|
Создадим этот файл и зададим ему права только на чтение root:
/# touch /var/log/mpd.log
chmod 600 /var/log/mpd.log
|
Теперь перезагружаем syslog:
/# /etc/rc.d/syslogd reload
|
Далее нам нужно NAT-ить в файрволе, чтобы с 192.168.100.0.видеть 192.168.1.0, для этого используем файрвол pf, вообщето правильно компилить ядро с поддержкой pf,у меня откомпилено, для этого нужно пересобрать ядро с опциями:
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQ
options ALTQ_NOPCC
options ALTQ_DEBUG
| но если нет времени компилить для тестирования можно подгрузить его просто как модуль:
Для того чтобы модуль подгружался при стартапе в /etc/rc.conf добавляем:
/# echo 'pf_enable="YES"' >> /etc/rc.conf
|
Теперь правим правила для файрвола /etc/pf.conf:
/# ee /etc/pf.conf
nat on nfe0 from 192.168.100.0/24 to any -> 192.168.1.254
pass in all
pass out all
|
Загружаем правила файрвола и стартуем mpd:
/# pfctl -f /etc/pf.conf
/# /usr/local/etc/rc.d/mpd5 start
|
Теперь можно наблюдать за логом и коннектится с винды:
Для того чтобы настроить клиента с Windows нужно зайти в:
Control Panel -> Network Connections -> Create a New Connection ->
Next -> Connect to the network at my workplace ->
Next -> Virtual Private Network connection ->
Next -> "Имя Соединения (Любое) " ->
Next -> "Имя хоста или IP ADSL роутера"
-> Finish
|
Для того чтобы при коннекте к VPN-у ваша клиентская машина не меняла шлюз, и не выходила бы в инет через инет того сервера к которому приконнекчена (т.е. машина с Фрей) надо в настройках VPN подключения перейти в:
Networking -> Internet Protocol(TCP/IP) -> Properties -> Advanced
| и убрать "галочку" с Use default gateway on remote network
В принципе все, можно подключатся и наблюдать за логом, если все правильно то вы сможете шарить в своей рабочей сетке, заходить через ремот десктоп и т.д.
На данный момент у меня пользователи прописаны не в mpd.secret а в БД mysql, и настроен radius сервер, если комуто интерестно, могу добавить к статье и этот пункт.
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=15052.
размещено: 2008-07-13,
последнее обновление: 2009-01-11,
автор: Le1
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
|
Комментарии пользователей [37 шт.]