Pinguïn-vrijheid op je dichtgetimmerde bedrijfslaptop

my butt-ugly homepage in firefox in ubuntu in qemu in windowsOmdat niet elk bedrijf even enthousiast is over de installatie van Linux op de corporate hardware, moet je soms de nodige flexibiliteit aan de dag leggen om toch de weg van De Ware Pinguïn te kunnen bewandelen. Zo ook hier dus.
Het recept om op min of meer te ontsnappen aan Windows, ziet er in mijn geval dan ook als volgt uit:
De ingrediënten:

De bereidingswijze:

  1. Brand de Ubuntu-image op een cdrom
  2. Unzip kqemu
  3. zoek in het kqemu-directory naar kqemu.sys en kqemu.inf. rechtermuisknop-klik op kqemu.inf en selecteer ‘install’ om de driver te installeren.
  4. Unzip qemu
  5. open een command-venster (dos-box) en ga naar het qemu-directory
  6. voer volgend commando uit om een ‘hard disk’ aan te maken:

    qemu-img.exe create -f qcow2 linuxhd.img 3G

    (wat zoveel wilt zeggen als “maak een virtuele harde schijf aan van 3 Gigabyte van het qcow2 type”)

  7. open in het qemu-directory ‘qemu-win.bat’
  8. pas het bestand aan zodat er dit staat en bewaar:
  9. @ECHO OFF
    SET SDL_VIDEODRIVER=directx
    SET SDL_AUDIODRIVER=dsound
    SET QEMU_AUDIO_DRV=dsound
    SET QEMU_AUDIO_LOG_TO_MONITOR=0
    net start kqemu
    qemu.exe -L . -m 256 -cdrom /dev/cdrom -hda linuxhd.img -boot d -kernel-kqemu -soundhw es1370 -localtime
    net stop kqemu

  10. Steek de Ubuntu-cd in je cdrom-lezer
  11. Dubbelklik op het net gewijzigde qemu-win.bat: qemu zal starten en in die virtuele PC zal de Ubuntu-cdrom gelezen worden.
  12. Ubuntu is opgestart, dubbelklik op het ‘install’ icoon op de desktop
  13. Volg de installatie-wizard en laat die op /dev/hda automagisch partities aanmaken en “heel den boel” installeren
  14. Als installatie gedaan is en Ubuntu voorstelt om te rebooten doe je dat, qemu zal gewoon stoppen.
  15. Wijzig qemu-win.bat opnieuw, deze keer naar:
  16. @ECHO OFF
    SET SDL_VIDEODRIVER=directx
    SET SDL_AUDIODRIVER=dsound
    SET QEMU_AUDIO_DRV=dsound
    SET QEMU_AUDIO_LOG_TO_MONITOR=0
    net start kqemu
    qemu.exe -L . -m 256 -hda linuxhd.img -kernel-kqemu -soundhw es1370
    net stop kqemu

    (je kunt -m eventueel op 512 zetten om meer geheugen toe te kennen aan de virtuele machine en ook “-cdrom /dev/cdrom” toevoegen als je nog aan de cdrom wilt kunnen)

  17. Dubbelklik opnieuw op qemu-win.bat en log in op je nieuwe Linux-installatie. Geluid en netwerk werken normaal gezien ‘out of the box’.
  18. Geniet van je herwonnen vrijheid! 😉

Extra info vind je onder andere op:

19 april: Ubuntu Feisty Feestje!

ubuntu logoMorgen (19 april) wordt de nieuwste Ubuntu 7.04, ook gekend onder codenaam “Feisty Fawn”, op de wereld losgelaten. Ik ga er zeker mee aan de slag; mijn Dell Latitude D620 met dualcore processor en 1Gb memory, schreeuwt om -met behulp van een bootable usb-stick- verlost te worden van die archaïsch geconfigureerde Window XP (dank aan onze corporate IT). Wie de stap ook wilt zetten maar wat hulp nodig heeft; laat gerust iets weten, ik probeer je er wel door te loodsen!

PHP kan uw gezondheid ernstige schade berokkenen

PHP is krachtig gereedschap. Net als met een goeie cirkelzaag of een stevige voorhamer kun je met PHP veel goeds, maar ook veel slechts doen. Volgende eenvoudige wijzigingen in php.ini zouden je installatie veel veiliger moeten kunnen maken;

  1. Zet “allow_url_fopen” op “off” zodat er met PHP via remote files geen ‘vijandige’ code kan binnengehaald worden.
  2. Maak een aantal functies (vnl. die waarmee commando’s van het OS kunnen uitgevoerd worden, bv. shell_exec, passthru, exec, system, proc_get_status, proc_nice, proc_open, proc_terminate, proc_close) ontoegankelijk met “disable_functions” zodat het vanuit PHP niet mogelijk is om bv. met wget (zoek maar eens in je apache logfiles naar de string ‘wget’) files af te halen (bv. een udp-flooder in perl), naar de /tmp folder te downloaden en daar uit te voeren.
  3. Overweeg “safe_mode” aan te zetten (veel van de vorige beperkingen worden dan automatisch afgedwongen).

