Mail server

After having depended on my friends for a few years, for web and email hosting, I recently acquired a private server again. In this HOWTO I will try and document the entire mail setup.
At the end of this article, I will have a mail server that does:

  • Postfix MTA (Mail Transfer Agent)
  • Dovecot IMAP (Internet Message Access Protocol)
  • Let’s Encrypt (SSL certificates)
  • Dovecot SASL (Simple Authentication and Security Layer)
  • mail accounts (partly) separated from system accounts
  • Dovecot LDA (Local Delivery Agent)
  • Sieve / ManageSieve
  • Greylisting
  • RBLs (Real-time Blackhole Lists)
  • Bogofilter (spam filter)
  • ClamAV (virus scanner)
  • SPF (Sender Policy Framework)
  • DKIM (DomainKeys Identified Mail)

Just so you know that there’s more to mail than just typing a text and hitting the Send button…

Currently my server only serves 1 user with 3 domains. But with the setup I describe here, it is extremely simple to upgrade that to many users running many domains.

This tutorial is not for the complete layman, but should be comprehensible for those who have played around with Linux and its services and command line a bit. I have tried to make it interesting and useful for both the beginning and the experienced sysadmin.

Corrections, clarifications, supplements and typos are welcomed at mailtuto@ohreally.nl.
Spam is not, as you will understand after reading this article.

Lees verder

Geplaatst in Nerd stuff | Een reactie plaatsen

Waarom natuurkunde cool is

Ik ben technicien. Dat is Frans voor ‘klusjesman’, of ‘huismeester’. Want ik ben het in Frankrijk. In een hotel. Maar dat doet er voor dit verhaal niet toe.

Ik had vanmiddag een lekkage. Een plas water van 5 meter lang, 2 en een halve meter breed, en een centimeter of 8 diep; dan heb je het toch over een liter of duizend. En geen afvoer. Ja, een verdieping lager, een steil trapje af.
Mijn chef dacht dat ik dat wel even met emmers zou wegwerken. Nou ben ik op zich helemaal niet vies van werken, maar wel net even te bijdehand om 1000 liter water emmertje voor emmertje een steil trapje af te gaan dragen. Neem bovendien van me aan dat er echt geen 10 liter water in een emmer gaat, als je het moet weg scheppen uit een laagje van 8 centimeter.

En dus deed ik het als volgt.
Ik nam een lange waterslang, waarvan ik het ene uiteinde in het water legde; ik legde er een tegel op, om te zorgen dat-ie goed onder water bleef. Het andere uiteinde hield ik op de kraan, en ik liet de kraan lopen; tot er geen belletjes meer uit het onderwater-uiteinde kwamen, en ik dus zeker wist dat er geen lucht meer in de slang zat, maar alleen water. Met mijn duim de slang dicht houdend ging ik vervolgens het steile trapje af, en ik hing de slang in de afvoer. En verder deed de natuur het werk voor me: dankzij de zwaartekracht van de aarde en het vacuüm in de slang, kon ik achteroverleunen terwijl natuurkrachten bijna 1000 liter water voor me weg pompten.
Er bleef een laagje van een paar millimeter over, want als er eenmaal lucht in de slang komt, is het vacuüm verbroken en werkt het niet meer. Maar ik heb er alle vertrouwen in dat dat morgen verdampt is.

Het leven is zó cool, als je een beetje snapt hoe de dingen werken.

Geplaatst in Nerd stuff | Een reactie plaatsen

Rata à l’hobo

Ratatouille. Maar dan in de rubriek Hobo food, dus het moet goedkoop, snel, en met weinig gereedschap en gedoe. In het kort betekent dat dat we:

  • de aubergine achterwege laten, want die is te duur
  • het bouquet garni vervangen door Provençaalse kruiden, want dat is minder gedoe
  • gas uitsparen door het spul niet 3 kwartier te laten pruttelen om de tomaten tot saus te koken

Daar gaan we.

Nodig, voor 1 persoon:

  • een kleine courgette
  • een halve rode paprika
  • een halve groene paprika
  • een kleine ui (of een halve grote, natuurlijk)
  • een blikje tomatenpuree (zo’n kleintje)
  • Provençaalse kruiden
  • knoflook
  • zout
  • peper
  • olijfolie

