A încercat cineva să implementeze iredmail cu mod de securitate?
Nici engleza mea nu este atât de bună, sper că îmi înțelegeți motivele. Vă mulțumim anticipat pentru ajutor.
Am instalat iredmail + prezentare web pe nginx, dar am probleme cu regulile modsec.
Am folosit apache2 + mod sec înainte. Am implementat reguli personalizate precum rbl sau drop .php sau .env request, de exemplu.
Puteți găsi exemplele mele de mai jos, pe care le-am folosit de apache2.
regula Rbl
SecRule REMOTE_ADDR "@rbl sbl-xbl.spamhaus.org" "phase:1,id:171,t:none,pass,log,auditlog,msg:'RBL Match for SPAM Source',tag:'AUTOMATION/MALICIOUS', severitate:'2',setvar:'tx.msg=%{rule.msg}',setvar:tx.automation_score=+%{tx.warning_anomaly_score},setvar:tx.an>
setvar:tx.%{rule.id}-AUTOMATION/MALICIOUS-%{matched_var_name}=%{matched_var},setvar:ip.spammer=1,expirevar:ip.spammer=86400,setvar:ip.previous_rbl_check=1,expirevar :ip.previous_rbl_check=86400,skipAfter:END_RBL_CHECK"
regula .php
SecRule REQUEST_LINE „@contains .php” „phase:1,id:150,drop,status:444,log,t:none,t:urlDecode,t:lowercase,t:normalizePath,msg:’Solicitarea conține fișier .php’ "
regula .env
SecRule REQUEST_LINE „@contains .env” „phase:1,id:155,drop,status:444,log,t:none,t:urlDecode,t:lowercase,t:normalizePath,msg:’Solicitarea conține fișier .env’ "
Funcționează foarte bine pe apache, spamerii kiss ..... :) dar este drop incorect pe iredmail cu nginx.
Rbl nu scade deloc. Am încercat RBL de la projecthonejpot dar este la fel.
De exemplu, dacă încerc www.example.com/index.php deci a scazut bine, dar unele cereri de la spammeri mă omoară. Nu știu, de la care provine, dar cererea a fost ucisă pe apache.
Mai jos este access.log.
184.168.103.230 - - [08/Feb/2022:17:33:28 +0100] „GET /wp-login.php HTTP/1.1” 301 162 „-” „Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv :62.0) Gecko/20100101 Firefox/62.0"
184.168.103.230 - - [08/Feb/2022:17:33:31 +0100] „GET /wp-login.php HTTP/1.1” 404 47 „http://example.com/wp-login.php” „ Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
Mai jos este error.log
2022/02/08 17:33:31 [eroare] 1036473#1036473: *232 FastCGI trimis în stderr: „Scriptul principal necunoscut” în timpul citirii antetului răspunsului
din amonte, client: 184.168.103.230, server: domain.com, cerere: „GET /wp-login.php HTTP/1.1”, în amonte:
„fastcgi://127.0.0.1:9999”, gazdă: „example.com”, referitor: „http://example.com/wp-login.php”
Mod sec nu-l aruncați după regula .php, dar dacă a fost abandonat, jurnalul de erori arată ca mai jos.
2022/02/08 18:28:29 [eroare] 1036473#1036473: *238 [client 173.212.214.140] ModSecurity: Acces refuzat cu codul 444 (faza 1).
A corelat „Operatorul „Conține” cu parametrul „.php” cu variabila „REQUEST_LINE” (Valoare: „GET /wp-login.php HTTP/1.1”)
[fișierul "/etc/nginx/modsecurity/modsecurity.conf"] [linia "279"] [id "150"] [rev ""] [msg "Solicitarea conține fișierul .php"] [date ""]
[severitatea „0”] [ver „”] [maturitate „0”] [precizia „0”] [nume gazdă „xxxx”] [uri „/wp-login.php”] [id-unic „1644341309”]
[ref „o13,4v0,26t:urlDecode,t:lowercase,t:normalizePath”], client: 173.212.214.140, server: example.com, cerere: „GET /wp-login.php HTTP/1.1”,
gazdă: „example.com”, referitor: „http://example.com/wp-login.php”
În această situație, s-a pierdut ceva timp, dar uneori nu. De exemplu, a fost aruncat tot timpul pe apache.
Mai jos este configurația mea nginx.
00-default.conf:
Server {
asculta 80 default_server;
asculta [::]:80 default_server;
listen server ip:80 default_server;
asculta [server ip6::1]:80 default_server;
numele serverului _;
întoarcere 444;
}
Server {
# Ascultă pe ipv4
server de ascultare ip:80;
asculta [ip server::6]:80;
nume_server mail.example.com;
rădăcină /var/www/html;
index index.html robots.txt;
# Redirecționează toate solicitările http:// nesigure către https://
returnează 301 https://$host$request_uri;
modsecuritate activată;
modsecurity_rules_file /etc/nginx/modsecurity/modsecurity.conf;
Locație / {
try_files $uri $uri/ =404;
}
#Eliminați metodele HTTP nedorite
if ($metoda_cerere !~ ^(GET|POST)$) {
întoarcere 444;
}
}
00-default-ssl.conf:
Server {
asculta 443 default_server;
asculta [::]:443 default_server;
asculta 1server ip:443 default_server;
asculta [ip server::6]:443 default_server;
numele serverului _;
ssl_certificate /etc/letsencrypt/live/mail.example.com/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/mail.example.com/privkey.pem; # gestionat de Certbot
întoarcere 444;
}
Server {
ascultă server ip:443 ssl http2;
asculta [ip server::6]:443 ssl http2;
nume_server mail.example.com;
rădăcină /var/www/html;
index index.php index.html;
modsecuritate activată;
modsecurity_rules_file /etc/nginx/modsecurity/modsecurity.conf;
includ /etc/nginx/templates/misc.tmpl;
includ /etc/nginx/templates/ssl.tmpl;
includ /etc/nginx/templates/iredadmin.tmpl;
includ /etc/nginx/templates/roundcube.tmpl;
includ /etc/nginx/templates/php-catchall.tmpl;
#Eliminați metodele HTTP nedorite
if ($metoda_cerere !~ ^(GET|POST)$) {
întoarcere 444;
}
Locație / {
try_files $uri $uri/ =404;
}
}
mydomaine.conf:
Server {
dacă ($gazdă = www.example.com) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
dacă ($gazdă = exemplu.com) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
asculta 80;
asculta [::]:80;
nume_server example.com www.example.com;
Locație / {
întoarcere 444;
}
}
Server {
ascultă server ip:443 ssl http2;
asculta [ip server::6]:443 ssl http2;
rădăcină /var/www/html/example.com;
index index.html robots.txt;
nume_server example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
includ /etc/nginx/templates/misc.tmpl;
includ /etc/nginx/templates/php-catchall.tmpl;
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
modsecuritate activată;
modsecurity_rules_file /etc/nginx/modsecurity/modsecurity.conf;
Locație / {
try_files $uri $uri/ =404;
}
error_page 404 /404/index.html;
}
Poate că nu înțeleg concepția Iredmail, nu sunt un administrator Redmail. Iredmail este o soluție bună, dar uneori nu folosește profi :) ca urmare, nu este o solicitare de renunțare de la spameri.
Vă mulțumesc pentru ajutoare.