wiki:WikiStart

Version 35 (modified by walter, 12 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 het mogelijk maakt: studenten (onderzoekers, docenten en overige medewerkers van een educatieve-instelling) "veilig" toegang tot het internet te bieden door naadloze integratie van eduroam op het "open" netwerk van Wireless Leiden. De betekenis van de eduroam roaming-infrastructuur laat zich in het hieronder volgende voorbeeld ophelderen!

Wat is eduroam?

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 van onderwijsinstelling X vanuit de kantine het eigen beveiligde en gesloten 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 bijna, om de volgende rede. Onderwijsinstelling Y heeft natuurlijk niet de personendatabase met inloggegevens van onderwijsinstelling X om gebruikers van X tegen te authenticeren, dus gebruikers van X op het netwerk bij Y krijgen alsnog de melding dat hun inloggegevens niet worden herkend omdat ze als X in de personendatabase van Y ontbreken, logisch toch! Wanneer onderwijsinstelling Y nu alleen de authenticatie "aanvragen" doorgestuurd via een "centrale server" op internet die op zijn beurt weer doorgekoppeld is aan de personendatabase van de eigen onderwijsinstelling (X in dit geval) en de autorisatie "goedkeuringen" via diezelfde route weer terug afleverd bij de instelling waar de gebruiker zich bevind, dan blijven de persoonsgegevens binnen de eigen onderwijsinstelling waar ze horen en kan de gebruiker na autorisatie bij de andere instelling direct het netwerk/internet gebruiken. Dit allemaal zonder dat gebruiker ook maar iets aan zijn of haar eigen apparaat en of instellingen hoeft te veranderen! Vergelijkbaar met mobiele telefoons die tijdens het telefoongesprek in een auto rit van stad A naar B diverse mobiele toegangspunten (Telefoon Cells) passeren, zonder dat de gebruiker merkt dat zijn verbinding overschakelt.

Dit eduroam systeem maakt het als onderwijsinstelling mogelijk om in een strikter wordend klimaat van beveiliging, geslotenheid en aansprakelijkheid toch verantwoordelijk een dienst dat open en toegankelijk is van karakter te bieden.

Kortom het begrip eduroam betekent voor "gebruikers" zoals studenten en medewerkers dat ze zonder poespas gebruik kunnen maken van het internet via het netwerk van hun eigen of gelieerde instelling. Het is voor hen niet meer dan de draadloze netwerknaam van de hotspot die ze aantreffen op hun laptop en of smartphone wanneer ze hiermee succesvol verbinden.

Betrokkenheid van Wireless Leiden?

De betekenis en werkwijze van eduroam voor dit Wireless Leiden project is vanuit een "aanbieders" perspectief. Daarbij zal voornamelijk de onderliggende technische werking van de infrastructuur om eduroam accesspoints (voor gebruikers) te realiseren ter sprake komen. Wireless Leiden neemt momenteel niet als "identity provider" deel aan eduroam, maar faciliteerd louter het doorgeven van de vereiste authenticatie "aanvragen" en autorisatie "goedkeuringen" via een grotendeels intern ontwikkeld prototype infrastructuur. 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 dekking via het Wireless Leiden netwerk in publieke ruimte niet alleen eenvoudig, flexibel en betaalbaar maar kan dat zelfs op stadsniveau! De huidige implementatie is een win-win situatie voor betrokken partijen, door de huidige multi SSID techniek neemt zowel de dekking van het eduroam netwerk van een onderwijsinstelling als het Wireless Leiden netwerk toe. Dit in tegenstelling tot de vaak door onderwijsinstelling geisoleerde fysiek inpandige en gesloten infrastructuur exploitatie, die zich gemakkelijk door het graven/leggen van dure kabelverbindingen laat uitstellen of zelfs afstellen.

*Ontwikkelaars van Wireless Leiden zelf kunnen de roaming eigenschap van deze infrastuctuur alleen gebruiken, testen en ontwikkelen 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 namelijk 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! Een andere mogelijkheid zou het aanvragen van een test-account bij de surf foundation zijn.

NEW HOWTO

technische en organisatorische benodigdheden

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" accesspoints zullen fungeren met als basis OpenWRT.
  2. een enkel centraal en vaste gepositioneerde "Radius Proxy & gateway" met als basis FREEBSD.

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

  1. toegang/inlog-gegevens tot de centrale eduroam/surf foundation identityprovider koppel server.
  2. ip whitelisting voor toegang tot die server.
  3. inloggegevens/account van een aan eduroam gelieerde onderwijsinstelling om het netwerk op te kunnen!
  4. certnode die het creeeren van openvpn certificaten en config bestand faciliteert.
  5. buildmachines voor firmware
  6. tot internet?

Met deze middelen en een complete voor zover mogelijk lineaire stap voor stap handleiding die nu volgt is een plug en play exploitatie van eduroam toegangspunten waar dan ook (binnen het Wireless Leiden netwerk) snel en eenvoudig te realiseren.

1 setup eduroam AccessPoints

1.1 hardware & software

Als complete outdoor accesspoints gebruiken we diverse Ubiquiti apparaten waaronder Bullets en NanoStations. Door het gebruik van het opensource software RouterOS OpenWRT en gerelateerde software projecten, is deze setup niet gelimiteerd aan een merk en of type hardware. Een kleine aanpassing aan de configuratie bestanden zou een vereiste kunnen zijn voordat het op andere hardware platvormen werkt. De handleiding zal overigens alleen gespitst zijn op de Ubiquity Bullet m2 HP. Met deze flexibele fundering is het doel om accesspoints die maar in sumiere opzichten van elkaar verschillen zo gemakkelijk en snel mogelijk in grote hoeveelheden geautomatiseerd te kunnen configureren. Het verschil tussen de accesspoints komt deels uit hoek van beveiliging en deels uit de hoek van locatie en toepassing. Als een enkel accesspoint gehackt is kan deze los van de andere accesspoint toegang tot de radius proxy ontzegt worden en 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 HortusBotanicus als multi SSID "ap.hortusbotanicus.wleiden.net" laatstaan de dns/host namen voor het eenvoudig beheren. Deze voorbeelden duiden erop dat er toch kleine specifieke wijzigingen tussen de accesspoints wenselijk zijn.

1.2 fixed OpenWRT based release

In tegenstelling tot de oude handleiding word hier gebruik gemaakt van een fixed OpenWRT releases waaronder Backfire 10.03.1 of RC's van Atitude Adjustment. Dit omdat het bouwen van een custombuild in eerste plaats niet meer nodig is omdat het pakket "openvpn" direct gebruiksklaar vanuit de repositorie geinstalleerd kan worden. Buiten het feit dat het erg veel tijd en moeite kost, veel variabelen introduceert en soms moeilijk te doorgronden build errors opleverd. Met fixed releases kan in minder dan 5 minuten direct een werkend accesspoint prototype gerealiseerd worden en dat zelf voor verschillende type accesspoints!

2 setup Radius Proxy & gateway

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 etc opstart bestanden.

certnode sunfire uitzoeken

Heeft huub destijds uitgevoerd! Waar en hoe dat plaatsvind is nog onduidelijk

Old HOWTO

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

  1. A. 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 B (recovery mode) with a ubnt image. bin/ar71xx/openwrt-ar71xx-ubnt-bullet-m-squashfs-factory.bin

  1. 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.
    5. On your computer go to the location of the OpenWRT build for your platform
      cd bin/ar71xx/
      
    6. tftp 192.168.1.20
      
    7. bin
      trace
      put openwrt-ar71xx-ubnt-bullet-m-squashfs-factory.bin
      quit
      
    8. Wait for a couple of minutes, your bullet will be reachable on 192.168.1.1 as openwrt
  1. Default password: Edur0@m
  1. 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
    
  1. in you home directory "on cert node sunfire itself" there will be a file called <name>.tar, copy this file to a network reachable the bullet locally
  2. untar it:
    tar -xf <name>.tar
    
  3. In the current directory there will now be a folder called keys, cd in to it
  4. execeute:
    sh upload <local ip of bullet>
    
  5. Enter the root password twice, after which your bullet will reboot
  1. You bullet can be connected to the network an will build a vpn connection according to the data in the tar file. Mind de default password and security flaws.

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.