Ну как водится для начала читаем документацию либо Manual_RU (Переведена не полностью) либо оригинал Manual_EN
Переходим в порты
# cd /usr/ports/
и выполняем поиск нужно нам ПО
# make search name=mpd | grep Path
В моем случае я выбрал mpd4 не знаю почему
переходим в каталог:
#cd /usr/ports/net/mpd4
Выполняем конфигурацию
# make config
опции для выбора:
[ ] NG_CAR Use ng_car kernel module from port (< 7.0 only)
[ ] NG_IPACCT Use ng_ipacct kernel module from port
я оставил все без изменений, далее выполняем сборку и установку:
#make && make install && make clean
переходим в каталог конфигурации приложения
# cd /usr/local/etc/mpd4/
смотрим содержимое и копируем все файлы с переименованием т.е. приводим каталог к следующему виду:
# ls -l
total 54
-r--r--r-- 1 root wheel 11856 8 апр 09:40 mpd.conf.sample
-r--r--r-- 1 root wheel 39541 8 апр 09:40 mpd.script.sample
-r--r--r-- 1 root wheel 834 8 апр 09:40 mpd.secret.sample
# cp ./mpd.conf.sample ./mpd.conf
# cp ./mpd.script.sample ./mpd.script
# cp ./mpd.secret.sample ./mpd.secret
# ls -l
total 108
-r--r--r-- 1 root wheel 11856 8 апр 10:35 mpd.conf
-r--r--r-- 1 root wheel 11856 8 апр 09:40 mpd.conf.sample
-r--r--r-- 1 root wheel 39541 8 апр 10:36 mpd.script
-r--r--r-- 1 root wheel 39541 8 апр 09:40 mpd.script.sample
-r--r--r-- 1 root wheel 834 8 апр 10:36 mpd.secret
-r--r--r-- 1 root wheel 834 8 апр 09:40 mpd.secret.sample
приступаем к конфигурации
# mc -e ./mpd.conf
И приводим его к следующему виду
# cat ./mpd.conf
# cat ./mpd.links
pptp0:
set link type pptp
pptp1:
set link type pptp
pptp2:
set link type pptp
# cat ./mpd.secret.sample
MyLogin MyPassword
PeerLogin PeerPassword
fred "fred-pw"
joe "foobar" 172.16.0.10
bob "\x34\"foo\n" 172.16.1.10/24
sal "yipee" 172.16.2.254
формат этих файлов понятен без комментариев.
далее выполняем:
#echo mpd_enable="YES" >>/etc/rc.conf
и
#/usr/local/etc/rc.d/mpd4 stat
смотрим ifconfig и sockstat | grep 1723 если все нормально то видим следующее:
# ifconfig
<--skipped-->
ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng1: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
ng2: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
это говорит о том что интерфейсы поднялись
# sockstat | grep 1723
root mpd4 10640 16 tcp4 xxx.xxx.xxx.xxx:1723 *:*
это говорит о том наш MPD слушает порт на интерфейсе что прописан в mpd.conf в секции set pptp self
добавляем в фаервол следующие правила и наслаждаемся результатом:
allow tcp from any to xxx.xxx.xxx.xxx dst-port 1723
allow gre from any to any
allow ip from any to any via ngX
в последнем правиле вместо Х ставим номер интерфейса количество этих правил соответсвует количеству интерфейсов.
для контроля настраиваем ведения лог файлов
добавляем в
# /etc/syslog.conf
!mpd
*.* /var/log/mpd.log
и создаем файл
# touch /var/log/mpd.log