Ook op Apache-niveau kun je -in apache.conf of httpd.conf- een en ander dichtspijkeren;

  1. Laad enkel die apache-modules die je echt nodig hebt (meestal bv. geen cgi, proxy, include, ..)
  2. Zet default access-rights op ‘DENY FROM ALL’ en voeg per Directory Allow-rules toe.
  3. Zet default AllowOverride-rechten op ‘none’ en voeg -indien nodig- per Directory laksere rechten toe.
  4. Zet “ServerTokens” op “PROD” en “ServerSignature” op “Off” (zodat het niet onmiddelijk zichtbaar is als je op een oudere versie-met-security-problemen van Apache werkt).
  5. Overweeg de implementatie van mod_security (soort software applicatie-firewall).

Toegang tot krachtige administratieve webapplicaties als phpmyadmin kun je best extra afschermen door in httpd.conf te specifieeren dat toegang standaard verboden is (DENY FROM ALL) en toegestaan vanaf ‘vertrouwde’ internet-adressen (bv. ip-range van bedrijf waar je werkt).
Probeer tenslotte zo weinig mogelijk applicaties te installeren; elke applicatie vermindert de veiligheid van het hele systeem weer een klein beetje ..

Iedere god zijn hemel

über kernel hacker (linus torvalds) mengde zich een paar dagen geleden op zijn gekende manier in een debat over usability van gnome (een open source user interface). een veelzeggend citaat:

Gnome seems to be developed by interface nazis, where consistently the excuse for not doign something is not “it’s too complicated to do”, but “it would confuse users”.

nieuwswaardig blijkbaar (want ondertussen is bovenstaand uittreksel al op zowat elke computer-nieuws-site verschenen), grappig ook, maar verder eigenlijk weinig relevant; kernel hackers doen moeilijke dingen die alleen zij begrijpen en die voor de rest gewoon moeten werken (de kernel zorgt ervoor dat je software van je hardware gebruik kan maken). een gewone sterverling wordt immers niet bewust geconfronteerd met hun arbeid (behalve wanneer er iets niet werkt).
met een user interface daarentegen, wordt iedere gebruiker constant geconfronteerd. dat usability een belangrijk aspect is bij het ontwerpen en ontwikkelen van een GUI is dan ook logisch. gnome stelt zich specifiek tot doel voor iedereen (dus ook voor wie geen code junkie of command line ridder is) onmiddelijk bruikbaar te zijn. dat daarvoor features moeten worden opgeofferd is misschien spijtig, maar volstrekt logisch.
linus is god, maar hij moet wel in zijn hemel blijven.
tot u sprak een happy gnome-user 😉
Links: Telenet portaal: Torvalds mengt zich in GNOME vs KDE-debat.

the joy of port forwarding of waarom ik een linux-geek ben

