|
Rozmiar: 4947
Komentarz: * poprawki po pierwszym uruchomieniu
|
Rozmiar: 8174
Komentarz: *** aktualizacja po kolejnej instalacji; szlifowanie raportów ***
|
| 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 |
| Linia 19: | Linia 20: |
| pkg install mail/opendmarc | pkg install mail/opendmarc lang/p5-Switch |
| 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 55: | Linia 57: |
| PublicSuffixList /usr/local/etc/opendmarc/effective_tld_names.dat | # lista pobierana z sieci internet, zatem powinna trafi/c do katalogu z # bazami OpenDMARC # PublicSuffixList /var/db/opendmarc/effective_tld_names.dat |
| Linia 66: | Linia 72: |
| UMask 022 | UMask 027 |
| Linia 72: | Linia 78: |
| opendmarc_enable="NO" # => DaemonTools | opendmarc_enable="YES" # => DaemonTools nie jest potrzebne |
| Linia 84: | Linia 90: |
| echo 127.0.0.1 >> /usr/local/etc/opendmarc/ignore.hosts | |
| Linia 88: | Linia 95: |
| wget --no-check-certificate -q -N -P /usr/local/etc/opendmarc https://publicsuffix.org/list/effective_tld_names.dat | wget --no-check-certificate -q -N -P /var/db/opendmarc https://publicsuffix.org/list/effective_tld_names.dat |
| Linia 90: | Linia 97: |
| === Dodanie skryptu do cyklicznej aktualizacji === @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ TODO |
=== Dodanie skryptu do periodic.conf === {{{#!shell numbers=off ### /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" }}} |
| Linia 94: | 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. = 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: {{{#!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 121: | 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 122: | Linia 187: |
| {i} <<GetVal(SlownikNewBsd,adm-podpis)>> | {i} ` `<<GetVal(SlownikNewBsd,adm-podpis)>> |
Wydrukuj dokumentację Pokaż jako slajdy
Spis Treści
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
# albo za pomocą repozytorium pkg.bsdserwis.com
#
pkg install mail/opendmarc lang/p5-Switch
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
Strona domowa OpenDMARC1
Specyfikacja protokołu1 DMARC
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;'
(c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.
