1. Установка
Для установки PPTP клиента под FreeBSD необходимо установить из портов пакет pptpclient. Скачать эти пакеты можно с официального ftp сервера FreeBSD.
Чтобы установить эти пакеты, в системе FreeBSD используется команда pkg_add(1). С правами администратора запустите следующие команды:
# pkg_add pptpclient-1.7.2_2.tbz
2. Настройка
в /etc/rc.conf должно быть это :
ifconfig_rl0="inet 0.0.0.0 netmask 255.255.0.0"
Где 0.0.0.0 – IP,привязаный к Вам
Для настройки ppp добавьте следующие строки в файл /etc/ppp/ppp.conf
#################################################################
# PPP Sample Configuration File
# Originally written by Toshiharu OHNO
# Simplified 5/14/1999 by
wself@cdrom.com
#
# See /usr/share/examples/ppp/ for some examples
#
# $FreeBSD: src/etc/ppp/ppp.conf,v 1.10.18.1 2008/11/25 02:59:29 kensmith Exp $
#################################################################
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)
# Ensure that "device" references the correct serial port
# for your modem. (cuad0 = COM1, cuad1 = COM2)
#
set device /dev/cuad1
set speed 115200
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
\"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
set timeout 180 # 3 minute idle timer (the default)
enable dns # request DNS info (for resolv.conf)
papchap:
#
# edit the next three lines and replace the items in caps with
# the values which have been assigned by your ISP.
#
# set phone PHONE_NUM
# set authname USERNAME
# set authkey PASSWORD
# set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add default HISADDR # Add a (sticky) default route
vpn:
set device "!pptp vpn.rybnet.ru --nolaunchpppd"
disable ipv6cp
disable acfcomp
disable protocomp
set mtu max 1492
disable lqr
disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
deny pred1 deflate deflate24 protocomp acfcomp shortseq vj
disable mppe
#enable dns
set openmode passive
delete ALL
alias enable yes
nat enable yes
set authname 745-09-2008
set authkey password
set timeout 0
set ifaddr 0 0
add default HISADDR
отступы обязательны!!!!
где 745-09-2008 – имя пользователя для авторизации на VPN сервере, а password – его пароль.
3. Запуск и остановка
Решил написать скриптик для этого
пишем в консоли c правами администратора
ee /usr/local/etc/rc.d/atel
вписываем следующее
#!/bin/sh
#
#pptp for rc.d usage © DeathStar
# PROVIDE: atel
# REQUIRE: DAEMON
# KEYWORD: shutdown
. "/etc/rc.subr"
name=atel
rcvar=`set_rcvar`
load_rc_config $name
: ${atel_enable="NO"}
start_cmd=atel_start
stop_cmd=atel_stop
status_cmd=atel_status
command="/usr/local/sbin/pptp"
server="vpn.rybnet.ru"
year=$(date "+DATE: %Y" | cut -d' ' -f2)
mounth=$(date "+DATE: %m" | cut -d' ' -f2)
day=$(date "+DATE: %d" | cut -d' ' -f2)
time=$(date "+TIME: %H:%M:%S" | cut -d' ' -f2)
logfile="/var/log/${name}.txt"
atel_start() {
echo "Стартуем $name."
echo ${name} был запущен ${day}.${mounth}.${year} в ${time} >> ${logfile}
${command} ${server} vpn >> ${logfile} &
atel_status
}
atel_stop() {
echo $name был остановлен ${day}.${mounth}.${year} в ${time} >> ${logfile}
echo "Останавливаем $name."
pids=`pgrep pptp`
pkill pptp
wait_for_pids $pids
atel_status
}
atel_restart() {
if atel_checkstatus; then
atel_stop
atel_start
else
atel_start
fi
}
atel_status()
{
pids=`pgrep pptp`
if atel_checkstatus; then
echo "$name запущен с PID: ${pids}"
echo $name запущен с PID: ${pids} >> ${logfile}
else
echo "$name не запущен"
echo $name не запущен> ${logfile}
fi
}
atel_checkstatus()
{
pgrep pptp > /dev/null
}
run_rc_command "$1"
и сохраняем (
Отступы обязательны!!! )
добавляем в /etc/rc.conf следующее
atel_enable="YES"
Теперь пробуем запустить
/usr/local/etc/rc.d/atel start
При успешном подключении создастся интерфейс tunX, где X - цифра. Через этот интерфейс и пойдёт весь трафик. при вводе команды ifconfig будет примерно следующее
rl0: flags=8843 metric 0 mtu 1500
options=8
ether 00:55:d0:fb:1d:11
inet 10.0.54.153 netmask 0xffff0000 broadcast 10.0.255.255
media: Ethernet autoselect (100baseTX )
status: active
plip0: flags=8810 metric 0 mtu 1500
lo0: flags=8049 metric 0 mtu 16384
options=3
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051 metric 0 mtu 1460
inet 83.234.110.39 --> 10.128.0.132 netmask 0xffffffff
Opened by PID 20110
Разорвать соединение можно послав команду
/usr/local/etc/rc.d/atel stop
Проверка статуса
/usr/local/etc/rc.d/atel status
Если запущен,то будет примерно следующее
atel запущен с PID: 20121
20117
20113
Настройка firewall'а
Протокол PPTP использует следующие порты и протоколы:
На сервере - порт 1723, протокол TCP.
У клиента (т.е. у Вас) - некий верхний порт (>1023), протокол TCP.
С обеих сторон - протокол GRE (для создания туннеля).
Если у Вас на машине установлен firewall, его необходимо настроить с учётом этих данных. Смотрите руководство на программное обеспечение, отвечающее за firewall в Вашей операционной системе.
Просьба строго не судить,так как опыта в написании скриптов и тп не имею из-за отсутсвия необходимости
Если есть поправки - буду только рад.
Оригинал тут