No Lufthansa, this is not breakfast

I’m not sure what’s going on at Lufthansa, but someone needs to talk to their food administrators who managed in-flight food. This “breakfast” tasted like candy, for obvious reasons. Come on Lufthansa, it’s 2018, ever heard of “healthy living”? I know this crap is cheap to produce, but maybe “cheap” is not a word you want to associate with your company.

Apache goodies for WordPress security

The list of things to do to harden a WordPress site with Apache is long, but some things that could be done include:

FileETag None                                                                                                                       
<Files wp-config.php>                                                                                                               
    Require all denied                                                                                                              
<Files xmlrpc.php>                                                                                                                  
    Require all denied                                                                                                              
<LocationMatch "/wp-content/uploads/.*(?i)\.php$">                                                                                  
    Require all denied                                                                                                              

SSH tunnel to use other mailserver than localhost

Because I have a lot of virtual machines, laptops, work environments, and so on, I never seem to find the time to setup SMTP authentication everywhere. I typically use Linux for everything except hardcore gaming, so it’s only natural that I have some sort of mail server installed like Postfix. The problem in using that mail server to send e-mail is that I also quite often have dynamic IP addresses on these machines, which doesn’t work well with “e-mail protection” (well..) like SPF.

So instead of making my life very complicated, I have a trusted server on the Internet through which I send e-mail.

If you were looking for something fancy in this article, you can move along now, there’s nothing to see 🙂

To make all my Linux work instances believe they’re talking to an SMTP server locally, I simply setup a tunnel from the given Linux instance to this trusted server on the Internet using the ever so versatile OpenSSH / SSH. I know there are a lot of ways to do this, but this is what works for me:

Local machine or “where I work”

I have a private/public key keypair on all of these machines. The public key is placed in the /root/.ssh/authorized_keys file on the trusted server that is running the mail server.

On this machine, as root, I setup a tunnel that looks like this:

ssh -N -L 25:localhost:25 -p 2222

This will create a tunnel from “localhost” port 25 (where I work) to “localhost” port 25 on It will connect the end point of the tunnel to on port 2222. If the server is running an SSH server on its standard port (22), you can remove the “-p 2222” part.

Mail server

On this server, I only need to put the public key from the local machine “where I work” into /root/.ssh/authorized_keys to allow the tunnel to come up.

When I access port 25 on my local machine “where I work”, it will be sent through the tunnel and then attempt to access “localhost” port 25 on the mail server. The mail server software, Postfix in my case, will never know this connection did not actually originate from “inside” the machine, but rather through the tunnel.

Closing thoughts

You can (obviously) make this somewhat more automated with tools like AutoSSH, init scripts, and what not. The above only intends to show how uncomplicated it is to create useful SSH/SMTP tunnels 🙂


Securely overwrite unused space on Windows 7, 8, and 10

Overwriting “unused space” on Windows 7, Windows 8, and Windows 10 is quite simple. Open a “Command Prompt” window, and type:

cipher /w:DD

Where “DD” is your drive without a suffix, e.g.

cipher /w:C

to wipe unused space on drive C.

Why is this useful? Well, when you delete files from most modern operating systems, they aren’t really erased, even after you “Empty the trash”. The file system on your drive is simply updated to indicate that the space previously occupied by the file is now available. But the file data is still there. Overwriting such “unused space” with nonsense/garbage data will make it harder to recover the file data.

Setting PHP.INI path (or file) for PHP CLI shell scripts

Running a PHP script from the command-line, or CLI, is quite useful at times and is often used to perform some automated task, like a CRON cleanup script, to send out reminders, etc.

It’s common that these CLI scripts need some, but possibly not all, settings that are similar to the main application’s. I may, for example want to include the database configuration settings shared with the main application. So I often create a separate php.ini file for this purpose.

Running /usr/bin/php -c /my/very/special/path cronScript.php is simple enough, but what if I want to be able to create an “executable” PHP shell script? The obvious answer would be something like:

#!/usr/bin/php -c /my/very/special/path

