В этой части статьи, я расскажу о том как на базе FreeBSD и MPD сделать VPN сервер.

В предыдущей части, мы остановились на пункте «# cd /usr/local/etc/mpd5», продолжаем дальше.


# ls
mpd.conf.sample mpd.script.sample mpd.secret.sample
# cp mpd.conf.sample mpd.conf
# cp mpd.secret.sample mpd.secret
# mcedit mpd.secret - редактируем и доводим примерно до вида:
# cat mpd.secret
firstuser "firstpass" 10.10.1.111
seconduser "secondpass" 10.10.1.112

Файл mpd.secret — отвечает за авторизацию, недостаток данного файла — в том, что в нём пароли в открытом виде. В принципе, это тоже решаемо — можно вообще отказаться от файла mpd.secret, если вы захотите использовать для авторизации RADIUS сервер, но об этом в другой статье.

Далее, мы принимаемся за редактирование файла конфигурации mpd.conf — при помощи его, можно из mpd сделать хоть сервер, хоть клиент, причем не только VPN, а и PPoE и другие.

В данном конфиге, я приведу пример только pptp VPN сервер, на базе уже настроенного сервера.

# cat mpd.conf
default:
load pptp_server
pptp_server:
# Define dynamic IP address pool.
set ippool add pool1 10.10.1.110 10.10.1.120
# 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 10.10.1.1/32 ippool pool1
set ipcp dns 10.10.1.1
set ipcp nbns 10.10.1.2
# 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
# We can use use RADIUS authentication/accounting by including
# another config section with label 'radius'.
# load radius
set link keep-alive 10 60
# We reducing link mtu to avoid GRE packet fragmentation.
set link mtu 1460
# Configure PPTP
set pptp self 10.10.1.1
# Allow to accept calls
set link enable incoming
radius:
# You can use radius.conf(5), its useful, because you can share the
# same config with userland-ppp and other apps.
set radius config /usr/local/etc/radius.conf
# or specify the server directly here
set radius server localhost testuser pass1234 pass1234
set radius retries 3
set radius timeout 3
# send the given IP in the RAD_NAS_IP_ADDRESS attribute to the server.
set radius me 10.10.1.1
# send accounting updates every 5 minutes
set auth acct-update 300
# enable RADIUS, and fallback to mpd.secret, if RADIUS auth failed
set auth enable radius-auth
# enable RADIUS accounting
set auth enable radius-acct
# protect our requests with the message-authenticator
set radius enable message-authentic

Как видите, в данном конфиге, указывается как бы «include» одного конфига в другой.
Секция «default» — это главная секция, в которую подгружают все необходимые модули.
Также, для примера я указал использование радиуса в конфиге, но не задействовал его в mpd авторизации.

PS. Оговорюсь сразу, сеть офиса в которую я выпускаю пользователей, соответствует пулу выдаваемых IP-адресов: 10.10.1.0/24.

Далее, стартуем наш mpd демон и проверяем:


# sh /usr/local/etc/rc.d/mpd5 start
# ps ax | grep mpd
1224 ?? Is 0:00.05 /usr/local/sbin/mpd5 -p /var/run/mpd5.pid -b

Порядок, если набрать ifconfig — то без подключенных пользователей — не будет никакого дополнительного интерфейса, как это было в предыдущих версиях mpd. Теперь mpd сам регулирует количество интерфейсов ng*, в зависимости от количества подключенных пользователей.

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/?p=982


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

You must be logged in to post a comment.