wiki:WikiStart

Version 28 (modified by walter, 12 years ago) ( diff )

Al deze commits vanaf huub tot aan mij tot ik klaar ben volgende week kunnen allemaal weg. Ben nog met opmaak en inhoud en dergelijk aan het stoeien!

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 educatieve-instelling) "veilig" toegang tot het internet te verschaffen door naadloze integratie van eduroam op het "open" netwerk van Wireless Leiden. De eduroam roaming-infrastructuur laat zich in het hieronder volgende showcase ophelderen.

eduroam showcase

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 dekkend is, word wel met een enkele generieke naam "X-netwerk" aangelegd, maar niet met een enkel generiek wachtwoord! De onderwijsinstelling heeft al zijn leden al geregistreerd in een personendatabase en heeft voor ieder herleidbaar persoon namelijk al een unieke accountnaam en wachtwoord aangemaakt. Door de authenticatie en autorisatie tot het "gesloten en beveiligde" draadloze netwerk via de inloggegevens uit de personendatabase te laten verlopen, weet ieder lid direct zijn eigen wachtwoord om direct toegang tot het draadloze netwerk te krijgen. Daarnaast weet de instelling een mogelijk wachtwoord lek te herleiden tot een uniek persoon. In de gebruikelijke situatie wanneer een student 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 deze student 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 verspringt, bereikbaar en bruikbaar blijft word "roaming" genoemd.

Maar nu, onderwijsinstelling 'Y' heeft exact dezelfde infrastructuur als onderwijsinstelling X, maar Y merkt dat wanneer gastdocenten van X met hun laptop op bezoek komen zij niet (automatisch) bij Y het internet op kunnen. Tevens is het voor de onderwijsinstelling en de gebruikers omslachtig om iedereen opnieuw te registreren, een tijdelijk wachtwoord te geven en of hun apparaten te herconfigureren voor (tijdelijke) gebruik van het beveiligde en gesloten netwerk.

Als oplossing draagt onderwijsinstelling Y eduroam aan. Hiervoor gaan beide onderwijsinstelling X en Y de naam van hun draadloze netwerk gelijkmaken aan de generieke naam "eduroam". Wanneer (gast)gebruikers van X bij onderwijs instelling Y op bezoek zijn gaan hun laptops, tablets of telefoons automatisch het gelijknamige netwerk van onderwijsinstelling Y op. Dit werkt helaas nog niet direct, maar wel bijna! Onderwijsinstelling Y heeft namelijk 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 niet worden herkend! Wanneer er nu via een "centrale server" alleen de authenticatie "aanvragen" doorgestuurd worden naar die van de eigen instelling en de autorisatie "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 netwerk/internet op zonder ook maar iets aan zijn apparaat te hoeven veranderen. Vergelijkbaar met mobiele telefoons die tijdens het telefoongesprek in een auto rit van stad A naar B diverse toegangspunten (Telefoon Cells) passeren, zonder dat de gebruiker het merkt dat zijn verbinding weg valt.

Dit eduroam systeem zorgt er uiteindelijk voor dat je als onderwijsinstelling in een strikter wordend klimaat van beveiliging, geslotenheid en aansprakelijkheid toch een dienst dat open, toegankelijk en verantwoordelijk van karakter is kan bieden.

technische betrokkenheid

Wireless Leiden neemt als non-onderwijsinstelling momenteel niet als "identity provider" deel aan eduroam, maar faciliteerd louter het doorgeven van de vereiste authenticatie "aanvragen" en autorisatie "goedkeuringen" via een intern ontwikkelde prototype infrastructuur. Tevens houd dit in dat ontwikkelaars van Wireless Leiden zelf, de roaming eigenschap van deze infrastuctuur alleen kunnen gebruiken en testen wanneer ze beschikken over een geldig accountsnaam en wachtwoord dat geleverd is door een aan eduroam/surf foundation gelieerde identity provider. Als voorbeeld Universiteit Leiden of Hogeschool Leiden. Wel zou er voor hen via een interne identity provider van Wireless Leiden zelf een account gemaakt kunnen worden, maar omdat deze niet centraal gekoppeld is werkt dit niet wanneer ontwikkelaars van het Wireless Leiden eduroam netwerk naar het Universiteits eduroam overgaan. Het Universiteits eduroam netwerk kan via de centrale server niet bij de onbekende Wireless Leiden interne identity provider komen en zal deze mensen niet op zijn netwerk toelaten. Hiermee word direct duidelijk dat een wederzijdse samenwerking nodig is om het onbegrensde karakter eduroam(ing) te laten werken en beschermen! Als partieel serviceprovider koppelt Wireless Leiden eduroam gebruikers automatisch en beveiligd door aan de daarvoor aangewezen (onderwijs)netwerken. Een onderwijsinstelling vervult vaak meerdere rollen binnen het eduroam project inclusief internet-gateway, maar Wireless Leiden beperkt zich puur tot de ondersteunende koppeling en integratie van deze diensten. Het unieke aan dit project is niet het scheiden van de identity/service provider eigenschap, maar de integratie van de verdeelde diensten over het losstaand en "open" netwerk van Wireless Leiden. Dit maakt het exploiteren van eduroam draadloze toegangspunten tot op stadsniveau, via het Wireless Leiden netwerk eenvoudig, flexibel en betaalbaar! Dit in tegenstelling tot de vaak door kabel beperkte fysiek inpandige gesloten infrastructuur exploitatie, die zich gemakkelijk door het graven/leggen van dure kabelverbindingen laat uitstellen of zelfs afstellen.

technische en organisatorische opzet

Voor de realisatie voor de ondersteunende eduroam infrastructuur op het Wireless Leiden netwerk is gekozen voor twee verschillende type installaties met idem verschillende functionaliteit namelijk:

  1. meerdere type "AccesPoints" die als "eduroam" hotspot zullen fungeren gebasseerd op het flexible OpenWRT
  2. een enkel centraal en vaste gepositioneerde "Radius Proxy" en gateway functionerend met FREEBSD.

De verbinding tussen deze twee typen installaties word via een OpenVPN tunnel beveiligd en geencrypt waardoor het mogelijk onveilige karakter van het open WirelessLeiden netwerk vervalt. Naast deze hardware matige en software matige eisen zijn er nog twee andere organisatorische eisen nodig waaronder:

  1. toegangs/inlog gegevens tot de centrale eduroam surfnet identityprovider koppelaar
  2. ip whitelisting voor deze server
  3. inloggegevens/account van een aan eduroam gelieerde onderwijsinstelling!

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.