chilli.conf(5)
πΈ NAME πΈ
chilli.conf(5) β Chilli Configuration β¨ β yes, from the File Formats Manual.
π DESCRIPTION π
Okay so, bestie, chilli has so many configuration parameters, and you can use them either on the command line or in a configuration file. On the command line, options are prefixed with two dashes and may or may not have an equal sign. These are literally equivalent:
chilli --uamallowed www.example.com --uamanydns
chilli --uamallowed="www.example.com" --uamanydns
No-argument options are lowkey the same vibe β just no equal sign or second argument, periodt. In the configuration file, options must not have any dashes, but you can still use them with or without the equal sign, like this:
uamallowed www.example.com
uamallowed=www.example.com
uamanydns
And the hierarchy? Command-line options take precedent over anything defined in a configuration file β main character energy, fr fr. The default main config file is /etc/chilli.conf, and you can override it using the --conf option (or just --c for short) on the command line. Config files can also include other config files, like:
include /path/to/chilli/configfile.conf
Blank lines and comment lines starting with # are also allowed in the configuration file. Slay. π
β¨ OPTIONS β¨
Okay, vibe check: as mentioned above, all the options below can go on the command line (prefixed with --) or in a configuration file. A few options β shown below with the leading dashes β are typically only used on the command line. Not me listing every single one anyway π
.
--help,-hβ prints help and exits (command line).--version,-Vβ prints version and exits (command line).--fg,-fβ runs server in foreground (command line).--debug,-dβ run server in debug mode (command line).--debugfacilitylevel β increase the debug level (command line) (should be nameddebuglevel).--conffile,-cfile β use the configuration file file instead of the default show inFILES(command line).logfacilityfacility β thesyslog(8)facility to use for logging. Highkey useful.intervalseconds β re-read configuration file and do DNS lookups every seconds. This has the same effect as sending theHUPsignal. If seconds is0(zero), this feature is disabled.pidfilefile β filename to put the process id, seeFILESfor default.statedirpath β directory of non-volatile data, seeFILESfor default.cmdsockfile β UNIX socket used for communication withchilli_query(1), seeFILESfor default.cmdsocketportport β UNIX port used for communication withchilli_query(1). Only used whencmdsocketis not defined. Default port is42424.netnet β network address of the uplink interface (default =192.168.182.0/24). The network address is set during initialisation when chilli establishes a tun device for the uplink interface. The network address is specified as either<address>/<netmask>(192.168.182.0/255.255.255.0) or<address>/<prefix>(192.168.182.0/24).dynipnet β dynamic IP address pool. Specifies a pool of dynamic IP addresses. If this option is omitted the network address specified by thenetoption is used for dynamic IP address allocation. See thenetoption for a description of the network address format.statipnet β static IP address pool. Specifies a pool of static IP addresses. With static address allocation the IP address of the client can be specified by the radius server. Static address allocation can be used for both MAC authentication and Wireless Protected Access.dhcpgatewayipaddress β IP address of a DHCP server (on the uplink network). If configured DHCP requests will be relayed to this server.dhcpgatewayportport β port number to use when relaying requests to the DHCP server configured viadhcpgatewayat. Defaults to67.dhcprelayagentipaddress β IP address to use when relaying DHCP requests to the DHCP gateway.dns1host β DNS Server 1. It is used to inform the client about the DNS address to use for host name resolution. If this option is not given the system primary DNS is used.dns2host β DNS Server 2. It is used to inform the client about the DNS address to use for host name resolution. If this option is not given the system secondary DNS is used.domaindomain β domain name. It is used to inform the client about the domain name to use for DNS lookups.ipupscript β script executed after the TUN/TAP network interface has been brought up. Executed with the following parameters:<device-name> <ip-address> <net-mask>and with environment variables:DEV=<tun/tap-device-name>β the TUN/TAP device being brought up.ADDR=<tun/tap-device-ip>β the TUN/TAP device IP address being brought up.MASK=<tun/tap-device-mask>β the TUN/TAP device net mask being brought up.NET=<tun/tap-device-net>β the TUN/TAP device network being brought up.DHCPIF=<interface>β thedhcpifconfigured inchilli.conf(5).UAMPORT=<port-num>β theuamportconfigured inchilli.conf(5).UAMUIPORT=<port-num>β theuamuiportconfigured inchilli.conf(5).
ipdownscript β script executed after the tun network interface has been taken down with the same arguments and environment variables as above.conupscript β script executed after a session is authorized. Executed with the following environment variables (see source code for possibly more):DEV=<tun/tap-device>β the TUN/TAP device.ADDR=<chilli-ip>β IP Address of chilli, see theuamlistenoption.NET=<chilli-net>β network of chilli, see thenetoption.MASK=<chilli-net-mask>β network mask of chilli, see thenetoptions.NAS_IP_ADDRESS=<radiuslisten>β is set to theradiuslistenvalue.NAS_ID=<nas-id>β theradiusnasidoption.WISPR_LOCATION_ID=<location-id>β theradiuslocationidoption.WISPR_LOCATION_NAME=<location-name>β theradiuslocationnameoption.USER_NAME=<username>β user-name used to login.FRAMED_IP_ADDRESS=<client-ip>β the client's IP Address.CALLING_STATION_ID=<client-mac>β the client's MAC Address.CALLED_STATION_ID=<chilli-mac>β the MAC address of the chilli interface.FILTER_ID=<filter>β a possible filter ID returned in RADIUSFilter-ID.SESSION_TIMEOUT=<seconds>β the max session time, as set by RADIUSSession-Timeout.IDLE_TIMEOUT=<seconds>β the max idle time, as set by RADIUSIdle-Timeout.WISPR_BANDWIDTH_MAX_UP=<bandwidth>β max up stream bandwidth set by RADIUSWISPr-Bandwidth-Max-Up.WISPR_BANDWIDTH_MAX_DOWN=<bandwidth>β max down stream bandwidth set by RADIUSWISPr-Bandwidth-Max-Down.COOVACHILLI_MAX_INPUT_OCTETS=<bytes>β max input octets set by RADIUSCoovaChilli-Max-Input-Octets.COOVACHILLI_MAX_OUTPUT_OCTETS=<bytes>β max output octets set by RADIUSCoovaChilli-Max-Output-Octets.COOVACHILLI_MAX_TOTAL_OCTETS=<bytes>β max total octets set by RADIUSCoovaChilli-Max-Total-Octets.
condownscript β script executed after a session has moved from authorized state to unauthorized with the same environment variables as above.ssidssid β a parameter that is passed on to the UAM server in the initial redirect URL.vlanvlan β a parameter that is passed on to the UAM server in the initial redirect URL.nasipipaddress β value to use in RADIUSNAS-IP-Addressattribute. If not present,radiuslistenis used (which defaults to"0.0.0.0").nasmacmac β MAC address value to use in RADIUSCalled-Station-IDattribute. If not present, the MAC address of thedhcpifis used forCalled-Station-ID.radiuslistenhost β local interface IP address to use for the radius interface. Defaults to the value used in RADIUSNAS-IP-Addresswhennasipis not set.radiusserver1host β the IP address of radius server 1 (default=rad01.coova.org).radiusserver2host β the IP address of radius server 2 (default=rad01.coova.org).radiusauthportport β the UDP port number to use for radius authentication requests (default1812).radiusacctportport β the UDP port number to use for radius accounting requests (default1813).radiussecretsecret β Radius shared secret for both servers (defaultcoova-anonymous). This secret should be changed in order not to compromise security. π¨radiusnasidid β network access server identifier (defaultnas01).radiuslocationidid β WISPr Location ID. Should be in the format:isocc=<ISO_Country_Code>, cc=<E.164_Country_Code>, ac=<E.164_Area_Code>, network=<ssid/ZONE>. This parameter is further described in the document: Wi-Fi Alliance - Wireless ISP Roaming - Best Current Practices v1, Feb 2003.radiuslocationnamename β WISPr Location Name. Should be in the format:<HOTSPOT_OPERATOR_NAME>,<LOCATION>. This parameter is further described in the document: Wi-Fi Alliance - Wireless ISP Roaming - Best Current Practices v1, Feb 2003.radiusnasporttypetype β value ofNAS-Port-Typeattribute. Defaults to19(Wireless-IEEE-802.11).radiusoriginalurlβ flag (defaults to off) to send theCoovaChilli-OriginalURLRADIUS VSA inAccess-Request.adminuserusername β user-name to use for Administrative-User authentication in order to pick up chilli configurations and establish a device 'system' session.adminpasswdpassword β password to use for Administrative-User authentication in order to pick up chilli configurations and establish a device 'system' session.adminupdatefile filenameβ okay so this is the file you use as the Administrative-User update file, bestie. When you pair it with theadminuserandadminpasswdoptions above, anyCoovaChilli-ConfigRADIUS attributes found in the Administrative-User Access-Accept get put into the file you specify. If the file changes, chilli will reload its configuration (itβs assumed this file is included into the chilli configuration file). πswapoctetsβ swaps the meaning of βinput octetsβ and βoutput octetsβ as it relates to RADIUS attributes. πopenidauthβ lets OpenID authentication happen by sendingCoovaChilli-Config=allow-openidauthin RADIUS Access-Requests, so the RADIUS server knows about the option. β¨wpaguestsβ lets WPA Guest authentication happen by sendingCoovaChilli-Config=allow-wpa-guestsin RADIUS Access-Requests, so the RADIUS server knows about the option. The RADIUS may come back with an Access-Accept containingCoovaChilli-Config=require-uam-authto give WPA access, but still enforce the captive portal. π«Άcoaport portβ the UDP port to listen to for accepting radius disconnect requests. πcoanoipcheckβ if this option is given, no check is performed on the source IP address of radius disconnect requests. Otherwise, it is checked that radius disconnect requests originate fromradiusserver1orradiusserver2. πproxylisten hostβ local interface IP address to use for accepting radius requests. π‘proxyport portβ UDP port to listen to for accepting radius requests. πproxyclient hostβ IP address from which radius requests are accepted. If omitted, the server will not accept radius requests. π ββοΈproxysecret secretβ radius shared secret for clients. If not specified, it defaults toradiussecret. π€«dhcpif devβ Ethernet interface to listen to for the downlink interface. This option must be specified. π¨usetapβ use the TAP interface instead of TUN (Linux only). π§noarpentriesβ do not create arp table entries when using TAP. (Linux only). π§nexthop mac-addressβ specify a MAC address which is the layer 2 next hop to route packets to (used withusetaponly). π§rtmonfile fileβ option to launch thechilli_rtmondaemon with the specified file as the update file. Thechilli_rtmondaemon will update the file with a nexthop configuration entry before sending chilli aSIGHUPto reread its configuration. πtcpwin numberβ specify an integer value for the TCP Window and TCP Maximum Segment Size. If set, packets are rewritten with the values for both Window and MSS. π¦tundev devβ the specific device to use for the TUN/TAP interface. ποΈtxqlen bytesβ the TX queue length to set on the TUN/TAP interface. πdhcpmac addressβ MAC address to listen to. If not specified, the MAC address of the interface will be used. The MAC address should be chosen so that it does not conflict with other addresses on the LAN. An address in the range00:00:5E:00:02:00-00:00:5E:FF:FF:FFfalls within the IANA range of addresses and is not allocated for other purposes. Thedhcpmacoption can be used in conjunction with access filters in the access points, or with access points which supports packet forwarding to a specific MAC address. Thus it is possible at the MAC level to separate access point management traffic from user traffic for improved system security. Thedhcpmacoption will set the interface in promisc mode. π³lease secondsβ use a DHCP lease of seconds (default600). β³dhcpstart numberβ where to start assigning IP addresses (default10). π’dhcpend numberβ where to stop assigning IP addresses (default254). π’dhcpbroadcastβ always respond to DHCP to the broadcast IP, when no relay. π’eapolenableβ if this option is given, IEEE 802.1x authentication is enabled. CoovaChilli will listen for EAP authentication requests on the interface specified bydhcpif. EAP messages received on this interface are forwarded to the radius server. πieee8021qβ option to enable support for 802.1Q/VLAN network on thedhcpifinterface. π·οΈuamserver urlβ URL of web server to use for authenticating clients. πuamhomepage urlβ URL of homepage to redirect unauthenticated users to. If not specified, this defaults touamserver. πuamaaaurl urlβ when chilli is built with the--enable-chilliproxycompile-time option, this configuration option can be used to define a URL to use for the HTTP AAA protocol described here:http://www.coova.org/CoovaChilli/Proxy. π§Ύwisprlogin urlβ a specific URL to be given in WISPr XML LoginURL. Otherwise,uamserveris used. π«uamsecret secretβ shared secret betweenuamserverand chilli. This secret should be set in order not to compromise security. πuamlisten hostβ IP address to listen to for authentication of clients. If an unauthenticated client tries to access the Internet, they will be redirected to this address. π£οΈuamport portβ TCP port to bind to for authenticating clients (default =3990). If an unauthenticated client tries to access the Internet, they will be redirected to this port on theuamlistenIP address. πͺuamuiport portβ TCP port to bind to for only serving embedded content. πΌοΈuamallowed domainβ comma separated list of resources the client can access without first authenticating. Each entry in the list can be a domain name, IP address, or network segment. Example:uamallowed www.example.com,10.11.12.0/24. Where each entry can be made more specific by specifying a protocol and port in the formathost/network:portorprotocol:host/networkorprotocol:host/network:port, where protocol is a protocol name from/etc/protocols, host/network is just as above (a domain, IP, or network), and port is a port number. Example:uamallowed www.example.com:80,icmp:www.example.com. Adding to your walled garden is useful for allowing access to credit card payment gateways, community website, or other publicly available resources. CoovaChilli resolves the domain names to a set of IP addresses during startup. Some big sites change the returned IP addresses for each lookup. This behaviour is not compatible with this option. Domain names in the list do get updated periodically based on theintervaloption. It is possible to specify theuamallowedoption several times. This is useful if many domain names have to be specified. πΊuamdomain domainβ one domain prefix per use of the option; defines a list of domain names to automatically add to the walled garden. This is done by the inspecting of DNS packets being sent back to the subscriber. π΅οΈββοΈuamregex host-pattern::path-pattern::qs-patternβ when chilli is built with the--enable-chillirediroption given to the configure script, theuamregexoption is available. The value should be a::separated list of three values; the regex patterns to match the Host header, the URL path, and the query string of the request. The patterns follow theregex(7)syntax with the addition of*meaning anything (or to not check that field) and any pattern starting with!will be negated in meaning. Example:--uamregex='.google.com$::!^mail/::*'. This will allow all requests to a.google.comhost except if the URL starts withmail(links to Gmail). π§defsessiontimeout secondsβ default session timeout (max session time) unless otherwise set by RADIUS (defaults to0, meaning unlimited). β±οΈdefidletimeout secondsβ default idle timeout (max idle time) unless otherwise set by RADIUS (defaults to0, meaning unlimited). π΄definteriminterval secondsβ default interim-interval for RADIUS accounting unless otherwise set by RADIUS (defaults to0, meaning unlimited). πdefbandwidthmaxdownβ default bandwidth max down set in bps, same asWISPr-Bandwidth-Max-Down. β¬οΈdefbandwidthmaxupβ default bandwidth max up set in bps, same asWISPr-Bandwidth-Max-Up. β¬οΈacctupdateβ allow updating of session parameters with RADIUS attributes sent in Accounting-Response. πwwwdir pathβ directory where embedded local web content is placed. This content is accessible using the URL formathttp://<uamlisten>:<uamport>/www/<filename>. πwwwbin scriptβ executable to run as a CGI type program (like haserl) for URLs with extention.chi- in the formathttp://<uamlisten>:<uamport>/www/<file>.chi. π οΈuamui scriptβ an init.d style program to handle local content on theuamuiportweb server. π§©uamanydnsβ allow any DNS server. Normally unauthenticated clients are only allowed to communicate with the DNS servers specified by thedns1anddns2options. If theuamanydnsoption is given, CoovaChilli will allow the client to use all DNS servers. This is convenient for clients which are configured to use a fixed set of DNS servers. Since the server may not be available, requests are forwarded to thedns1server. πuamlogoutip ipaddressβ use this IP address to instantly logout a client accessing it (defaults to1.0.0.0). πͺuamaliasip ipaddressβ a special IP address that will always get hijacked to the UAM server (either to theuamuiport, if defined, otherwiseuamport; defaults to1.0.0.1). πͺuamaliasname nameβ an (unqualified, so no dots) hostname that is used as a DNS alias for theuamaliasipdefined above. Any DNS request for this hostname, or this hostname under the domain will be returned with theuamaliasipIP address. π·οΈdnsparanoiaβ inspect DNS packets and drop responses with any non-A,CNAME,SOA, orMXrecords (to prevent dns tunnels; experimental). π¨domaindnslocalβ option to have chilli return theuamaliasipfor all DNS requests for a hostname under the domain that is configured. π‘uamanyipβ allow clients to use any IP settings they wish by spoofing ARP (experimental). π§ͺnouamsuccessβ no bouncing back to the UAM server after a successful login</p>, bestie; just redirect to the original URL. πnouamwisprβ skip WISPr XML completely and assume the back-end is handling it instead. No cap.usestatusfileβ write the status of clients into a non-volatile state file. (experimental β literally flagged experimental, so vibe-check before relying on it.)chillixmlβ return the so-called Chilli XML along with WISPr XML. β¨macauthβ if this option is given, CoovaChilli tries to authenticate all users based on their MAC address alone. TheUser-Namesent to the RADIUS server consists of the MAC address plus an optional suffix specified by themacsuffixoption. Ifmacauthis specified,macallowedis ignored. πmacallowedmac β list of MAC addresses for which MAC authentication will be performed. Example:
macallowed 00-0A-5E-AC-BE-51,00-30-1B-3C-32-E9
The User-Name sent to the RADIUS server consists of the MAC address plus an optional suffix specified by the macsuffix option. If macauth is specified, macallowed is ignored. You can specify macallowed several times β useful when lots of MAC addresses have to be specified. π«Ά
macsuffixsuffix β suffix to add to the MAC address to form theUser-Namethat gets sent to the RADIUS server.macpasswdpassword β password used when performing MAC authentication. Default ispassword.macallowlocalβ allow MAC authentication based onmacallowedwithout using RADIUS authentication.ethersfile β a file containing MAC address and IP address mappings for DHCP allocation. It should be formatted as:
00-XX-XX-XX-XX-XX IP.IP.IP.IP
localusersfile β a colon-separated file containing usernames and passwords of locally authenticated users.postauthproxyipaddress β used together withpostauthproxyportto define a post-authentication HTTP proxy server.postauthproxyportport β used together withpostauthproxyto define a post-authentication HTTP proxy server.locationnamename β human-readable location name used in the JSON interface.papalwaysokβ (now deprecated; always on) was used to allow PAP authentication. Itβs always on now, bestie β no switch to flip.
π SSL OPTIONS π
The following options are available when chilli is built with SSL support. Slay, but only if you compiled it that way. π
sslkeyfilefilename β defines the location of the PEM-formatted private key file.sslkeypasspassword β the password, if any, that protects the private key.sslcertfilefilename β defines the location of the PEM-formatted certificate file.sslcafilefilename β defines the location of the PEM-formatted CA certificate file.sslciphersciphers β defines the ciphers that will be used.redirsslβ when set, HTTPS requests by unauthorized clients get hijacked instead of dropped. Requires at leastsslkeyfileandsslcertfileto be defined. Hijacked, not dropped β noted.uamuisslβ when set,uamuiportis enabled with SSL. Requires at leastsslkeyfileandsslcertfileto be defined.radsecβ when set, a RadSec RADIUS tunnel is established. Requires at leastsslkeyfile,sslcertfile, andsslcafileto be defined.
π FILES π
/etc/chilli.confβ the main chilli configuration file. By default, this file includes three other files:main.conf,hs.conf, andlocal.conf. Themain.confandhs.conffiles are created by the shell script routines infunctionsbased on configurations in the files mentioned below, and can possibly take some configurations from a remote RADIUS server or URL. Thelocal.conffile is reserved for location-specific configurations. π/etc/chilli/defaultsβ default configurations used by the chilliinit.dandfunctionsscripts when creating the actual configuration files. See the comments in this file for more information on how to configure chilli and related scripts and embedded content./etc/chilli/configβ location-specific configurations used by the chilliinit.dandfunctionsscripts. Copy the defaults file mentioned above and edit it. This file is loaded after the defaults and thus will override settings./etc/chilli/functionsβ helps configure chilli by loading the above configurations, sets some defaults, and provides functions for writingmain.conf,hs.conf, andlocal.confbased on local and possibly centralized settings./etc/init.d/chilliβ theinit.dfile for chilli, which defaults to using the above configurations to build a set of configuration files in the/etc/chillidirectory β taking local configurations and optionally centralized configurations from RADIUS or a URL. π₯
π SEE ALSO π
π NOTES π
See http://coova.github.io/ for further documentation and community support. β¨
π AUTHORS π
David Bird β <david@coova.com>
Copyright (C) 2002-2005 by Mondru AB., 2006-2012 David Bird (Coova Technologies) All rights reserved.
CoovaChilli is licensed under the GNU General Public License.
Okay thatβs the whole thing, bestie β source/version chilli.conf(5), dated August 2007 π«Άβ¨
π¦ where this page comes from
- alpine 3.24: coova-chilli-doc 1.7-r0 Β· GPL-3.0-or-later
- Copyright (C) 2002, 2003, 2004, 2005 Mondru AB
- Copyright (C) 2007-2012 David Bird (Coova Technologies)
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms