Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:nas:linux:accel_pptp:ru [2015/11/03 10:56]
asmodeus
abills:docs:nas:linux:accel_pptp:ru [2018/03/27 16:17] (текущий)
asmodeus [Консоль управления]
Строка 15: Строка 15:
 ^Type: ​    | Linux accel-ppp | ^Type: ​    | Linux accel-ppp |
 ^IP:​PORT: ​ | Ип адрес и порт сервера. Порт по умолчанию 3799  и 2001 для telnet. (127.0.0.1:​3799:​2001) | ^IP:​PORT: ​ | Ип адрес и порт сервера. Порт по умолчанию 3799  и 2001 для telnet. (127.0.0.1:​3799:​2001) |
-^Password: | пароль для Disconnect Message указывается в параметре ​  ​конфигурационного файла /​etc/​accel-ppp.conf |+^Password: | пароль для Disconnect Message указывается в параметре конфигурационного файла /​etc/​accel-ppp.conf, также этот пароль используется как RADIUS secret ​|
  
  
Строка 26: Строка 26:
  
   # /​usr/​abills/​libexec/​billd checkspeed accel_ppp=1   # /​usr/​abills/​libexec/​billd checkspeed accel_ppp=1
-====Установка и настройка accel-ppp ==== 
  
 +====Синхронизация активных сессий====
 +
 +Система проверяет ​ онлайн сессии в билинге и поднятые на accel-ppp
 +
 +  # /​usr/​abills/​libexec/​billd check_accel_ppp=1
 +  ​
 +====Создаем vlan интерфейсы====
 +
 +[[abills:​docs:​manual:​soft:​vlan_create|Добавление vlan в Ubuntu]]
 +====Установка и настройка accel-ppp ====
 +=== Ubuntu ===
  ​**Что нужно:​**  ​**Что нужно:​**
  
Строка 66: Строка 76:
 sigchld sigchld
 pppd_compat pppd_compat
-shaper_tbf+shaper
 #​chap-secrets #​chap-secrets
  
Строка 175: Строка 185:
 #​chap-secrets=/​etc/​ppp/​chap-secrets #​chap-secrets=/​etc/​ppp/​chap-secrets
  
-[tbf]+[[shaper] ​]
 #​attr=Filter-Id #​attr=Filter-Id
 #​down-burst-factor=0.1 #​down-burst-factor=0.1
Строка 329: Строка 339:
 ==== CentOS ==== ==== CentOS ====
 Устнавливаем файлы ядра: Устнавливаем файлы ядра:
-  # yum install kernel-headers kernel-devel+  # yum install ​-y kernel-headers kernel-devel ​bzip2 cmake
 Скачиваем и устанавливаем accel-ppp: Скачиваем и устанавливаем accel-ppp:
   # wget http://​sourceforge.net/​projects/​accel-ppp/​files/​accel-ppp-1.7.4.tar.bz2   # wget http://​sourceforge.net/​projects/​accel-ppp/​files/​accel-ppp-1.7.4.tar.bz2
Строка 336: Строка 346:
   # mkdir build   # mkdir build
   # cd build   # cd build
-  # cmake -DBUILD_DRIVER=FALSE -DRADIUS=TRUE -DKDIR=/​usr/​src/​kernels/​3.10.0-229.4.2.el7.x86_64 ​-+  # cmake -DBUILD_DRIVER=FALSE -DRADIUS=TRUE -DKDIR=/​usr/​src/​kernels/​3.10.0-229.4.2.el7.x86_64 ​\
   DCMAKE_INSTALL_PREFIX=/​usr/​local ..   DCMAKE_INSTALL_PREFIX=/​usr/​local ..
 Не выходя из папки build сделать:​ Не выходя из папки build сделать:​
-  # make +  # make && ​make install
-  # make install+
  
-В файл accel-ppp.conf вставить следующее:​+В файл ​**/etc/accel-ppp.conf** вставить следующее ​и отредактировать по ситуации:
   # nano /​etc/​accel-ppp.conf   # nano /​etc/​accel-ppp.conf
  
Строка 486: Строка 495:
   password=secretpass   password=secretpass
  
-В конец файла dictionary добавить:​+В конец файла ​**/​usr/​local/​share/​accel-ppp/​radius/​dictionary** добавить:​
   # nano /​usr/​local/​share/​accel-ppp/​radius/​dictionary   # nano /​usr/​local/​share/​accel-ppp/​radius/​dictionary
   ​   ​
Строка 508: Строка 517:
 Отключить ip_gre: Отключить ip_gre:
   # modprobe -r ip_gre   # modprobe -r ip_gre
-И в файл blacklist.conf добавить:​+И в файл ​**/​etc/​modprobe.d/​blacklist.conf** добавить:​
   # nano /​etc/​modprobe.d/​blacklist.conf   # nano /​etc/​modprobe.d/​blacklist.conf
  
   blacklist ip_gre   blacklist ip_gre
-В файл modules внести:​+В файл ​**/etc/modules** внести:​
   # nano /​etc/​modules   # nano /​etc/​modules
  