Uiteraard kun je, in plaats van 2 kleuren paprika te nemen, ook gewoon voor 1 kleur kiezen. Maar ik wilde zo dicht mogelijk bij het oorspronkelijke recept blijven, en morgen verzin ik wel iets voor de andere 2 helften.

Je hebt voor dit gerecht een wok, koekenpan of sauspan met deksel nodig.

Was de courgette en de paprika, en snijd ze in blokjes. Snipper de ui.

Verwarm wat olie in de pan (niet te zuinig!), en bak hierin de groenten even aan op hoog vuur, onder constant omscheppen. Als de courgette en de ui een beetje glazig van kleur worden, schep je er naar smaak Provençaalse kruiden door (niet te zuinig!), doe je de deksel op de pan, en zet je het vuur laag. Schep af en toe om.

Als de groenten bijna gaar zijn — minuut of 10; beetje afhankelijk van de hoeveelheid en de grootte van de blokjes — schep je er de tomatenpuree doorheen, en voeg je knoflook (niet te zuinig!), peper en zout naar smaak toe. Als de prut in de pan erg droog is, kun je eventueel een klein beetje water (zuinig!) toevoegen.
Deksel terug op de pan, en samen nog even een paar minuten doorwarmen.

In de Provence, waar dit gerecht vandaan komt, eten ze ratatouille graag met gegrild vlees (barbecue!). Maar het gaat ook prima, zoals voor mij vanavond, met zilvervliesrijst; omdat vlees nou eenmaal niet iedere dag in het budget past.

Smakelijk!

Geplaatst in Hobo food | Getagged , , , | Reacties uitgeschakeld voor Rata à l’hobo

iPhone synchroniseren met Linux

Die titel is niet helemaal eerlijk: wat ik hieronder beschrijf, zou onder Windows net zo goed moeten werken. Maar omdat Windows-gebruikers ook via iTunes kunnen synchroniseren, en het dus vooral de Linux-gebruikers zullen zijn die deze info nodig hebben, staat ‘Linux’ in de titel, voor de zoekmachines.

Wat ik hieronder beschrijf, heb ik overigens niet zelf uitgevonden (behalve het synchroniseren van Herinneringen); ik heb alleen de informatie van verschillende websites samengevoegd en gestructureerd.

En uiteraard accepteer ik, zoals gewoonlijk, geen enkele verantwoordelijkheid voor wat jij doet met de informatie die je hier leest. Als jij met onderstaande aan de slag gaat zonder eerst een backup te maken, en je raakt zaken kwijt, dan is dat niet mijn probleem.

Goed, nu dat uit de weg is…

Ik heb een iPhone aangeschaft. En ik zou het wel handig vinden als ik wat gegevens zou kunnen synchroniseren tussen mijn telefoon en mijn laptop.
Het gaat daarbij dan vooral om de agenda(‘s), de contacten, en de herinneringen. Voor mijn mail gebruik ik IMAP, dus daar kan ik overal vandaan bij zonder te hoeven synchroniseren; mijn foto’s doe ik liever via de USB-kabel; en verder heb ik niets dat heen-en-weer zou moeten tussen tussen telefoon en pc.
Alles dat ik wil synchroniseren, kan ik op de laptop kwijt in Thunderbird, dus die keuze is snel gemaakt, want TB heb ik sowieso altijd open staan voor mijn mail.

iCloud

iCloud is de backup-dienst van Apple; je hebt bij de aanschaf van je toestel ook een iCloud-abonnement gekregen. De instellingen voor dit abonnement vind je via InstellingenAccounts en wachtwoordeniCloud. Geef daar toestemming voor het synchroniseren van je contacten, agenda’s en herinneringen:

Log vervolgens in op de web-versie van iCloud om te verifiëren dat je daar nu inderdaad die gegevens terugvindt.

(Let op: als je bij iCloud over de 5GB gaat, moet je betalen; voor contacten en agenda is dat geen probleem, maar met je foto’s erbij, zit je daar snel aan.)

Als je een mobiel abonnement hebt met onbeperkt datagebruik, of je agenda, contacten en herinneringen zijn heel belangrijk voor je, zet dan ook mobiele data aan voor deze diensten, via InstellingenMobiel netwerk.

Wachtwoord

