ACCEL-PPP.CONF(5)

NAME
accel-ppp.conf - ACCEL-PPP VPN daemon configuration

DESCRIPTION
accel-pppd(8) reads options from this file, usually /etc/accel-ppp.conf

Configuration file consists of sections in form:

[section1]
    name1=val1
    name2=val2
    name3

[section2]
     ....

SECTIONS

[modules]
containes list of modules to load

log_file
    This is logging target which logs messages to files. It support per-session/per-user features.

log_tcp
    This is logging target which logs messages over TCP/IP.

log_pgsql
    This is logging target which logs messages to PostgreSQL.

pptp
    PPTP controlling connection handling module.

pppoe
    PPPoE discovery stage handling module.

auth_pap
    PAP authentication module.

auth_chap
    CHAP (md5) authentication module.

auth_mschap_v1
    Microsoft CHAP (version 1) authentication module.

auth_mschap_v2
    Microsoft CHAP (version 2) authentication module.

radius
    RADIUS interaction module.

ippool
    IPv4 address assigning module.

ipv6pool
    IPv6 address assigning module.

sigchld
    Helper module to manage child processes, required by pppd_compat

pppd_compat
    This module starts pppd compatible ip-up/ip-down scripts and ip-change to handle RADIUS CoA request.

[core]
Configuration of core module

log-error=path
    Path to file for core module error logging.

thread-count=n
    number of working threads, optimal - number of processors/cores

[ppp]
PPP module configuration.

verbose=n
    If n is not zero ppp module will produce verbose logging.

min-mtu=n
    Minimum acceptable MTU. If client will try to negotiate less then specified MTU then it will be NAKed or disconnected if rejects greater MTU.

mtu=n
    MTU which will be negotiated if client's MRU will be not acceptable.

mru=n
    Prefered MRU.

ccp=n
    Disable CCP negotiation if this parameter is zero.

sid-case=upper|lower
    Specifies in which case generate session identifier (default lower).

check-ip=0|1
    Specifies whether accel-ppp should check if IP already assigned to other ppp interface (default 0).

single-session=replace|deny
    Specifies whether accel-ppp should control sessions count.
    If this option is absent session count control is turned off. If this option is replace then accel-ppp will terminate first session when second is authorized. If this option is deny then accel-ppp will deny second session authorization.

mppe=require|prefer|deny
    Specifies mppe negotioation preference.
    require - ask client for mppe, if it rejects drop connection
    prefer - ask client for mppe, if it rejects don't fail.
    deny - deny mppe.
    Default behavior - don't ask client for mppe, but allow it if client wants. Please note that RADIUS may override this option by MS-MPPE-Encryption-Policy attribute.

ipv4=deny|allow|prefer|require
    Specify IPv4 (IPCP) negotioation algorithm:
    deny - don't negotiate IPv4.
    allow - negotiate IPv4 only if client requests.
    prefer - ask client for IPv4 negotiation, don't fail if he rejects.
    require - require IPv4 negotiation.

ipv6=deny|allow|prefer|require
    Parameters are same as above.

ipv6-intf-id=x:x:x:x|random
    Specify fixed or random interface identifier for IPv6.

ipv6-peer-intf-id=x:x:x:x|random|ipv4|calling-sid
    Specify peer interface identifier for IPv6.
    ipv4 - calculate interface identifier from IPv4 address, for example 192:168:0:1.
    calling-sid - calculate interface identifier from Calling-Station-Id.

ipv6-accept-peer-intf-id=0|1
    Specify whether to accept peer's interface identifier.

lcp-echo-interval=n
    If this option is given and greater then 0 then lcp module will send echo-request every n seconds.

lcp-echo-failure=n
    Specifies maximum number of echo-requests may be sent without valid echo-reply, if exceeds connection will be terminated.

lcp-echo-timeout=sec
    Specifies timeout in seconds to wait for any peer activity. If this option specified it turns on adaptive lcp echo functionality and "lcp-echo-failure" is not used.

