Puncte:0

Cum pot preveni e-mailurile neautorizate trimise de pe serverul meu de e-mail?

drapel bo

Am un server Postfix care servește mai multe nume de domenii cu SPF, DMARC, DKIM setat corect și testat de multe ori. Deci nu are loc falsificare. Cu toate acestea, în ciuda tuturor eforturilor mele de a modifica configurația Postfix, mesajele spam trimise ca mai jos trec în mod regulat prin server:

Aug 5 08:37:38 mail postfix/error[9631]: BC96418C10: to=<[email protected]>, relay=none, delay=161913, delays=161238/676/0/0.04, dsn=4.4.2 , status=amânat (livrarea temporară suspendată: conversația cu mx1.comcast.net[96.114.157.80] a expirat în timp ce se primește salutul inițial de server)
Aug 5 10:07:45 mail postfix/error[31924]: BC96418C10: to=<[email protected]>, relay=none, delay=167320, delays=166039/1281/0/0.04, dsn=4.43. , status=amânat (livrare suspendată temporar: gazda sau numele domeniului nu a fost găsit. Eroare de serviciu de nume pentru name=comcast.net tip=MX: Gazda nu a fost găsită, încercați din nou)
Aug 5 11:23:43 mail postfix/error[18751]: BC96418C10: to=<[email protected]>, relay=none, delay=171878, delays=171438/440/0/0.12, dsn=4.41. , status=amânat (livrarea temporară suspendată: conectați-vă la mx2.comcast.net[2001:558:fe21:2a::6]:25: Rețeaua este inaccesibilă)
Aug 5 12:54:11 mail postfix/error[8920]: BC96418C10: to=<[email protected]>, relay=none, delay=177306, delays=175938/1367/0/0.06, dsn=4.41. , status=amânat (livrare suspendată temporar: conectați-vă la mx1.comcast.net[2001:558:fe16:1b::15]:25: Rețeaua este inaccesibilă)
Aug 5 14:07:22 mail postfix/error[27186]: BC96418C10: to=<[email protected]>, relay=none, delay=181697, delays=181338/359/0/0.03, dsn=4.41. , status=amânat (livrarea temporară suspendată: conectați-vă la mx2.comcast.net[2001:558:fe21:2a::6]:25: Rețeaua este inaccesibilă)

Iată câteva setări Postfix care ar putea fi relevante:

virtual_alias_maps = hash:/etc/postfix/virtual
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
smtpd_sasl_auth_enable = da
smtpd_tls_security_level = criptare
smtp_tls_security_level = mai
cutie_poștală_size_limit = 0
smtpd_tls_auth_only = da
smtpd_tls_key_file = /ssl/ssl.key
smtpd_tls_CAfile = /ssl/ssl.ca
smtpd_tls_cert_file = /ssl/ssl.crt
smtp_use_tls = da
smtpd_soft_error_limit = 5
smtpd_hard_error_limit = 10
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
smtpd_helo_required = da
smtpd_sasl_auth_enable = da

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

smtpd_recipient_restrictions = permit_sasl_authenticated reject_unauth_destination check_policy_service unix:/var/spool/postfix/postgrey/socket permit_inet_interfaces

smtpd_sender_restrictions = reject_unknown_sender_domain,
    check_sender_access hash:/etc/postfix/access

Toate conturile de e-mail legitime sunt listate în /etc/postfix/virtual și în mod ideal doar ei ar trebui să poată trimite și nimeni altcineva. De asemenea, am adăugat toate adresele IP unde acele domenii sunt de fapt găzduite și, prin urmare, ar trebui să pot trimite e-mail prin acest server de e-mail cu rețelele mele = setare.

Deci daca pun:

smtpd_relay_restrictions = permit_mynetworks, respinge

atunci spam-ul este prevenit efectiv. Cu toate acestea, în acest caz, utilizatorii legitimi nu se pot conecta la conturile lor de e-mail din programele client de e-mail, cum ar fi telefoanele mobile. Așa că trebuie să slăbesc puțin regula de mai sus ca:

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