at the top of the .php file, followed by my PHP code, right? Except that may not do what you want. I could not get the PHP interpreter to load anything in /my/very/special/path by using the above construct, even if it works from the actual command-line. After banging my head against the wall for a while, this turns out to work for these “shell scripts”:

#!/usr/bin/php -c=/my/very/special/path

Note the use of the = (equal) sign between the -c and the path (or file).

Carry on.

Coding for Microsoft browsers like Internet Explorer and Edge

Having been doing battles with things like Internet Explorer 4 (yes, I’m that old), it seems to me like Microsoft have really gotten themselves into a bind when it comes to Edge.

With a user-agent string like this:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299

It’s no wonder Microsoft seems to be suffering from a split personality when it comes to its browser(s).

Once and for all Microsoft, please just join either of the Chrome/Chromimum/Opera/Firefox projects. Please?

Hur kommunicerar du med mÀnniskor i din vÀrld?

Hur kommunicerar du digitalt med andra mÀnniskor idag? SjÀlv anvÀnder jag en mÀngd olika redskap och verktyg. Ibland kÀnns det som att det Àr lite vÀl mÄnga att hÄlla reda pÄ. Jag har pÄ sista tiden börjat stÀda bland de appar och programvaror jag anvÀnder för att sköta min dagliga kommunikation med kunder, kollegor, vÀnner och familj.

Det Ă€r en djungel och salig röra att hĂ„lla reda pĂ„ alla alternativ, deras för- och nackdelar och naturligtvis vem man kan kommunicera med genom vilket verktyg. De stora jĂ€ttarna Microsoft, Google och Facebook, rĂ€knar med att du vĂ€ljer deras verktyg eftersom du dĂ„ “nĂ„r de flesta” av dina kontakter. LikasĂ„ tycker förmodligen Kik och SnapChat att du skall vĂ€lja just deras verktyg baserat pĂ„ antalet anvĂ€ndare som anvĂ€nder just deras program.

Det blir verkligen inte lÀttare av att de stora företagen köper upp andra företag som t ex Microsoft som Àger Skype, Facebook som Àger WhatsApp, osv.

I grĂ€srotskretsar lever Ă€ven Ă€ldre verktyg som ICQ, IRC m fl vidare samtidigt som företagsvĂ€rlden börjat fĂ„ upp ögonen för samarbetsverktyg eller “chattar” som Slack och Mattermost. Även verktyg som frĂ„n början inte hade som syfte att tillhandahĂ„lla “chat”, som t ex Keybase, har nu valt att inkludera krypterad kommunikation mellan personer och i grupper.

Detta Ă€r inte en artikel om övervakning, GDPR eller personlig integritet och rĂ€tten till att inte bli avlyssnad. Men dessa Ă€mnen spelar till viss del in i Ă„tminstone mina val av kommunikationsverktyg. Att kunna kommunicera med mĂ€nniskor i min omvĂ€rld Ă€r sĂ„klart ocksĂ„ vĂ€ldigt viktigt, det spelar föga roll att jag har den “sĂ€kraste” av alla appar om ingen annan jag kommunicerar med anvĂ€nder samma, eller en kompatibel, programvara. Helst skall vi kunna kommunicera med varandra oavsett om personerna anvĂ€nder Windows, Mac och/eller Linux eller som det brukar heta i den mobila vĂ€rlden, Android eller iPhone.

NÀr jag började med datakommunikation nÄgon gÄng runt 1983, som sedemera utvecklades till det vi idag kallar för Internet, sÄ fanns det inte sÄ mÄnga alternativ och kommunikationen var lÄngsam. Idag kan man kopiera hela sin dators innehÄll till en annan dator tvÄ tusen mil dÀrifrÄn pÄ relativt kort tid. Vi skickar mer information Àn nÄgonsin, men vi kanske skulle fundera lite pÄ hur vÄr information skickas och vem som kan komma över den?

SÄ vad Àr dÄ mina personliga val och varför vÀljer jag dem?