unit-cache=n
    Specifies number of interfaces to keep in cache. It means that don't destory interface after corresponding session is destoyed, instead place it to cache and use it later for new sessions repeatedly. This should reduce kernel-level interface creation/deletion rate lack.

[dns]

dns1=x.x.x.x
    Specifies primary DNS to be sent to peer.

dns2=x.x.x.x
    Specifies secondary DNS to be sent to peer.

[dnsv6]

dns=IPv6_address
    Specifies IPv6 DNS to be sent to peer. You may specify up to 3 dns options.

dnssl=name
    Specify DNS Search List. You may specify multiple dns and dnssl options.

[client-ip-range]
You have to explicitly specify range of ip address from which clients can connect to server in form:
    x.x.x.x/mask (for example 10.0.0.0/8)
    x.x.x.x-y (for example 10.0.0.1-254)

[wins]

wins1=x.x.x.x
    Specifies primary NBNS to be sent to peer.

wins2=x.x.x.x
    Specifies secondary NBNS to be sent to peer.

[pptp]
Configuration of PPTP module.

bind=x.x.x.x
    If this option is given then pptp server will bind to specified IP address.

verbose=n
    If this option is given and n is greater of zero then pptp module will produce verbose logging.

echo-interval=n
    If this option is given and greater then zero then pptp module will send echo-request every n seconds.

echo-failure=n
    Specifies maximum number of echo-requests may be sent without valid echo-reply, if exceeds connection will be terminated.

timeout=n
    Timeout waiting reply from client in seconds (default 5).

mppe=deny|allow|prefer|require

ip-pool=name
    Specifies ip pool name for address allocation. Usefull in conjuction with ippool module.

[pppoe]
Configuration of PPPoE module.

interface=[re:]ifname[,padi-limit=n]
    Specifies interface name to listen/send discovery packets. You may specify multiple interface options. If ifname is prefixed with re: then ifname is considered as regular expression. Optional padi-limit parameter specifies limit of PADI packets to reply on this interface in 1 second period.

ac-name=ac-name
    Specifies AC-Name tag value. If absent tag will not be sent.

service-name=service-name
    Specifies Service-Name to respond. If absent any Service-Name is acceptable and client's Service-Name will be sent back.

pado-delay=delay[,delay1:count1[,delay2:count2[,...]]]
    Specifies delays (also in condition of connection count) to send PADO (ms). Last delay in list may be -1 which means don't accept new connections. List have to be sorted by count key.

mac-filter=filename,type
    Specifies mac-filter filename and type, type maybe allow or deny

ifname-in-sid=called-sid|calling-sid|both
    Specifies that interface name should be present in Called-Station-ID or in Calling-Station-ID or in both attributes.

verbose=n
    If this option is given and n is greater of zero then pppoe module will produce verbose logging.

tr101=0|1
    Specifies whether to handle TR101 tags.

padi-limit=n
    Specifies overall limit of PADI packets to reply in 1 second period (default 0 - unlimited). Rate of per-mac PADI packets is limited to no more than 1 packet per second.

mppe=deny|allow|prefer|require

ip-pool=name
    Specifies ip pool name for address allocation. Usefull in conjuction with ippool module.

[l2tp]
Configuration of L2TP module.

bind=x.x.x.x
    Specifies IP address to bind.

host-name=string
    This name will be sent to clients in Host-Name attribute.

hello-interval=n
    Specifies interval (in seconds) to send Hello control message. Its used for keep alive connection. If peer will not respond to Hello connection will be terminated.

timeout=n
    Specifies timeout (in seconds) to wait peer completes tunnel and session negotiation.

rtimeout=n
    Specifies timeout (in seconds) to wait message acknowledge, if elapsed message retransmition will be performed.

retransmit=n
    Specifies maximum number of message retransmission, if exceeds connection will be terminated.

verbose=n
    If this option is given and n is greater of zero then l2tp module will produce verbose logging.

