Добавляем атрибуты /usr/local/freeradius/etc/raddb/dictionary
# Limit session traffic ATTRIBUTE Session-Octets-Limit 227 integer # What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out) ATTRIBUTE Octets-Direction 228 integer # Connection Speed Limit ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer ATTRIBUTE Acct-Interim-Interval 85 integer ATTRIBUTE Acct-Input-Gigawords 52 integer ATTRIBUTE Acct-Output-Gigawords 53 integer
apt-get install radiusclient1
/etc/radiusclient/servers
127.0.0.1 radsecret
Для того, чтобы нужные атрибуты распознавались радиусом и радиус-клиентом, нужно добавить их в соответствующие словари /etc/radiusclient/dictionary
# Limit session traffic ATTRIBUTE Session-Octets-Limit 227 integer # What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out) ATTRIBUTE Octets-Direction 228 integer # Connection Speed Limit ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer ATTRIBUTE Acct-Interim-Interval 85 integer ATTRIBUTE Acct-Input-Gigawords 52 integer ATTRIBUTE Acct-Output-Gigawords 53 integer
apt-get install ppp-dev apt-get install gcc binutils cd /usr/src wget http://www.roaringpenguin.com/files/download/rp-pppoe-3.10.tar.gz tar xvzf rp-pppoe-3.10.tar.gz cd rp-pppoe-3.10/src/ ./configure --enable-plugin=/usr/lib/pppd/2.4.5/rp-pppoe.so make make install
Проверяем
pppoe-server -I eth0 -L 192.168.170.2 -N 255 -k
Если не ругнулся значит всё правильно Убиваем процес
killall pppoe-server
Редактируем опции
/etc/ppp/pppoe-server-options
# PPP options for the PPPoE server # LIC: GPL require-chap require-mschap-v2 proxyarp nologfd #passive #login lcp-echo-interval 30 lcp-echo-failure 5 mtu 1500 mru 1500 ms-dns 8.8.4.4 ms-dns 8.8.8.8 debug plugin radius.so plugin radattr.so logfile /var/log/pppoe-server.log
Делаем файл автозапуска /etc/init.d/pppoe
#!/bin/bash
### BEGIN INIT INFO
# Provides: pppoe
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin
FLAGS="defaults 50"
LOCAL_IP=192.100.0.1
IFACE=eth0
case "$1" in
start)
echo "Starting PPPoE.... "
echo " Starting PPPoE on VLAN..."
/usr/sbin/pppoe-server -N 1000 -k -L ${LOCAL_IP} -I ${IFACE}
echo "pppoe."
;;
stop)
echo -n "Stopping PPPoE: "
killall -9 pppd
killall pppoe-server
echo "pppoe."
;;
force-reload|restart)
echo "Restarting PPPoE: "
sh $0 stop
sh $0 start
;;
*)
echo "Usage: /etc/init.d/pppoe {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0
Сделаем его исполняемым
chmod +x /etc/init.d/pppoe
Добавляем в автозапуск
update-rc.d pppoe start 70 2 3 4 5 . stop 20 0 1 6 .
Стартуем
/etc/init.d/pppoe start
cp /usr/abills/misc/pppd/ip-up.local /etc/ppp
/ Настройка / Сервера доступа/
| Type: | pppd |
|---|---|
| Alive: | Интервал RADIUS Alive пакетов. Желательно значение 120 |
| :Manage: | |
| IP:PORT: | IP-адрес и порт, на котором система сброса (pppd_kill) слушает команды |
| Password: | Пароль |
| Radius Pairs: | Дополнительные RADIUS атрибуты. |