Apple staat niet toe dat je met je standaard iCloud wachtwoord je gegevens synchroniseert met Thunderbird; je moet hiervoor een apart wachtwoord aanmaken.

Log in op de Apple ID website; houd je telefoon bij de hand, want Apple gaat je een inlogcode sturen voor de 2Factor Authenticatie.
Onder het hoofdstuk Beveiliging vind je het kopje APP-SPECIFIEKE WACHTWOORDEN. Klik hier op Maak wachtwoord aan… en volg de aanwijzingen. Kopieer het gegenereerde wachtwoord naar een tekstbestandje dat je open laat staan.

Contacten

Ga in het menu van Thunderbird naar ExtraAdd-ons, en vervolgens naar het tabblad Extensies. Rechts-bovenin, bij Alle add-ons doorzoeken, vul je in ‘CardBook‘ (en druk je op ‘Enter’). Installeer de CardBook add-on, en herstart Thunderbird.

Na de herstart selecteer je ExtraCardBook. Maak een nieuw adresboek aan; kies bij de lokatie ‘Op internet‘, en bij het type ‘Apple‘; bij Gebruikerscode vul je je Apple ID in, en bij Wachtwoord het wachtwoord dat je daarnet hebt gegenereerd en gekopieerd naar dat tekstbestandje dat nog open staat. Als je dan op Volgende klikt, worden je contacten vanuit iCloud gesynchroniseerd naar Thunderbird.

De overige instellingen van CardBook mag je zelf uitvogelen. (En het handmatig samenvoegen van de contacten in je iPhone/iCloud-adresboek, en die in Thunderbird, waar ongetwijfeld overlap tussen is, is trouwens ook een erg leuke klus…)

Agenda’s

De stap die nu volgt is wat lastig. De agenda’s in iCloud zijn namelijk beschikbaar via het CalDAV-protocol, maar Apple publiceert de adressen niet; die moeten we dus zelf uitvogelen.
De basis van het adres is https://caldav.icloud.com/<gebruiker>/calendars/<agenda>. Zoals je ongetwijfeld al begrijpt, moeten we zelf de variabelen <gebruiker> en <agenda> zien te achterhalen.

Log in Firefox met je Apple ID in op icloud.com; ga vervolgens naar de agenda. Druk op Ctrl-Shift-E om de netwerk-console te openen.
Selecteer nu één van de agenda’s aan de linkerkant van de pagina, en maak een test-evenement aan. In de netwerk-console komt dan allerlei verkeer voorbij. En bij dat verkeer ga je dan, in de Parameters-tab, op zoek naar de variabelen dsid en en guid. De eerste is numeriek en kom je vrij vaak tegen; dit is de gebruikers-id. Voor de tweede zul je wat meer moeten graven; de waarde kan een woord zijn (‘home‘, ‘work‘), of een lange string (‘1A2B3C4D-A1B2-C3D4-E5F6-6F5E4D3C2B1A‘); dit is de ID van de agenda.
Dit doe je voor alle agenda’s (de agenda-id verschilt per agenda, maar de gebruikers-id zou steeds hetzelfde moeten zijn). Noteer al deze IDs in het tekstbestandje dat nog open staat.

Ikzelf heb 3 agenda’s, en dus ook 3 URLs:

  • https://caldav.icloud.com/1234567890/calendars/home
  • https://caldav.icloud.com/1234567890/calendars/work
  • https://caldav.icloud.com/1234567890/calendars/1A2B3C4D-A1B2-C3D4-E5F6-6F5E4D3C2B1A

De kalender-extensie voor Thunderbird heet Lightning; installeer die (spiek hierboven als je vergeten bent hoe je add-ons installeert).

Als je Thunderbird herstart hebt, en de agenda geopend, zie je aan de linkerkant van het scherm dat er 1 agenda is, met de naam ‘Home‘. Rechtsklik daaronder, en selecteer Nieuwe agenda….
Geef in het eerste scherm aan dat de agenda op het netwerk staat. In het tweede scherm geef je aan dat het een CalDAV agenda betreft, en bij Locatie vul je één van de URLs in die je net gevonden hebt; als je Offlineondersteuning aanvinkt, kun je de agenda ook gebruiken als je niet verbonden bent met het internet.