mppe=deny|allow|prefer|require

secret=string
    Specifies secret to connect to server.

ip-pool=name
    Specifies ip pool name for address allocation. Usefull in conjuction with ippool module.

[radius]
Configuration of RADIUS module.

nas-identifier=identifier
    Specifies value to send to RADIUS server in NAS-Identifier attribute and to be matched in DM/CoA requests.

nas-ip-address=x.x.x.x
    Specifies value to send to RADIUS server in NAS-IP-Address attribute and to be matched in DM/CoA requests. Also DM/CoA server will bind to that address.

gw-ip-address=x.x.x.x
    Specifies address to use as local address of ppp interfaces if Framed-IP-Address received from RADIUS server.

auth-server=x.x.x.x:port,secret
    Specifies IP address, port and secret of authentication RADIUS server. (obsolete)

acct-server=x.x.x.x:port,secret
    Specifies IP address, port and secret of accounting RADIUS server. (obsolete)

server=address,secret[,auth-port=1812][,acct-port=1813][,req-limit=0][,fail-time=0]
    Specifies IP address, secret, ports of RADIUS server.
    req-limit - number of simultaneous requests to server (0 - unlimited).
    fail-time - if server doesn't responds mark it as unavailable for this time (sec).
    If you want to specify only authentication or accounting server then set auth-port/acct-port to zero. You may specify multiple radius servers.

dae-server=x.x.x.x:port,secret
    Specifies IP address, port to bind and secret for Dynamic Authorization Extension server (DM/CoA).

dm_coa_secret=secret(deprecated,usedae-serverinstead)
    Specifies secret to use in DM/CoA communication.

acct-interim-interval=n
    Specifies interval in seconds to send accounting information (may be overriden by radius Acct-Interim-Interval attribute)

verbose=n
    If this option is given and n is greater of zero then radius module will produce verbose logging.

interim-verbose=n
    If this option is given and n is greater of zero then radius module will produce verbose logging of interim radius packets.

timeout=n
    Timeout to wait response from server (sec)

max-try=n
    Specifies number of tries to send Access-Request/Accounting-Request queries.

acct-timeout=n
    Specifies timeout of accounting interim update.

acct-delay-time=0|1
    Specifies whether radius client should include Acct-Delay-Time attribute to accounting requests (default 0).

[log]
Configuration of log and log_file modules.

log-file=file
    Path to file to write general log.

log-emerg=file
    Path to file to write emergency messages.

log-fail-file=file
    Path to file to write authentication failed session log.

log-tcp=x.x.x.x:port
    Send logs to specified host.

syslog=ident[,facility]
    Send logs to system logger. Facility may be: daemon, local0-local7 or numeric value.

copy=n
    If this options is given and greater then zero logging engine will duplicate session log in general log. (Useful when per-session/per-user logs are not used)

per-session-dir=dir
    Directory for session logs. If specified each session will be logged separately to file which name is unique session identifier.

per-user-dir=dir
    Directory for user logs. If specified all sessions of same user will be logged to file which name is user name.

per-session=n
    If specified and n is greater then zero each session of same user will be logger separately to directory specified by "per-user-dir" and subdirectory which name is user name and to file which name os unique session identifier.

level=n
    Specifies log level which values are:
    0 turn off all logging
    1 log only error messages
    2 log error and warning messages
    3 log error, warning and minimum information messages (use this level in conjuction with verbose option of other modules if you need verbose logging)
    4 log error, warning and full information messages (use this level in conjuction with verbose option of other modules if you need verbose logging)
    5 log all messages including debug messages

[log-pgsql]
Configuration of log_pgsql module.

conninfo=conninfo
    Conninfo to connect to PostgreSQL server.

log-table=table
    Table to send log messages. Table must contain following field:
    timestamp timestamp
    username text
    sessionid text
    msg text

[pppd_compat]
Configuration of pppd_compat module.

