Różnice pomiędzy wersjami 3 i 7 (Spinanie 4 wersji)
⇤ ← Wersja 3 z 2014-03-29 22:54:34 →
Rozmiar: 5312
Edytor: wtps0n
Komentarz: zmiana domyślnej ścieżki pliku konfiguracyjnego
← Wersja 7 z 2015-06-13 20:51:36 → ⇥
Rozmiar: 7300
Edytor: wtps0n
Komentarz: + wykorzystanie słownika, dodanie poprawki dla socketu lokalnego
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 39: Linia 39:
=== Nałożenie patchy ===
{{{#!diff numbers=off
--- opendkim.conf.sample 2012-01-30 12:40:13.000000000 +0100
+++ opendkim.conf 2012-01-30 12:49:45.000000000 +0100
@@ -106,7 +106,7 @@
 ##
 ## Indicate whether or not the filter should run in the background.

-# Background Yes
+Background Yes

 ## BaseDirectory path
 ## default (none)
@@ -115,7 +115,7 @@
 ## operation. Thus, cores will be dumped here and configuration files
 ## are read relative to this location.

-# BaseDirectory /var/run/opendkim
+BaseDirectory /var/run/milteropendkim

 ## BodyLengthDB dataset
 ## default (none)
@@ -133,7 +133,7 @@
 ## omitted, "simple" is used. Valid values for each are "simple" and
 ## "relaxed".

-# Canonicalization simple/simple
+Canonicalization simple/simple

 ## ClockDrift n
 ## default 300
@@ -174,7 +174,7 @@
 ## Specify for which domain(s) signing should be done. No default; must
 ## be specified for signing.

-Domain example.com
+Domain bsdserwis.com

 ## DomainKeysCompat { yes | no }
 ## default "no"
@@ -191,7 +191,7 @@
 ## Gives a list of recipient addresses or address patterns whose mail should
 ## not be signed.

-# DontSignMailTo addr1,addr2,...
+DontSignMailTo *

 ## EnableCoredumps { yes | no }
 ## default "no"
@@ -214,7 +214,7 @@
 ## Requests that the library convert "naked" CR and LF characters to
 ## CRLFs during canonicalization. The default is "no".

-# FixCRLF no
+FixCRLF no

 ## InternalHosts dataset
 ## default "127.0.0.1"
@@ -241,7 +241,7 @@
 ## SigningTable and KeyTable are used. No default; must be specified for
 ## signing if SigningTable/KeyTable are not in use.

-KeyFile /var/db/dkim/example.private
+KeyFile /var/db/milteropendkim/example.private

 ## KeyTable dataset
 ## default (none)
@@ -658,7 +658,7 @@
 ##
 ## Log informational and error activity to syslog?

-# Syslog No
+Syslog No

 ## SyslogFacility facility
 ## default "mail"
@@ -684,7 +684,7 @@
 ## Specifies which directory will be used for creating temporary files
 ## during message processing.

-# TemporaryDirectory /var/tmp
+TemporaryDirectory /var/tmp

 ## TestPublicKeys filename
 ## default (none)
@@ -710,7 +710,7 @@
 ## The system has its own default which will be used (usually 022).
 ## See the umask(2) man page for more information.

-# UMask 022
+UMask 022

 ## UnboundConfigFile filename
 ## default (none)
@@ -737,4 +737,4 @@
 ## Add an X- header to messages passing through this filter to identify
 ## messages it has processed.

-# X-Header No
+X-Header Yes
}}}

=== Alternatywa: krótki plik konfiguracyjny ===
Jeżeli będziemy również podpisywać maile, to należy wykonać polecenie:
{{{#!shell numbers=off
mkdir -p /usr/local/etc/opendkim.d/
chown mailnull:mailnull /usr/local/etc/opendkim.d/
}}}

=== Wygenerowanie kluczy do podpisywania ===
{{{#!shell numbers=off
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 ===
Linia 156: Linia 72:
X-Header Yes 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
Linia 168: Linia 124:
=== Wersja z podpisywaniem ===
{{{#!shell numbers=off
# 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"
}}}
Linia 171: Linia 135:
= 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 ==
{{{#!shell numbers=off
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 ==
{{{#!shell numbers=off
pw mod user postfix -G postfix,mail,mailnull
pw mod user mailnull -G postfix
}}}

== Poprawka dla skryptu startowego ==
{{{#!diff numbers=off
--- /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 ineteret =

 * [[http://www.cioby.ro/linux/configuring-opendkim-to-sign-postfix-emails.html||target="_blank"]]<<FootNote(Otwiera się w nowym oknie/nowej karcie przeglądarki.)>> - jak to zrobić na debianie
 * [[http://dkimcore.org/||target="_blank"]]<<FootNote(Otwiera się w nowym oknie/nowej karcie przeglądarki.)>> - sprawdzenie swojej konfiguracji
 * No i zawsze [[http://www.google.pl/|wujek G|target="_blank"]]<<FootNote(Otwiera się w nowym oknie/nowej karcie przeglądarki.)>>
Linia 172: Linia 214:
A reszta to już kwestia postfixa {i} <<GetVal(SlownikNewBsd,adm-podpis)>>
----

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

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 ineteret


{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)