Doe open die proxy!

Omdat het op het werk niet altijd eenvoudig surfen is naar porno- of hacker-sites, heeft een mens al eens alternatieven voor de almachtige coorporate proxy nodig.
Dat je met firefox + putty + openssh-op-je-linux-serverken al veel kunt bereiken, is ongetwijfeld al gekend. Samengevat: de ‘dynamic port forwarding‘ optie in putty (en andere ssh-clients) opent een socks proxy op je eigen computer. Firefox kan via die socks proxy dan over de ssh-tunnel requests voor de meest ongepaste wwwebpagina’s de wereld insturen, zonder dat de bigcompany-proxy daar weet van heeft. En met de Firefox Switchproxy-extensie kun makkelijk switchen tussen bedrijfs- en je persoonlijke proxy.
Eén probleem rest er ons nog; de dns-requests gebeuren in bovenstaand scenario wel nog op het bedrijfsnetwerk. Als je in Firefox een URL intikt, zal die eerst moeten worden omgezet in een ip-adres. Die “vertaling” gebeurt door de DNS-servers van je werkgever en zo laat je de coorporate wwwatchdogs toch weer weten dat je de duistere kant van het net op wilt.
De oplossing daarvoor zit verborgen in de kelders van je Firefox-preferences; in about:config vind je de setting network.proxy.socks_remote_dns. De waarde van die instelling staat standaard op “false” maar wanneer die op “true” staat, wordt de vertaling van URL naar IP-adres effectief in alle privacy via je socks-proxy aan de andere kant van de ssh-tunnel afgehandeld. Nu alleen nog zorgen dat die collega die achter je zit, die blote schoon madammen op je scherm niet ziet … 😉

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 ..

de draadloze lekkende zeef

draadloze netwerken (ook gekend als wifi, wlan, 802.11, ..) zijn op korte tijd enorm populair geworden. iedereen wilt blijkbaar van in de tuin of van boven de dampende wc-pot ongehinderd door kabels het wereldwijde web op. dat die ongekende populariteit ook een paar gevaarlijke kantjes heeft, wordt dikwijls vergeten. of weten de enthousiaste gebruikers gewoon niet..
maar wat zou een onverlaat met zijn laptop in de wagen voor uw deur zoal op uw draadloos netwerk kunnen mispeuteren?
in oplopende volgorde van schadelijkheid:
* gewoon surfen (of mail afhalen) op jouw kosten. who cares, right?
* illegale software of muziek en films downloaden. da’s al iets minder fijn; als je beperkte download-capaciteit hebt (cfr. telenet telemeter) zou je sneller aan die limiet kunnen zitten. en je verbinding wordt eigenlijk gebruikt voor diefstal. politie en de verenigingen van de film- en muziekindustrie zullen er in eerste altijd van uitgaan dat jij -als gebruiker van de verbinding- de schuldige bent.
* illegale software of muziek en films uploaden. het wordt al iets warmer; het zelf aanbieden van mp3’s of divx’en wordt feller bestreden door IFPI en andere belangenorganisaties.
* hacken of spammen: een hacker of spammer wilt voor zijn sportieve of misdadige activiteiten liefst anoniem blijven. wat is er makkelijker dan met de laptop op de schoot in het centrum van een middelgrote stad anoniem andermans internetverbinding te ‘lenen’ om te proberen in te breken op -ik zeg maar wat- de internetsite van hugo coveliers.
onder de indruk? nee? ok, dan gaan we verder:
* zien wat jij op internet doet: met een network-sniffer je doen en laten op internet (alles wat niet geencrypteerd is tenminste) volgen. naar welke sites je gaat, welke paswoorden gebruikt, je binnenkomende en uitgaande mail mail, ..!
* informatie van je computer halen: elke gesharede drive (network-drive) zonder wachtwoord is onmiddelijk en zonder beperking leesbaar voor bezoekers van je draadloos netwerk.
* inbreken op je computer: een beetje zoals voorgaand risico, maar nog meer verregaand. aangezien wireless routers hun draadloze verbindingen als ‘trusted’ beschouwen, wordt het verkeer op die verbinding (meestal) niet door de firewall gestuurd. het is dan ook veel makkelijker om via de draadloze verbinding binnen te breken in een computer dan via het internet. en eenmaal binnen kan je computer gebruikt worden om inloggegevens van je online bank door te sturen, om te spammen, om ..
soit, het komt erop neer dat een open draadloos netwerk een heel groot risico inhoudt. volgende betrekkelijk eenvoudige stappen kunnen dat gevaar buitenshuis houden:
* beveilig je draadloos netwerk met een wachtwoord (WEP of liever nog WPA)
* stel je router zo in dat die de netwerknaam (SSID) niet uitzendt (broadcast)
* laat enkel computers op je netwerk met een gekend MAC-adres (het mac-adres is een voor elke netwerkkaart unieke identificatie-string). je kunt het mac-adres van de netwerkkaart van je computer te weten komen in apparaatbeheer (device manager) of vanuit een ‘dos-venster’ met ‘ipconfig /all’ (zie onder physical address). lijstje invullen in je router onder mac-adres-filtering en klaar is je beter beschermd draadloos netwerk..
en voor de rest: nog veel draadloos genot gewenst!

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