Różnice pomiędzy wersjami 8 i 9
⇤ ← Wersja 8 z 2015-09-06 20:51:39 →
Rozmiar: 7300
Edytor: wtps0n
Komentarz: * literówki
← Wersja 9 z 2019-10-07 20:27:27 → ⇥
Rozmiar: 7799
Edytor: wtps0n
Komentarz: * przejście na highlight; dodanie skrypty automatyzujące tworzenie konfiguracji
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 15: Linia 15:
{{{#!shell numbers=off {{{#!highlight bash numbers=off
Linia 21: Linia 21:
{{{#!shell numbers=off {{{#!highlight bash numbers=off
Linia 30: Linia 30:
{{{#!shell numbers=off {{{#!highlight bash numbers=off
Linia 40: Linia 40:
{{{#!shell numbers=off {{{#!highlight bash numbers=off
Linia 46: Linia 46:
{{{#!shell numbers=off {{{#!highlight bash numbers=off
Linia 59: Linia 59:
{{{ {{{#!highlight ini numbers=off
Linia 77: Linia 77:
{{{ {{{#!highlight ini numbers=off
Linia 115: Linia 115:
==== Skrypty pomocnicze do wygenerowania keytable, signingtable ====
{{{#!highlight bash numbers=off
find -s /var/db/milteropendkim/ -name email.key | awk -F "/" '{print $5, $5, $0}' > /usr/local/etc/opendkim.d/keytable
find -s /var/db/milteropendkim/ -name email.key | awk -F "/" '{print "*@"$5, $5}' > /usr/local/etc/opendkim.d/signingtable
}}}
Linia 116: Linia 122:
{{{#!shell numbers=off {{{#!highlight bash numbers=off
Linia 125: Linia 131:
{{{#!shell numbers=off {{{#!highlight bash numbers=off
Linia 151: Linia 157:
{{{#!shell numbers=off {{{#!highlight bash numbers=off
Linia 161: Linia 167:
{{{#!shell numbers=off {{{#!hihglight bash numbers=off
Linia 167: Linia 173:
{{{#!diff numbers=off {{{#!highlight diff numbers=off

Konfiguracja OpenDKIM

Dawny milter-dkim zmienił się w OpenDKIM. Zasada działania jest ta sama, plik konfiguracyjny niemalże identyczny. Ale kilka zmian jest.

Instalacja

Wykorzystując niniejsze wiki, w systemie nie ma śladu po sendmailu wraz z biblioteką milter (libmilter). Niemniej skutkuje to potrzebą zainstalowania sendmaila z ports, czyli konflikt z postfixem. Dlatego też można "ręcznie" (nie jest to make buildworld) dokompilować oraz doinstalować libmilter.

Kolejnym krokiem jest zainstalowania OpenDKIM.

Instalacja libmilter ze źródeł systemu

cd /usr/src/lib/libmilter/
make all install

Instalacja samego OpenDKIM

cd /usr/ports/mail/opendkim
make config
# Wybrać opcje: FILTER OPENLDAP QUERY_CACHE STATS STOCK_RESOLVER
# jeżeli lokalnie jest unbound, to można w ostatniej opcji wybrać opcję UNBOUND
make all install clean

Plik konfiguracyjny

cd /usr/local/etc/
cp mail/opendkim.conf.sample opendkim.conf
mkdir -p /var/db/milteropendkim/
touch /var/db/milteropendkim/example.private
chown -R mailnull:mailnull /var/db/milteropendkim/
chmod 0600 /var/db/milteropendkim/example.private

Jeżeli będziemy również podpisywać maile, to należy wykonać polecenie:

mkdir -p /usr/local/etc/opendkim.d/
chown mailnull:mailnull /usr/local/etc/opendkim.d/

Wygenerowanie kluczy do podpisywania

cd /var/db/milteropendkim/
opendkim-genkey -r -d gdbd.pl -s email
mv email.private email.key
chown mailnull:mailnull email.*

# sprawdzenie poprawności wygenerowanego klucz
#
opendkim-testkey -vvv -d gdbd.pl -s email -k /var/db/milteropendkim/email.key -x /usr/local/etc/opendkim.conf

Konfiguracja tylko do sprawdzania nadawców

Jak już odfiltrować wszelkie komentarze, to plik konfiguracyjny sprowadza się do kilku linijek:

Background              Yes
BaseDirectory           /var/run/milteropendkim
Canonicalization        simple/simple
Domain                  gdbd.pl
DontSignMailTo          *
FixCRLF                 no
KeyFile                 /var/db/milteropendkim/example.private
Selector                gdbd-dkim-signer
Socket                  inet:3322@127.0.0.1
Syslog                  No
TemporaryDirectory      /var/tmp
UMask                   022
SoftwareHeader          Yes

Konfiguracja razem z podpisywaniem

Mode                    sv
Background              Yes
BaseDirectory           /var/run/milteropendkim
Canonicalization        simple/simple
##Domain                  gdbd.pl # Skoro jest KeyTable, to ta opcja jest "martwa"
FixCRLF                 yes
KeyTable                refile:/usr/local/etc/opendkim.d/keytable
SigningTable            refile:/usr/local/etc/opendkim.d/signingtable
ExternalIgnoreList      refile:/usr/local/etc/opendkim.d/trustedhosts
InternalHosts           refile:/usr/local/etc/opendkim.d/trustedhosts
Socket                  inet:3322@127.0.0.1
Syslog                  yes
SyslogSuccess           yes
LogWhy                  yes
TemporaryDirectory      /var/tmp
UMask                   022
SoftwareHeader          Yes
OversignHeaders         From,Subject
UserID                  mailnull:mailnull

/usr/local/etc/opendkim.d/keytable

gdbd.pl gdbd.pl:email:/var/db/milteropendkim/email.key

/usr/local/etc/opendkim.d/signingtable

*@gdbd.pl gdbd.pl

/usr/local/etc/opendkim.d/trustedhosts

127.0.0.1
siec.lan/cidr

Skrypty pomocnicze do wygenerowania keytable, signingtable

find -s /var/db/milteropendkim/ -name email.key | awk -F "/" '{print $5, $5, $0}' > /usr/local/etc/opendkim.d/keytable
find -s /var/db/milteropendkim/ -name email.key | awk -F "/" '{print "*@"$5, $5}' > /usr/local/etc/opendkim.d/signingtable

Dodanie do rc.conf

milteropendkim_enable="NO"
milteropendkim_domain="wtp3.org,modlin.wtp3.org"
milteropendkim_flags="-b v -c simple/simple"
milteropendkim_socket="inet:3322@127.0.0.1"
milteropendkim_cfgfile="/usr/local/etc/opendkim.conf"

Wersja z podpisywaniem

# opcje z rc.conf nadpisują ustawienia w opendkim.conf, zatem milteropendkim_socket można pominąć
milteropendkim_enable="NO"
milteropendkim_socket="inet:3322@127.0.0.1"
milteropendkim_cfgfile="/usr/local/etc/opendkim.conf"

Uruchomienie usługi poprzez deamontools

(To już było na stronie głównej)

Konfiguracja w DNS

Aby zadziałało podpisywanie maili należy wykonać stosowny wpis DNS dla obsługiwanej domeny. Pomocny jest plik ze skryptu opendkim-genkey (np. email.txt), który zawiera wszystkie potrzebne informacje. Konieczne oczywiście wgranie nowej wersji strefy.

Konfiguracja postfixa

## main.cf
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:3322
non_smtpd_milters = $smtpd_milters

Uruchomienie lokalnego socketu do komunikacji postfix - opendkim

Wynikło to z konieczności uruchomienie poprawnej komunikacji w przypadku korzystania z adresacji IPv4 oraz IPv6. Remedium jest lokalny socket (plik) zamiast socketu sieciowego.

Zmiany w /etc/rc.conf

milteropendkim_socket="local:/var/run/milteropendkim/opendkim.sock"

Konifguracja w main.cf postfixa

smtpd_milters = unix:/var/run/milteropendkim/opendkim.sock

Dopisanie użytkowników postfix, mailnull do grup

pw mod user postfix -G postfix,mail,mailnull
pw mod user mailnull -G postfix

Poprawka dla skryptu startowego

--- /usr/local/etc/rc.d/milter-opendkim 2014-12-15 09:27:10.136685000 +0100
+++ /usr/local/etc/rc.d/milter-opendkim.new     2015-06-12 15:53:11.188277365 +0200
@@ -38,6 +38,7 @@

 extra_commands="reload"
 start_precmd="dkim_prepcmd"
+start_postcmd="dkim_start_postcmd"
 stop_postcmd="dkim_postcmd"
 command="/usr/local/sbin/opendkim"
 _piddir="/var/run/milteropendkim"
@@ -51,6 +52,7 @@
 #
 : ${milteropendkim_enable="NO"}
 : ${milteropendkim_uid="mailnull"}
+: ${milteropendkim_gid="mailnull"}
 : ${milteropendkim_cfgfile="/usr/local/etc/mail/opendkim.conf"}

 # Options other than above can be set with $milteropendkim_flags.
@@ -157,6 +159,18 @@
     if [ -n "${milteropendkim_uid}" ] ; then
        chown ${milteropendkim_uid} ${_piddir}
     fi
+    if [ -n "${milteropendkim_gid}" ] ; then
+       chgrp ${milteropendkim_gid} ${_piddir}
+    fi
+}
+
+dkim_start_postcmd ()
+{
+    if [ -S ${milteropendkim_socket##local:} ] ; then
+        chmod 0775 ${milteropendkim_socket##local:}
+    elif [ -S ${milteropendkim_socket##unix:} ] ; then
+        chmod 0775 ${milteropendkim_socket##unix:}
+    fi
 }

 dkim_postcmd()

Źródła w sieci internet


{i} (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.


  1. Otwiera się w nowym oknie/nowej karcie przeglądarki. (1 2 3)

MilterOpenDkim (ostatnio edytowane 2023-10-07 09:32:55 przez wtps0n)