Counters Edit radius.conf file Around line 710 in the instantiate section make sure you have, chillispot_max_bytes noresetcounter which are our counters which we define in the next section. Then in /etc/freeradius/sites-available/default, in the authorize section after it has the "Look in an SQL database..." it has an "sql" entry that may be commented out so uncomment it and add the new counters so that it is now, sql chillispot_max_bytes noresetcounter That should be it. Now update the counter.conf in the next section. https://ubuntuforums.org/showthread.php?t=2070298 IPtables The creators of CoovaChilli have predefined rules for iptables, but their script needs a little help before it works. CoovaChilli's iptables config is done in the /etc/chilli/up.sh script which runs after the tun interface is up, so that the exact tun interface is known. /etc/chilli/up.sh calls /etc/chilli/ipup.sh, if it exists. By default, it does not. If you need to run your own commands after the main iptables configuration is done, create /etc/chilli/ipup.sh and populate it however you like, being sure to make it executable (chmod +x /etc/chilli/ipup.sh) when done. create /etc/chilli/ipup.sh with the following content: # force-add the final rule necessary to fix routing tables iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE 142 nano /etc/chilli/ipup.sh 143 chmod +x /etc/chilli/ipup.sh Now for adding users to freeradius. What I do is I delete the file /etc/freeradius/users and just create a new file, and start fresh. Here is the format used for user accounts: useraccountname Cleartext-Password := "userpass1" Simultaneous-Use = 999999, Idle-Timeout = 86400, Acct-Interim-Interval = 120, WISPr-Bandwidth-Max-Down = 1236000, WISPr-Bandwidth-Max-Up = 600000 so as you can guess useraccountname is the name of the user, and userpass1 is the password for that account. For the rest of the stuff Simultaneous-Use = How many times the same account can be logged in at once. Idle-Timeout = How long it will wait to logout the user after idling, in seconds. Acct-Interm-Interval = the number of seconds between each interim update in seconds for a specific session. WISPr-Bandwidth-Max-Down = The max allowed download speed, in bits (not kilobits) WISPr-Bandwidth-Max-Up = The max allowed upload speed, in bits So with this, create as many users as you want to use. If you don’t want to limit a users speed, or timeout, then just don’t add those lines to that user and it won’t apply. in /etc/default/chilli START_CHILLI=1 Edit /etc/chilli/defaults to your configurations: HS_LANIF=eth1 # Subscriber Interface for client devices HS_NETWORK=10.1.0.0 # HotSpot Network (must include HS_UAMLISTEN) HS_NETMASK=255.255.255.0 # HotSpot Network Netmask HS_UAMLISTEN=10.1.0.1 # HotSpot IP Address (on subscriber network) HS_UAMPORT=3990 # HotSpot UAM Port (on subscriber network) HS_UAMUIPORT=4990 # HotSpot UAM "UI" Port (on subscriber network, for embedded portal) HS_RADSECRET=myradiussecret # Set to be your RADIUS shared secret HS_UAMSECRET=uamsecret # Set to be your UAM secret HS_UAMSERVER=$HS_UAMLISTEN HS_UAMFORMAT=http://\$HS_UAMLISTEN/hotspotlogin/hotspotlogin.php HS_UAMHOMEPAGE=http://\$HS_UAMLISTEN:\$HS_UAMPORT/prelogin HS_TCP_PORTS="80" HS_ADMUSR=chillispot HS_ADMPWD=chillispot Create the file /etc/chilli/ipup.sh with execution permission: #Enable NAT iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE #Others iptables rules when chilli come up http://scordialinux.lucylaika.ovh/2015/05/debian-wifi-hotspot-with-coovachilli-freeradius-mysql-and-daloradius/