Changes between Version 48 and Version 49 of WikiStart
- Timestamp:
- May 9, 2013, 12:04:34 PM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiStart
v48 v49 115 115 }}} 116 116 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!117 For 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! 118 118 119 119 {{{ … … 352 352 #!Add this interface if you internally NAT/Route the 2nd multiSSID instead of bridge <--- 353 353 #!config interface wlgst 354 #! option ifname wlgst355 #! option type bridge354 #! #option ifname wlgst 355 #! #option type bridge 356 356 #! option proto static 357 357 #! option ipaddr 192.168.5.1 … … 380 380 option hwmode 11bg #when using 5ghz vs 2,4ghz '11na' must be set! <--- 381 381 option htmode HT20 382 # option isolate 1 #! TODO test <---383 382 list ht_capab SHORT-GI-40 384 383 list ht_capab TX-STBC … … 397 396 option server 192.168.4.1 #! Location of radius-server/proxy behind the tunnel 1812/1813 <--- 398 397 option key somesecret #! Radius client password to connect to the radiusserver <--- 398 option isolate 1 #! wifi clients cannot connect to each other <--- 399 399 400 400 config wifi-iface … … 537 537 }}} 538 538 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 comebackand continue.539 Setup 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. 540 540 541 541 {{{ … … 548 548 }}} 549 549 550 Fin naly use ssh again to configure final settings550 Finally use ssh again to configure final settings 551 551 {{{ 552 552 ssh root@192.168.1.20 553 554 ##TODO check all execute writes on uploaded scripts! 553 555 554 556 ## enable openvpn … … 576 578 De 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. 577 579 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" === 581 De 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! 580 582 581 583 ==== 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 584 Ligt een kant en klare FREEBSD 8.3 disk klaar hoe verder te configureren? 585 586 ==== 2.1b Install debian 6 wheezy and services ==== 587 Als 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 592 wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/mini.iso 593 # put image on usb stick 594 sudo dd if=mini.iso of=/dev/sdstick 595 }}} 596 597 Boot 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 601 cd /etc 602 cp rc.local rc.local.ori 603 nano rc.local #put before exit0 604 setterm -blength 0 #kills annoying pc speaker!!! 605 606 ## vergroot bash_history 607 nano /root/.bashrc 608 export HISTFILESIZE=10000 609 610 ## update/install packages 589 611 apt-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. 612 apt-get install subversion openvpn freeradius isc-dhcp-server syslog-ng 613 614 ## backup original config files/folders 615 cp -r openvpn openvpn.ori 616 cp -r freeradius freeradius.ori 617 #rm -r freeradius/* #--depth-empty svn? 618 cp -r dhcp dhcp.ori 619 cp -r syslog-ng syslog-ng.ori 620 621 ## setup network interfaces 622 nano /etc/network/interfaces 623 }}} 624 625 #example code# /etc/network/interfaces 626 {{{ 627 #The loopback network interface 628 auto lo 629 iface lo inet dhcp 630 631 # The primary network interface to internet 632 allow-hotplug eth0 633 iface eth0 inet dhcp 634 635 # The secondary network to Wireless Leiden 636 allow-hotplug eth1 637 iface 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 645 allow-hotplug tap0 646 iface tap0 inet static 647 address 192.168.4.1 648 netmask 255.255.255.0 #! groter subnet voor veel clients? <--- 649 }}} 650 Continue 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 655 client 131.211.0.0/16 { 656 secret = testsecret 657 shortname = testsecret 658 } 659 660 #clients van het openvpn netwerk 661 client 192.168.4.0/24 { 662 secret = testsecret 663 shortname = testsecret 664 } 665 666 #test client direct zonder openvpn 667 client 172.17.169.66 { 668 secret = testsecret 669 shortname = testsecret 670 } 671 }}} 672 673 #example code# /etc/freeradius/radius.conf 674 {{{ 675 prefix = /usr 676 exec_prefix = /usr 677 sysconfdir = /etc 678 localstatedir = /var 679 sbindir = ${exec_prefix}/sbin 680 logdir = /var/log/freeradius 681 raddbdir = /etc/freeradius 682 radacctdir = ${logdir}/radacct 683 name = freeradius 684 confdir = ${raddbdir} 685 run_dir = ${localstatedir}/run/${name} 686 db_dir = ${raddbdir} 687 libdir = /usr/lib/freeradius 688 pidfile = ${run_dir}/${name}.pid 689 user = freerad 690 group = freerad 691 max_request_time = 30 692 cleanup_delay = 5 693 max_requests = 4096 694 listen { 695 type = auth 696 ipaddr = * 697 port = 0 698 } 699 #listen { 700 # ipaddr = * 701 # port = 0 702 # type = acct 703 #} 704 hostname_lookups = no 705 allow_core_dumps = yes 706 regular_expressions = yes 707 extended_expressions = yes 708 log { 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 } 717 checkrad = ${sbindir}/checkrad 718 security { 719 max_attributes = 200 720 reject_delay = 1 721 status_server = yes 722 } 723 $INCLUDE ${raddbdir}/clients.conf 724 $INCLUDE ${raddbdir}/sites-enabled/default 725 thread 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 } 732 modules { 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 } 750 proxy_requests = yes 751 $INCLUDE ${raddbdir}/proxy.conf 752 }}} 753 754 #example code# /etc/freeradius/proxy.conf 755 {{{ 756 realm DEFAULT { 757 authhost = radius.showcase.surfnet.nl:1812 758 accthost = radius.showcase.surfnet.nl:1813 759 secret = foutjebedankt 760 nostrip 761 } 762 }}} 763 764 Continue 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 {{{ 767 option domain-name "eduroam.org"; 768 option domain-name-servers 8.8.8.8; 769 default-lease-time 600; 770 max-lease-time 7200; 771 subnet 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 }}} 776 Remove isc-dhcp-server from its normal startup instance! 777 {{{ 778 update-rc.d isc-dhcp-server disable 779 }}} 780 781 Continue 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 {{{ 785 port 1194 786 proto tcp #udp 787 dev tap0 788 ca /etc/openvpn/ca.crt 789 cert /etc/openvpn/eduradprox.crt 790 key /etc/openvpn/eduradprox.key 791 dh /etc/openvpn/dh1024.pem 792 server-bridge 192.168.3.1 255.255.255.0 192.168.3.100 192.168.3.150 793 mode server 794 persist-key 795 persist-tun 796 verb 4 797 log /var/log/openvpn.log 798 script-security 2 799 up /usr/local/etc/openvpn/up.sh 800 #duplicate-cn 801 status /var/db/openvpn-status.log 802 keepalive 10 180 803 }}} 804 adjust key/crt ip-tcplocation 805 806 #example code# /etc/openvpn/up.sh 807 {{{TODO 808 }}} 809 810 Copy the following server/eduradprox files made on the certnode /etc/openvpn/ to the openvpn server directory. 811 {{{ 812 cp eduradprox.key eduradprox.crt ca.crt dh1024.pem /etc/openvpn/ 813 }}} 814 815 Voor 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? 818 cat /proc/sys/net/ipv4/ip_forward 819 echo "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 831 nalopen 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! 836 huidige foutieve bootorder: 837 networking(kan tap0 niet starten want geen openvpn, dus hotplug) 838 freeradius 839 isc-dhcp-server(kan niet starten want kan geen 192.168.4.1 vinden want tap0 is er niet 840 openvpn (als laatst) 841 842 843 === 3 "Certnode" === 844 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. 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. 596 845 597 846 ==== 3.1 install openvpn easy-rsa ==== … … 643 892 }}} 644 893 645 #example code# /usr/local/bin/eduroam- client-openvpn-cert894 #example code# /usr/local/bin/eduroam-ap-openvpn-client 646 895 {{{ 647 896 #!/bin/sh 648 897 # put me in /usr/local/bin 649 # use me as sudo me apname898 # use me as sudo file nameofnewap 650 899 651 900 FROMBASE=./keys … … 692 941 {{{ 693 942 ## flag executable 694 sudo chmod +x /usr/local/bin/eduroam- client-openvpn-cert943 sudo chmod +x /usr/local/bin/eduroam-ap-openvpn-client 695 944 696 945 ## fix /etc/openvpn/easy-rsa-/keys/packages permissions? … … 725 974 sudo /usr/local/bin/eduroam-client-openvpn-cert $unique-ap-name 726 975 }}} 976 977 ==== 3.3 certnode sunfire ==== 978 979 727 980 728 981 = Old HOWTO = … … 947 1200 948 1201 TODO: 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 1203 1.1 1204 openwrt country code setting? 1205 nanostation 5ghz /etc/config/wireless 1206 11na 1207 channel 32-140 1208 scripted easy password for quick flash and hashed new password in config file for permanent config? 961 1209 962 1210 TFTP without 15sec pen reset … … 967 1215 /etc/config/dhcp disable rebinding de bovenste 968 1216 /etc/rc.local sleep 5 ntpd -q -p pool.ntp.wleiden.net 1217 1218 3 1219 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? 1220 1221 sunfire FIXEN? 1222 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? 1223 Namaken: https://help.ubuntu.com/community/OpenVPN 1224 1225 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. 1226 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? 1227 1228 1229 1/2 openvpn 1230 geen down.sh script voor server en client? 1231 1232 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? 1233 969 1234 970 1235 Proxy … … 973 1238 uitzoeken radiusd paramter 974 1239 client to client ping??? 975 976 nanostation 5ghz openwrt dif image977 /etc/config/wireless978 11na979 channel 32-140980 systemname981 dhcp982 983 wlan channels voor 5ghz ?