LEDE/OpenWRT — Multiple SSIDs

CT WiFi
LEDE/OpenWrt & IoT
Published in
4 min readMar 2, 2016

This guide will show you how to set up a second (and in turn multiple) SSID for your network.

In this example we will be creating an SSID for guest access, separate from your own private SSID.

SSH to your LEDE/OpenWRT device

If you are using Windows then start PuTTY and click Session on the left side, select SSH from the options, and then enter in the IP Address of your LEDE/OpenWRT box into the Host Name field.

Once you’ve done this just click on Open to start up the SSH connection.

PuTTY

If you are connecting via terminal, then just SSH to your LEDE/OpenWRT device using the following command, where 192.168.1.1 is your LEDE/OpenWRT device’s IP address.

ssh root@192.168.1.1

Create a new network interface

First we need to define a new interface in our network config, so run the following command:

vi /etc/config/network

Now that you have the network config file open, we can add in the following new interface which we are going to name ‘public’.

config 'interface' 'public'
option 'proto' 'static'
option 'ipaddr' '10.0.0.1'
option 'netmask' '255.255.255.0'

Create a new network

Next up we want to create the new guest network/SSID.

Run the following command

vi /etc/config/wireless

Now you can simply copy and paste the existing ‘wifi-iface’ section and change a couple things.

option ‘device’ — Change this to the name of the radio you want to broadcast this network.

option ‘network’ — Change this to the name of the interface you created previously.

option ‘ssid’ — Change to the name you want guests to see when looking for your network.

option ‘isolate’ 1 — add this to the config to prevent clients on the network from connecting to each other.

You should end up with something like the following:

config 'wifi-iface'
option 'device' 'wifi0'
option 'mode' 'ap'
option 'network' 'public'
option 'ssid' 'Guest_WiFi'
option 'encryption' 'none'
option 'isolate' 1

Define a new DHCP pool

If you want DHCP on your guest network, then we will need to make a couple additions to the DHCP config.

Run the following command:

vi /etc/config/dhcp

This will open the DHCP config where you will need to add in the following:

config 'dhcp' 'public'
option 'interface' 'public'
option 'start' '50'
option 'limit' '200'
option 'leasetime' '1h'

Set option ‘interface’ to the name of the network interface you created at the start.

Define firewall rules

Now we need to secure the public guest network. So run the following command to open the firewall config:

vi /etc/config/firewall

To err on the side of caution, we want to allow guests to the web via http and https, but do not want them to have access to the LAN or anything else.

Add a new zone section for the ‘public’ interface. We are going to allow SSH, DNS and DHCP to the guests, and allow guests http and https to the outside world. Then we want to block everything else.

  config zone                                     
option name 'public'
option network 'public'
option forward 'REJECT'
option output 'ACCEPT'
option input 'REJECT'

config forwarding
option src 'public'
option dest 'wan'

config rule
option src 'public'
option src_port '67-68'
option dest_port '67-68'
option proto 'udp'
option target 'ACCEPT'
option name 'Allow DHCP request'

config rule
option src 'public'
option dest_port '53'
option proto 'tcpudp'
option target 'ACCEPT'
option name 'Allow DNS Queries'

config rule
option src 'public'
option dest 'lan'
option name 'Deny Guest on LAN'
option proto 'all'
option target 'DROP'

config rule
option target 'ACCEPT'
option src 'public'
option dest 'wan'
option name 'Allow Guest on WAN http'
option proto 'tcp'
option dest_port '80'

config rule
option target 'ACCEPT'
option src 'public'
option dest 'wan'
option name 'Allow Guest on WAN https'
option proto 'tcp'
option dest_port '443'

config rule
option src 'public'
option dest 'wan'
option name 'Deny Guest on WAN'
option proto 'all'
option target 'DROP'

After making all of these changes, you will need to either restart the processes or reboot your box.

To restart the processes run the following commands:

/etc/init.d/dnsmasq restart
/etc/init.d/firewall restart
/etc/init.d/network restart

(Optional) Limit guest broadband connection

If you are running a public connection for users it is advised, but not necessary, to limit their broadband usage to limit abuse of your network.

There is a handy package you can install to manage this easily. Run the following command:

opkg install wshaper

Once the package is installed, run the following command:

vi /etc/config/wshaper

Set the network option to the name of the network interface you created at the start, and adjust the downlink and uplink options to the download and upload speed limits you want to apply (in kbit).

config wshaper 'settings'
option network 'public'
option downlink '1024'
option uplink '512'

If you found this post helpful please let us know by clicking the ♥ below.

This blog was brought to you by Cucumber Wi-Fi. Cucumber helps you run a more efficient Wi-Fi network. Check it out here.

Cucumber Wi-Fi — control any (Wi-Fi) device from the cloud.

--

--

CT WiFi
LEDE/OpenWrt & IoT

An orchestration tool for WiFi devices — Manage your networks from a single-pane of glass.