ip-pre-up=file
    Path to ip-pre-up script which is executed before ppp interface comes up, useful to setup firewall rules before any traffic can pass through the interface.

ip-up=file
    Path to ip-up script which is executed when ppp interfaces is completly configured and started.

ip-down=file
    Path to ip-down script which is executed when session is about to terminate.

ip-change=file
    Path to ip-change script which is executed for RADIUS CoA handling.

radattr=prefix
    Prefix of radattr files (for example /var/run/radattr, resulting files will be /var/run/radattr.pppX)

verbose=n
    If specified and greated then zero pppd_module will produce verbose logging.

[chap-secrets]
Configuration of chap-secrets module.

gw-ip-address=x.x.x.x
    Specifies address to use as local address of ppp interfaces if chap-secrets is used for IP address assignment.

chap-secrets=file
    Specifies alternate chap-secrets file location (default is /etc/ppp/chap-secrets).

encrypted=0|1
    Specifies either chap-secrets is encrypted (read README).

username-hash=hash1[,hash2]
    Specifies hash chain to calculate username hash.
    hash1 , hash2 are openssl known digest names (md5, sha1, etc).

[ip-pool]
Configuration of ippool module.

gw-ip-address=x.x.x.x
    Specifies single IP address to be used as local address of ppp interfaces.

gw=range
    Specifies range of local address of ppp interfaces if form:
    x.x.x.x/mask[,pool_name] (for example 10.0.0.0/8)
    x.x.x.x-y[,pool_name] (for example 10.0.0.1-254)

tunnel=range
    Specifies range of remote address of ppp interfaces if form:
    x.x.x.x/mask[,pool_name]
    x.x.x.x-y[,pool_name]

x.x.x.x/mask[,pool_name] or x.x.x.x-y[,pool_name]
    Also specifies range of remote address of ppp interfaces.

attr=attribute
    Specifies which Radius attribute containes pool name.

vendor=vendor
    If attribute is vendor-specific then specify vendor name in this option.

[ipv6-pool]
Configuration of ipv6pool module.
    Format of each row is
    ipv6prefix/mask,prefix_len for example:
    fc00:0:1::/48,64 - specifies pool of address by dividing prefix fc00:0:1::/48 to networks with 64 prefix len, e.g:
    fc00:0:1:0::/64
    fc00:0:1:1::/64
    fc00:0:1:ffff::/64

delegate=ipv6prefix/mask,prefix_len
    Specifies range of prefixes to delegate to clients through DHCPv6 prefix delegation (rfc3633). Format is same as described above.

[connlimit]
This module limits connection rate from single source.

limit=count/time
    Specifies acceptable rate of connections, for example limit=1/s or limit=10/m.

burst=count

timeout=n
    Specifies timeout in seconds after which module doesn't check rate until burst number of connections will be arrived.

[shaper]
This module controls shaper.

attr=name
    Specifies which radius attribute contains rate information. Default - Filter-ID.

attr-up=name

attr-down=name
    Specifies which radius attributes contains rate information for upstream and downstream respectively.

burst-factor=n
    Burst will be calculated as rate multyply burst-factor.

up-burst-factor=n

down-burst-factor=n
    Specifies burst factor for upstream and downstream respectively.

latency=n
    Specifies latency (in miliseconds) parameter of tbf qdisc.

mpu=n
    Specifies mpu parameter of tbf qdisc and policer.

r2q=n
    Specifies r2q parameter of root htb qdisc.

quantum=n
    Specifies quantum parameter of htb classes.

up-limiter=police|htb
    Specifes upstream rate limiting method.

down-limiter=tbf|htb
    Specifies downstream rate limiting method.

leaf-qdisc=qdisc parameters
    In case if htb is used as up-limiter or down-limiter specified leaf qdisc can be attached automaticaly. At present on sfq qdisc is implemented. Parameters are same as for tc: [ limit NUMBER ] [ perturn SECS ] [ quantum BYTES ].