Ar putea cineva să-mi dea direcția corectă cum să permit utilizatorilor legitimi să poată folosi acest server de e-mail, împiedicând în același timp toate celelalte părți să trimită ceva de pe acest server de e-mail?

EDIT #1:

Datorită indicatorului anx, am făcut pași suplimentari și iată metadatele extrase cu postcat -vq 3825218E12 comanda. ID-ul mesajului este diferit, dar problema este aceeași:

postcat: name_mask: all
postcat: inet_addr_local: configurat 2 adrese IPv4
postcat: inet_addr_local: configurat 2 adrese IPv6
*** ÎNREGISTRĂRI PLICURI amânate/3/3825218E12 ***
dimensiune_mesaj: 8340 682 1 0 8340
message_arrival_time: joi, 12 august 18:31:08 2021
create_time: Thu Aug 12 18:31:08 2021
named_attribute: log_ident=3825218E12
named_attribute: rewrite_context=remote
named_attribute: sasl_method=LOGIN
named_attribute: sasl_username=rădăcină
expeditor: [email protected]
named_attribute: log_client_name=necunoscut
named_attribute: log_client_address=93.122.252.5
named_attribute: log_client_port=8529
named_attribute: log_message_origin=necunoscut[93.122.252.5]
named_attribute: log_helo_name=213.233.88.90
named_attribute: log_protocol_name=ESMTP
named_attribute: client_name=necunoscut
named_attribute: reverse_client_name=necunoscut
named_attribute: client_address=93.122.252.5
named_attribute: client_port=8529
named_attribute: helo_name=213.233.88.90
named_attribute: protocol_name=ESMTP
named_attribute: client_address_type=2
atribut_numit: dsn_orig_rcpt=rfc822;[email protected]
destinatar_original: [email protected]
destinatar: [email protected]
pointer_record: 0
*** CONȚINUTUL MESAJULUI amânat/3/3825218E12 ***
regular_text: Primit: de la 213.233.88.90 (necunoscut [93.122.252.5])
regular_text: prin mail.mydomain.tld (Postfix) cu ID-ul ESMTPSA 3825218E12
text_regulat: pentru <[email protected]>; joi, 12 august 2021 18:31:08 +0000 (UTC)
pointer_record: 9682
regular_text: DKIM-Filter: OpenDKIM Filter v2.11.0 mail.mydomain.tld 3825218E12
pointer_record: 9043
text_regulat: DKIM-Semnătură: v=1; a=rsa-sha256; c=relaxat/relaxat; d=thebriefguy.com;
text_regulat: s=implicit; t=1628793068;
text_regulat: bh=2YMB5PSTO3RHAXFabkN43xdUCrxjEQOw0Xw/uLJ1zX8=;
text_regulat: h=From:To:Subject:Date:From;
text_regulat: b=edi8WNplYs2gx/aYmKl9vbY1OE3jfVZ284faDviyICbDTm51y5CgBXg3QzcSHuaL6
text_regulat: PsxGqHaqqXnF32EsA0UnqQ2q71Z8DVeEnQVp1njnqA3ECE3hiWj8UUeobRClZw7eEP
text_regulat: z2PK95dI6kfHlCcBnEgJph2pr5ilxDv4Brl9s02s7Q/2ikwHHGWh+8Gwr24CQfnBJK
text_regulat: lXrkBZVgmi65/6b6kVxmto+3oqV9avsd/9ja+CcMRs7+CsKjeHz7GA/9P3yB24/fNT
text_regulat: sAjWFvQA14zkcEjFpPmZFm/6ZjLkf0pi53vx+JamwdB5C4KzhDSKkgX6rXNYYwMu+o
text_regulat: jcADLvrnBCDtQ==
regular_text: ID-ul mesajului: <[email protected]>
pointer_record: 936
regular_text: De la: Xfinity <[email protected]>
regular_text: Către: [email protected]
regular_text: Subiect: Actualizare importantă
regular_text: Data: joi, 12 august 2021 11:31:06 -0700
regular_text: Organizație: Xfinity
regular_text: MIME-Versiunea: 1.0
regular_text: Tip de conținut: text/html; charset="utf-8"
regular_text: Content-Transfer-Encoding: citat-printabil
pointer_record: 0
text_regulat:

