Ниже приведен пример настройки подключения FreeBSD через PPPoE соединение и выпуска локальной сети офиса в интернет.
Данный вариант реализован на одном из серверов и успешно отрабатывает уже пару лет.
Критика и замечания принимаются по адресу support(at)localka(dot)net
В
/etc/ppp/ppp.conf прописываем
myprovider:
set device PPPoE:Interface_name:[ServiceName]
set authname UserName
set authkey PaSsW0rd
set mru 1492
set mtu 1492
enable echo
enable lqr
set echoperiod 3
set lqrperiod 3
set redial 0
disable mppe
deny mppe
set timeout 3
в
/etc/ppp/ppp.linkup прописываем
myprovider:
shell /sbin/natd -m -u -a MYADDR -p natd
shell /bin/sh /etc/ppp/myprovider.ipfw set INTERFACE MYADDR HISADDR
shell /bin/sh /etc/ppp/setroutedefault.sh HISADDR
в
/etc/ppp/ppp.linkdown прописываем
myprovider:
shell killall -KILL natd
shell /bin/sh /etc/ppp/myprovider.ipfw delete
shell /bin/sh /etc/ppp/setroutedefault.sh HISADDR
создаем файлик
myprovider.ipfw и в него вставляем что-то типа такого
#!/bin/sh -
fwcmd="/sbin/ipfw -q "
if_modem=$2
myaddr=$3
hisaddr=$4
case $1 in
[Ss][Ee][Tt])
${fwcmd} add 755 skipto 6000 all from any to any via ${if_modem}
${fwcmd} add 6010 skipto 6012 tcp from any to 25 out
${fwcmd} add 6010 skipto 6012 tcp from any to MAIL.IP.SERV.PROV 25 out
${fwcmd} add 6011 deny all from any to any 25 out
${fwcmd} add 6011 deny all from any to any 445,135,137,138,139 out via ${if_modem}
${fwcmd} add 6080 allow all from ${myaddr} to any out via ${if_modem}
${fwcmd} add 6080 divert natd all from MY.INT.SUBN.RANGE/32 to any out via ${if_modem}
${fwcmd} add 6080 divert natd all from any to ${myaddr} in via ${if_modem}
${fwcmd} add 6090 allow all from any to any via ${if_modem}
;;
[Dd][Ee][Ll][Ee][Tt][Ee])
${fwcmd} delete 755
${fwcmd} delete 6010 6011
${fwcmd} delete 6080 6090
;;
*)
;;
esac
создаем файлик
setroutedefault.ipfw и в него вставляем что-то типа такого
#!/bin/sh -
default=$1
if ! /sbin/route -n add default ${1}
then /sbin/route -n change default ${1}
fi
не забываем проверить работоспособность скриптов
если провайдер выдал статический IP для сетевой карты( без DHCP )
вставляем в
/etc/rc.conf
ppp_enable="YES"
ppp_nat="NO"
ppp_profile="myprovider"
ppp_mode="ddial"
ppp_quiet="YES"
ppp_user="root"
если провайдер выдает IP адрес для сетевой карты автоматически ( DHCP )
в
/usr/local/etc/rc.d создаем файлик,
pppoe_myprovider.sh
#!/bin/sh
/usr/sbin/ppp -ddial -quiet myprovider