Het apparaatje

Functie:
- Klein kastje (ca. 13x8x2 cm) met 2 USB 2.0 aansluitingen en een ethernet aansluitng.
- Maakt USB disken of sticks beschikbaar voor het netwerk via SMB (Windows 'Share')
- Instellingen en beheer via netwerkinterface.
- Kastje is te koop voor minder dan € 100,- (sept. 2005, zonder disks)
Hardware
- Externe voeding, max 10W
- 32 MB RAM
- Intel XScale IXP420 microcontroller
- 32bit 133 Mhz ARM version 5
- Geen hardware foating point.
- o.a. geintegreerde USB, ethernet en DRAM controller
Unslung
Hompage unslung: http://www.nslu2-linux.org/
Vooraf:
Het installeren van andere firmware gebeurt op eigen risico, en waarschijnlijk is daarna aanspraak op garantie niet meer mogelijk!
Doelstelling:
- Laat basisfuncties van linksys software intact, maar geef de gebruiker mogelijkheden tot uitbreiden.
Hoe werkt dit:
- Aangepaste firmware
- Bestaande software wordt naar HD gekopieerd, en in flash worden links naar harddisk partitie gemaakt.
- Zo kan software op HD worden gewijzigd en uitgebreid.
Wat kan dan bijvoorbeeld:
- Centrale mail server (IMAP/POP) inclusief spam en virusfilter
- NFS server i.p.v. SMB
- Radius server voor netwerk authentificatie.
Wat moet ik daarvoor doen:
- Unslung installeren!
-
Benodigde pakketen installeren
- Pakketten configureren
- Documentatie lezen!
Installatie
Stap voor stap:
- Formatteer de harddisk m.b.v. de webinterface van de standaard NSLU2
- Ga naar de administration interface ( standaard adres is 192.168.1.77 )
- Pas de netwerk instellingen aan, m.n. kies een IP-addres in je igen netwerk. Met dit bedoelen we verderop het ip adres dat bij stap twee is ingesteld!
- Formateer de disk.
- Controleer of hij werkt.Dowload en unzip de firmware: http://www.unslung.org/downloads.php
- Zet de NLSU2 uit, en koppel disk(s) af.
Installeren: EXACT volgens de beschrijving in het README bestand
-
-
-
Controleer of telnet toegang tijdens bootproces mogelijk is
-
-
-
(zie hiervoor http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot )
Deze procedure is uw beste kans als het flashen mislukt, daarom is het belangrijk te controleren of het werkt.
- computer moet kunen communiceren met ip-adres 192.168.0.1.
-
- Routers o.i.d. gebruiken dit adres vaak, koppel deze af of maak met een losse hub of switch een aparte verbinding met de NLSU2.
- u moet op uw linux doos beschikken over (kijk bij uw distributie naar deze pakketten):
- telnet
- arping (de iputils versie, deze heeft de '-f' optie)
- sudo
- als root (ethx is de naam van de netwerkinterface die u gebruikt)
-
route add 192.168.0.1 ethx
-
sudo arping -I ethx -f 192.168.0.1; telnet 192.168.0.1 9000
-
- Zet nu NSLU2 aan
- zodra u output ziet op ctrl-C drukken. Al het goed is verschijnt de redboot prompt:
-
Redboot>
-
- Het kan nodig zijn deze procedure te herhalen.
-
Dowload en unzip de firmware: http://www.unslung.org/downloads.php
-
De nieuwe firmware flashen
- NLSU2 uitschakelen,
- Evt,. disks(s) afkoppelen,
- Weer aanzetten.
- NLSU2 uitschakelen,
-
-
In het adminstration menu van de webinterface de nieuwe firmware kiezen en uploaden.
-
De NSLU2 uitschakelen.
-
Disk(s) aansluiten.
-
Weer inschakelen en kontroleren of alles normaal werkt.
-
Kontroleer met name of de disks normaal herkend worden en dat gegevens normaal beschikbaar zijn.
-
-
-
'Unslingen'
-
De NSLU2 uitschakelen, en disk(s) loskoppelen.
-
Weer inschakelen zonder disk(s).
-
activeer telnet toegang door naar http:///Management/telnet.cgi te gaan en de knop te drukken.
-
Ga met telnet naar de NLSU2:
-
telnet
-
-
Koppel de disk waarop u wilt 'unslingen' aan en wacht ee poosje.
-
kontroleer in de web interface of de disk door de NLSU2 herkend wordt.
-
Draai het unsling commando in de telnet sessie voor de disk die u wilt gebruiken
-
# /sbin/unsling disk1
-
-
-
Password aanpassen
- Nieuw password aanmaken
-
# passwd
-
-
Changing password for root
-
-
Enter the new password (minimum of 5, maximum of 8 characters)
-
-
Please use a combination of upper and lower case letters and numbers.
-
-
Enter new password:
-
-
Re-enter new password:<
-
-
Password changed.
-
-
#
-
- Password file naar HD kopieren:
-
# cp /etc/passwd /share/hdd/conf/passwd
-
Reboot:
# reboot
-
-
Klaar!
De software
Standaard software:
- Linux kernel 2.4.22
- Samba voor disk sharing
- thttpd voor web interface
- uitilities zoals busybox met udhcpc en een aantal andere zaken.
pakketten
-
Actueel maken van de pakketten database:
- Eerste update
-
# ipkg update
Downloading http://ipkg.nslu2-linux.org/feeds/unslung/cross/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/unslung/cross/Packages.gz
Updated list of available packages in /usr/lib/ipkg/lists/cross
Downloading http://ipkg.nslu2-linux.org/feeds/unslung/native/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/unslung/native/Packages.gz
Updated list of available packages in /usr/lib/ipkg/lists/native
Downloading http://ipkg.nslu2-linux.org/feeds/unslung/oe/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/unslung/oe/Packages.gz
Updated list of available packages in /usr/lib/ipkg/lists/oe
#
-
-
Toevoegen van extra pakket bronnen:
-
# ipkg install unslung-feeds
.....
# ipkg update
......
-
- Eerste update
-
Gebruik van ipkg
-
Ipkg is een compacte package manager gemaakt voor toepassing in embedded linux distributies die in het gebruik veel lijkt op apt-get zoals we dat van de debian distributie kennen.
-
Veel gebruikte commando's:
- Bekijken van lijst met beschikbare pakketten:
# ipkg list
- Installeren van pakket:
# ipkg install ....
- Verwijderen van een pakket:
# ipkg remove ....
- Bekijken van lijst met geinstalleerde pakketten:
# ipkg list_installed
- Bekijken van lijst met beschikbare pakketten:
-
Voor overige mogelijkheden zie output van :
-
# ipkg -h
- Of ga naar http://handhelds.org/moin/moin.cgi/Ipkg
-
-
-
Enkele handige hulpmiddelen installeren:
-
# ipkg install bash less
-
Merk op dat we meerdere pakketten tegelijk kunne installeren en dat er automatisch ander noodzakelijk pakketten worden geinstalleer
-
beveiligen
Waarom
De standaard webinterface is een normale onbeveiligde site (http:/...). Iemand die op hetzelfde netwerk actief is kan zo gemakkelijk achter het root (administratie) password komen. En als we een wireless netwerk hebben dat niet of alleen met WEP beveiligd is kan dat makkelijk iemand zijn die we niet kennen. Het is dus goed om in ieder geval de dingen die de administratie van het netwerk betreffen te beveiligen.
Dit kan door het dataverkeer te versleutelen met SSH (i.p.v. telnet) en SSL (voor de web interface).
Stunnel
Probleem is dat de ingebouwde kleine webserver geen SSL ondersteuning heeft. Dit gaan we oplossen met behulp van een 'secure tunnel' ,stunnel. Stunnel kan inkomend verkeer op een poort omleiden via een beveiligde tussenlaag.
Normaal luisterd een webserver op poort 80, en een beveilgde webserver op poort 443. Met stunnel kun je beveiliging 'om' een onbeveiligde (web)server zetten.
Dus i.p.v.
browser: vraagt leesbaar http://.... -> netwerk ->
-> poort 80 van webserver: maakt leesbare pagina -> netwerk ->
-> browser: laat pagina zien
krijg je nu
browser: vraagt versleuteld https://... -> netwerk ->
-> poort 443 van stunnel: ontcijfert en stuurt lokaal door naar ->
-> poort 80 van webserver: maakt leesbare pagina ->
-> stunnel: versleutelt -> netwerk ->
-> browser: ontcijfert pagina en laat zien
M.a.w het verkeer over het netwerk wordt versleuteld door stunnel , terwijl de webserver daar zelf niks van merkt.
Haal de benodigde pakketten op met ipkg
-
# ipkg install openssh, stunnel
-
Merk op dat ipkg automatisch ook zlib en openssl installeert.
- Er zal tijdens de installatie van stunnel een certificaat worden aangemaakt, beantwoord de vragen over de ' certificate request' op een zinnige manier.
-
- Test of je met ssh kunt inloggen:
- ssh root@
- vanaf nu is telnet niet meer nodig!
- log uit in de telnet sessie met exit
- 'Disable telnet' in de webinterface
Configuratie van stunnel en webserver
Stunnel moet verker op poort 443 doorsturen naar lokale poort 80
-
Stunnel
- Voeg toe aan /opt/etc/stunnel.conf
[https]
accept = 443
connect = 80
TIMEOUTclose = 0 - (her)start stunnel
/opt/etc/init.d/S68stunnel
Merk op dat startup scripts voor met ipkg geinstalleerde pakketen in /opt/etc/init.d staan.
- Controleer nu of je de webinterface ook met https:// kunt benaderen
- Voeg toe aan /opt/etc/stunnel.conf
-
thttpd
Thttpd moet nu zo worden geconfigureerd dat het alleen nog maar naar aanvragen vanuit de NLSU2 zelf luistert (localhost). We willen niet dat je per ongeluktoch met http:// i.p.v. https:// naar de machine kan.
Thttpd is standaard deel van de linkstys software, en dus bevinden zich de startup scripts niet in /opt/etc/init.d maar in /etc/rc.d. In dit geval heet het /etc/rc.d/rc.thttpd
Om tijdens het booten onze eigen configuratie te starten voor i.p.v. de linksys maken we een omleiding ('diversion' ) door een gelijkgenaamd script in de /unslung directory te zetten.-
Maak een 'diversion' script'
Dit is een script dat (in dit geval) uitgevoerd wordt vóór het uitvoeren van de standaard script.
Dit is de inhoud van het script /unslung/rc.thttpd
#!/bin/sh
if [ ! -e /opt/etc/orig/thttpd.conf ]; then
cp -p /etc/thttpd.conf /opt/etc/orig/thttpd.conf
fi
sed -i -e 's/# host=0.0.0.0/host=127.0.0.1/' /etc/thttpd.conf
return 1Dit script:
- Kijkt of er een configuratiebestand /opt/etc/orig/thttpd.conf bestaat
- Zo nee,
- kopieert /etc/thttpd.conf (het originele linksys bestand) naar deze locatie
- Veranderd dan de regel met toegang van alle ip- adressen (0.0.0.0) naar alleen de locale machine (127.0.0.1)
- eindigt dan met returnwaarde 1.
- Dit betekent dat de rest van het origienele script in /etc/rc.d normaal moet worden uitgevoerd.
- Bij een return waarde van 0 zou het niet worden uitgevoerd en dan wordt zo'n script in plaats van het origineel uitgevoerd
- Herstart thttpd
# /etc/rc.d/rc/thttpd
- Met http:/ moet je nu een foutmelding krijgen (could not connect to host)
- met https:// niet
-
-
Nu is het moment om...
- Het root password opnieuw in te stellen zoals bij het unslingen
- Het admin passwoord via de webinterface te veranderen.
- Het root password opnieuw in te stellen zoals bij het unslingen
Mailserver
Uitgangspunten:
- We halen mail op via POP of IMAP van een provider.
- We sturen mail weg, direct uit de mail client van de computer waar we werken.
- We willen onze mail kunnen lezen op meerdere computers.
IMAP server
Hiervoor gebruiken we dovecot. Dat is een eenvoudig te configureren IMAP server, die weinig resources vraag en niet vaak met beveiligingsproblemen in beeld komt. De andere, meer 'standaard' oplossing (Cyrus-IMAP) is weliswaar waarschijnlijk sneller, maar lastiger te configureren en bovendien kwa veiligheids probelemen regelmatig aan de orde.
Informatie en documentatie over dovecot vindt u op http://www.dovecot.org/
-
Installeren met ipkg
- Dit moet u nu zelf kunnen....
-
Configuratiefile /opt/etc/dovecot.conf
- In pricipe zijn de defaults voor ons op dit moment i.h.a. voldoende en hoeven we maar een ding te wijzigen.
- De standaard directory voor mail plaatsen we in het maildir formaat onder de home directory van elke gebruiker. De home drectory van een gebruiker staat op /share/hdd/data/. we noemen de mail diractory MailDir dus dan moeten de volgende regel toevoegen.
default_mail_env = maildir:/share/hdd/data/%u/MailDir
-
Dovecot herstarten
- Ook dat moet nu lukken.


