Separate LAN and WLAN

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 09:23, 15 May 2010 (edit)
Phuzi0n (Talk | contribs)

← Previous diff
Revision as of 09:26, 15 May 2010 (edit) (undo)
Phuzi0n (Talk | contribs)
(Step 2: Add DHCP for the unbridged WLAN interface - finish updating to use a bridge interface because some hardware still has problems unbridging directly)
Next diff →
Line 41: Line 41:
# Adjust the following options to fit your environment (omit the comments starting with '#'): # Adjust the following options to fit your environment (omit the comments starting with '#'):
- # Enables DHCP on the wireless LAN+ # Enables DHCP on br1
- interface=eth0+ interface=br1
- # Set the WLAN default gateway+ # Set the default gateway for br1 clients
- dhcp-option=eth0,3,192.168.2.1+ dhcp-option=br1,3,192.168.2.1
- # Set the DHCP range and default lease time of 24 hours+ # Set the DHCP range and default lease time of 24 hours for br1 clients
- dhcp-range=eth0,192.168.2.100,192.168.2.150,255.255.255.0,24h+ dhcp-range=br1,192.168.2.100,192.168.2.150,255.255.255.0,24h
 + 

Revision as of 09:26, 15 May 2010

Contents

Introduction

This guide explains how to separate the wireless interface from the "LAN&WLAN" bridge so that they are on different subnets. You are then able to control communication between the interfaces using iptables commands.

Note: If you're separating virtual interfaces then use the instructions from the Multiple WLAN Guide.

Preparation

Go to the Administration -> Commands page, insert the command below, and press the Run Commands button to find out the actual name of your wl0 interface. If you have a wl1 interface that you want to unbridge then change the command accordingly.

nvram get wl0_ifname

Configuration

Step 1: Remove the Wireless Interface from the LAN bridge

  1. Navigate to the Setup -> Networking page.
  2. Press the Add button in the Create Bridge section
  3. Type "br1" into the blank input box that is on the left side of all the options that just appeared.
  4. Press the Apply Settings button at the bottom of the page and new input boxes will appear.
  5. Set an IP Address that is in an unused subnet. ie. 192.168.2.1
  6. Set the Subnet Mask to 255.255.255.0
  7. Press the Apply Settings button again so that the IP address will be assigned to the br1 interface before you continue.

Image:MultiWLAN_create_bridge.png

  1. Press the Add button in the Assign to Bridge section.
  2. Select br1 in the left drop down menu that appeared and in the middle menu select the name of your wireless interface that you discovered during the preparation.
  3. Press the Apply Settings button and the wireless interface will now be moved from br0 to br1.

Image:MultiWLAN_assign_bridge.png

Step 2: Add DHCP for the unbridged WLAN interface

  1. Press the Add button in the Multiple DHCP Server section.
  2. Select br1 in the left drop down menu that appeared.
  3. Press the Apply Settings button to finish enabling the DHCP server for the wireless interface.

Image:MultiWLAN_add_dhcp.png


If DHCP is disabled on your main LAN in Basic Setup, then the Multiple DHCP method above will not work. Instead you will need to use Additional DNSMasq Options.

  1. Go to the Services tab and find the Additional DNSMasq Options text area.
  2. Adjust the following options to fit your environment (omit the comments starting with '#'):
# Enables DHCP on br1
interface=br1
# Set the default gateway for br1 clients
dhcp-option=br1,3,192.168.2.1
# Set the DHCP range and default lease time of 24 hours for br1 clients
dhcp-range=br1,192.168.2.100,192.168.2.150,255.255.255.0,24h


Make sure that you can connect to the unbridged wireless interface, receive a DHCP lease, and browse the network/internet before you do anything further.

Step 3: Controlling Access

Now that you have your WLAN separated you can start limiting what access it has. Here are several iptables commands that you can save to your firewall script on the Administration -> Commands page. These commands are written in the same order that the should appear in your firewall script, changing the order can affect the way that they work. Mix and match them however you like, just be sure to keep them in the order they appear on this page.

If you have any problems with your firewall script, then create a forum thread and be sure to describe in great detail what you're trying to do, what it is actually doing, and post your firewall script.


Allow br1 access to br0, the WAN, and any other subnets (required if SPI firewall is on)

iptables -I FORWARD -i br1 -m state --state NEW -j ACCEPT
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu


Restrict br1 from accessing br0 (do not use on WAP's)

iptables -I FORWARD -i br1 -o br0 -m state --state NEW -j DROP


Restrict br0 from accessing br1

iptables -I FORWARD -i br0 -o br1 -m state --state NEW -j DROP


Restrict br1 from accessing the WAN port (no internet access!)

iptables -I FORWARD -i br1 -o `nvram get wan_iface` -j DROP


Restrict br1 from accessing br0's subnet but pass traffic through br0 to the internet (for WAP's - WAN port disabled)

iptables -I FORWARD -i br1 -d `nvram get lan_ipaddr`/`nvram get lan_netmask` -m state --state NEW -j DROP


Enable NAT for traffic being routed out br0 so that br1 has connectivity (for WAP's - WAN port disabled)

iptables -t nat -I POSTROUTING -o br0 -j SNAT --to `nvram get lan_ipaddr`


Restrict br1 from accessing the router's local sockets (software running on the router)

iptables -I INPUT -i br1 -m state --state NEW -j DROP


Allow br1 to access DHCP on the router

iptables -I INPUT -i br1 -p udp --dport 67 -j ACCEPT


Allow br1 to access DNS on the router

iptables -I INPUT -i br1 -p udp --dport 53 -j ACCEPT
iptables -I INPUT -i br1 -p tcp --dport 53 -j ACCEPT

References