|
Rozmiar: 5312
Komentarz: zmiana domyślnej ścieżki pliku konfiguracyjnego
|
Rozmiar: 7300
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)>> ---- |
Spis Treści
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
http://www.cioby.ro/linux/configuring-opendkim-to-sign-postfix-emails.html1 - jak to zrobić na debianie
http://dkimcore.org/1 - sprawdzenie swojej konfiguracji
(c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.
