В этой части статьи, я расскажу о том как на базе 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/982


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

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

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

Add your comment now

Please note: JavaScript is required to post comments.