Herhaal dit voor alle agenda’s.

Herinneringen

Tja, en toen had ik al mijn agenda’s gesynchroniseerd, en toen dacht ik ‘Zou het niet mooi zijn als mijn Herinneringen (Reminders, die in andere agenda’s altijd Taken of Tasks heten) gewoon beschikbaar zouden zijn onder de URL /tasks?‘. En dat bleek ook het geval.

Maak dus tot slot nog een laatste agenda aan met de URL https://caldav.icloud.com/<gebruiker>/calendars/tasks. De Herinneringen uit je iPhone zullen dan in Lightning zichtbaar zijn als Taken, en vice versa.

Hoe dit werkt als je meerdere lijsten met Herinneringen hebt, weet ik niet, want ik heb alleen de ene standaardlijst.

Let op: taken/herinneringen zonder datum worden wel getoond in de Herinneringen-app op de iPhone, maar niet in de Herinneringen-widget! (Wat overigens niets te maken heeft met Thunderbird, maar alles met de widget, die alleen de herinneringen voor vandaag toont.)

Have fun!
Rob

Geplaatst in Nerd stuff | Één reactie

elPeregrino.nl

Dit weblog werd me een beetje teveel een verzamelbak voor links naar berichten op mijn andere blog. En aangezien ik niet denk dat er nog iemand is die dit blog leest, maar niet mijn andere blog weet te vinden, heb ik de categorie elPeregrino.nl verwijderd.

Voor de zekerheid nog 1 keer een link: elPeregrino.nl.

Geplaatst in Algemeen | Reacties uitgeschakeld voor elPeregrino.nl

Banaanappel

Ooit, op 19 november 2011 om precies te zijn, schreef ik een paar zinnen op Wikipedia; aan de pagina Golden Delicious voegde ik toe:

Vroeger werd deze appel banaanappel genoemd, vanwege de vettige gele schil en de zoete smaak. Sommige fruitverkopers gebruiken deze naam nog steeds.

Om de een of andere reden, ik weet eigenlijk niet precies waarom, tikte ik vandaag banaanappel in in een zoekmachine. En wat ik dus wel grappig vind, is dat er verschillende websites zijn die mijn tekst letterlijk of vrijwel letterlijk hebben overgenomen.
Goed, ‘t is nog niet die eigen Wikipedia-pagina waar ik zo van droom, maar het is een stapje in de goeie richting.
🙂

Overigens, voor wie dit leest, en die zinnen op zijn/haar website heeft gebruikt: het is wel echt waar. Mijn groente-/fruitboer in Escamp destijds had een bak appels met daarbij een bordje ‘Banaanappels‘, waarop ik zei ‘Voor mij zien ze er gewoon uit als Golden Delicious.‘. En hij heeft me toen uitgelegd hoe het zat. En omdat hij niet op mij overkwam als iemand die heel veel om Wikipedia gaf, heb ik het toen maar op Wikipedia gezet.

Dus eigenlijk zijn het niet eens mijn eigen woorden…

Damn!

Ik ga verder zoeken naar mijn eigen 15 minuten roem…

Geplaatst in Aan de kook, Nerd stuff | Getagged , , | Reacties uitgeschakeld voor Banaanappel

2 Nieuwe metatags

Ik heb zojuist 2 nieuwe metatags toegevoegd aan WHATWG MetaExtensions registry.
En als je wilt dat je ideeën op een gegeven moment geaccepteerde standaarden worden, zul je er ook over moeten publiceren; dat doe ik dus hierbij.

origin

De eerste nieuwe metatag is origin:

<meta name="origin" content="…">

Met de origin metatag verwijs je naar de oorspronkelijke (online of offline) bron van een document; denk hierbij bijvoorbeeld aan de vertaling van een webpagina, maar ook aan een songtekst die je uittikt, of een (papieren) boek dat je op internet zet.
De documentatie voor de origin metatag vind je op doc.ohreally.nl/metatag-origin.

translator

De tweede nieuwe metatag is translator:

<meta name="translator" content="…">

De translator metatag geeft informatie over de vertaler van een document. Steeds meer informatie op internet is in meerdere talen beschikbaar, en het wordt dus ook steeds belangrijker de vertalers van documenten te bereiken (bijvoorbeeld wanneer er een nieuwe versie van het oorspronkelijke document beschikbaar is).
De documentatie voor de translator metatag vind je op doc.ohreally.nl/metatag-translator.

