Changes between Version 62 and Version 63 of WikiStart


Ignore:
Timestamp:
May 21, 2013, 2:11:10 PM (12 years ago)
Author:
walter
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v62 v63  
    5050Voor het opleveren van veel AP's (batches) met unieke instelligen zal er uiteindelijk een configuratie script volgen waarmee op basis van het MAC-adres van het AP een aantal unieke parameters meegegeven kunnen worden voor de configuratie: MultiSSID, hostname, kanaal, ipadres(bedraad/draadloos), etc... vergeet de unieke openvpn client certificaten niet, tevens zouden er per AP unieke client gegevens om met de radius-proxy/server te communiceren gemaakt kunnen worden.
    5151
    52 Door het gebruik van het opensource software [http://www.openwrt.org OpenWRT], [http://www.freebsd.org FREEBSD]/[http://www.debian.org Debian] en gerelateerde software projecten (isc-, is deze setup niet gelimiteerd aan een enkel merk en of type hardware. Een kleine aanpassing aan de configuratie bestanden zou een vereiste kunnen zijn voordat het op ander hardware platvorm werkt. Deze handleiding zal overigens alleen toegespitst zijn op Ubiquiti AP's zoals Bullet m2 HP/ Nano station/loco m2 en via-epia-m/alixboard als radiusproxy/server & gateway. Als uitgangssituatie om deze handleiding uit te voeren word ubuntu 12.04LTS AMD64 gebruikt!
     52Door het gebruik van het opensource software [http://www.openwrt.org OpenWRT], [http://www.freebsd.org FREEBSD]/[http://www.debian.org Debian] en gerelateerde software projecten (isc-dhcp-server/freeradius/openvpn/, is deze setup niet gelimiteerd aan een enkel merk en of type hardware. Een kleine aanpassing aan de configuratie bestanden zou een vereiste kunnen zijn voordat het op ander hardware platvorm werkt. Deze handleiding zal overigens alleen toegespitst zijn op Ubiquiti AP's zoals Bullet m2 HP/ Nano station/loco m2 en via-epia-m/alixboard als radiusproxy/server & gateway. Als uitgangssituatie om deze handleiding uit te voeren word ubuntu 12.04LTS AMD64 gebruikt!
    5353
    5454*Wat niet behandeld gaat worden is het aanmaken van een user-database/list voor de radius server, aangezien alle users extern via proxy geauthenticeerd worden en niet intern want Wireless Leiden is geen eduroam identityprovider!
     
    5656=== 1 setup eduroam !AccessPoints ===
    5757==== 1.1 hardware & software ====
    58 Het !AccessPoint zal met multiSSID ingesteld worden en bridged al het wireless verkeer van de beveiligde "eduroam" SSID via een openvpn tunnel naar de "radius-server/proxy & gateway". Het wireless verkeer van de open "ap.wlgst-bridge.wleiden.net" SSID kan via interne NAT/routing afgehandeld worden of via een bridge direct een Wireless Leiden node in die reeds met DHCP, DNS, routing en captive portal is uitgerust.
     58Het !AccessPoint zal met multiSSID ingesteld worden en bridged al het wireless verkeer van de beveiligde SSID "eduroam" SSID via een openvpn tunnel naar de "radius-server/proxy & gateway". Het wireless verkeer van de tweede virtuele open SSID "ap.wlgst-bridge.wleiden.net" zal in de voorbeeld configuratie "1.2a" via bridging direct een Wireless Leiden node ingaan die reeds zelf al met DHCP, DNS, routing en natuurlijk captive portal is uitgerust. Voor de configuratie zonder bridging van het tweede virtuele SSID, maar met een eigen interne nat/routing word in 1.2b de wijzigingen t.o.v. 1.2a doorgegeven. In 1.2c word uitgelegd hoe je direct op AirOS zelf een eduroam hotspot kan realiseren.
    5959
    6060In tegenstelling tot de oude handleiding(onderaan deze pagina) word momenteel gebruik gemaakt van een "fixed" OpenWRT releases waaronder Backfire 10.03.1 of zelfs Atitude Adjustment 12.0.9 final. Dit niet alleen omdat het bouwen van een custombuild onnodig is geworden omdat "openvpn" inmiddels als pakket direct gebruiksklaar en beschikbaar is voor de 10.03.1 en 12.09 releases. Maar vooral omdat compileren van een openwrt image & build omgeving erg veel tijd, moeite en veel variabelen introduceert in een al/nog experimentele infrastructuur. Met fixed releases kan in minder dan 5 minuten direct een werkend accesspoint prototype gerealiseerd worden en dat zelfs voor verschillende type architecturen accesspoints (arm/mips/x86/etc, mits daar openwrt images voor zijn)! Wel zou via custom gecompileerde releases het geheugen gebruik en processor belasting geoptimaliseerd kunnen worden door het weglaten van ongebruikte pakketten. *Update, inmiddels is het ook al direct mogelijk om via AirOS software dat standaard al op Ubiquiti AP's aanwezig een "eduroam" hotspot met wpa2 enterprise en radiusclient functie te maken (enkel openvpn ontbreekt)!
     
    6262Met deze flexibele fundering is het doel om accesspoints die maar in sumiere opzichten van elkaar hoeven te verschillen zo gemakkelijk en snel mogelijk in grote hoeveelheden geautomatiseerd te kunnen configureren. Het verschil tussen de accesspoints komt deels uit hoek van beveiliging, deels uit de hoek van locatie en natuurlijk de toepassing. Als een enkel accesspoint gehackt is kan deze los van de andere accesspoint toegang tot de radius proxy ontzegt worden, (door zijn openvpn sleutel in te trekken) daardoor zijn de andere accesspoints nog operationeel. Als toepassing is het handig dat het eduroam accesspoint op de burcht in Leiden als multi-SSID "ap.burcht.wleiden.net" heet en de eduroam accesspoint bij de Hortus Botanicus als multi-SSID "ap.hortusbotanicus.wleiden.net". Als toepassing kan het wenselijk zijn kleine / goedkopere AP's te monteren op plaatsen waar grote AP's met losse sector antennes niet mogelijk zijn en natuurlijk niet te vergeten de beschikbare wifi kanalen 1,6,11. Voor ieder AP zullen unieke openvpn certifacten gebruikt worden. Deze voorbeelden duiden erop dat er toch kleine specifieke wijzigingen tussen de !AccessPoints configuratie bestanden wenselijk zijn. Samengevat, er zal eerst handmatig een work-template opgezet worden waarmee een eduroam AP ingericht kan worden. Dit vormt dan de generieke basis voor een gescripte en automatische configuratie van veel AP's tegelijk die onderling kleine specifieke aanpassingen kunnen bevatten.
    6363
    64 ==== 1.2a fixed OpenWRT release ====
     64==== 1.2a fixed OpenWRT release bridged ====
    6565The following shell commands will first locally download the OpenWRT "Backfire" image and its packages, than flash the image, configure its packages, backup original config files so you must use them as a work-template for your own custom deployment! This work-template will form the generic base of a possible batch configure/deploy script to allow huge amount of AP's to be configured in one instance, with each little specific customisations. Instead of the Backfire 10.03.1 release also Attitude Adjustment 12.09 can be used, just change the download links for the image and packages you need!
    6666
     
    161161        option filterwin2k      0  # enable for dial on demand
    162162        option localise_queries 1
    163         option rebind_protection 1  #! disable if upstream must serve RFC1918 addresses #change to 0 if local dns "wleiden.net" won't resolve <---
     163        option rebind_protection 1  #! change to 0 if local dns "wleiden.net" won't resolve <---
    164164        option rebind_localhost 1  # enable for RBL checking and similar services
    165165        #list rebind_domain example.lan  # whitelist RFC1918 responses for domains
     
    178178        #list bogusnxdomain     '64.94.110.11'
    179179
    180 config dhcp lan #! I doubt this one is even used... <---
     180config dhcp lan
    181181        option interface        lan
    182         option ignore   1
     182        option ignore   1 #! I doubt this one is even used... <---
    183183#!      option start    100
    184184#!      option limit    150
     
    188188        option interface        wan
    189189        option ignore   1
    190 
    191 #!Add extra dhcp-server for multiSSID hotspot if not bridging <---
    192 #!config dhcp wlgst
    193 #!        option interface        wlgst
    194 #!        option start  5
    195 #!      option limit    252
    196 #!      option leasetime        1h
    197190}}}
    198191
     
    216209config zone
    217210        option name             wan
    218         option network          'wan' #!was eth0 <---
     211        option network          'wan' #!was eth0 for bullet <---
    219212        option input            REJECT
    220213        option output           ACCEPT
     
    223216        option mtu_fix          1
    224217
    225 #! Allow multiSSID wlgst zone if not bridging <---
    226 #!config zone
    227 #!      option name             wlgst
    228 #!      option input            REJECT
    229 #!      option forward          REJECT
    230 #!      option output           ACCEPT
    231 
    232 # Changing eth0 > wan made all these rules active!
    233 # Allow SSH
     218#! Allow SSH <---
    234219config rule
    235220        option src              wan
     
    241226        option src              lan
    242227        option dest             wan
    243 
    244 #! Allow multiSSID wlgst to internet on wan <---
    245 #!config        forwarding
    246 #!      option src      wlgst
    247 #!      option dest     wan
    248 
    249 #! Allow multiSSID wlgst to DNS <---
    250 #! Client DNS queries ordinate from dynamic UDP ports (>1023)
    251 #!config        rule
    252 #!      option src              wlgst
    253 #!      option dest_port        53
    254 #!      option proto            tcpudp
    255 #!      option target           ACCEPT
    256 
    257 #! Allow multiSSID wlgst to DHCP -> Router <---
    258 #! DHCP communication uses UDP ports 67-68
    259 #!config        rule
    260 #!      option src      wlgst
    261 #!      option src_port 67-68
    262 #!      option dest_port        67-68
    263 #!      option proto    udp
    264 #!      option target   ACCEPT
    265228
    266229# We need to accept udp packets on port 68,
     
    359322        option ifname   wlan0
    360323        option type     bridge
    361 #       option proto    dhcp #!TODO by this the AP's also get a real dhcp lease from the server, mac prefix range?
    362        
    363 
    364 #!Add this interface if you internally NAT/Route the 2nd multiSSID instead of bridge <---
    365 #!config interface wlgst
    366 #!      #option ifname  wlgst
    367 #!      #option type    bridge
    368 #!      option proto    static
    369 #!      option ipaddr   192.168.5.1
    370 #!      option netmask  255.255.255.0
     324#!       option proto    dhcp #!This makes the AP openvpn interface get a dhcp lease
     325#!       option gateway  0.0.0.0 #!This fixes that the default route of the AP alters to the one supplied by the eduradprox, wont work on all devices?!         
    371326}}}
    372327
     
    552507while [ true ]; do
    553508  if [ -z "$(pid)" ]; then
    554     ifconfig br-wan | grep -q inet\  || udhcpc #! use 'eth0' in nat-wlgst multiSSID mode! <---
     509    ifconfig br-wan | grep -q inet\  || udhcpc #! use eth0 if interface wan not a bridge, reason still not understood! <---
    555510    /etc/init.d/sysntpd start > /dev/null
    556511    /usr/sbin/openvpn $@
     
    566521#TODO don't understand how ip of AP for the tunnel is created/assigned?
    567522#Multiple AP devices work, but may conflict with dhcplease range of wireless clients?
    568 #remove ${IP} and add proto dhcp to lan /etc/config/network
     523#remove ${IP} in here and uncomment proto dhcp to lan see /etc/config/network
    569524
    570525FROM=3
     
    589544chmod +x customize/usr/sbin/iopenvpn
    590545chmod +x customize/sbin/wifi-update
     546chmod +x customize/sbin/openvpn-update
    591547chmod +x customize/etc/init.d/sysntpd
    592548chmod +x customize/etc/init.d/openvpn
     
    622578}}}
    623579
    624 ==== 1.2b default Ubiquiti AirOS ====
     580==== 1.2b fixed Openwrt release nat/routed ====
     581Use these configuration examples as a replacement to the examples from the previous 1.2a configuration to replace bridging by internal nat/routing for the second virtual open SSID "ap.wlgst-bridge.wleiden.net".
     582
     583
     584#example code# /etc/config/dhcp
     585{{{
     586config dnsmasq
     587        option domainneeded     1
     588        option boguspriv        1
     589        option filterwin2k      0  # enable for dial on demand
     590        option localise_queries 1
     591        option rebind_protection 1  #! change to 0 if local dns "wleiden.net" won't resolve <---
     592        option rebind_localhost 1  # enable for RBL checking and similar services
     593        #list rebind_domain example.lan  # whitelist RFC1918 responses for domains
     594        option local    '/lan/'
     595        option domain   'lan'
     596        option expandhosts      1
     597        option nonegcache       0
     598        option authoritative    1
     599        option readethers       1
     600        option leasefile        '/tmp/dhcp.leases'
     601        option resolvfile       '/tmp/resolv.conf.auto'
     602        #list server            '/mycompany.local/1.2.3.4'
     603        #option nonwildcard     1
     604        #list interface         br-lan
     605        #list notinterface      lo
     606        #list bogusnxdomain     '64.94.110.11'
     607
     608config dhcp lan
     609        option interface        lan
     610        option ignore   1 #! I doubt this one is even used... <---
     611#!      option start    100
     612#!      option limit    150
     613#!      option leasetime        12h
     614
     615config dhcp wan
     616        option interface        wan
     617        option ignore   1
     618
     619#! Add extra dhcp-server for multiSSID hotspot when using nat <---
     620config dhcp wlgst
     621        option interface        wlgst
     622        option start    5
     623        option limit    252
     624        option leasetime        1h
     625}}}
     626
     627#example code# /etc/config/firewall
     628{{{
     629config defaults
     630        option syn_flood        1
     631        option input            ACCEPT
     632        option output           ACCEPT
     633        option forward          REJECT
     634# Uncomment this line to disable ipv6 rules
     635#       option disable_ipv6     1
     636
     637config zone
     638        option name             lan
     639        option network          'lan'
     640        option input            ACCEPT
     641        option output           ACCEPT
     642        option forward          REJECT
     643
     644config zone
     645        option name             wan
     646        option network          'wan' #!was eth0 for bullet <---
     647        option input            REJECT
     648        option output           ACCEPT
     649        option forward          REJECT
     650        option masq             1
     651        option mtu_fix          1
     652
     653#! Allow SSH <---
     654config rule
     655        option src              wan
     656        option proto            tcp
     657        option dest_port        ssh
     658        option target           ACCEPT
     659
     660config forwarding
     661        option src              lan
     662        option dest             wan
     663
     664#! Allow multiSSID wlgst zone if not bridging <---
     665config zone
     666        option name             wlgst
     667        option input            REJECT
     668        option forward          REJECT
     669        option output           ACCEPT
     670
     671#! Allow multiSSID wlgst to internet on wan <---
     672config  forwarding
     673        option src      wlgst
     674        option dest     wan
     675
     676#! Allow multiSSID wlgst to DNS <---
     677#! Client DNS queries ordinate from dynamic UDP ports (>1023)
     678config  rule
     679        option src              wlgst
     680        option dest_port        53
     681        option proto            tcpudp
     682        option target           ACCEPT
     683
     684#! Allow multiSSID wlgst to DHCP -> Router <---
     685#! DHCP communication uses UDP ports 67-68
     686config  rule
     687        option src      wlgst
     688        option src_port 67-68
     689        option dest_port        67-68
     690        option proto    udp
     691        option target   ACCEPT
     692
     693# We need to accept udp packets on port 68,
     694# see https://dev.openwrt.org/ticket/4108
     695config rule
     696        option name             Allow-DHCP-Renew
     697        option src              wan
     698        option proto            udp
     699        option dest_port        68
     700        option target           ACCEPT
     701        option family           ipv4
     702
     703# Allow IPv4 ping
     704config rule
     705        option name             Allow-Ping
     706        option src              wan
     707        option proto            icmp
     708        option icmp_type        echo-request
     709        option family           ipv4
     710        option target           ACCEPT
     711
     712# Allow DHCPv6 replies
     713# see https://dev.openwrt.org/ticket/10381
     714config rule
     715        option name             Allow-DHCPv6
     716        option src              wan
     717        option proto            udp
     718        option src_ip           fe80::/10
     719        option src_port         547
     720        option dest_ip          fe80::/10
     721        option dest_port        546
     722        option family           ipv6
     723        option target           ACCEPT
     724
     725# Allow essential incoming IPv6 ICMP traffic
     726config rule
     727        option name             Allow-ICMPv6-Input
     728        option src              wan
     729        option proto    icmp
     730        list icmp_type          echo-request
     731        list icmp_type          destination-unreachable
     732        list icmp_type          packet-too-big
     733        list icmp_type          time-exceeded
     734        list icmp_type          bad-header
     735        list icmp_type          unknown-header-type
     736        list icmp_type          router-solicitation
     737        list icmp_type          neighbour-solicitation
     738        option limit            1000/sec
     739        option family           ipv6
     740        option target           ACCEPT
     741
     742# Allow essential forwarded IPv6 ICMP traffic
     743config rule                                   
     744        option name             Allow-ICMPv6-Forward
     745        option src              wan
     746        option dest             *
     747        option proto            icmp
     748        list icmp_type          echo-request
     749        list icmp_type          destination-unreachable
     750        list icmp_type          packet-too-big
     751        list icmp_type          time-exceeded
     752        list icmp_type          bad-header
     753        list icmp_type          unknown-header-type
     754        option limit            1000/sec
     755        option family           ipv6
     756        option target           ACCEPT
     757
     758# include a file with users custom iptables rules
     759config include
     760        option path /etc/firewall.user
     761}}}
     762
     763#example code# /etc/config/network
     764{{{
     765# Copyright (C) 2006 OpenWrt.org
     766
     767config interface loopback
     768        option ifname   lo
     769        option proto    static
     770        option ipaddr   127.0.0.1
     771        option netmask  255.0.0.0
     772
     773#!this interface is wired to the Wireless Leiden infrastructure!
     774config interface wan #!interface name wan vs eth0 applies /etc/config/firewall rules <---
     775        option ifname   eth0
     776        option type     bridge #! use bridge to forward DHCP,DNS,captive portal,etc from Wireless Leiden node to 2nd multiSSID <---
     777        option proto    dhcp
     778#       option peerdns  172.16.6.9 #! if dhcp is used, local dns wleiden.net resolve fix?<---
     779#       option proto    static #! Unique static ip vs dhcp! <---
     780#       option ipaddr   172.16.6.13 #! Unique ip settings differ! <---
     781#       option netmask  255.255.255.248 #! Unique ip settings differ! <---
     782#       option gateway  172.16.6.9 #! Unique ip settings differ! <---
     783#       option dns      172.16.6.9 #! Unique ip settings differ! <--- do you run your own dns server? otherwise 8.8.8.8 
     784       
     785config interface lan
     786        option ifname   wlan0
     787        option type     bridge
     788#!       option proto    dhcp #!This makes the AP openvpn interface get a real dhcp lease
     789#!       option gateway  0.0.0.0 #!This fixes that the default route of the AP alters to the one supplied by the eduradprox, wont work on all devices?!         
     790
     791#!Add this interface if you internally NAT/Route the 2nd multiSSID <---
     792config interface wlgst
     793        #option ifname  wlgst
     794        #option type    bridge
     795        option proto    static
     796        option ipaddr   192.168.5.1
     797        option netmask  255.255.255.0
     798}}}
     799
     800==== 1.2c default Ubiquiti AirOS ====
    625801De huidige 5.5.4 Ubiquiti AirOS software maakt het mogelijk het AP direct als radius "client" te laten fungeren. Dit is handig voor snel testen of uitrollen van inpandige afgeschermde infrastructuur waarbij het encrypten van het radius en internet verkeer via openvpn niet nodig is! Het is zo eenvoudig dat je enkel na het resetten van het apparaat, hem als normaal AP configureert(vergeet Airmax niet uit te zetten!) dan geef je bij Wireless security geen WPA2-"PSK" maar juist WPA2-"EAP" op. Direct verschijnt er een optie om een Authenticating/Accounting radius server/proxy op te geven met IP:PORT:SECRET, wanneer deze ingevuld worden is er direct al een werkend wpa2 enterprise AP oftwel eduroam hotspot! Verder is 'ntpclient' handig indien tijdsverschil te groot word om certificaat geldigheid te checken. Het remote sysloggen werkt ook. TODO SNMP client Verdere setup met NAT/Bridging/VLAN is wel aan te bevelen maar moet nog uitgezocht worden.
    626802
     
    643819
    644820Boot the usb-stick with the debian installation and pay attention to the devicename of the internal harddisk you are installing debian onto, aka "/dev/sdb". During "tasksel" choose "SSH server" and "Standard system utilities". When reaching the end of the installation,  mind that "Grub2" might install to the usb-stick /dev/sda while while the debian install is on /dev/sdb, therefor you have to manually install Grub to /dev/sdb otherwise install might fail. After the install (postinstall) the following packages freeradius, isc-dhcp-server, openvpn and syslog-ng will be installed and configured. To finish local nat/routing and firewall rules are needed and completing openvpn setup needs keys/certifactes made in 3 certnode of this howto.
    645 
    646 
    647821
    648822{{{
     
    11081282keepalive 10 180 #! these settings keep the tunnel alive on the W.L. network <---
    11091283#! run /bin/openvpnupdate update before uncommenting lladdress
    1110 #! lladdress MACADDRESS #! overides random MAC adress of the br-lan interface for controlled dhcp lease! <---
     1284#! lladdr MACADDRESS #! overides random MAC adress of the br-lan interface for controlled dhcp lease! <---
    11111285
    11121286}}}
     
    13491523
    13501524TODO:
     1525iptables uitzoeken en lease time for eduroam wireless clients i.v.t. ap's aanpassen dan test klaar!!!
     1526
     1527configuratie 1.1a bridge/nat opdelen, gemengde examples is namelijk rommelig
     1528
    135115291.1a
    13521530openwrt country code setting?
     
    14021580
    14031581Radius request lijken te worden gecached gebeurt dat op proxy met freeradius of in het ap met hostap?
    1404 
     1582HOSTAPd op de accesspoints blijft caches bewaren!!! Force Reathorization
     1583 
    14051584V