Организация PPTP VPN с использованием mpd в FreeBSD

Если необходимо организовать защищенные каналы связи между удаленными рабочими местами и локальной сетью организации, то можно это сделать создав VPN сеть.
Рассмотрим создание такой сети на примере использования /usr/ports/net/mpd5. Устанавливаем указанный порт на сервере.

Допустим, что внутренний интерфейс сервера имеет адрес 192.168.0.101, внешний интерфейс имеет адрес 192.168.1.2, доступный DNS-сервер имеет адрес 192.168.1.1.
Для подключающихся пользователей выделен пул адресов локальной сети с 192.168.0.50 по 192.168.0.99. Редактируем конфигурационный файл /usr/local/etc/mpd5/mpd.conf
до следующего состояния:

startup:

    log -ALL
    log +PPTP +AUTH +bund + ccp +iface +ipcp +lcp +link +phys

default:

    load pptp_server

pptp_server:

    set ippool add pool1 192.168.0.50 192.168.0.99
    create bundle template B
    set iface enable proxy-arp
    set iface idle 1800
    set iface enable tcpmssfix
    set ipcp yes vjcomp
    set ipcp ranges 192.168.0.101/32 ippool pool1
    set ipcp dns 192.168.1.1
    set bundle enable compression
    set ccp yes mppc
    set mppc yes e40
    set mppc yes e128
    set mppc yes stateless
    create link template L pptp
    set link action bundle B
    set link enable multilink
    set link yes acfcomp protocomp
    set link no pap chap eap
    set link enable chap
    set link keep-alive 10 60
    set link mtu 1460
        set pptp self 192.168.1.2
        set link enable incoming

Для авторизации mpd может использовать разные способы, но в данном случае расмотрим пример, когда информация об удаленных пользователях хранится
в файле /usr/local/etc/mpd5/mpd.secret. Желательно, чтобы этот файл был доступен только пользователю root. Редактируем данный файл до следующего состояния:

user1 "password1" 192.168.0.55
user2 "password2" 192.168.0.56
user3 "password3" 192.168.0.57

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

Для запуска VPN-сервера вносим в /etc/rc.conf следующие строки:

mpd_enable="YES"
mpd_flags="-b"

Для того, чтобы mpd писал информацию в лог-файл необходимо в /etc/syslog.conf добавить следующие строки:

!mpd
*.*  /var/log/mpd.log

Чтобы лог-файл не разрастался до огромных размеров необходимо в /etc/newsyslog.conf добавить следующую строку:

/var/log/mpd.log   640  3   100  @T00  JC

На клиентской машине проделываются аналогичные манипуляции, только файл /usr/local/etc/mpd5/mpd.secret не нужен, а файл /usr/local/etc/mpd5/mpd.conf редактируется до следующего состояния:

startup:

default:
    load pptp_client

pptp_client:
    create bundle static B1
    set iface route 192.168.0.0/24
    set ipcp ranges 0.0.0.0/0 0.0.0.0/0

    create link static L1 pptp
    set link action bundle B1
    set auth authname "user1"
    set auth password "password1"
    set link max-redial 0
    set link mtu 1460
    set link keep-alive 20 75
    set pptp peer 1.2.3.4
    set pptp disable windowing
    open

В данном примере 1.2.3.4 это IP-адрес VPN-сервера, 192.168.0.0/24 - это локальная сеть, к которой подключается удаленный клиент, user1 и password1 - логин и пароль соответственно, которые должны присутствовать в файле mpd.secret на сервере.

В данной конфигурации к VPN-серверу могут подключаться и Windows-клиенты без установки какого-либо дополнительного программного обеспечения.

Необходимо помнить, что mpd использует TCP-порт 1723, который должен быть открыт в firewall. При подключении клиентов на сервере создаются виртуальные сетевые интерфейсы ng*. Поэтому, если вы используете firewall, то необходимо разрешить пропуск пакетов через эти интерфейсы. А также необходимо разрешить пропуск GRE-пакетов на внутреннем и внешнем интерфейсах.

 

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.