Det här inlägget påbörjades klockan 22:01 under gårdagen. Jag somnade 7 och väcktes klockan 9 igen av att telefonen ringde. Någon hade upptäckt att popmailen hade slutat fungera. Jag funderade på vad det var, men kom sedan på att det bara var en portforward jag missat. Mail hade nämligen ramlat in i mailboxarna mellan 7-10 precis som om inget hade hänt så det avhjälptes rätt snabbt. Så här kommer dokumentationen, kring hur mailflytten gick! Åtminstone grovt sett.
22:00 – Ikväll blir uppenbarligen den stora dagen. Mailservern har börjat konstra igen och startar spontant om sig på grund av värmeproblem. Så nu är måttet rågat. Skiten ska väck, bort, slängas, ut! Jag vill inte se eländet längre. Nästan allt är klart. Den nya servern har stått och väntat på sina användare, men av lathet har jag inte orkat ta itu med det. Dessutom har jag haft en e-postlist-server på samma maskin som även den måste fungera. Men nu är det som sagt dags. Det får bära eller brista och jag tvingar mig själv att offra min dyrbara fritid.
Så till att börja måste jag se till att ezmlm är patchad och klarar vad den klarar nu. Jag har redan hunnit bli förvånad, eftersom utvecklingen av listservern tydligen har varit rätt ordentlig sedan jag kollade på den sist. Jag sitter med en ezmlm-idx 0.43 när det uppnebarligen finns en ezmlm-idx 7.0.2!
Självklart önskar jag ha kvar mitt ”eventuella” MySQL-stöd så det blir till att glo igenom en massa dokument samtidigt. I det första dokumentet jag hittar står det lite om tabeller, men det finns ingen riktigt info om hur man skapar tabellerna – och jag är ju lat, så jag skippar den delen tills den dag jag snubblar över eländet. SQL-stödet skall dock med ändå. Just in case. Jag börjar dock med att hämta idx-versionen. Den gamla standardversionen har jag ju redan. Förhoppningsvis fungerar kompileringen hela vägen även med denna…
make
make man
make mysql
conf-lang ändrar jag till sv i för att få svenskt språkstöd
make setup
cp ezmlmrc /usr/local/bin/ezmlm/ezmlmrc.en
cp lang/sv/ezmlmrc /usr/local/bin/ezmlm/ezmlmrc
Eftersom testprogrammen nästan alltid failar för mig, så skippar jag de procedurerna, som INSTALL-filen gärna vill att jag gör. Så, första delen av installationen bör alltså vara klar nu. Nu börjar det fruktansvärt långtråkiga kopierandet av användare och deras mailboxar… Glöm dock inte att uppgradera gamla listor om det finns några. Detta görs bland annat med ”ezmlm-idx DIR” för att återindexera listorna (har inte kunnat bekräftat detta själv iofs). Men det viktigaste är att man gör en ”ezmlm-make -+ ~alias/listdir” på alla gamla listmappar – jag stötte nämligen i efterhand på felet ”deny/key does not exist/Sorry, I’ve been told to reject your posts”. Efter remaken, så fungerade listorna igen. Relativt smärtfritt om man jämför med hur resten av flytten gick (det sista här är skrivet efter att allt blivit färdigt).
[...]
Några timmar senare var man klar. För att verkligen vara säker på att alla hemkataloger fortsätter tillhöra rätt användare avslutas nu användarprocessen med en liten sök-och-ersätt:
grep -i /home /etc/passwd | sed s/”[ ]”/”_”/ | sed s/”[:]”/” ”/g | awk ‘{printf ”chown -R ” $3 ”:” $4 ” ” $6 ”\n”}’ | grep -i home
Och för gruppbehörigheterna för varje undermapp…
find -type d -maxdepth 1 | sed s/”[\/]”// | sed s/”[\^\.]”// | awk ‘{printf ”chgrp ” $1 ” ” $1 ”\n”}’
Problem uppstår givetvis på andra håll dock. Med pop3-servern som vägrar acceptera användare som loggar in. Courier-lösningen som tidigare installerats fungerar inte heller eftersom authdaemon där kräver grejer jag inte vill ha. Ju lite inverkan som möjligt, desto bättre. Standard-auth via passwd/shadow är alltså ändå alternativet jag godtar. Det löstes dock genom att …
pop3 stream tcp nowait root /usr/sbin/tcpd /var/qmail/bin/qmail-popup tornevall.net /bin/checkpassword qmaill /var/qmail/bin/qmail-pop3d Maildir
… måste ändras till …
pop3 stream tcp nowait root /usr/sbin/tcpd /var/qmail/bin/qmail-pop
Därefter skapar man en fil i qmail-bin-katalogen som innehåller:
#!/bin/sh
/var/qmail/bin/qmail-popup tornevall.net /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
Och vips var den delen färdig! Varför folk jämt skall envisa med helt sjuka lösningar förstår jag faktiskt inte, när man kan göra det så enkelt för sig…
Beträffande ett authpaket som saknas för courier så kan varken jag eller någon annan (figures! det har vi aaaaaaaaaldrig varit med om förr) svara på varför authshadow saknas vid kompileringen. Ja, förutom att ett gäng shadowlibs saknas, så att kompilatorn kan hitta dom ordentligt. Och förutom att det är helt omöjligt att hitta libs att installera också. Förutom ”shadow suite” – som inte går att kompilera. GÖTT! Därför ligger libauthshadow för courier HÄR nu! Fysiskt om min första courierinstallation efterföljs, så skall dessa filerna placeras i /usr/local/lib/courier-authlib och i /usr/local/etc/authlib/authdaemonrc på raden authmodulelist skall authshadow finns med. Fixat och klart!
Efter många om och men så är då projektet – till synes – avslutat. Numera sitter man här, med en specifik in- och uthanterande mailserver, med mailauth. Det står även en annan smtp-server, hos ”grannen”, som explicit skickar ut mail från interna nätet – där enbart några få ipadresser släpps in för att få skicka mail. Bland annat ovanstående nya mailserver (och den gamla). Det är en sendmail-daemon som inte har så många andra uppgifter än att forsla mailtrafiken förbi port 25, genom en VPN-tunnel. Inga fel har hittats ännu och förhoppningsvis håller sånt sig borta även i fortsättningen, så man slipper sitta ytterligare timmar och rätta fel.