Hardening Postfix pro ISPConfig 3
Autor:Jesús Córdoba
E-mail:j.cordoba [at] gmx [tečka] net
Uživatel fóra:pititis
Verze:1.2
Cílem tohoto tutoriálu je posílit postfix poštovního serveru, který používá ISPConfig pro internetové poštovní servery, kde jsou ověření uživatelé důvěryhodní. S tímto nastavením odmítnete velké množství spamu, než projde do vaší poštovní fronty, ušetříte spoustu systémových prostředků a váš poštovní server bude silný proti spammerům a spamovým botnetům. Pojďme.
Reverzní DNS, (DNS záznam PTR)
Pro nastavení rdns nastanou dvě situace:
- Váš ISP vám umožňuje změnit to sami. Podívejte se na svůj ovládací panel.
- Váš ISP vám nedovoluje to změnit. Stačí poslat e-mail se svou žádostí.
Zeptejte se nebo nasměrujte svůj záznam rdns na váš server. tj. server.example.comSvé rdns můžete zkontrolovat pomocí příkazu host:[email protected] / # hostitel 149.20.4.69
69.64-27.4.20.149.in-addr.arpa ukazatel názvu domény pub2.kernel.org.
Pamatujte, že DNS musí šířit změny.
SPF pro vaši doménu (DNS TXT záznam)
SPF je systém pro ověřování e-mailů navržený tak, aby zabránil e-mailovému spamu detekcí e-mailového spoofingu, běžné zranitelnosti, ověřením IP adres odesílatelů.
Chcete-li nastavit spf, budete muset přidat TXT záznam do vaší DNS zóny, ale nejprve si můžete vygenerovat svůj záznam zde:http://www.mailradar.com/spf/
Zkopírujte výsledek spf, poté přejděte na ISPConfig -> dns -> zóny -> klikněte na název vaší domény -> klikněte na kartu záznamů -> a klikněte na TXT
Název hostitele -> example.com. (s tečkou na konci!)
Text -> Sem vložte výsledek spf (bez " ").
Příklad:v=spf1 a mx ptr ip4:11.222.333.444 -all …a klikněte na Uložit.
Pamatujte, že DNS musí šířit změny.
Postfix main.cf
Pojďme něco přidat/změnit do /etc/postfix/main.cf
Omezení Helo:
smtpd_helo_required =yessmtpd_helo_restrictions =permit_mynetworks, permit_sasl_authenticated, cancel_non_fqdn_helo_hostname, cancel_invalid_helo_hostname
Helo omezení v akci:
Jan 12 01:57:08 server postfix/smtpd[4687]:NOQUEUE:zamítnutí:RCPT od neznámého[186.43.77.153]:450 4.7.1 Hostitel klienta odmítnut:nemůže najít váš název hostitele, [186.43.77.153]; from=to= proto=ESMTP helo=<[186.43.77.153]>ledna 8 00:32:22 server postfix/smtpd[17504]:NOQUEUE:zamítnutí:RCPT od 201-93-87-2.dial-up.telesp.net.br[201.93.87.2]:504 5.5.2 :Příkaz Helo zamítnut:potřeba plně kvalifikovaný název hostitele; from= to= proto=ESMTP helo=
Přísné rfc:
strict_rfc821_envelopes =ano
Omezení klientů:
smtpd_client_restrictions =permit_mynetworks, permit_sasl_authenticated, cancel_unknown_client_hostname, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
Omezení příjemců:
smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, cancel_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, cancel_unknown_recipient_domain
Omezení dat:
smtpd_data_restrictions =cancel_unauth_pipelining
Smtpd zpoždění:
smtpd_delay_reject =ano
Nezapomeňte znovu načíst postfix:
/etc/init.d/postfix reload
Kontrola SPF pro Postfix (Debian a Ubuntu)
Instalujte balíček spf:
apt-get install postfix-policyd-spf-python
nebo
apt-get install postfix-policyd-spf-perl
Přidejte toto do /etc/postfix/main.cf :
policy-spf_time_limit =3600 s
a přidejte check_policy_service unix:private/policy-spf na konec smtpd_recipient_restrictions:
smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, cancel_unauth_destination, cancel_unknown_recipient_service uniprex:check-pripolicy_domain, check-pripolicy_recipient.Nyní upravte master.cf a přidejte na konec toto (pro verzi pythonu):
policy-spf unix - n n - - spawn user=nobody argv=/usr/bin/policyd-spfnebo toto pro verzi perlu:
policy-spf unix - n n - - spawn user=nobody argv=/usr/sbin/postfix-policyd-spf-perl…znovu načtěte postfix.
/etc/init.d/postfix reloadSpf check in action:
Jan 4 15:50:11 server postfix/smtpd[19096]:NOQUEUE:zamítnutí:RCPT z g230068165.adsl.alicedsl.de[92.230.68.165]:550 5.7.1to= proto=ESMTP helo=
Greylist
Greylisting je metoda obrany uživatelů e-mailu před spamem. Agent pro přenos pošty (MTA) používající greylisting „dočasně odmítne“ jakýkoli e-mail od odesílatele, kterého nepozná. Pokud je e-mail legitimní, původní server to po prodlevě zkusí znovu a po uplynutí dostatečné doby bude e-mail přijat.
Instalace postgrey (Debian, Ubuntu):
apt-get install postgreyMožnosti konfigurace jsou v /etc/default/postgrey (výchozí zpoždění je 5 minut).
Upravte main.cf a přidejte check_policy_service inet:127.0.0.1:10023 na konec smtpd_recipient_restrictions:
smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, avoid_unauth.destination, cancel_unknown_recipient_service:12check_2policy inservice_0…znovu načtěte postfix:
/etc/init.d/postfix reloadGreylist v akci:
10. ledna 17:38:57 server postfix/smtpd[21302]:NOQUEUE:odmítnutí:RCPT z mailout-de.gmx.net[213.165.64.22]:451 4.7.1:Recipient adresa zamítnuta:Greylisting v platnosti, vraťte se prosím později; from= to= proto=SMTP helo=
DNSBL (DNS Based Blacklist/Blocklist)
DNSBL je seznam IP adres publikovaných prostřednictvím služby DNS (Internet Domain Name Service) buď jako soubor zóny, který může být použit serverovým softwarem DNS, nebo jako živá zóna DNS, kterou lze dotazovat v reálném čase. DNSBL se nejčastěji používají ke zveřejnění adres počítačů nebo sítí spojených se spamem; většinu softwaru poštovního serveru lze nakonfigurovat tak, aby odmítal nebo označoval zprávy, které byly odeslány z webu uvedeného na jednom nebo více takových seznamech. Ty mohou zahrnovat seznam adres zombie počítačů nebo jiných strojů používaných k rozesílání spamu, seznam adres poskytovatelů internetových služeb, kteří dobrovolně hostí spammery, nebo seznam adres, které poslaly spam do systému honeypot. Pro použití dnsbl s postix používáme cancel_rbl_client. Stačí přidat nějakou živou DNS zónu pro dotazy do souboru main.cf.
V mém příkladu použiji dva seznamy s velmi dobrou pověstí (přidané na konec smtpd_client_restrictions):
smtpd_client_restrictions =permit_mynetworks, permit_sasl_authenticated, cancel_unknown_client_hostname, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf, cancel_rbl_client cbl.abuseat_client.orgurac>zavrhnout_klientrbl v akci:
12. ledna 01:52:42 server postfix/smtpd[4616]:NOQUEUE:zamítnutí:RCPT z 89.pool85-49-26.dynamic.orange.es[85.49.26.89]:554 5.7.1 Služba není k dispozici; Klientský hostitel [85.49.26.89] blokován pomocí cbl.abuseat.org; Blokováno – viz http://cbl.abuseat.org/lookup.cgi?ip=85.49.26.89; from=to= proto=SMTP helo= 11. ledna 20:13:58 server postfix/smtpd[29591]:NOQUEUE:odmítnutí:RCPT od 93 -87-122-56.dynamic.isp.telekom.rs[93.87.122.56]:554 5.7.1 Služba není k dispozici; Klientský hostitel [93.87.122.56] zablokován pomocí b.barracudacentral.org; http://www.barracudanetworks.com/reputation/?pr=1&ip=93.87.122.56; from= to= proto=ESMTP helo= Postscreen
Poznámka:Tato funkce je dostupná v Postfixu 2.8 a novějším
Postscreen démon Postfix poskytuje další ochranu proti přetížení poštovního serveru. Jeden postscreen proces zpracovává více příchozích připojení SMTP a rozhoduje, kteří klienti mohou hovořit s procesem serveru Postfix SMTP. Tím, že chráníte před spamboty, ponechává postscreen více procesů serveru SMTP k dispozici pro legitimní klienty a oddaluje nástup podmínek přetížení serveru.
Hlavní výzvou pro postscreen je učinit rozhodnutí je-to-zombie založené na jediném měření. To je nezbytné, protože mnoho zombie se snaží létat pod radarem a vyhnout se opakovanému spamování stejné stránky. Jakmile postscreen rozhodne, že klient není zombie, dočasně klienta zařadí na seznam povolených, aby se předešlo dalším prodlevám u legitimní pošty.
Pro tento tutoriál použijeme výchozí nastavení s výjimkou. Tato nastavení jsou vhodná pro většinu situací
Nejprve do main.cf přidáme řádek příkazem:
postscreen_greet_action =vynutitZa druhé přidáme postscreen a některé nové služby do master.cf Poznámka:Tato nastavení již mohou existovat, stačí odkomentovat. Také se ujistěte, že řádek "smtp inet ... smtpd" včetně všech parametrů je zakomentován (pokud existují, parametry musí být přesunuty do nové služby smtpd).
# Konfigurační soubor hlavního procesu Postfixu. Podrobnosti o formátu# souboru viz manuálová stránka master(5) (příkaz:"man 5 master").## Po úpravě tohoto souboru nezapomeňte spustit "postfix reload".## ============================================================================# typ služby private unpriv chroot probuzení příkaz maxproc + args# (ano) (ano) (ano) (nikdy) (100)# ============================================================================#smtp inet n - - - - smtpd# -o ...smtpd pass - - n - - smtpd -o ... # Parametry přesunuty ze služby smtp do nové služby smtpd. (pokud existují) smtp inet n - n - 1 postscreentlsproxy unix - - n - 0 tlsproxydnsblog unix - - n - 0 dnsblogNyní znovu načteme postfix:
/etc/init.d/postfix reload
Jak spustit svůj vlastní Git server s GitlabHQ na Ubuntu 14.04 Instalace Virtualizor na CentOS 6.5 s RAID1Panels