Różnice pomiędzy wersjami 3 i 8 (Spinanie 5 wersji)
⇤ ← Wersja 3 z 2015-09-08 20:44:35 →
Rozmiar: 5266
Edytor: wtps0n
Komentarz: + periodic
← Wersja 8 z 2015-11-03 07:45:08 → ⇥
Rozmiar: 8208
Edytor: wtps0n
Komentarz: + wymagany p5-DBI
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 3: Linia 3:
<<Action(print,Wydrukuj dokumentację)>>` `<<Action(SlideShow,Pokaż jako slajdy)>><<BR>>
Linia 15: Linia 16:
portupgrade -N mail/opendmarc portupgrade -N mail/opendmarc lang/p5-Switch databases/p5-DBI
Linia 19: Linia 20:
pkg install mail/opendmarc pkg install mail/opendmarc lang/p5-Switch databases/p5-DBI
Linia 21: Linia 22:
/!\ Pakiet [[http://www.freshports.org/lang/p5-Switch|p5-Switch|target="_blank"]] jest potrzebny przez narzędzia `opendmarc-import`, `opendmarc-reports` oraz `opendmarc-expire`
Linia 46: Linia 48:
AutoRestart false AutoRestart true
Linia 52: Linia 54:
IgnoreAuthenticatedClients false IgnoreAuthenticatedClients true
Linia 76: Linia 78:
opendmarc_enable="NO" # => DaemonTools opendmarc_enable="YES" # => DaemonTools nie jest potrzebne
Linia 88: Linia 90:
echo 127.0.0.1 >> /usr/local/etc/opendmarc/ignore.hosts
Linia 107: Linia 110:
(To już było na stronie głównej) (!) (To już było na stronie głównej). Chociaż wszystko wskazuje na to, że nie jest to potrzebne: opendmarc działa bardzo dobrze samodzielnie.
Linia 110: Linia 113:
Aby codzienne zadanie sprawdzania raportów mogło działać, potrzebna jest baza danych mySQL. Po utworzeniu (na lokalnym lub zdalnym serwerze) należy wykonać następujące kroki:
{{{#!shell numbers=off
cat /usr/local/share/doc/opendmarc/schema.mysql | mysql -h localhost -u <user> -p opendmarc
}}}

Albo dla innej nazwy bazy danych:
{{{#!shell numbers=off
cat /usr/local/share/doc/opendmarc/schema.mysql | sed -E '/^(CREATE DATABASE|USE)/d' | mysql -h <db_host> -u <user> -p <db_name>
}}}

== Skrypt dla periodic ==
Korzystając z [[UniMaster|repozytorium]] konfiguracji należy przegrać skrypt `920.dmarc-reports`, który będzie rozsyłał raporty dla innych domen (obcych). W celu uruchomienia skryptu należy ustawić następujące zmienne w `/etc/periodic.conf`:
{{{#!shell numbers=off
# --- codzienne wysy/lanie raport/ow OpenDMARC -------------------
#
daily_dmarc_reports_enable="YES"
daily_dmarc_reports_verbose="NO"
daily_dmarc_reports_dbhost="localhost"
daily_dmarc_reports_dbname="opendmarc"
daily_dmarc_reports_smtp_server="localhost.bsdserwis.com"
}}}

oraz dane "''sensytywne''" w `/etc/periodic.conf.local`:
{{{#!shell numbers=off
daily_dmarc_reports_dbuser="<user>"
daily_dmarc_reports_dbpass="<password>"
}}}

Przed uruchomieniem warto "dostroić" zawartość pliku `/usr/local/etc/opendmarc/ignore.hosts`, aby nie wysyłać raportów dla np. loopback, czy też domen "''niepożądanych''".
Linia 136: Linia 168:
= Parsowanie raportów =
Raporty DMARC są w postaci XML. Zatem trudno czytelne. Można jednak za pomocą dodania nieskomplikowanego pliku xslt parsować raporty do postaci bardziej czytelnej.

== Zawartość parsera ==
(!) Patrz [[attachment:dmarc.xslt|załączony plik]].

== Dodanie pliku xslt do raportu ==
Po rozpakowaniu raportu do katalogu widzianego przez serwer www najlepiej wykonać polecenie:
{{{#!shell numbers=off
find ./ -mindepth 1 -type f -mtime -+5h | xargs -n1 perl -pi -e 'next unless /^<feed/; print "<?xml-stylesheet type=\"text/xsl\" href=\"dmarc.xslt\"?>\n";'
}}}

== Poprawa daty raportów na czytelną ==
Daty (''timestamps'') są zapisane w postaci "''epoch seconds''". Nie jest to do końca czytelne. Zatem raporty można zmodyfikować poprzez następującego jednolinijkowca:
{{{#!shell numbers=off
find ./ -mindepth 1 -type f -mtime -+5h | xargs -n1 perl -pi -e 'next unless /(begin|end)/; s/([0-9]+)/localtime($1)/eo;'
}}}
Linia 137: Linia 187:
{i} <<GetVal(SlownikNewBsd,adm-podpis)>> {i} ` `<<GetVal(SlownikNewBsd,adm-podpis)>>

Wydrukuj dokumentację  Pokaż jako slajdy

Konfiguracja OpenDMARC

DMARC powstał w celu wyeliminowania fałszywych wiadomości (podszywających się pod jakąś domenę). DMARC ma na celu uproszczenie konfiguracji, wykluczenie false-positive, itd. Więcej szczegółów można znaleźć pod adresem https://dmarc.org/overview/.

Instalacja

Tak jak w przypadrku OpenDKIM konieczne jest doinstalowanie libmilter. Niemniej ponieważ DMARC jest kolejnym milterem w stosunku do OpenDKIM, zatem ten krok można pominąć.

Sama instalacja opendmarc przebiega jak inne paczki w systemie:

# z wykorzystaniem portupgrade
#
portupgrade -N mail/opendmarc lang/p5-Switch databases/p5-DBI

# albo za pomocą repozytorium pkg.bsdserwis.com
#
pkg install mail/opendmarc lang/p5-Switch databases/p5-DBI

/!\ Pakiet p5-Switch jest potrzebny przez narzędzia opendmarc-import, opendmarc-reports oraz opendmarc-expire

Plik konfiguracyjny

Przygotawanie pliku na podstawie pliku instalacyjnego:

cd /usr/local/etc/
cp mail/opendmarc.conf.sample opendmarc.conf

Albo korzystając z repozytorium konfiguracji przegrać przygotowany plik:

# -----------------------------------------------------------------------
#
# Je/zeli nazwa serwera r/o/zni si/e od nazwy podanej w postfix, to lepiej
# wpisa/c nazw/e prezentowan/a przez postfix (np. mx1.bsdserwis.com)
#
# W trakcie instalacji skryptu trzeba poprawi/c to lokalnych ustawie/n
#
# -----------------------------------------------------------------------
#
AuthservID HOSTNAME

# --- pozosta/le ustawienia ---------------------------------------------
#
AuthservIDWithJobID false
AutoRestart true
Background true
DNSTimeout 5
EnableCoreDumps false
FailureReports false
HistoryFile /var/db/opendmarc/opendmarc.dat
IgnoreAuthenticatedClients true
IgnoreHosts /usr/local/etc/opendmarc/ignore.hosts
MilterDebug 0

# lista pobierana z sieci internet, zatem powinna trafi/c do katalogu z
# bazami OpenDMARC
#
PublicSuffixList /var/db/opendmarc/effective_tld_names.dat
RecordAllMessages false
RejectFailures false
ReportCommand /usr/local/sbin/sendmail -t
RequiredHeaders false
SoftwareHeader false
SPFIgnoreResults false
SPFSelfValidate false
Syslog true
SyslogFacility mail
TrustedAuthservIDs HOSTNAME
UMask 027
UserID mailnull:mailnull

Dodanie do rc.conf

opendmarc_enable="YES"     # => DaemonTools nie jest potrzebne
opendmarc_runas="mailnull:mailnull"
opendmarc_pidfile="/var/run/opendmarc/pid"
opendmarc_socketspec="inet:8893@localhost"
opendmarc_cfgfile="/usr/local/etc/mail/opendmarc.conf"

Przygotowanie katalogów oraz plików przed pierwszym uruchomieniem

mkdir -p /var/run/opendmarc /var/db/opendmarc /usr/local/etc/opendmarc
chown mailnull:mailnull /var/run/opendmarc /var/db/opendmarc
touch /usr/local/etc/opendmarc/ignore.hosts
echo 127.0.0.1 >> /usr/local/etc/opendmarc/ignore.hosts

Pobranie Public Suffix List

wget --no-check-certificate -q -N -P /var/db/opendmarc https://publicsuffix.org/list/effective_tld_names.dat

Dodanie skryptu do periodic.conf

### /etc/periodic.conf
###

# --- aktualizacja Public Suffix List dla OpenDMARC --------------
#
weekly_opendmarc_update_public_suffix_list_enable="YES"
weekly_opendmarc_update_public_suffix_list_verbose="NO"

Uruchomienie usługi poprzez deamontools

(!) (To już było na stronie głównej). Chociaż wszystko wskazuje na to, że nie jest to potrzebne: opendmarc działa bardzo dobrze samodzielnie.

Import opendmarc.dat do bazy danych

Aby codzienne zadanie sprawdzania raportów mogło działać, potrzebna jest baza danych mySQL. Po utworzeniu (na lokalnym lub zdalnym serwerze) należy wykonać następujące kroki:

cat /usr/local/share/doc/opendmarc/schema.mysql | mysql -h localhost -u <user> -p opendmarc

Albo dla innej nazwy bazy danych:

cat /usr/local/share/doc/opendmarc/schema.mysql | sed -E '/^(CREATE DATABASE|USE)/d' | mysql -h <db_host> -u <user> -p <db_name>

Skrypt dla periodic

Korzystając z repozytorium konfiguracji należy przegrać skrypt 920.dmarc-reports, który będzie rozsyłał raporty dla innych domen (obcych). W celu uruchomienia skryptu należy ustawić następujące zmienne w /etc/periodic.conf:

# --- codzienne wysy/lanie raport/ow OpenDMARC -------------------
#
daily_dmarc_reports_enable="YES"
daily_dmarc_reports_verbose="NO"
daily_dmarc_reports_dbhost="localhost"
daily_dmarc_reports_dbname="opendmarc"
daily_dmarc_reports_smtp_server="localhost.bsdserwis.com"

oraz dane "sensytywne" w /etc/periodic.conf.local:

daily_dmarc_reports_dbuser="<user>"
daily_dmarc_reports_dbpass="<password>"

Przed uruchomieniem warto "dostroić" zawartość pliku /usr/local/etc/opendmarc/ignore.hosts, aby nie wysyłać raportów dla np. loopback, czy też domen "niepożądanych".

Konfiguracja w DNS

Konfiguracja DNS nie jest trudna (wręcz trywialna). Najlepiej skorzystać z pomocy Google'a, gdzie wszystko podane jest w formie skrótowej.

Dodanie wpisów dot. przekierowania raportów

Zgodnie z dokumentacją DMARC należy wykonać wpisy w DNS, aby móc przyjmować (czy bardziej wysyłać raporty) do innej domeny, aniżeli domena kontrolowana przez DMARC. Postać powienien mieć wpis:

codenix.pro._report._dmarc.bsdserwis.com  IN TXT "v1=DMARC"

Na powyższym przykładzie w domenie codenix.pro można wpisać rua=mailto:dmarc@bsdserwis (dot) com.

Konfiguracja postfixa

## main.cf
##
## Dopisanie nowego "socketu" do listy wszystkich smtpd_milters
##
smtpd_milters = {milteropendkim.sock}, inet:127.0.0.1:8893

Źródła w sieci internet

Parsowanie raportów

Raporty DMARC są w postaci XML. Zatem trudno czytelne. Można jednak za pomocą dodania nieskomplikowanego pliku xslt parsować raporty do postaci bardziej czytelnej.

Zawartość parsera

(!) Patrz załączony plik.

Dodanie pliku xslt do raportu

Po rozpakowaniu raportu do katalogu widzianego przez serwer www najlepiej wykonać polecenie:

find ./ -mindepth 1 -type f -mtime -+5h | xargs -n1 perl -pi -e 'next unless /^<feed/; print "<?xml-stylesheet type=\"text/xsl\" href=\"dmarc.xslt\"?>\n";'

Poprawa daty raportów na czytelną

Daty (timestamps) są zapisane w postaci "epoch seconds". Nie jest to do końca czytelne. Zatem raporty można zmodyfikować poprzez następującego jednolinijkowca:

find ./ -mindepth 1 -type f -mtime -+5h | xargs -n1 perl -pi -e  'next unless /(begin|end)/; s/([0-9]+)/localtime($1)/eo;'


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

MilterOpenDmarc (ostatnio edytowane 2016-03-29 10:37:19 przez wtps0n)