dkim-filter: smfi_opensocket() failed

dkimÎncă un post într-o limbă străină (de data asta despre DKIM) pentru cei care nu au nicio treabă cu calculatoarele, însă, aşa cum am scris în postul iniţial, aici găsiţi problemele care mi-au dat de cap şi cum le-am rezolvat. Unele ajută o categorie de oameni, altele altă categorie şi tot aşa. Oricum, probabil că nu vor mai fi în următoarea perioadă posturi despre servere deoarece mă apropii de finalizat reconfigurarea unui server şi îmi mut focusul. Dar să trecem la subiect.

DKIM-milter semnează e-mail-urile care urmează a fi trimise de acel server. Se setează în Postfix ca mailurile să treacă mai întâi pe la semnarea DKIM. N-o să intru în detalii despre acest lucru pentru că nu acesta este subiectul (mai discutăm în comentarii dacă este cazul).

Eroarea era la încercarea de a porni dkim-milter şi era cât se poate de aiurea:

/etc/init.d/dkim-milter start
Starting DomainKeys Identified Mail Milter (dkim-filter): dkim-filter: smfi_opensocket() failed
                       [FAILED]

În momentul în care apărea această eroare, în /var/log/maillog scria:

Jun 10 21:16:48 nutrienti dkim-filter[6758]: Sendmail DKIM Filter: Unable to bind to port inet:8891@localhost: Cannot assign requested address
Jun 10 21:16:48 nutrienti dkim-filter[6758]: Sendmail DKIM Filter: Unable to create listening socket on conn inet:8891@localhost
Jun 10 21:16:48 nutrienti dkim-filter[6758]: smfi_opensocket() failed

Eu nu mă aştept ca pentru toată lumea să existe aceeaşi rezolvare, însă pentru cei care au serverul configurat similar, e posibil să dea de problema aceasta.

Practic dkim-milter încerca să asculte pe 8891@localhost conform setărilor din /etc/sysconfig/dkim-milter .
Problema a fost că localhost este setat ca IPv6 şi el încerca să se conecteze la 8891@::1 . Singurul lucru pe care l-am făcut a fost să schimb 8891@localhost cu 8891@127.0.0.1 .

Pentru a putea folosi serviciul prin Postfix, trebuie schimbat şi în Postfix acest lucru.

UPDATE 25.02.2015

Eroarea anterioară am primit-o în CentOS 6.X. Trecând la CentOS 7, am avut surpriza să dau din nou de această eroare (norocul meu că mai erau şi alte detalii acolo). Situaţia: dkim-milter pornea prima dată după instalare, însa după reboot, dădea failed. Intrând în investigaţii am constatat că dispărea folderul /var/run/dkim-milter şi singura soluţie găsită a fost să creez un script, care la fiecare reboot să fie lansat şi să creeze folderul înainte să încerce programul să se lanseze.

Scriptul (să-i spunem startdkim.sh):

#!/bin/bash
mkdir /var/run/dkim-milter
chown dkim-milter:dkim-milter /var/run/dkim-milter

Acesta se poate pune oricunde. De exemplu în /root/cron_scripts/startdkim.sh . Se face scriptul executabil:

cd /root/cron_scripts
chmod +x startdkim.sh

Apoi se editează crontab

crontab -e

şi se adaugă în prima linie să pornească la fiecare reboot:

@reboot /root/cron_scripts/startdkim.sh > /dev/null 2>&1

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.