Строка 519: Строка 528:
 В словарь Freeradius - raddb/​dictionary добавить такие пары: В словарь Freeradius - raddb/​dictionary добавить такие пары:
   # cd /​usr/​local/​freeradius/​etc/​raddb   # cd /​usr/​local/​freeradius/​etc/​raddb
-  #nano dictionary+  # nano dictionary
  
   # Limit session traffic   # Limit session traffic
Строка 539: Строка 548:
   # accel-pppd ​ -p '​var/​run/​accel.pid'​ -c '/​etc/​accel-ppp.conf'​   # accel-pppd ​ -p '​var/​run/​accel.pid'​ -c '/​etc/​accel-ppp.conf'​
   ​   ​
 +==== Debian 8 ====
 +Обновляем пакеты:​
 +  apt-get update
 +
 +Устанавливаем нужные пакеты:​
 +  cd /usr/src/
 +  apt-get install make cmake libcrypto++-dev libssl-dev libpcre3 libpcre3-dev git lua5.1 liblua5.1-0-dev
 +  apt-get install linux-headers-`uname -r`
 +
 +Скачиваем accel-ppp:
 +  wget http://​netix.dl.sourceforge.net/​project/​accel-ppp/​accel-ppp-1.11.0.tar.bz2
 +  tar -xjf accel-ppp-1.11.0.tar.bz2
 +  mkdir accel-ppp-build
 +  cd accel-ppp-build
   ​   ​
 +  cmake -DCMAKE_INSTALL_PREFIX=/​usr/​local -DKDIR=/​usr/​src/​linux-headers-`uname -r` -DRADIUS=TRUE -DSHAPER=TRUE -DLOG_PGSQL=FALSE -DLUA=TRUE -DBUILD_IPOE_DRIVER=TRUE ../​../​accel-ppp-1.11.0 ​ -DCPACK_TYPE=Debian8 -DCMAKE_INSTALL_PREFIX=/​usr -DCMAKE_BUILD_TYPE=Release
 +  ​
 +  make
 +  cpack -G DEB
 +  dpkg -i  accel-ppp.deb
 +  ​
 +Подключаем модуля в системе:​
 +  insmod /​usr/​src/​accel-ppp-build/​drivers/​ipoe/​driver/​ipoe.ko
 +
 +В скрипт автозапуска:​
 +  nano /​etc/​init.d/​accel-ppp
 + 
 +вставляем следующее:​
 +  #!/bin/sh
 +  # /​etc/​init.d/​accel-ppp:​ 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 [ x`lsmod |awk /​ipoe/'​{print $1}'` = x ]; then
 +          insmod /​usr/​src/​accel-ppp-build/​drivers/​ipoe/​driver/​ipoe.ko
 +        fi
 +        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"​
 +        if [ x`lsmod |awk /​ipoe/'​{print $1}'` = x ]; then
 +          insmod /​usr/​src/​accel-ppp-build/​drivers/​ipoe/​driver/​ipoe.ko
 +        fi
 +        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 +x /​etc/​init.d/​accel-ppp
 +  update-rc.d accel-ppp defaults
 +  ​
 +В файл:
 +  nano /​etc/​accel-ppp.lua
 +
 +вставляем
 +  function username(pkt)
 +  return pkt:​hdr('​chaddr'​)
 +  end
 +
 +Ротация логов:
 +  nano  /​etc/​logrotate.d/​accel-ppp
 +
 +вставляем:​
 +  /​var/​log/​accel-ppp/​*.log {
 +      rotate 7
 +      daily
 +      size=100M
 +      compress
 +      missingok
 +      sharedscripts
 +      postrotate
 +              test -r /​var/​run/​accel-pppd.pid && kill -HUP `cat /​var/​run/​accel-pppd.pid`
 +      endscript
 +  }
 +  ​
 +Dictionary
 +  nano /​usr/​local/​share/​accel-ppp/​radius/​dictionary
 +
 +дописываем в конец:
 +
 +  ATTRIBUTE DHCP-Router-IP-Address 241 ipaddr
 +  ATTRIBUTE DHCP-Mask ​             242 integer
 +  ATTRIBUTE L4-Redirect ​     243 integer
 +  ATTRIBUTE L4-Redirect-ipset ​     244 string
 +  ATTRIBUTE DHCP-Option82 ​         245 octets
 +  ​
 +  # 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
 +  ​
 +===Файл конфигурации===
 +  nano /​etc/​accel-ppp.conf
 +
 +вставляем:​
 +
 +  #ABillS
 +  [modules]
 +  log_file
 +  radius
 +  ipoe
 +  ippool
 +  shaper
 +  pptp
 +  pppoe
 +  auth_mschap_v2
 +  auth_pap
 +  auth_chap_md5
 +  auth_mschap_v1
 +  chap-secrets
 +  sigchld
 +  #​pppd_compat
 +  ​
 +  ​
 +  [core]
 +  log-error=/​var/​log/​accel-ppp/​core.log
 +  thread-count=1
 +  ​
 +  #[common]
 +  #​single-session=replace
 +  #​sid-case=upper
 +  #​sid-source=seq
 +  ​
 +  [radius]
 +  dictionary=/​usr/​local/​share/​accel-ppp/​radius/​dictionary
 +  #​nas-identifier=accel-ipoe
 +  nas-ip-address=192.168.1.1
 +  server=127.0.0.1,​radsecret,​auth-port=1812,​acct-port=1813,​req-limit=50,​fail-timeout=0,​max-fail=10,​weight=1
 +  dae-server=192.168.1.1:​3799,​radsecret
 +  verbose=100
 +  attr-tunnel-type=NAS-Identifier
 +  gw-ip-address=192.168.1.1
 +  ​
 +  [ipoe]
 +  verbose=100
 +  username=lua:​username
 +  lua-file=/​etc/​accel-ppp.lua
 +  lease-time=300
 +  max-lease-time=300
 +  attr-dhcp-client-ip=Framed-IP-Address
 +  gw-ip-address=10.0.0.1/​24
 +  proxy-arp=1
 +  shared=1
 +  ifcfg=1
 +  mode=L2
 +  start=dhcpv4
 +  interface=eth0
 +  #​agent-remote-id=accel-ppp
 +  attr-dhcp-opt82=DHCP-Option82
 +  ​
 +  #[ip-pool]
 +  #​gw-ip-address=192.168.0.1/​24
 +  #​attr=Framed-Pool
 +  #​192.168.0.2-254,​name=pool1
 +  ​
 +  #[lcp]
 +  #​echo-interval=30
 +  #​echo-failure=3
 +  ​
 +  [pptp]
 +  bind=192.168.1.1
 +  verbose=1
 +  mppe=allow
 +  echo-interval=30
 +  ​
 +  [ppp]
 +  verbose=1
 +  min-mtu=1400
 +  mtu=1492
 +  mru=1492
 +  #ccp=0
 +  #​sid-case=lower
 +  mppe=allow
 +  #​ipv4=require
 +  #​lcp-echo-interval=3
 +  #​lcp-echo-failure=9
 +  ​
 +  [pppoe]
 +  interface=eth0
 +  nas-identifier=accel-pppoe
 +  #​ac-name=xxx
 +  #​service-name=yyy
 +  #​pado-delay=0
 +  #​pado-delay=0,​100:​100,​200:​200,​-1:​500
 +  #​ifname-in-sid=called-sid
 +  #tr101=1
 +  verbose=1
 +  ​
 +  [client-ip-range]
 +  #10.0.0.0/8
 +  ​
 +  [dns]
 +  dns1=8.8.8.8
 +  ​
 +  [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
 +  color=1
 +  #​per-user-dir=per_user
 +  #​per-session-dir=per_session
 +  #​per-session=1
 +  level=100
 +  ​
 +  [shaper]
 +  attr=Filter-Id
 +  #​down-burst-factor=0.1
 +  #​up-burst-factor=1.0
 +  #latency=50
 +  #mpu=0
 +  #mtu=0
 +  #r2q=10
 +  #​quantum=1500
 +  #​moderate-quantum=1
 +  #hightspeed shaper
 +  ifb=ifb0
 +  cburst=1534
 +  up-limiter=htb
 +  down-limiter=htb
 +  #low speed shaper
 +  #​up-limiter=police
 +  #​down-limiter=tbf
 +  #​leaf-qdisc=sfq perturb 10
 +  #​leaf-qdisc=fq_codel [limit PACKETS] [flows NUMBER] [target TIME] [interval TIME] [quantum BYTES] [[no]ecn]
 +  #​rate-multiplier=1
 +  #fwmark=1
 +  attr-down=PPPD-Downstream-Speed-Limit
 +  attr-up=PPPD-Upstream-Speed-Limit
 +  verbose=10
 +  ​
 +  [pppd-compat]
 +  #​ip-up=/​etc/​ppp/​ip-up
 +  #​ip-down=/​etc/​ppp/​ip-down
 +  #​radattr-prefix=/​var/​run/​radattr
 +  verbose=1
 +  ​
 +  [cli]
 +  verbose=100
 +  telnet=127.0.0.1:​2000
 +  tcp=127.0.0.1:​2001
 +  password=radsecret
 +  ​
 +  [snmp]
 +  master=0
 +  agent-name=accel-ppp
 +  ​
 +  [connlimit]
 +  limit=10/​min
 +  burst=3
 +  timeout=60
 +  ​
 +Запуск:​
 +  service accel-ppp start
 +====Консоль управления====
 +Мониторинг параметров Accel-ppp
 +
 +
 +''​ / Настройка / Сервер доступа -> Консоль ''​
 +
 +
 +
 +=====Автонастройка конфигурации=====
 +
 +
 +  cd /​usr/​abills/​misc/​
 +  ./autoconf PROGRAMS=accel_ppp ​
 +
 + 
 +====Дополнительно====
 +  * [[http://​abills.net.ua/​forum/​viewtopic.php?​f=6&​t=7910|Обсуждение на форуме]]