Jag har mer eller mindre slutat att anvÀnda SMS, MMS och WhatsApp. Facebook Messenger Àr inte installerad pÄ nÄgon av mina enheter. I de fall jag fÄr ett SMS till mobilen, eller nÄgon skickar mig ett meddelande med WhatsApp sÄ tar jag emot dem och svarar pÄ dem pÄ samma sÀtt, men det Àr inga verktyg jag vÀljer i första hand.

Som kommunikationsverktyg anvÀnder jag i första hand Signal eller Keybase. De Àr bra pÄ olika saker och Àr olika mycket utvecklade; bÄda anvÀnder sig av krypterad kommunikation och bÄda Àr relativt lÀtta att anvÀnda, Àven om Keybase lÀmnar en del att önska för icke tekniska anvÀndare. Du kan Àven lÄta Signal hantera dina SMS och MMS i telefonen istÀllet för telefonens standardapplikation.

För kommunikation i grupper och inom företaget vĂ€ljer jag utan tvekan Mattermost. En applikation som utvecklas i rasande fart med en stabil samling utvecklare och företag bakom. Mattermost pĂ„minner i stora drag om Slack och Ă€r kompatibelt med bryggor, tillĂ€gg och integrationer som Ă€r skrivna för Slack. Vi har ersatt en hel del av vĂ„r interna e-postkommunikation pĂ„ företaget med just Mattermost. Den hĂ€r typen av verktyg anser jag inte lĂ€mpad för all typ av kommunikation inom företag, men som tur Ă€r finns det fler verktyg. Mattermost finns som webbapplikation, som mobilapp samt som skrivbordsapplikation för Windows, Mac och Linux. En stor fördel med Mattermost Ă€r att vi kan ha det pĂ„ egna servrar i Sverige och/eller EU samt att produkten Ă€r sĂ„ kallad “öppen kĂ€llkod”, vilket Ă€r nĂ„got vi alltid företsprĂ„kat pĂ„ företaget.

MĂ€ngden programvaror som tillhandahĂ„ller “kommunikation” Ă€r hĂ€pnadsvĂ€ckande och fler verkar dyka upp varje dag.

Ett av de kommunikationssĂ€tten jag inte pratat om Ă€r e-post, som i mitt fall lever kvar som en stor del av min dagliga kommunikation. E-post Ă€r fortfarande i sĂ€rklass det kommunikationssĂ€tt som flest mĂ€nniskor, myndigheter och företag anvĂ€nder sig av. HĂ€r finns det naturligtvis ocksĂ„ mĂ„nga valmöjligheter bĂ„de bland leverantörer och tjĂ€nster. Kan du skicka och ta emot krypterad e-post? Har din e-postleverantör en bra skrĂ€ppostfiltrering? Lagras din e-post i Sverige och/eller EU, eller ligger den i “ett stort moln” nĂ„gonstans i USA? Kan du fĂ„ hjĂ€lp med det du behöver frĂ„n din e-postleverantör som att sĂ€tta upp fungerande regler och automatisering för att göra din dag lĂ€ttare? Och sĂ„ vidare. I mitt fall sĂ„ mĂ„ste min e-post fungera frĂ„n bĂ„de Windows och Linux, samt min mobiltelefon och surfplatta. Jag mĂ„ste Ă€ven kunna anvĂ€nda en vanlig webblĂ€sare för att anvĂ€nda min e-post och Ă€ndĂ„ fĂ„ en snygg och smidig upplevelse.

Jag Àr bortskÀmd med att kunna anvÀnda en tjÀnst, Work2Go, frÄn företaget jag arbetar pÄ för e-post sÄ jag vet exakt var och hur e-posten lagras. Alla har inte den valmöjligheten, men jag tycker gott man kan tÀnka ett varv extra kring hur ens personliga e-post och företagets e-post hanteras idag och imorgon. Inte minst med tanke pÄ att GDPR kommer att förÀndra bÄde vad vi fÄr lagra av vÄr kommunikation, hur det lagras och hur lÀnge det fÄr lagras.

Lycka till med den digitala kommunikationen!