wiki:WikiStart

Version 26 (modified by walter, 11 years ago) ( diff )

--

eduroam via Wireless Leiden

Het doel van dit project is het ontwikkelen en testen van een prototype accesspoint (en achterliggende infrastructuur) dat de mogelijk bied: studenten (onderzoekers, docenten en overige medewerkers van een onderwijsinstelling) door naadloze integratie van eduroam via het "open" netwerk van Wireless Leiden, "veilig" toegang te verschaffen tot het internet.

eduroam algemeen

De eduroam roaming-infrastructuur laat zich in de hier volgende voorbeeld scenario ophelden. Onderwijsinstelling 'X' wil al zijn studenten eenvoudig op hun "beveiligde en gesloten" draadloze netwerk aansluiten om hen toegang tot internet en printen te verschaffen. Dit draadloze netwerk dat met vele toegangspunten (AP=AccessPoints/Hotpots) door het hele complex dekkent is, word wel met een enkele generieke naam "X-netwerk" aangelegt, maar niet met een enkel generiek wachtwoord. Daarentegen heeft de instelling al zijn leden al geregeristeerd in een personendatabase en heeft voor ieder herleidbaar persoon al een unieke accountnaam en wachtwoord aangemaakt. Door de authenticatie en authorisatie tot het "gesloten en beveiligde" draadloze netwerk te laten verlopen via de inloggegevens uit de personendatabase, weet ieder lid direct zijn eigen wachtwoord om toegang tot het draadloze netwerk te krijgen. Daarnaast weet de instelling een mogelijk wachtwoord lek direct te herleiden tot een uniek persoon. In de gebruikelijke situatie wanneer Student 'Xx' bij zijn eigen onderwijsinstelling X vanuit de kantine het beveiligde en draadloze netwerk "X-netwerk" op wil, dan configureert deze eenmalig zijn laptop (tablet en of telefoon) en gebruikt hiervoor de voor hem of haar al bekende unieke inloggegevens. Iedere volgende keer wanneer student Xx binnen het eigen complex wil werken (of loopt) is zijn apparaat automatisch verbonden met hetzelfde draadloze "X-netwerk" (al dan niet via een andere toegangspunt vanuit collegezaal of bibliotheek). Dit verschijnsel waarbij het apparaat van de gebruiker, zonder dat hij of zij het opmerkt automatisch van toegangspunt naar toegangspunt word "roaming" genoemd.

Maar nu, onderwijsinstelling 'Y' heeft exact dezelfde infrastructuur als onderwijsinstelling X, maar Y merkt dat gastdocenten van X met hun laptop op bezoek komen zij niet (automatisch) bij Y het internet op kunnen. Het is voor de onderwijsinstelling omslachtig om iedereen opnieuw te registreren of een tijdelijk wachtwoord uit te delen en voor gebruikers om hun apparaten te herconfigureren. Als oplossing draagt onderwijsinstelling Y eduroam aan. Door op beide onderwijsinstelling de naam van het draadloze netwerk gelijk te maken "eduroam", gaan laptops, tablets of telefoons wanneer ze van locatie veranderen automatisch het netwerk op dat ze herkennen? Dit werkt nog direct, er mist een essentieel onderdeel! Onderwijsinstelling Y heeft niet de personendatabase met inloggegevens van onderwijsinstelling X om tegen te authenticeren, dus gebruikers van X op het netwerk bij Y krijgen alsnog de melding dat hun inloggegevens ongeldig zijn, nadat hun apparaten automatisch en tevergeefs proberen te verbinden. Wanneer er nu via een "centrale server" alleen de authenticatie "aanvragen" doorgestuurd worden naar die van de eigen instelling en de authorisatie "goedkeuringen" worden afgeleverd bij de instelling waar de gebruiker zich bevind, dan blijven de persoonsgegevens binnen de eigen onderwijsinstelling waar ze horen en kan de gebruiker bij de andere instelling toch het internet op zonder ook maar iets aan zijn apparaat te hoeven instellen. Vergelijkbaar met mobiele telefoons die tijdens telefoon gesprek in een auto rit van stad A naar B diverse toegangspunten (Telefoon Cells) passeren en zonder dat de gebruiker het merkt dat zijn verbinding weg valt.