U houdt het misschien niet voor mogelijk, maar zo af en toe (als ik op het werk aan mijn nieuwe krachtige laptop met Windows XP zit) vergeet ik waarom ik zo graag met linux en andere open source software werk. Tot ik weer iets nieuws ontdek in die wondere geek-wereld. Zo ben ik deze week overdonderd door een mij tot voor kort volkomen onbekend aspect van ssh; tcp port forwarding ofte vpn for the linux-masses ..
Voor wie zo moedig was om van de inleidende paragraaf (op mijn homepage) toch nog door te klikken naar dit artikel, een korte uitleg als ‘fond’:
SSH staat voor secure shell, een ‘protocol’ voor beveiligde communicatie met een linux/unix-server. Met ssh krijg je vanop afstand toegang tot zo een machine in de vorm van een shell (te vergelijken met een dos-venster in windows, maar dan veel krachtiger). De beveiliging bestaat uit zware encryptie van alle data die over en weer gaat tussen de server en het ‘dos-venster’. de meest voorkomende implementatie van ssh op linux/ unix is openssh (gratis en open source).
Enig begrip van wat een ‘port’ (poort) is, kan ook helpen om te snappen waar ik het straks over heb. Een computer die op het internet aangesloten is, heeft een op dat moment uniek ip-adres waarop je die machine kunt bereiken (te vergelijken met een huisnummer). Op die computer worden er typisch echter verschillende diensten aangeboden. Daarom wacht elk van die diensten in principe aan een eigen ‘port’ op aanvragen. Zo een poort zou je kunnen vergelijken met de tientallen huisbellen (met parlofoon) in de hal van een appartementsgebouw. De belangrijkste diensten hebben een vaste poort; zo gaat al het webverkeer over poort 80, mail over 25 (om te versturen en 110 om af te halen) en ssh over 22.
Omdat IT- en security-verantwoordelijken beroepshalve paranoia moeten zijn, wordt zoveel mogelijk verkeer van de boze buitenwereld afgeschermd door de firewall op te dragen verkeer voor bijna alle computers en poorten tegen te houden. Daarom kun je van thuis uit bv. niet aan je computer op je werk. Met VPN kan dat wel en ssh tcp forwarding is daar een heel leuk zelfbouw-alternatief voor (als je ssh-toegang hebt tot een linux/unix server op het werk die niet in een DMZ ofzo staat) 🙂
Tot daar de theorie, dan nu de praktijk! Port forwarding is functionaliteit in ssh die toelaat om, via de beveiligde tunnel die ssh opzet over poort 22, requests naar andere poorten (andere diensten dus) te laten forwarden. Hoe? Wel:
ssh -L 5900:mydesktop.mycompany.be:5900 mylinuxserver
naam en paswoord geven en klaar is frank! alle verkeer voor de normaal van thuis uit onbereikbare mydekstop kan nu vanop mijn thuiscomputer (via localhost op poort 5900 naar mylinuxserver naar mydesktop op poort 5900) bereikt worden. en waarvoor ik dat dan gebruik? wel, 5900 is de vnc-poort. ik kan van thuis uit, op mijn linux-laptop, mijn windowsXP-laptop op het werk overnemen (de vncviewer van tightvnc, ook al gratis en open source, doet dat zelfs al automatisch, met de “-via”-optie). en met
ssh -L 1139:fileserver:139 mylinuxserver
en daarna
smbmount //fileserver/myshare myremoteshare -o ip=127.0.0.1,port=1139
kan ik mijn windows-gesharede homedrive op de fileserver op het werk rechtstreeks op mijn thuiscomputertje mounten (aanspreken). smbmount is overigens onderdeel van samba, een gratis en open source implementatie van SMB, het protocol waarmee windows shares werken.
andere mogelijkheden; je mail op een veilige manier binnenhalen (met pop3 of imap4 wordt je wachtwoord in principe immers ongeencrypteerd verstuurd). of surfen via de proxy van het werk. of met de exchange connecteren. vandaar: met ssh port forwarding kun je zo ongeveer alles wat je via vpn zou willen doen, maar niet durfde vragen aan die autistische coorporate IT’er op je werk. en wedden dat die man geen probleem heeft met incoming connections op port 22? 😉
ik heb nu overigens op mijn usb-key (waarvoor ik eigenlijk nog geen echt nuttig gebruik had gevonden) vncviewer en putty gezet. met putty (een ssh client voor op windows, ook gratis en open source) kun je ook port forwarden. waar ik ook kom, ik hoef mijn usb-key maar in te pluggen, putty op te starten en in te loggen op een unix/linux-machine op het werk en ik kan met vncviewer aan mijn laptop..
en for the record: op die nieuwe blinkende dell latitude d505 komt eerstdaags ook wel linux te draaien. kwestie van geduldig op de nieuwe Ubuntu te wachten, die perfect met de Intel Centrino chipset zou moeten kunnen werken .. en in tussentijd zorgt cygwin voor een vertrouwde shell ;D

dag 2: nucleus experimenten.

een weblog is één zaak, maar ervoor zorgen dat de inhoud van je laatste dagboek-entry ook mooi op je gewone homepage komt, is een andere zaak.
maar ik lijk er betrekkelijk snel te komen; ik maakte een kloon van xml-rss.php en van de bijhorende skin en template en gooide zowat alles weg wat ik daarin niet nodig had. en kijk, het resultaat..
nucleus is (zoals de journalist in pc magazine schreef) niet te ingewikkeld en biedt voldoende mogelijkheden voor een volwaardig weblog. sjieke dingen.
meer info op de nucleuscms-site.

een kleine stap

omdat iedereen op internet een ei lijkt te leggen te hebben, heb ik nu ook weblog-software geïnstalleerd. de keuze is op nucleus gevallen, blijkt immers van een landgenoot te zijn èn ziet er op het eerste zicht ‘ok’ uit..