Sunt îngrijorat de aceste rânduri specifice:

named_attribute: sasl_method=LOGIN
named_attribute: sasl_username=rădăcină

Am schimbat parola root-ului cu:

rădăcină saslpasswd2

cu toate acestea, nu sunt sigur cum să interpretez codul de mai sus și cum exact s-au putut autentifica ca root. Serverul de e-mail a fost proaspăt configurat și nu am atins niciodată utilizatorul sasl rădăcină înainte, așa că mă întreb dacă vine cu un fel de parolă implicită și trebuie schimbată întotdeauna? De asemenea, mă întreb că s-a făcut un pas suficient pentru a rezolva problema sau mai sunt recomandați câțiva pași suplimentari?

EDIT #2:

Aici este rezultatul lui postconf -n comanda:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
director_comandă = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
directorul_date = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
default_destination_concurrency_limit = 1
home_mailbox = Maildir/
html_directory = nr
inet_interfaces = all
inet_protocols = all
initial_destination_concurrency = 1
mail_owner = postfix
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
cutie_poștală_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
director_manpage = /usr/share/man
milter_default_action = accept
mydestination = mail.mydomain.tld, mail, localhost
mydomain = mydomain.tld
myhostname = mail.mydomain.tld
mynetworks = BLOCURI DE ADRES IP REDACTATE
calea_newaliases = /usr/bin/newaliases.postfix
non_smtpd_milters = inet:localhost:8891
director_codă = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sender_bcc_maps = hash:/etc/postfix/bcc
sender_dependent_default_transport_maps = hash:/etc/postfix/dependent
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_tls_security_level = mai
smtp_use_tls = da
smtpd_hard_error_limit = 10
smtpd_helo_required = da
smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated reject_invalid_helo_hostname reject_non_fqdn_helo_hostname reject_unknown_helo_hostname hash check_helo_access:/etc/postfix/helo_access
smtpd_milters = inet:localhost:8891
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_non_fqdn_hostname reject_non_fqdn_sender reject_non_fqdn_recipient reject_unauth_destination reject_unauth_pipelining reject_invalid_hostname reject_unknown_reverse_client_hostname reject_rbl_client bl.spamcop.net reject_rhsbl_helo dbl.spamhaus.org reject_rhsbl_reverse_client dbl.spamhaus.org reject_rhsbl_sender dbl.spamhaus.org reject_rbl_client zen.spamhaus.org permit_dnswl_client swl.spamhaus.org
smtpd_relay_restrictions = permit_mynetworks permis_sasl_authenticated reject_unauth_destination reject_rbl_client permis sbl.spamhaus.org
smtpd_sasl_auth_enable = da
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated reject_unknown_sender_domain, check_sender_access hash:/etc/postfix/access reject_unknown_reverse_client_hostname reject_unknown_client_hostname
smtpd_soft_error_limit = 5
smtpd_tls_CAfile = /ssl/ssl.ca
smtpd_tls_auth_only = da
smtpd_tls_cert_file = /ssl/ssl.crt
smtpd_tls_key_file = /ssl/ssl.key
smtpd_tls_security_level = criptare
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual

Și aici este rezultatul postconf -M:

smtp inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_security_level=poate
pickup unix n - n 60 1 pickup
curatare unix n - n - 0 curatare
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rescrie unix - - n - - trivial-rescriere
bounce unix - - n - 0 bounce
amână unix - - n - 0 săritură
trace unix - - n - 0 săritură
verifica unix - - n - 1 verifica
spălați Unix n - n 1000? 0 culoare
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
releu unix - - n - - smtp
showq unix n - n - - showq
eroare unix - - n - - eroare
reîncercați Unix - - n - - eroare
arunca unix - - n - - arunca
unix local - n n - - local
unix virtual - n n - - virtual
lmtp unix - - n - - lmtp
nicovală unix - - n - 1 nicovală
scache unix - - n - 1 scache
trimitere inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_security_level=poate
smtps inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_security_level=may -o smtpd_tls_wrappermode=da
drapel in
Intrările de jurnal pe care le-ați postat nu arată semne de trimitere de e-mailuri neautorizate. Aceasta este doar o eroare generală de rețea.
drapel in
„Regula slăbită” nu lipsesc virgulele.
drapel bo
Mulțumesc pentru actualizare. Mi-e teamă că sunt trimise de pe server, deoarece comanda `mailq` devine enormă și trebuie să rulez `postsuper -d ALL`. Și nimeni de pe domeniile găzduite nu are nimic cu `[email protected]`.
drapel bo
Poți scoate virgula, dar nu. Funcționează oricum.
Michael Hampton avatar
drapel cz
Vă rugăm să postați _toate_ intrările de jurnal corespunzătoare unui astfel de mesaj, nu doar o singură linie.
Puncte:1
drapel fr
anx

Motivul pentru care serverul tău încearcă să transmită acest mesaj nu pare evident din ceea ce ai postat încă, dar următorul tău pas ar trebui să fie:

Găsiți de unde a venit acest mesaj. Acel cod hexazecimal (BC96418C10) cunoscut ca ID-ul cozii este cuvântul cheie de căutat în jurnalele dvs. pentru a vedea cine a trimis acest mesaj pe serverul dvs. De asemenea, ar trebui să utilizați pisica poștală pentru a afișa mesajul și metadatele asociate acestuia.

Ambele ar trebui să ajute la clarificarea când și cum a ajuns acest mesaj pe serverul dvs. și dacă aveți un utilizator abuziv, acreditări de utilizator compromise, o gaură în seturile dvs. de restricții - sau un server compromis cu totul.


Acum referitor la actualizarea dvs.: rădăcină este un nume de utilizator puțin ciudat pentru autentificare la un sistem de e-mail. Dar dacă nimeni nu s-a încurcat cu asta, acestea sunt acreditările SASL folosite pentru a trimite acest mesaj pe serverul tău.

named_attribute: sasl_method=LOGIN
named_attribute: sasl_username=rădăcină

Privind configurația postfix (încercați postconf -n și postconf -M) ar fi probabil mai clar care program a acceptat acea autentificare (cyrus? dovecot?) și unde să căutați pentru a dezactiva acel utilizator. Probabil că doriți să adunați informații din baza de date de utilizatori sasl și să publicați o nouă întrebare cu privire la problemele legate de descoperirea acelei părți.

Dacă rădăcină utilizatorul sistemului are într-adevăr o parolă și a fost folosită pentru a trimite e-mail.. s-ar putea să fi fost și folosit pentru a vă conecta la server. Pe multe sisteme, nici utilizatorul rădăcină avea o configurare a parolei, nici parolele nu ar trebui să fie un mecanism valid pentru a obține un shell la distanță, deci există șansa ca acest compromis să fie limitat la e-mailuri.

drapel bo
Foarte apreciat, deoarece par să fiu pe calea cea bună pentru a remedia problema în continuare. Voi accepta asta ca răspunsul corect. Între timp, ar fi foarte bine dacă ați putea citi partea editată a postării actualizate de mai sus. Multumesc mult din nou!
drapel bo
Mulțumesc pentru răspunsul actualizat. Mă tem că crearea unei alte întrebări ar pierde întregul context al problemei. Așa că am făcut o altă actualizare cu ieșirile comenzilor `postconf -n` și `postconf -M`. M-ați putea ajuta vă rog să identific ce program a acceptat acea autentificare? Nu cred că avem `cyrus`, dar facem `porumbel`. Care ar fi următorul pas pentru a rezolva această problemă? Utilizatorul rădăcină al sistemului BTW este setat la nologin și nu are parolă, așa că utilizatorul `root` din jurnal este unul diferit, probabil al sistemului de e-mail, dar nu sunt sigur.
drapel bo
Ok, după sugestia dvs., am creat o altă întrebare pe https://serverfault.com/questions/1075116/how-to-prevent-sasl-username-root-from-loggin-in Ați putea vă rog să aruncați o privire?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.