A. Achtergrond informatie

De afgelopen jaren is een technische oplossing ontwikkeld, in samenwerking met de Hogeschool Leiden, om Eduroam mogelijk te maken over een open netwerk zoals dat van Wireless Leiden.

We willen nu een test doen met een prototype. Hiervoor is een openvpn-server geinstalleerd in het kantoor van Prof. Katzy, verbonden aan NodePlantsoen2, met een verbinding naar een authenticatieserver van Surfnet. De resultaten van dit project worden hier gerapporteerd.

B. Configureren van Bullet2HP als Eduroam accesspoint

De procedure is als volgt:

  • bouw een keer de OpenWRT-image
  • upload de image naar de Bullet2HP
  • upload individuele vpn info naar de bullet (dus niet openwrt opnieuw bouwen)

B.1 Opzetten van een host machine voor OpenWRT-images

De hostmachine is een PC met Ubuntu 11.10 waarbij de packages subversion, build-essential, flex, gettext, libz-dev, gawk, ncurses, libncurses5-dev en ncurses-term en tftp.

  1. Checkout the files we need
      svn co svn://svn.openwrt.org/openwrt/branches/backfire eduroam
      svn co http://svn.wirelessleiden.nl/svn/code/eduroam-bullet/trunk/openwrt-package/post/ eduroam/package/post/
    
  2. cd into the build directory
      cd eduroam
    
  3. update Feeds
     ./scripts/feeds update
     ./scripts/feeds install -a
    
  4. Copy build config
      cp package/post/config .config
    
  5. BUILD
      make
    
Volgende stappen nog niet getest
 6. 1. If you have a fresh new Air OS install you can upload the following image to
       your bullet. You will get a message that this is not a ubnt image, you 
       can ignore this message. Just in case be ready to use method 2 
       (recovery mode) with a ubnt image.

       bin/ar71xx/openwrt-ar71xx-ubnt-bullet-m-squashfs-factory.bin 

    2. You need a tftp client for this, tested on Ubuntu 10.10

       1. First of all, power off the device 
       2. Set your laptop in the 192.168.1.0/24 range, not being 192.168.1.20
       3. Connect the Bullet to your computer via a utp cable
       4. Begin by pressing the reset button. Keep holding it, then power the 
          unit on. Wait 8 seconds then release the button. Signal LEDs will be 
          lit indicating that the device is ready for recovery.

       On your computer
       5. cd bin/ar71xx/ 
       6. tftp 192.168.1.20
       7. bin
       8. trace
       9. put openwrt-ar71xx-ubnt-bullet-m-squashfs-factory.bin 
      10. quit
      11. Wait for a couple of minutes, your bullet will be reachable on 192.168.1.1 as openwrt

 7. Default password: Edur0@m

 8. Creating unique vpn info:

       1. Make up a fancy name, in this manual it will be 'name' or <name>
       2. Login into a certnode (For wl:sunfire)
       3. Execute from your own user: sudo eduroam-cert <name>  
       4. Output will look like:

sunfire% sudo eduroam-cert name
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/local/share/doc/openvpn/easy-rsa/2.0/keys
Generating a 1024 bit RSA private key
.....++++++
.....................++++++
writing new private key to 'name.key'
-----
Using configuration from /usr/local/share/doc/openvpn/easy-rsa/2.0/openssl-0.9.8.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'NL'
stateOrProvinceName   :PRINTABLE:'ZH'
localityName          :PRINTABLE:'Leiden'
organizationName      :PRINTABLE:'WL'
organizationalUnitName:PRINTABLE:'Techniek'
commonName            :PRINTABLE:'name'
name                  :PRINTABLE:'WL'
emailAddress          :IA5STRING:'noreply@wirelessleiden.nl'
Certificate is to be certified until Feb 27 13:32:30 2022 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated

      5. in you home directory there will be a file called <name>.tar, copy this file 
         to a network reachable the bullet locally
      6. untar it: tar -xf <name>.tar
      7. In the current directory there will now be a folder called keys, cd in to it
      8. execeute: sh upload <local ip of bullet>
      9. Enter the root password twice, after which your bullet will reboot
     10. You bullet will build a vpn connection according to the data in the tar file


To add:
If something goes wrong I need:

the output of the following commands

ls -l /usr/sbin/
cat /var/log/openvpn.log
ifconfig -a
iwconfig


Terug flashen van de oorspronkelijke ubiquity firmware op dezelfde wijze als boven omschreven, m.b.v. tftp. Dit moet in 'recovery modus': tijdens het opstarten de reset knop ingedrukt houden; het ip-adres van de bullet2 is dan weer 192.168.1.20.

C. Opzetten van een Radius proxy

De Authenticatieserver is een Radiusserver. De gebruikersaccounts van een Eduroam-instelling zijn niet beschikbaar bij andere instellingen (dus ook niet bij Wireless Leiden). Om 802.1x/Eduroam op het Wireless Leiden netwerk te laten werken zijn geen gebruikersaccounts nodig, de authenticatieverzoeken kunnen doorgezet worden naar de Surfnet-Radiusserver (proxy). De Surfnet-Radiusserver stuurt het verzoek op zijn beurt door naar de Radiusserver van de deelnemende instelling waaraan de gebruiker verbonden is. De Radiusserver van deze deelnemende instelling bevat de gebruikersaccounts. De Accept of de Reject op het authenticatieverzoek wordt via het zelfde pad teruggestuurd, waarna de node toegang verschaft (of niet).

Op basis van het afstudeerwerk van Richard is Freeradius voor de Radiusserver. Deze open-sourcesoftware voldoet aan de eisen en Freeradius is ook wat betreft beschikbare opties de meest aantrekkelijke open-source Radiusserver.

Uitgangspunt: (embedded) pc met Freebsd 8.2, minimal install

  1. Installeer de volgende software (log in als root)

fetch ports

 $ portsnap fetch extract

installeer subversion

 $ make -C /usr/ports/devel/subversion install clean BATCH=yes

installeer openvph

 $ make -C /usr/ports/security/openvpn-devel install clean BATCH=yes

checkout openvpn-wl

svn co http://svn.wirelessleiden.nl/svn/code/eduroam-bullet/trunk/openvpn-wl/ 
/usr/local/etc/openvpn

installeer freeradius

 $ make -C /usr/ports/*/freeradius install clean BATCH=yes

vervang /usr/local/etc/raddb

rm -R /usr/local/etc/raddb
svn co http://svn.wirelessleiden.nl/svn/code/eduroam-bullet/trunk/radius-wl/ /usr/local/etc/raddb
chown -R freeradius:freeradius /usr/local/etc/raddb 

installeer isc-dhcp42-server

 $ make -C /usr/ports/*/isc-dhcp42-server install clean BATCH=yes
svn checkout http://svn.wirelessleiden.nl/svn/code/eduroam-bullet/trunk/files/ /usr/local/etc/ --depth empty
cd /usr/local/etc/
rm dhcpd.conf
svn up dhcpd.conf
  1. Toevoegingen aan het configuratiebestand /etc/rc.conf
# enable: Freeradius
radiusd_enable="YES"

# enable: openvpn en tap
openvpn_enable="YES"
openvpn_if="tap"
ifconfig_tap0="192.168.4.1/24 up"

# We want to route the traffic
gateway_enable="YES"

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.