Am avut un atac de spam pe site-ul meu. cineva care îmi folosește e-mailul pentru a trimite e-mail spam tuturor.
Așa că acum plănuiesc să găsesc o modalitate de a o opri.
Văd oameni care resping e-mailurile prin expresii regex. Dar am tone și tone de e-mailuri diferite (50.000 de utilizatori).
Vreau să văd dacă există e-mail în baza de date, atunci îi permit să meargă. În caz contrar, carantina. Nu le vreau blocate în coada de e-mail.
eu am această listă gri.pl:
#principal.cf
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service unix:/private/greylist
#master.cf
greylist unix - n n - - spawn user=nobody argv=/usr/bin/perl /tmp/mailrejct.
Dar când îl folosesc, primesc aceste erori în maillog:
Dec 25 09:24:58 intelligent-mahavira postfix/spawn[107258]: avertisment: comanda /usr/bin/perl stare de ieșire 2
25 decembrie 09:24:58 intelligent-mahavira postfix/smtpd[107253]: avertisment: terminarea prematură a introducerii pe /private/greylist în timpul citirii numelui atributului de intrare
25 decembrie 09:24:59 intelligent-mahavira postfix/spawn[107258]: avertisment: comanda /usr/bin/perl stare de ieșire 2
25 decembrie 09:24:59 intelligent-mahavira postfix/smtpd[107253]: avertisment: terminarea prematură a introducerii pe /private/greylist în timpul citirii numelui atributului de intrare
25 dec 09:24:59 intelligent-mahavira postfix/smtpd[107253]: avertisment: problemă la vorbirea cu serverul /private/greylist: conexiunea resetată de către egal
am inlocuit smtpd_access_policy
cu ai mei. Aceasta este o diferență. Oricine expert în asta.
Cine trimite valorile atributelor? Postfix? cum a trecut?
NU REZOLVAT. Acest lucru este doar pentru primirea de e-mail. Numai pentru spam primit.
Pentru e-mailurile trimise există doar verificări de model.
1 #!/bin/sh
2
3 # Filtru simplu bazat pe shell. Este menit să fie invocat după cum urmează:
4 # /path/to/script -f destinatarii expeditorului...
5
6 # Localizați-le. Opțiunea -G nu face nimic înainte de Postfix 2.3.
7 INSPECT_DIR=/var/spool/filter
8 SENDMAIL="/usr/sbin/sendmail -G -i" # NICIODATĂ NICIODATĂ NICIODATĂ NICIODATĂ NU folosiți „-t” aici.
9
10 # Coduri de ieșire din <sysexits.h>
11 EX_TEMPFAIL=75
12 EX_UNAVAILABLE=69
13
14 # Curățați când terminați sau când anulați.
15 capcană "rm -f in.$$" 0 1 2 3 15
16
17 # Începeți procesarea.
18 cd $INSPECT_DIR || {
19 echo $INSPECT_DIR nu există; ieșire din $EX_TEMPFAIL; }
20
21 cat >in.$$ || {
22 echo Nu se pot salva e-mailurile în fișier; ieșire din $EX_TEMPFAIL; }
23
24 # Specificați filtrul de conținut aici.
25 # filtru <in.$$ || {
26 # echo Conținutul mesajului a fost respins; ieșire din $EX_UNAVAILABLE; }
27
28 $SENDMAIL „$@” <în.$$
29
30 ieșire $?
Cele de mai sus se pot converti în cod php? Mă întreb dacă trimit mail de la php se va întoarce în același loc?
exec("/usr/sbin/sendmail $email < /etc/postfix/myfilter/email.txt");
Trebuie să pun chestiile de e-mail în email.txt. Când testez întregul e-mail-uri cu detalii și chestii care arată tot conținutul și anteturile
Trebuie să fac curățenie
De la [email protected] duminica 26 decembrie 12:31:47 2021
Primit: de la webmail.test.com (localhost.localdomain [IPv6:::1])
de intelligent-mahavira.51-163-215-224.plesk.page (Postfix) cu ID ESMTPSA B9CFD82DA1
pentru <[email protected]>; Duminică, 26 decembrie 2021 12:31:47 +0000 (UTC)
Autentificare-Rezultate: intelligent-mahavira.51-163-215-224.plesk.page;
spf=pass (IP-ul expeditorului este ::1) [email protected] smtp.helo=webmail.test.com
Primit-SPF: trece (intelligent-mahavira.51-163-215-224.plesk.page: conexiunea este autentificată)
Versiunea MIME: 1.0
Data: Duminica, 26 Dec 2021 04:31:47 -0800
De la: [email protected]
Către: alex3 <[email protected]>
Subiect: testarea filtrului2
Agent utilizator: Roundcube Webmail/1.4.11
ID-ul mesajului: <[email protected]>
X-Sender: [email protected]
Tip de conținut: text/plan simplu; set de caractere=US-ASCII;
format=curgere
Codare de transfer de conținut: 7 biți
X-PPP-Message-ID: <164052190789.24073.12166249882816501264@intelligent-mahavira.51-163-215-224.plesk.page>
X-PPP-Vhost: test.com
sss
Am văzut asta pe google, voi încerca mâine folosind regex pentru a filtra subiectul din tipul de conținut și corp.
Către: [email protected]
Subiect: Acesta este un mesaj HTML
De la: [email protected]
Tip de conținut: text/html; charset="utf8"
<html>
<corp>
<div style="
culoare de fundal:
#abcdef; latime: 300px;
înălțime: 300px;
„>
</div>
Puteți adăuga orice e-mail HTML valid aici.
</corp>
</html>
- Greylisting - putem oferi feedback de acces sub forma „nu știu”, „respinge text opțional”.
- Filtru simplu fără feedback. Filtrul trebuie să se ocupe de trimiterea e-mailului. Nu este clar cum se face. Practic capturez toate STDIN-ul și îl trimit ca e-mail, dar are toate anteturile. Nu știu cum s-a gestionat atașamentul. Trebuie să văd ce arată când trimit atașament.
- Filtrarea avansată pare confuză. Văd că securitatea e-mailului plex implementează asta. când l-am adăugat, a adăugat acest lucru la main.cf și master.cf
smtp inet n - n - - smtpd
-o content_filter = smtp-amavis:[127.0.0.1]:10024
localhost:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o hărți_releu_destinatar=
-o smtpd_delay_reject=nu
-o smtpd_authorized_xforward_hosts=127.0.0.0/8,[::1]/128
-o smtpd_authorized_xclient_hosts=127.0.0.0/8,[::1]/128
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o smtpd_restriction_classes=
-o rețelele mele=127.0.0.0/8,[::1]/128
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o local_header_rewrite_clients=
depunerea inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=criptare
-o smtpd_sasl_auth_enable=da
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026
pickup unix n - n 60 1 pickup
-o content_filter=smtp-amavis:[127.0.0.1]:10026
Acesta este e-mailul salvat în data.txt și trimiteți-l manual dacă se potrivește cu e-mailul destinatarului din sistem
Primit: de la webmail.test.com (localhost.localdomain [IPv6:::1])
de către intelligent-mahavira.serverip.plesk.page (Postfix) cu ID-ul ESMTPSA C7E7282E1B;
Mar, 28 decembrie 2021 00:36:31 +0000 (UTC)
Autentificare-Rezultate: intelligent-mahavira.serverip.plesk.page;
spf=pass (IP-ul expeditorului este ::1) [email protected] smtp.helo=webmail.test.com
Primit-SPF: trece (intelligent-mahavira.serverip.plesk.page: conexiunea este autentificată)
Versiunea MIME: 1.0
Data: Luni, 27 Dec 2021 16:36:31 -0800
De la: [email protected]
Către: alex2 <[email protected]>, alex3 <[email protected]>,
[email protected]
Subiect: Test de atașament
Agent utilizator: Roundcube Webmail/1.4.11
ID-ul mesajului: <[email protected]>
X-Sender: [email protected]
Tip de conținut: mai multe părți/mixt;
boundary="=_5745fc7d762d12dda4165a3e0be576fc"
X-PPP-Message-ID: <164065179196.8458.1248882909976426707@intelligent-mahavira.serverip.plesk.page>
X-PPP-Vhost: test.com
--=_5745fc7d762d12dda4165a3e0be576fc
Codare de transfer de conținut: 7 biți
Tip de conținut: text/plan simplu; set de caractere=US-ASCII;
format=curgere
Atașament succes?
--=_5745fc7d762d12dda4165a3e0be576fc
Conținut-Transfer-Codificare: base64
Tip de conținut: imagine/jpeg;
name=536_PIA23645_PaleBlueDotRevisited_1600.jpg
Conținut-Dispoziție: atașament;
filename=536_PIA23645_PaleBlueDotRevisited_1600.jpg;
dimensiune=74009
/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMcaHR0cDov
Problema este că nu există subiect în e-mail. este ascuns în interiorul anteturilor. Urât.
rezultat
Sosit de la e-mail spune gmail ..am un test de respingere curat
Răspunsul de la serverul de la distanță a fost:
554 5.7.1 [email protected]: Adresa destinatarului a fost respinsă: E-mailul este permis numai între UTILIZATORI. Destinatar e-mail= [email protected]
Utilizează metoda Politicii
E-mail trimis Trimit e-mail pentru utilizatori validi și îl resping/în carantină pe celălalt.. nu primesc imaginea de respingere. Trebuie să am același text pentru e-mailul de ieșire
Utilizează un filtru de conținut simplu