Changes between Version 48 and Version 49 of WikiStart


Ignore:
Timestamp:
May 9, 2013, 12:04:34 PM (11 years ago)
Author:
walter
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v48 v49  
    115115}}}
    116116
    117 For deploying huge quantity (batch(es)) of AP's the following settings are general but some may differ among !AccesPoints like: multiSSID,ipadress(wired/wireless),wifichannel,band(a/bg),hostname,etc. In the following config files those parts that makes the uniqueness will be commented in the following style "#! <---" so its easier to identify and customize. Use the files from the backup you just made as a template for your own custom config, since the example config files which will follow after this paragraph are hardware-type/image specific! That means that my config files are specific for the Ubiquiti bullet2m hp 2,4ghz b/g, and for instance will not work on linksys broadcom based AP hardware (because wifi interfaces are configured using different names and parameters)! So only copy/paste change the needed parts, that differ with your templates!
     117For deploying huge quantity (batch(es)) of AP's most of the following settings are general but some may differ among !AccesPoints like: multiSSID, ipadress(wired/wireless), wifichannel, band(a/bg), hostname, etc. In the following example config files those parts that needs to be customized will be commented in the following style "#! <---" so its easier to identify and customize. Use the files from the backup you just made as a template for your own custom config, since the example config files which will follow after this paragraph are hardware-type/image specific! That means that my example config files are specific for the Ubiquiti bullet2m hp 2,4ghz b/g, and for instance will not work on linksys broadcom based AP hardware (because wifi interfaces are configured using different names and parameters)! So only copy/paste change the needed parts, that differ with your templates! Remember the AP can be configured as internal nat or bridge for the wlgst-bridge multiSSID!
    118118
    119119{{{
     
    352352#!Add this interface if you internally NAT/Route the 2nd multiSSID instead of bridge <---
    353353#!config interface wlgst
    354 #!      option ifname   wlgst
    355 #!      option type     bridge
     354#!      #option ifname  wlgst
     355#!      #option type    bridge
    356356#!      option proto    static
    357357#!      option ipaddr   192.168.5.1
     
    380380        option hwmode   11bg #when using 5ghz vs 2,4ghz '11na' must be set! <---
    381381        option htmode   HT20
    382 #       option isolate  1 #! TODO test <---
    383382        list ht_capab   SHORT-GI-40
    384383        list ht_capab   TX-STBC
     
    397396        option server   192.168.4.1 #! Location of radius-server/proxy behind the tunnel 1812/1813 <---
    398397        option key      somesecret #! Radius client password to connect to the radiusserver <---
     398        option isolate  1 #! wifi clients cannot connect to each other <---
    399399
    400400config wifi-iface
     
    537537}}}
    538538
    539 Setup openvpn key/certificates/config for the AP, skip to section 3.2 of this howto. When you have a *.tar file with keys&config for your individual unique AP comeback and continue.
     539Setup openvpn key/certificates/config for the AP, skip to section 3.2 of this howto when you don't have a *.tar file with keys&config for your individual unique AP, comeback if you have a *.tar and continue.
    540540
    541541{{{
     
    548548}}}
    549549
    550 Finnaly use ssh again to configure final settings
     550Finally use ssh again to configure final settings
    551551{{{
    552552ssh root@192.168.1.20
     553
     554##TODO check all execute writes on uploaded scripts!
    553555
    554556## enable openvpn
     
    576578De 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! TODO Verdere setup met NAT/Bridging/VLAN is wel aan te bevelen maar moet nog uitgezocht worden.
    577579
    578 === 2 setup Radius-!Server/Proxy  & gateway ===
    579 Moet nog uitgezocht / getest worden, zie oud voorbeeld!!! Wel kan ik specifieke veranderingen van config bestanden en opties/parameters toevoegen aan de huidige setup! zoals openvpn server settings /usr/local/etc/rc.d opstart bestanden en parameters etc.
     580=== 2 setup "Radius-!Server/Proxy  & gateway" ===
     581De rol van deze machine is het centraal afhandelen/doorzetten van het radius verkeer van verschillende eduroam AP's uit het wireless Leiden netwerk, daarnaast functioneert deze machine als internet gateway/concentrator van diezelfde eduroam AP's. De verbinding(en) tussen de eduroam AP's en deze centrale machine worden met openvpn tunnels over het wirelessleiden netwerk tot stand gebracht. De plaatsing van deze machine komt het meest tot z'n recht op een locatie waar al het eduroam gerelateerde internetverkeer een daarvoor aangewezen internet verbinding van een educatie isp in kan surfnet in dit geval. De surfnet aansluiting van Universiteit Leiden in de Pieterskerk zal op deze plek prima schikken!
    580582
    581583==== 2.1a Install FreeBSD 8.3 and services ====
    582 TODO voltooid, oude handleiding geupdate maar zeer gebrekkig en functioneerd nog niet waarschijn firewall rules...
    583 
    584 ==== 2.1b Install debian 6 wheezy/squeeze and services ====
    585 TODO Inmiddels is er een op debian 6 wheezy gebasseerde release nagebouwd, deze werkte tijdelijk en moet nog uitgeschreven worden.
    586 download netiso mini.iso dd usb stick
    587 #tasksel > ssh server + base tools?
    588 #postinstall
     584Ligt een kant en klare FREEBSD 8.3 disk klaar hoe verder te configureren?
     585
     586==== 2.1b Install debian 6 wheezy and services ====
     587Als hardware gebruiken we een via-epia m met twee bedraade netwerk interfaces. Voor het OS debian 7 wheezy i386 via een minimale install met SSH server en standaard tools die daarna word uitgebouwd en geconfigureerd. Installeer eerst debian op betreffende machine, download hiervoor de cd/usb image, plaats deze op usbstick en start de installatie. Opmerking, onthoud dat de machine tijdens de installatie en daarna toegang tot internet nodig heeft om alle pakketten te installeren!
     588
     589{{{
     590## prepare install media
     591# download mini.iso
     592wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/mini.iso
     593# put image on usb stick
     594sudo dd if=mini.iso of=/dev/sdstick
     595}}}
     596
     597Boot de usb-stick en kies tijdens de installatie onder "tasksel" de twee opties "SSH server" en "Standard system utilities", na de installatie de volgende software en config inregelen. Log na de installatie in op de machine.
     598
     599{{{
     600## postinstall
     601cd /etc
     602cp rc.local rc.local.ori
     603nano rc.local #put before exit0
     604        setterm -blength 0 #kills annoying pc speaker!!!
     605
     606## vergroot bash_history
     607nano /root/.bashrc
     608        export HISTFILESIZE=10000
     609
     610## update/install packages
    589611apt-get update
    590 apt-get install subversion openvpn isc-dhcp-server freeradius
    591 
    592 Voornamelijk de config van raddb helemaal ombouwen omdat alle parameters voor FREEBSD zijn! dan nog een iptable edit doen en dan deed die het???
    593 
    594 === 3 setup certnode ===
    595 Voor het functioneren van openvpn waaronder beveiligen en herkennen van server en unieke clients word easy-rsa gebruikt. Het idee is om op een vertrouwde permanente machine "certnode" eenmalig een blijvende opzet te maken met een openvpn "server" certificate voor de "radius-server/proxy", waarvan weer afgeleide client certificaten voor de verschillende accesspoints gemaakt kan worden. Het eerste gebeurt eenmalig en zal lokaal op de certnode bewaart moeten blijven. Het tweede gebeurt iedere keer wanneer er een "eduroam" AP bij komt aan het WirelessLeiden netwerk. Het generieke server certificaat + openvpn settings zal eenmalig van de certnode op de radius-server/proxy geplaatst moeten worden. De unieke client certificaten en config moeten voor ieder nieuwe/extra "eduroam" AP apart op de certnode aangemaakt worden en eenmalig per uniek AP geconfigureerd! Hierdoor zijn de eduroam AP's individueel te volgen en te beheren om toegang tot the radius-server/proxy te ontzeggen.
     612apt-get install subversion openvpn freeradius isc-dhcp-server syslog-ng
     613
     614## backup original config files/folders
     615cp -r openvpn openvpn.ori
     616cp -r freeradius freeradius.ori
     617#rm -r freeradius/*  #--depth-empty svn?
     618cp -r dhcp dhcp.ori
     619cp -r syslog-ng syslog-ng.ori
     620
     621## setup network interfaces
     622nano /etc/network/interfaces
     623}}}
     624
     625#example code# /etc/network/interfaces
     626{{{
     627#The loopback network interface
     628auto lo
     629iface lo inet dhcp
     630
     631# The primary network interface to internet
     632allow-hotplug eth0
     633iface eth0 inet dhcp
     634
     635# The secondary network to Wireless Leiden
     636allow-hotplug eth1
     637iface eth1 inet static
     638        address 172.17.169.67 #! afhankelijk waar deze machine in het netwerk geplaatst word <---
     639        netmask 255.255.255.0
     640#       network
     641#       broadcast
     642#       gateway
     643
     644# The openvpn interface
     645allow-hotplug tap0
     646iface tap0 inet static
     647        address 192.168.4.1
     648        netmask 255.255.255.0 #! groter subnet voor veel clients? <---
     649}}}
     650Continue setting up freeradius, only 3 config files really need to be edited. See following 3 example config files.
     651
     652#example code# /etc/freeradius/clients.conf
     653{{{
     654#q&d test externe clients van uu surfnet
     655client 131.211.0.0/16 {
     656  secret    = testsecret
     657  shortname = testsecret
     658}
     659
     660#clients van het openvpn netwerk
     661client 192.168.4.0/24 {
     662  secret    = testsecret
     663  shortname = testsecret
     664}
     665
     666#test client direct zonder openvpn
     667client 172.17.169.66 {
     668  secret    = testsecret
     669  shortname = testsecret
     670}
     671}}}
     672
     673#example code# /etc/freeradius/radius.conf
     674{{{
     675prefix = /usr
     676exec_prefix = /usr
     677sysconfdir = /etc
     678localstatedir = /var
     679sbindir = ${exec_prefix}/sbin
     680logdir = /var/log/freeradius
     681raddbdir = /etc/freeradius
     682radacctdir = ${logdir}/radacct
     683name = freeradius
     684confdir = ${raddbdir}
     685run_dir = ${localstatedir}/run/${name}
     686db_dir = ${raddbdir}
     687libdir = /usr/lib/freeradius
     688pidfile = ${run_dir}/${name}.pid
     689user = freerad
     690group = freerad
     691max_request_time = 30
     692cleanup_delay = 5
     693max_requests = 4096
     694listen {
     695        type = auth
     696        ipaddr = *
     697        port = 0
     698}
     699#listen {
     700#       ipaddr = *
     701#       port = 0
     702#       type = acct
     703#}
     704hostname_lookups = no
     705allow_core_dumps = yes
     706regular_expressions     = yes
     707extended_expressions    = yes
     708log {
     709        destination = files
     710        file = ${logdir}/radius.log
     711        syslog_facility = daemon
     712        stripped_names = no
     713        auth = yes
     714        auth_badpass = no
     715        auth_goodpass = yes
     716}
     717checkrad = ${sbindir}/checkrad
     718security {
     719        max_attributes = 200
     720        reject_delay = 1
     721        status_server = yes
     722}
     723$INCLUDE ${raddbdir}/clients.conf
     724$INCLUDE ${raddbdir}/sites-enabled/default
     725thread pool {
     726        start_servers = 5
     727        max_servers = 32
     728        min_spare_servers = 3
     729        max_spare_servers = 10
     730        max_requests_per_server = 0
     731}
     732modules {
     733        $INCLUDE ${raddbdir}/eap.conf
     734        $INCLUDE ${raddbdir}/modules/preprocess
     735        $INCLUDE ${raddbdir}/modules/mschap
     736        $INCLUDE ${raddbdir}/modules/chap
     737        $INCLUDE ${raddbdir}/modules/digest
     738        $INCLUDE ${raddbdir}/modules/files
     739        $INCLUDE ${raddbdir}/modules/expiration
     740        $INCLUDE ${raddbdir}/modules/logintime
     741        $INCLUDE ${raddbdir}/modules/pap
     742        $INCLUDE ${raddbdir}/modules/unix
     743        $INCLUDE ${raddbdir}/modules/acct_unique
     744        $INCLUDE ${raddbdir}/modules/detail
     745        $INCLUDE ${raddbdir}/modules/radutmp
     746        $INCLUDE ${raddbdir}/modules/exec
     747        $INCLUDE ${raddbdir}/modules/realm
     748
     749}
     750proxy_requests  = yes
     751$INCLUDE ${raddbdir}/proxy.conf
     752}}}
     753
     754#example code# /etc/freeradius/proxy.conf
     755{{{
     756realm DEFAULT {
     757        authhost =  radius.showcase.surfnet.nl:1812
     758        accthost =  radius.showcase.surfnet.nl:1813
     759        secret = foutjebedankt
     760        nostrip
     761}
     762}}}
     763
     764Continue setting up isc-dhcp-server. Besides editing the conf file, the service also needs to be removed from its default boot routine because it start to early before its openvpn interface is online.
     765#example code# /etc/dhcp/dhcpd.conf
     766{{{
     767option domain-name "eduroam.org";
     768option domain-name-servers 8.8.8.8;
     769default-lease-time 600;
     770max-lease-time 7200;
     771subnet 192.168.4.0 netmask 255.255.255.0 {
     772        range 192.168.4.100 192.168.4.150;
     773        option routers 192.168.4.1;
     774}
     775}}}
     776Remove isc-dhcp-server from its normal startup instance!
     777{{{
     778update-rc.d isc-dhcp-server disable
     779}}}
     780
     781Continue setting up openvpn. Remember that the openvpn server needs:'openvpn.conf'(setting), 'up.sh' (script that will initiate the isc-dhcp-server as soon as the openvpn tap0 interface is available) and offcourse server-certificate files(created in part 3.1 of this howto)!
     782
     783#example code# /etc/openvpn/openvpn.conf
     784{{{
     785port 1194
     786proto tcp #udp
     787dev tap0
     788ca /etc/openvpn/ca.crt
     789cert /etc/openvpn/eduradprox.crt
     790key /etc/openvpn/eduradprox.key
     791dh /etc/openvpn/dh1024.pem
     792server-bridge 192.168.3.1 255.255.255.0 192.168.3.100 192.168.3.150
     793mode server
     794persist-key
     795persist-tun
     796verb 4
     797log /var/log/openvpn.log
     798script-security 2
     799up /usr/local/etc/openvpn/up.sh
     800#duplicate-cn
     801status /var/db/openvpn-status.log
     802keepalive 10 180
     803}}}
     804adjust key/crt ip-tcplocation
     805
     806#example code# /etc/openvpn/up.sh
     807{{{TODO
     808}}}
     809
     810Copy the following server/eduradprox files made on the certnode /etc/openvpn/ to the openvpn server directory.
     811{{{
     812cp eduradprox.key eduradprox.crt ca.crt dh1024.pem /etc/openvpn/
     813}}}
     814
     815Voor het routen van het internet naar de openvpn clients moeten de volgende firewall rules toegepast worden.
     816{{{
     817## nat opzetten voor second eth1 en openvpn dan?
     818cat /proc/sys/net/ipv4/ip_forward
     819echo "1" > /proc/sys/net/ipv4/ip_forward
     820
     821## firewall masq script TODO permanent maken?
     822#!/bin/sh
     823/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
     824/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
     825/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
     826/sbin/iptables -A FORWARD -i eth0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
     827/sbin/iptables -A FORWARD -i tap0 -o eth0 -j ACCEPT
     828}}}
     829
     830
     831nalopen debian, zodra hostap/freeradius aan de gang gaan dat kapt de openvpn er mee tevens geen routing op 192.168.4.1? 10/100 duplex!!!
     832
     833*Na reboot moet de firewall nog aan!Q&D
     834
     835*isc-dhcp-server na reboot start te vroeg en werkt niet!
     836huidige foutieve bootorder:
     837networking(kan tap0 niet starten want geen openvpn, dus hotplug)
     838freeradius
     839isc-dhcp-server(kan niet starten want kan geen 192.168.4.1 vinden want tap0 is er niet
     840openvpn (als laatst)
     841
     842
     843=== 3 "Certnode" ===
     844Voor het functioneren van openvpn waaronder beveiligen en herkennen van server en unieke clients word easy-rsa gebruikt. Het idee is om op een vertrouwde permanente machine "certnode" eenmalig een blijvende opzet te maken met een openvpn "server" certificate voor de "radius-server/proxy", waarvan weer afgeleide client certificaten voor de verschillende accesspoints gemaakt kan worden. Het eerste gebeurt eenmalig en zal lokaal op de certnode bewaart moeten blijven. Het tweede gebeurt iedere keer wanneer er een "eduroam" AP bij komt aan het WirelessLeiden netwerk. Het generieke server certificaat + openvpn settings zal eenmalig van de certnode op de radius-server/proxy geplaatst moeten worden. De unieke client certificaten en config moeten voor ieder nieuwe/extra "eduroam" AP apart op de certnode aangemaakt worden en eenmalig per uniek AP geconfigureerd! Hierdoor zijn de eduroam AP's individueel te volgen en te beheren om toegang tot the radius-server/proxy te ontzeggen. Het opzetten van de certnode word bij stap 3.1 behandeld, het aanmaken van client certifcaten bij 3.2. Let op, leden van Wireless Leiden kunnen de eerste twee stappen overslaan aangezien zij de certnode "sunfire" moeten gebruiken (mits deze geconfigureerd is) en kunnen direct naar stap 3.3.
    596845
    597846==== 3.1 install openvpn easy-rsa ====
     
    643892}}}
    644893
    645 #example code# /usr/local/bin/eduroam-client-openvpn-cert
     894#example code# /usr/local/bin/eduroam-ap-openvpn-client
    646895{{{
    647896#!/bin/sh
    648897# put me in /usr/local/bin
    649 # use me as sudo me apname
     898# use me as sudo file nameofnewap
    650899
    651900FROMBASE=./keys
     
    692941{{{
    693942## flag executable
    694 sudo chmod +x /usr/local/bin/eduroam-client-openvpn-cert
     943sudo chmod +x /usr/local/bin/eduroam-ap-openvpn-client
    695944
    696945## fix /etc/openvpn/easy-rsa-/keys/packages permissions?
     
    725974sudo /usr/local/bin/eduroam-client-openvpn-cert $unique-ap-name
    726975}}}
     976
     977==== 3.3 certnode sunfire ====
     978
     979
    727980
    728981= Old HOWTO =
     
    9471200
    9481201TODO:
    949 3 de handleiding van de "certnode" creeert natuurlijk een openvpn server op de certnode zelf, nog testen of je openvpn kan verwijderen en de easy-rsa bestande ergens anders kan plaatsten?
    950 
    951 sunfire FIXEN?
    952 Kan inloggen via public ssh key op sunny/sunfire.wleiden.net kan daarinderdaad het script starten maar vervolgens kan deze niks vinden. Lijkt erop dat de oude server certificaten niet aanwezig zijn en er kunnen dan geen afgeleide client certifcaten gemaakt worden tevens missen er config bestanden, dus alles moet opnieuw? Hoe maak ik dit lokaal na?
    953 Namaken: https://help.ubuntu.com/community/OpenVPN
    954 
    955 Daarna kan je easyrsa "client" certificate aanmaken, enige opmerking daar is dat je KEY_CN=client voor het commando plaatst anders database error. Nu in de oude trend kun je het eduroam-cert script aanpassen en benodigde (geupdate)config bestanden in map key's plaatsen en daarin een map met packages aanmaken. Wanneer je dan het script draait maakt die inderdaad een tar bestand met alle instellingen.
    956 TODO Verzin leuke manier om dit in een batch workflow voor veel AP's clients in te passen... denken we vanuit dit concept met tar bestand of moeten we iets maken dat meteen meedere parameters zoals multiSSID ip-adres hostname wifichannel etc meeneemt op basis van MAC adres? Nog uitzoeken welk deel er naar de server moet 4 bestanden ca dh1024 server.crt/key?
    957 
    958 geen down.sh script voor openvpn server en client?
    959 
    960 Veiligheid aspect, radius authenticatie over zelfde tunnels als de clients... isolation tussen openvpn clients de AP's zelf is actief maar isolate van de wireless users op de client nog teste?
     1202
     12031.1
     1204openwrt country code setting?
     1205nanostation 5ghz /etc/config/wireless
     1206        11na
     1207        channel 32-140
     1208scripted easy password for quick flash and hashed new password in config file for permanent config?
    9611209
    9621210TFTP without 15sec pen reset
     
    9671215/etc/config/dhcp disable rebinding de bovenste
    9681216/etc/rc.local sleep 5 ntpd -q -p pool.ntp.wleiden.net
     1217
     12183
     1219de handleiding van de "certnode" creeert natuurlijk een openvpn server op de certnode zelf, nog testen of je openvpn kan verwijderen en de easy-rsa bestande ergens anders kan plaatsten?
     1220
     1221sunfire FIXEN?
     1222Kan inloggen via public ssh key op sunny/sunfire.wleiden.net kan daarinderdaad het script starten maar vervolgens kan deze niks vinden. Lijkt erop dat de oude server certificaten niet aanwezig zijn en er kunnen dan geen afgeleide client certifcaten gemaakt worden tevens missen er config bestanden, dus alles moet opnieuw? Hoe maak ik dit lokaal na?
     1223Namaken: https://help.ubuntu.com/community/OpenVPN
     1224
     1225Daarna kan je easyrsa "client" certificate aanmaken, enige opmerking daar is dat je KEY_CN=client voor het commando plaatst anders database error. Nu in de oude trend kun je het eduroam-cert script aanpassen en benodigde (geupdate)config bestanden in map key's plaatsen en daarin een map met packages aanmaken. Wanneer je dan het script draait maakt die inderdaad een tar bestand met alle instellingen.
     1226TODO Verzin leuke manier om dit in een batch workflow voor veel AP's clients in te passen... denken we vanuit dit concept met tar bestand of moeten we iets maken dat meteen meedere parameters zoals multiSSID ip-adres hostname wifichannel etc meeneemt op basis van MAC adres? Nog uitzoeken welk deel er naar de server moet 4 bestanden ca dh1024 server.crt/key?
     1227
     1228
     12291/2 openvpn
     1230geen down.sh script voor server en client?
     1231
     1232Veiligheid aspect, radius authenticatie over zelfde tunnels als de clients... isolation tussen openvpn clients de AP's zelf is actief maar isolate van de wireless users op de client nog teste?
     1233
    9691234
    9701235Proxy
     
    9731238uitzoeken radiusd paramter
    9741239client to client ping???
    975 
    976 nanostation 5ghz openwrt dif image
    977 /etc/config/wireless
    978 11na
    979 channel 32-140
    980 systemname
    981 dhcp
    982 
    983 wlan channels voor 5ghz ?