Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації щодо оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

accelppp

Це стара версія документу!


accel-ppp на Ubuntu Server pptp & pppoe

Исходные данные примера:

  • Ubilling с настроенным FrerRADIUS находится относительно NAS-а на IP 192.168.56.94
  • NAS имеет интерфейсы:
    • eth0 - 172.16.0.254/24 (смотрит в сторону пользователей)
    • eth1 - 10.0.3.15/24 (смотрит в интернет)
    • eth2 - 192.168.56.14 (для коммуникации с биллингом)

1. Добиваемся работы FreeRADIUS
2. Добавляем для сети с “использует Radius” NAS типа Local с IP 192.168.56.14. Настоящий ключ secret для этого NAS (далее по тексту testing123) можно получить при помощи модуля “Сервера доступа (NAS)”. Выглядит это следующим образом:

3. Ставим accel-ppp:

# apt-get -y install cmake libssl-dev pptp-linux build-essential gawk libpcre3-dev libnl-dev
# wget http://optimate.dl.sourceforge.net/project/accel-ppp/accel-ppp-1.7.4.tar.bz2
# tar jxvf accel-ppp-1.7.4.tar.bz2
# mkdir accel-ppp
# cd accel-ppp
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DRADIUS=TRUE -DSHAPER=TRUE ../accel-ppp-1.7.4
# make && make install

4. Врихтовываем конфиг /etc/accel-ppp.conf

accel-ppp.conf
    [modules]
    path=/usr/local/lib64/accel-ppp
    log_file
    pptp
    pppoe
    auth_mschap_v2
    radius
    sigchld
    pppd_compat
    shaper_tbf
    shaper
 
    [core]
    log-error=/var/log/accel-ppp/core.log
    thread-count=4
 
    [ppp]
    verbose=1
    min-mtu=1000
    mtu=1400
    mru=1400
 
    [lcp]
    echo-interval=30
    echo-failure=3
 
    [pptp]
    echo-interval=30
    verbose=1
 
    [pppoe]
    interface=eth0
    verbose=1
 
 
    [dns]
    dns1=8.8.8.8
 
    [radius]
    dictionary=/usr/local/share/accel-ppp/radius/dictionary
    nas-identifier=accel-ppp
    nas-ip-address=192.168.56.14
    gw-ip-address=10.0.0.1
    auth-server=192.168.56.94:1812,testing123
    acct-server=192.168.56.94:1813,testing123
    dae-server=192.168.56.94:3799,testing123
    verbose=1
 
    #network which can do auth via pptp. NOT users IP-s.
    [client-ip-range]
    10.0.0.0/24
 
 
    [log]
    log-file=/var/log/accel-ppp/accel-ppp.log
    log-emerg=/var/log/accel-ppp/emerg.log
    log-fail-file=/var/log/accel-ppp/auth-fail.log
    copy=1
    level=3
 
 
    [pppd-compat]
    radattr-prefix=/var/run/radattr
    verbose=1
 
 
    #[tbf] (obsolete - use shaper insted)
    #attr-down=PPPD-Downstream-Speed-Limit
    #attr-up=PPPD-Upstream-Speed-Limit
 
    [shaper]
    #may need: ethtool -K eth0 tso off ufo off gso off gro off lro off
    up-limiter=police
    down-limiter=tbf
    attr-down=PPPD-Downstream-Speed-Limit
    attr-up=PPPD-Upstream-Speed-Limit
    verbose=1
 
 
    [cli]
    telnet=127.0.0.1:2000

5. Выгружаем блеклистим модуль ip_gre который конфликтует с accel-ppp

# rmmod ip_gre
# echo "blacklist ip_gre" >> /etc/modprobe.d/blacklist.conf

6. Загружаем и добавляем в автозагрузку модули pptp и pppoe

# modprobe pppoe
# modprobe pptp
# echo  pppoe >> /etc/modules
# echo  pptp >> /etc/modules

7. Создаем скрипт автозапуска в /etc/init.d/accel-ppp

accel-ppp
#!/bin/sh
# /etc/init.d/accel-pppd: set up the accel-ppp server
### BEGIN INIT INFO
# Provides:          accel-ppp
# Required-Start:    $networking
# Required-Stop:     $networking
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO
 
set -e
 
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin;
ACCEL_PPTPD=`which accel-pppd`
. /lib/lsb/init-functions
 
if test -f /etc/default/accel-ppp; then
    . /etc/default/accel-ppp
fi
 
if [ -z $ACCEL_PPPTD_OPTS ]; then
  ACCEL_PPTPD_OPTS="-c /etc/accel-ppp.conf"
fi
 
case "$1" in
  start)
        log_daemon_msg "Starting accel-ppp server" "accel-pppd"
        if start-stop-daemon --start --quiet --oknodo --exec $ACCEL_PPTPD -- -d -p /var/run/accel-pppd.pid $ACCEL_PPTPD_OPTS; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
  ;;
  restart)
        log_daemon_msg "Restarting accel-ppp server" "accel-pppd"
        start-stop-daemon --stop --quiet --oknodo --retry 180 --pidfile /var/run/accel-pppd.pid
        if start-stop-daemon --start --quiet --oknodo --exec $ACCEL_PPTPD -- -d -p /var/run/accel-pppd.pid $ACCEL_PPTPD_OPTS; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
  ;;
 
  stop)
        log_daemon_msg "Stopping accel-ppp server" "accel-pppd"
        start-stop-daemon --stop --quiet --oknodo --retry 180 --pidfile /var/run/accel-pppd.pid
        log_end_msg 0
  ;;
 
  status)
    do_status
  ;;
  *)
    log_success_msg "Usage: /etc/init.d/accel-ppp {start|stop|status|restart}"
    exit 1
    ;;
esac
 
exit 0 

а также добавим его в автозапуск:

# chmod a+x /etc/init.d/accel-ppp 
# update-rc.d accel-ppp defaults

8. В /etc/sysctl.conf добавляем

sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096
 
net.ipv4.netfilter.ip_conntrack_max=9548576
net.netfilter.nf_conntrack_max=9548576

9. В словарь /usr/local/share/accel-ppp/radius/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
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 

10. В /etc/rc.local добавляем подъем NAT-а на сети пользователей

rc.local
iptables -t nat --flush
iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o eth1 -j SNAT --to-source 10.0.3.15

11. Со стороны Ubilling добавляем нужные нам аттрибуты в словарь FreeRADIUS-а который /usr/local/etc/raddb/dictionary

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 

12. А что с настройками сетей самого Ubilling-a? А как-то так в минимальном варианте:

13. Нет, мы все равно ничего не понимаем в этих ваших линуксах, и тем более факт, что мы не начнем понимать в них за вас. Наличие этого мануала, ни в коем случае не означает, что линукс является поддерживаемой платформой.

accelppp.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1