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

Една от задачите на системния администратор е отдалечено администриране на различни сървъри. В Windows 2003 услугата за маршрутизиране е инсталирана и конфигурирана и към нея е установена клиентска vpn връзка. Така че го настроих, но защото Имах работещ сървър като клиент, това причини някои неудобства, например премахването на шлюза по подразбиране, в резултат моят dns сървър напълно загуби способността да препраща заявки към сървъра на доставчика :) Спрете, помислих си, имам своя работен кон - FreeBSD 8, който по отношение на функционалността не е по-лош от сървъра от 2003 г. И реших да вдигна клиента на него. И така, да тръгваме. Като клиент реших да използвам mpd5, защото неговите разработчици твърдят, че е напълно съвместим със сървъра 2003. Първо, малко теория - с какво трябва да се справим:

  • IPCP(Eng. Internet Protocol Control Protocol- IP контролен протокол) е контролен протокол на мрежов слой за установяване, конфигуриране и прекратяване на IP връзка през PPP (протокол от точка до точка) връзка. IPCP използва същия механизъм за обмен на пакети като LCP (Link Control Protocol). IPCP пакетите не се обменят, докато PPP не навлезе във фазата на договаряне на протокола на мрежовия слой. Всички IPCP пакети, получени преди началото на тази фаза, ТРЯБВА да бъдат отхвърлени.
  • CCP(Eng. Compression Control Protocol- протокол за контрол на компресията) - протоколът за контрол на компресията, включен в протокола PPP (Point-to-Point Protocol), регулира използването на различни алгоритми за компресиране на информация, когато тя се предава между крайните възли на комуникационните линии. Той е пряко отговорен за избора, конфигурирането и управлението на процесите на компресия по време на връзката
  • Метод за компресиране на заглавкатаTCP/IPна Van Jacobson, протокол за компресиране на данни, описан в RFC 1144, е специално създаден от Van Jacobson за подобряване на производителността на TCP/IP при бавни серийни връзки. Методът за компресиране на Van Jacobson намалява типичните 40-байтови заглавки на TCP/IP пакети до около 3-4 байта (в най-добрия случай). Това се постига чрез запомняне на състоянието на TCP връзките в двата края на връзката и се изпращат само промени в полетата на заглавката, което води до доста голяма разлика по отношение на интерактивната производителност при връзки с ниска скорост, но не прави нищо за борба със забавянията на обработката, присъщи на повечето комутируеми модеми. Компресията на заглавката на Van Jacobson (наричана още „VJ компресия“ или просто „компресия на заглавка“) е незадължителна функция в повечето версии на PPP. Версиите на SLIP протокола, които поддържат VJ компресия, често се наричат ​​"компресиран SLIP".
  • Microsoft Point-to-Point Compression (MPPC)е протокол за компресиране на данни, първоначално предназначен за използване през PPP връзки. Използва алгоритъма Lempel-Ziv с плъзгащ се прозорец на буфера на историята от 8192 байта.
  • Microsoft Point-to-Point Encryption (MPPE)е протокол за криптиране на данни, използван през PPP връзки. Използва алгоритъма RSA RC4. MPPE поддържа 40-, 56- и 128-битови ключове, които се променят по време на сесията (честотата на промяна на ключа се задава по време на ръкостискането на PPP връзката, по принцип е възможно да се генерира нов ключ за всеки пакет. MPPE не компресира данни, но често се използва във връзка с компресията на Microsoft Point-to-Point, предназначена за тази цел.
Защото демонът mpd5 използва netgraph в работата си, тогава трябва да изградим отново ядрото на FreeBSD. Как да направите това е написано в мана, аз само ще ви дам точно какви опции са необходими:

# MPPC компресията изисква собствени файлове (не са включени)

опции NETGRAPH_VJC След като инсталирате новото ядро, можете да започнете да инсталирате mpd5. Слагаме от портовете (след обновяването им), без опции. След инсталирането можете да започнете да конфигурирате. Всички настройки се съхраняват в mpd.conf (разположен по подразбиране в /usr/local/etc/mpd5).

Няколко думи за дизайна на конфигурацията. Трябва да се помни, че mpd е чувствителен към интервали, всички отстъпи трябва да бъдат форматирани като раздели. Опциите трябва да се прилагат според контекста, т.е. например set ipcp yes vjcomp не може да бъде в секцията на слоя за връзка (връзка), но трябва да бъде само в пакета.

# Тук настройваме конзола, която може да контролира демона mpd5,

задайте потребителски администратор администратор администратор

задайте самостоятелна конзола 127.0.0.1 5005

задайте отворена конзола

задайте web self 0.0.0.0 5006

# Заредете секцията, която създава тунела

# PPTP клиент: само изходящи повиквания, автоматично повторно свързване,

# ipcp-договорен адрес, едностранно удостоверяване,

# маршрутни точки по подразбиране от страна на ISP

създаване на статичен пакет B1

задайте ipcp диапазони 10.123.12.221/24 10.123.12.231/24

задайте iface up-script /usr/local/etc/mpd5/up.sh

задайте iface down-script /usr/local/etc/mpd5/down.sh

задайте iface enable tcpmssfix

задайте ipcp да vjcomp

# Петте реда по-долу позволяват Microsoft Point-to-Point криптиране

# (MPPE) с помощта на типа netgraph възел ng_mppc(8).

задайте компресиране на пакета

set bundle enable crypt-reqd

комплектccp да mppc

задаване на mppc да компресиране e40 e56 e128 без състояние

създаване на връзка статичен L1 pptp

набор от действия за връзка B1

set link enable multilink

задаване на auth authname [ВХОД]

задаване на парола за удостоверяване [ПАРОЛА]

задайте максимално повторно набиране на връзка 0

задайте връзка mtu 1460

задайте поддържане на връзката 20 75

задаване на връзка без eap pap

задаване на връзка приемане на chap-msv2

задаване на връзка разрешаване на входящи

задайте pptp peer sample.host.ru

задаване на pptp дезактивиране на прозореца

Имаме нужда от началния и крайния скрипт (up.sh и down.sh), за да зададем правилните маршрути към vpn сървъра. Ето тяхното съдържание:

default_route_old=`route -n get default 2>&1 grep gateway awk ''`

ехо $route_isp > /var/tmp/route_isp

if [ $default_route_old ]; тогава

ехо $default_route_old > /var/tmp/default_route_old

route -nq промяна по подразбиране `echo $3 cut -c1-13` -ifp $1

маршрут -nq добави $route_isp $default_route_old -ifp msk0

rm -f /var/tmp/default_route_old

route -nq промяна по подразбиране `echo $3 cut -c1-13` -ifp $1

маршрут -nq добави $route_isp $default_route_old -ifp msk0

# Върнете стария шлюз от файла /var/tmp/default_route_old

ако [ -r /var/tmp/default_route_old]; тогава

rm -f /var/tmp/default_route_old /var/tmp/route_isp

route -nq промяна по подразбиране $default_route_old

route -nq изтриване на $route_isp

Връзката се установява от командата

# mpd5 vpn След това тази връзка може да се управлява или чрез конзолата, или чрез уеб интерфейса чрез свързване към localhost:5006.