validatie

Binnen nu en 2 weken zullen de validators van het W3C de nieuwe metatags herkennen.

Geplaatst in Nerd stuff | Reacties uitgeschakeld voor 2 Nieuwe metatags

Regexp

Dit schreef ik vandaag:

/^(?:([^:\/?#@]+):(?=\/\/))?(?:(?:\/\/)?(?:([^\/?#:]+)(?::([^\/?#]+))?@)?([^\/?#@:]*)(?::(\d+))?)?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/

(Alles op 1 regel, uiteraard, en zonder spaties.)

Wie mij kan vertellen waar ik mee bezig was, is een eindbaas.
Om het makkelijker te maken, zal ik erbij vertellen dat ik in JavaScript aan het programmeren was.

Waarmee hij 2 jaar na zijn afscheid van de IT zijn titel Koning van de Regular Expressions toch nog prolongeerde…
😉

Geplaatst in Nerd stuff | 2 Reacties

Pâtes au poulet et pesto

Dit keer geen nieuw recept, maar de Franse vertaling van een succesnummer; omdat er vraag naar is.

Une recette apprise dans un restaurant Néerlandais-Italien, et améliorée par moi-même.

Ingrédients:

  • huile d’olive
  • 1 kilo de blanc de poulet
  • 3-400 grammes de lard (préférablement la ventrèche fumée)
  • sel (marin)
  • poivre (noir)
  • ail
  • 2 cubes de bouillon volaille
  • 50 cl de crème légère
  • 2 pots de pesto
  • 1 paquet de penne

Coupez les blancs de poulet et le lard en cubes.
Chauffez l’huile dans une grande poêle, et y faites revenir le poulet avec l’ail, le sel et le poivre. Si vous avez choisi du lard cru, l’ajoutez avant le poulet; sinon, l’ajoutez quand le poulet est presque complètement cuit.
Mettez les cubes de bouillon dans 2 tasses de l’eau, et faites cuire.
Dès que le bouillon bout, tempérez le feu, et ajoutez la crème. Ajoutez, dès que le bouillon est réchauffé, le pesto.
Mélangez la sauce avec le poulet et lard, et laissez mijoter un peu.
Faites cuire les pâtes, et mélangez avec la sauce.

Servez avec une salade fraîche; par exemple de concombre, oignon, poivron et tomates avec un peu de huile d’olive et un peu de vinaigre.

Ce repas-ci se laisse bien accompagner par un vin rouge simple.

Bon ap’!

Geplaatst in Aan de kook | Getagged , , , | Reacties uitgeschakeld voor Pâtes au poulet et pesto

Pasta Castet-Arrouy

Hè, eindelijk weer eens een receptje in de rubriek Hobo food

De setting: je komt half februari als Compostela-pelgrim aan in de gîte communal van Castet-Arrouy, en daar liggen nog wat dingetjes in de kast van afgelopen seizoen.

Nodig:

  • 1 zakje instant tomatensoep
  • 125 gram macaroni
  • 1 blikje sardientjes in tomatensaus
  • provençaalse kruiden

Het zakje soep is niet zo’n klein zakje troep als je op veel kantoren naast de koffieautomaat schijnt te kunnen vinden, maar een groter zakje troep, zoals je ze bij de supermarkt koopt. Maar met 2 of 3 van die kleintjes kom je ook vast een heel eind.
Eigenlijk gebruik je geen 125 gram macaroni, maar ongeveer de helft van een doosje van 250 gram (de andere helft bewaar je voor later).

Doe warm water in een pan; een beetje meer dan je zou gebruiken als het alleen om soep ging. Roer het soeppoeder erdoor en zet de pan op het vuur.
Roer de macaroni erdoor, en blijf roeren, terwijl je de soep zachtjes kookt tot de macaroni al dente is.
Schep het blikje vis erdoor, en warm het spul nog even door.
Haal de pan van het vuur (het vuur mag uit), en roer naar smaak kruiden door de pasta.

Smakelijk!

Geplaatst in Hobo food | Getagged , , | Reacties uitgeschakeld voor Pasta Castet-Arrouy