postfix Archive

  • E’ lui o non è lui??

    E’ lui o non è lui??

    Sono da poco meno di un oretta in ufficio, scrivo l’articolo su hooksafe e subito dopo apro gwibber rendendomi conto che calabriaunix (non avendo evidentemente uno straca$$o da fare) si è divertito a mandare un messaggio ogni 5 minuti pubblicizzando i suoi articoli e la...

    Full Story

  • Dove non arriva spamassassin arriva il reCAPTCHA

    Dove non arriva spamassassin arriva il reCAPTCHA

     Rieccomi a parlare del fastidioso problema dello spam.

    Nulla di particolare vi racconto l'analisi fatta su delle mail di spam che mi venivano recapitate 50/60 volte al giorno, e che apparentemente erano impossibili da intercettare.

    Full Story

  • Creare un relay antispam – parte 2°

    Creare un relay antispam – parte 2°

     

    Seconda parte del tutorial per la creazione di un relay antispam per un migliore filtraggio della posta in entrata.

    Full Story

  • Creare un relay antispam

    Creare un relay antispam

     

    Serie di tutorial per la creazione di un relay antispam.

     

    Un ottima soluzione per chi si trova a dover gestire grossi volumi di traffico SMTP e vuole alleggerire il proprio MTA dallo scanning delle email.

    Full Story

  • E’ stata rilasciata lenny??

    E’ stata rilasciata lenny??

    Domandone per i lettori, entrate e vedete :)

    Full Story

  • Quando la furbizia ripaga….

    Quando la furbizia ripaga….

    Tempo fa abbiamo spiegato come impostare postfix in maniera ottimale per prevenire ed eliminare lo spam.

    Una di queste tecniche consisteva nel controllo host in fase di helo...questi sono i risultati :D

    Full Story

  • Postfix in pillole: Rigettare i domini sconosciuti

    Postfix in pillole: Rigettare i domini sconosciuti

    A causa della mia [[Configuriamo un server di posta completo su etch (postfix) - parte 6°|eterna guerra contro lo spam]], sono sempre alla ricerca di tweak e tecniche utili a diminuire il livello, già molto basso, di spam nella mia casella, oggi vedremo come rigettare le mail provenienti da domini invalidi, perchè come dico sempre, è più efficace combattere lo spam prima che questo entri nel server, piuttosto che filtrarlo dopo...

    Full Story

  • apt-pinning: Miscelare repository debian di rami diversi

    apt-pinning: Miscelare repository debian di rami diversi

    Update: il pacchetto dcc a quanto pare è stato definitivamente rimosso dai repository debian considerate questa guida valida ma non per il pacchetto in questione

    Fino a poco fa ho avuto una piacevole discussione con un lettore del portale che mi segnalava che il pacchetto dcc-client, per l'installazione del controllo anti-phishing come plugin su postfix...

    Full Story

  • spamassassin & amavis, recapitiamo lo spam nella cartella posta indesiderata con postfix (debian etch)

    spamassassin & amavis, recapitiamo lo spam nella cartella posta indesiderata con postfix (debian etch)

    Con la guida all'installazione di postfix, pubblicata un pò di tempo fa, installiamo a tutti gli effetti un completo server di posta con servizio pop/imap/smtp con ssl o senza, e con circa il 99% di volume di spam filtrato...

    ma mi sono reso conto che proprio completo non è in quanto manca una piccola funzionalità...

    Voglio essere spammato!!
    Eggià, me ne sono accorto un paio di giorni fa quando mi sono reso conto che le mail di ebay non mi arrivavano; "vuoi vedere che vengono riconosciute come spam?" pensai, ed in effetti controllando i log qualche email riconosciuta come spam con dominio ebay c'era, ma si sa il campo from non è mai attendibile al 100%. Ma venne in mente un problema che poteva essere serio, ossia quello dei falsi positivi, cioè le mail considerate spam ma che in realtà non lo sono. E' può essere un problema serio questo, mail talvolta importanti possono non essere mai lette a causa di questo problema. Ed il server cosi come l'abbiamo impostato mette si le mail in quarantena ma l'utente non riceverà mai la mail. Preciso che, controllando meglio i log, di falsi positivi non c'è ne stato manco uno...questo perchè amavis+spamassassin+greylisting+controllo RBL e tutto il resto che abbiamo impostato è un sistema altamente efficiente ed affidabile (alla faccia dei superantispam da milioni di dollari); però può essere comodo avere una cartella di posta indesiderata dentro la quale spostare tutta la posta inutile. Fortunatamente con amavis si può impostare anche spamassassin quindi con un unico file di configurazione riusciamo a fare tutto. Andiamo a modificare quindi il file /etc/amavis/conf.d/20-debian_defaults in particolare: # abilito il report dello spam (score status ecc) nell’header delle mail $sa_spam_report_header = 1; con questa direttiva facciamo si che le mail controllate dall'antispam/virus vengano modificate nell'header aggiungendo l'avvenuto check e il relativo score ottenuto, poi dobbiamo modificare la direttiva: $sa_tag_level_deflt = -9999; il valore di default è 20.0, io ho messo -9999 cosi qualsiasi mail che passa dal server verrà segnata nell'header come "checked", questo per provare che effettivamente clamav e spamassassin stanno svolgendo il loro lavoro. $final_spam_destiny = D_PASS; il valore di default è D_DISCARD, inserendo PASS facciamo si che la mail sebbene riconosciuta come spam non venga bloccata ma venga comunque consegnata all'utente, di modo da lasciare all'utente stesso la gestione dello spam. $virus_quarantine_to = undef; questo è un parametro che ho dovuto aggiungere, indica di non tenere la quarantena per la mail riconosciute come contenenti virus, vengono quindi rifiutate e non mantenute (che ce ne facciamo di mail con virus, di falsi positivi in questo caso non ne avremo mai è solo spazio occupato sul server). $X_HEADER_LINE = “by $myproduct_name using ClamAV at $mydomain”; con questa direttiva, facciamo in modo che nell'header della mail venga stampata la stringa:
    X-Virus-Scanned: by amavisd-new using ClamAV at dominio.tld
    poi riavviamo il servizio con: # /etc/init.d/amavis restart Lato server abbiamo finito. Adesso le mail considerate spam verranno comunque recapitate all'utente, il filtraggio vero e proprio sarà quindi affidato al client di posta. Da notare che abbiamo seguito una linea più elegante rispetto allo standard, infatti non abbiamo detto ad amavis di modificare l'oggetto della mail (come di solito si fa), aggiungendo ad esempio ***SPAM*** per permettere il filtraggio, ma lo abbiamo configurato in modo che ad essere modificato sia l'header della mail, cosi in caso di falsi positivi non avremo la Inbox tempestata di mail con ***SPAM*** sul subject. L'header infatti, delle mail riconosciute come spam, ha una voce in più rispetto al normale: X-Quarantine-ID: <id_quarantena> possiamo quindi impostare i filtri a livello di header e non di subject inserendo come condizione...
    ->Se... ----> Il campo X-Quarantine-ID -------->Inizia con: ------------> < ----------------> Sposta su: --------------------> Cartella Posta Indesiderata

    Farlo su icedove/thunderbird è semplice, andiamo su strumenti e poi su filtri, e creiamone uno nuovo:

    in questo caso il filtro antispam c'è già perchè l'ho creato prima :D ma facciamo finta che non c'è e creiamolo, ed impostiamolo cosi:

    Il campo X-Quarantine-ID non lo vedrete mai perchè non c'è, ma nel menu a discesa c'è la voce personalizzato, e nella nuova finestra che appare dovrete scrivere a manina proprio quella voce (occhio è case sensitive), impostiamo la voce "inizia con", e mettiamo come valore "<" praticamente per farla "funzionare" sempre, ogni volta che quel campo è presente (quindi in ogni mail di spam).

    Finito, adesso tutte le mail di spam verranno taggate come SPAM e il client le sposterà nella cartella apposita, se eventualmente volete provare le modifiche ho creato un account su libero dal quale mi sono mandato un pò di spam per verificare il funzionamento, se non avete voglia di farlo anche voi lasciate scritto il vostro indirizzo di posta nei commenti (ma mi raccomando che sia una casella di prova altrimenti verrete bersagliati di spam dai lamer che girano su internet), od in alternativa scrivetemelo su una mail.

    Full Story

  • Integrazione di un sistema pseudo-IPS su debian etch

    Integrazione di un sistema pseudo-IPS su debian etch

    Chiunque amministri un server, tra le priorità per la gestione dello stesso ha prima di tutte la sicurezza... Premesso che per la gestione di server importanti nel numero o nel tipo di servizio che devono svolgere, le tecniche di messa in sicurezza sono ben altre, questa che vi sto per proporre va bene per un server o meglio ancora vps, dalle piccole dimensioni, in quanto è un metodo sicuro ma soprattutto economico... Quello che vedete in figura è un firewall della NetASQ, modello F500. E' tra gli IPS più utilizzati in ambito aziendale, ((basato su un sistema operativo freebsd :D)) riesce a fornire un alto grado di sicurezza, unendo una gestione relativamente semplice tramite una interfaccia grafica. IPS sta per Intrusion Prevention System, e descrive un sistema che, come l'apparato descritto, a fronte di una configurazione riesce ad identificare un tentativo d'attacco verso la rete da lui gestita, bloccandolo, e loggando gli eventi; in modo da fornire tutti i dati necessari per un debug del tentativo in questione, per darci la possibilità di reagire impedendo accessi non autorizzati. Quello che vi voglio proporre ovviamente non è comprare un apparato come questi, spendendo diverse migliaia di euro, ma l'integrazione di un pacchetto all'interno della vostra debian, in modo da avere un sistema Pseudo-IPS, ((Pseudo perchè con questo sistema potremo prevenire solo attacchi di tipo brute force, non attacchi DDoS et similia)) che possa identificare tentativi di login falliti a determinati servizi, ed eventualmente oltrepassata una certa soglia agire di conseguenza con iptables... Il software in questione è Fail2Ban reperibile nei repository: apt-get install fail2ban Dopo averlo installato diamo una rapida occhiata al file di configurazione, semplice ed intuitivo, per la messa in piedi del servizio... nano /etc/fail2ban/jail.conf Come suggerito dal file stesso, non modifichiamo direttamente questo file ma ne creiamo uno nuovo settandolo per le nostre esigenze: nano /etc/fail2ban/jail.local
    [DEFAULT] # "ignoreip" can be an IP address, a CIDR mask or a DNS host ignoreip = 127.0.0.1 bantime = 600 maxretry = 3 # "backend" specifies the backend used to get files modification. Available # options are "gamin", "polling" and "auto". # yoh: For some reason Debian shipped python-gamin didn't work as expected # This issue left ToDo, so polling is default backend for now backend = polling # # Destination email address used solely for the interpolations in # jail.{conf,local} configuration files. destemail = root@localhost # Default action to take: ban only action = iptables[name=%(__name__)s, port=%(port)s] [ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 [apache] enabled = true port = http filter = apache-auth logpath = /var/log/apache*/*error.log maxretry = 5 [apache-noscript] enabled = false port = http filter = apache-noscript logpath = /var/log/apache*/*error.log maxretry = 5 [vsftpd] enabled = false port = ftp filter = vsftpd logpath = /var/log/auth.log maxretry = 5 [proftpd] enabled = true port = ftp filter = proftpd logpath = /var/log/auth.log failregex = proftpd: \(pam_unix\) authentication failure; .* rhost=<HOST> maxretry = 5 [wuftpd] enabled = false port = ftp filter = wuftpd logpath = /var/log/auth.log maxretry = 5 [postfix] enabled = false port = smtp filter = postfix logpath = /var/log/mail.log maxretry = 5 [courierpop3] enabled = true port = pop3 filter = courierlogin failregex = courierpop3login: LOGIN FAILED.*ip=\[.*:<HOST>\] logpath = /var/log/mail.log maxretry = 5 [courierimap] enabled = true port = imap2 filter = courierlogin failregex = imapd: LOGIN FAILED.*ip=\[.*:<HOST>\] logpath = /var/log/mail.log maxretry = 5 [sasl] enabled = true port = smtp filter = sasl failregex = warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed logpath = /var/log/mail.log maxretry = 5
    Fatto? Ora dobbiamo riavviare il servizio... /etc/init.d/fail2ban restart That's all folks :D Adesso se ci saranno tentativi di log in falliti e conseguenti ban vedremo crescere il file di log /var/log/fail2ban.log:
    2007-04-24 17:49:09,466 fail2ban.actions: WARNING [apache] Ban 1.2.3.4 2007-04-24 18:08:33,213 fail2ban.actions: WARNING [sasl] Ban 1.2.3.4 2007-04-24 18:26:37,769 fail2ban.actions: WARNING [courierlogin] Ban 1.2.3.4 2007-04-24 18:39:06,765 fail2ban.actions: WARNING [courierimap] Ban 1.2.3.4
    Dato che questo software va ad interagire con iptables se rileviamo allarmi diamo un iptables -L per capire cosa viene modificato sul nostri firewall

    Full Story

  • Server FTP con utenze virtuali su Debian Etch

    Server FTP con utenze virtuali su Debian Etch

    Questa sera vi illustro come mettere in piedi un server ftp, quasi obbligatorio in server che ospitano servizi web pubblici, con la gestione virtuale delle utenze...

    cosa sono e perchè innanzitutto, utilizzare le utenze virtuali?

    Beh chi avrà letto le precedenti guide su postfix avrà capito che avere una gestione di utenze virtuali è senza dubbio molto molto più comodo, piuttosto che dover per ogni utente creare una vera e propria utenza reale sul server.

    Appoggiandoci difatti ad un database mysql possiamo gestire l'utenticazione dei vari utenti in maniera semplice veloce e più funzionale.

    Per questa guida utilizzeremo il software che in ambiente server linux è considerato forse il più sicuro e veloce software di gestione per un server ftp: vsftpd ((Per questa guida è stata utilizzata la versione 4.0 della distribuzione Debian Etch, presupposto che abbiate già effettuato tutti gli aggiornamenti di sistema necessari.))

    Generalmente vsftpd è pensato per agire con utenze reali del sistema, con questa guida vedremo come istruire vsftpd per controllare l'autenticazione attraverso MySQL.

    Installazione del software necessario:
    Per prima cosa installiamo il server ftp, mysql ed alcune librerie necessarie: apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin adesso, impostiamo la password di root del nostro account root di mysql, dato che di default dopo l'installazione essa non viene inserita. mysqladmin -u root password rootpassword Adesso per motivi di sicurezza impostiamo la password di root (la stessa va bene), anche per il nostro dominio, altrimenti chiunque potrebbe entrare e modificare i dati. mysqladmin -h server.dominio.com -u root password rootpassword
    Preparazione del database:
    Adesso creeremo un database chiamato vsftpd ed un utente omonimo che il demone ftp utilizzerà per connettersi al database: mysql -u root -p dopo aver inserito la password di root per il DB: CREATE DATABASE vsftpd; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; Adesso inseriamo le tabelle necessarie all'interno del tabase: USE vsftpd; CREATE TABLE `accounts` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 30 ) NOT NULL , `pass` VARCHAR( 50 ) NOT NULL , UNIQUE ( `username` ) ) ENGINE = MYISAM ; quit; Adesso creeremo un utente senza privilegi, nella cui home directory verranno ospitate le varie dyrectories dei nostri utenti ftp virtuali: useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd Adesso creiamo una copia di backup del file di configurazione di vsftpd e poi editiamolo sostituendo l'intero suo contenuto con ciò che seguirà: cp /etc/vsftpd.conf /etc/vsftpd.conf_orig vi /etc/vsftpd.conf
    listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=vsftpd local_root=/home/vsftpd/$USER user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf
    Come possiamo vedere dalla configurazione, l'utente vsftpd verrà rinchiuso in una jail chroot ((Utilizzando questo metodo l'utente vsftpd non avrà possibilità di fare nulla al di fuori della sua jail (prigione, che è la sua home ndr.) cosi se qualche malintenzionato vorrà giocare col nostro server potrà fare danni limitati.)) Mentre con l'ultima istruzione "user_config_dir", diciamo a vsftpd dove andare a pescare la configurazione per il singolo utente, qualora ne abbiamo bisogno, di modo da gestire alcuni utenti in maniera diversa dagli altri, però dobbiamo anche creare la directory: mkdir /etc/vsftpd_user_conf Adesso configureremo PAM per l'autenticazione al database mysql, anzichè usare come normalmente si farebbe il file /etc/passwd, come al solito, creiamo backup e sostituiamo l'intero contenuto del file con quello che seguirà: cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig vi /etc/pam.d/vsftpd
    auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
    Fatto questo riavviamo il demone ftp per ricaricare la configurazione: /etc/init.d/vsftpd restart
    inserimento degli utenti virtuali FTP:
    Purtroppo non c'è un metodo standard automatico per l'inserimento degli utenti nel database mysql, dovremo quindi procedere tramite phpmyadmin o shell, a vostra discrezione: mysql -u root -p USE vsftpd; INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret')); quit; E poi creiamo la directory ftp che l'utente potrà utilizzare sul server: mkdir /home/vsftpd/testuser chown vsftpd:nogroup /home/vsftpd/testuser Ponendo in questo esempio, che l'utente sia "testuser" e abbia la password "secret". Adesso aprite il vostro cliente puntate all'indirizzo del server e inserite testuser e secret come credenziali, se riuscite a vedere la vostra directory complimenti! avete appena configurato il vostro ftp server con utenze virtuali :mrgreen:

    Full Story

  • Configuriamo un server di posta completo su Etch (Postfix) – Parte 6°

    Configuriamo un server di posta completo su Etch (Postfix) – Parte 6°

    Questa parte funge da approfondimento, propongo un tweak per aumentare la sicurezza e le prestazioni del nostro MTA...

    Una volta messo in piedi il nostro servizio di relay di posta, dobbiamo farci la croce e prepararci a quando verremo letteralmente invasi dallo spam.

    Circa un buon 60-70% del volume di spam in entrata verrà filtrato con successo da spamassassin, ma non è abbastanza soprattutto su server con alti picchi di traffico.

    Ed è soprattutto a questa tipologia di server che servirà questo tutorial, chi "bazzica" infatti da tempo nell'ambiente sistemistico linux, sa bene come spamassassin non è un assassino solo per lo spam, ma anche per la cpu quando il traffico inutile diviene importante.

    E' necessario quindi effettuare ulteriori controlli, per arrivare addirittura al punto in cui lo spam non riesce nemmeno ad entrare nel server, vediamo come:

    FQDN Check e RBL:

    Il primo passo sta nell'applicare alcune policy, di modo che postfix in fase di connessione faccia alcuni check, qualora uno di questi non andasse a buon fine la mail verrà rifiutata; editiamo quindi /etc/postfix/main.cf

    ### Checks to remove badly formed email smtpd_helo_required = yes strict_rfc821_envelopes = yes disable_vrfy_command = yes unknown_address_reject_code = 554 unknown_hostname_reject_code = 554 unknown_client_reject_code = 554 smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, regexp:/etc/postfix/helo.regexp, permit ### When changing sender_checks, this file must be regenerated using postmap , to generate a Berkeley DB smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/helo_client_exceptions check_sender_access hash:/etc/postfix/sender_checks, reject_invalid_hostname, ### Can cause issues with Auth SMTP, so be weary! reject_non_fqdn_hostname, ################################## reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, permit_mynetworks, reject_unauth_destination, # Add RBL exceptions here, when changing rbl_client_exceptions, this #file must be regenerated using postmap , to generate a #Berkeley DB check_client_access hash:/etc/postfix/rbl_client_exceptions, reject_rbl_client cbl.abuseat.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rhsbl_sender dsn.rfc-ignorant.org, check_policy_service inet:127.0.0.1:60000 permit
    con queste direttive forniamo prima di tutto una lista di blacklist dalle quali postfix può controllare se l'ip di provenienza è già segnalato come ip di spam, ed inoltre alcune policy di errore definitivo (554), per determinati eventi. Se eventualmente vogliamo estendere la lista di rbl possiamo reperire altri link qui. Adesso dobbiamo creare il file /etc/postfix/helo.regexp ed inserirci queste stringhe:
    /^subdomain\.host\.com$/ 550 Don't use my own hostname /^xxx\.yyy\.zzz\.xxx$/ 550 Don't use my own IP address /^\[xxx\.yyy\.zzz\.xxx\]$/ 550 Don't use my own IP address /^[0-9.]+$/ 550 Your software is not RFC 2821 compliant /^[0-9]+(\.[0-9]+){3}$/ 550 Your software is not RFC 2821 compliant
    con questo file riusciamo a bloccare gli spammers che provano a presentarsi con un helo impersonando il nostro stesso server, oppure che inviano traffico che non rispetta l'rfc 2821. Possiamo creare un file di eccezioni, per ip che possono by-passare il check fqdn di cui sopra, creiamo quindi il file /etc/postfix/helo_client_exceptions:
    #These client IP addresses are allowed to bypass fqdn checks # Some Comment to identify IP address below #www.xxx.yyy.zzz OK
    A volte capita che alcuni server non siano capaci di mandare in maniera corretta il comando di helo, e quindi dobbiamo inserire il loro ip in questa lista per permettergli di fare traffico con noi. ATTENZIONE: ogni qualvolta questo file viene modificato, lo si deve ricaricare in postfix col comando: postmap /etc/postfix/helo_client_exceptions Adesso creiamo il file /etc/postfix/rbl_client_exceptions:
    ## Some Random comment #www.xxx.yyy.zzz OK
    con questo file creiamo un database di eccezioni di ip dal controllo rbl, anche questo va ricaricato con postmap. Finito questo ricarichiamo postfix e apprestiamoci ad applicare un ultimo meccanismo di antispam (il mio preferito).
    Policy di greylisting:
    Recentemente è stata introdotta una tecnica di prevenzione antispam, che consente di ridurre il volume di spam di oltre il 90%. Tale tecnica si chiama greylisting e si basa su un concetto molto semplice: Gli spammer non hanno a disposizione cluster di relay di posta, molto spesso fanno uso di script che si collegano direttamente ai server destinatari e mandano migliaia e migliaia di mail ad altrettanti indirizzi, una sola volta, non interessa infatti quante ne giungono a destinazione, interessa solo generare traffico e sovraccaricare i server; e soprattutto non possono star li a riprovare ad ogni email fallita, in quanto sanno bene che molte di quelle sono email non più esistenti magari, il tentativo quindi viene fatto una sola volta. Quando invece viene mandata una mail attraverso un sistema di posta, noi ci colleghiamo all'smtp del nostro fornitore di servizi internet, tale server tiene la nostra mail in coda e tenta di contattare il server di posta destinatario, qualora il tentativo di relay della mail non avesse successo, il server mittente fa in automatico altri tentativi ad intervalli di tempo regolari (3/4 tentativi massimo dipende dalla configurazione), falliti anche questi la mail viene cestinata ed al mittente viene ritornato un messaggio d'errore. Il principio di greylist si basa proprio su questo, inizialmente io rifiuto tutte le mail dando un errore di tipo temporaneo (440), cosi il mittente sa che "ho un problema temporaneo sul server" e quindi dovrà riprovare tra un pò, nel frattempo registro il suo hostname ed il suo ip, come "temporaneamente bannato"; di default questo avviene per un arco massimo di 5 minuti, che sono variabili in base alla conf. Passati i 5 minuti quando il mittente riprova a mandarmi la mail, io alla connect vedo che quell'host con quell'ip è già stato greylistato, quindi non riapplico la policy e lo lascio passare ai successivi controlli antivirus/antispam. Un messaggio di spam quindi viene rigettato sin da prima che esso entri sul server, quando lo script dello spammer mi contatta io inizialmente gli rifiuto tutto, tanto lo script non rifarà un altro tentativo e la mail non entrerà mai sul mio server :D e spamassassin non commette svariati omicidi sulla mia cpu ;) Vediamo quindi come impostare il greylisting su postfix, i repo ci vengono in aiuto: apt-get install postgrey poi editiamo il file /etc/default/postgrey inserendo un parametro alla stringa POSTGREY_OPTS: POSTGREY_OPTS="--inet=127.0.0.1:60000 --delay=60" inserendo il parametro --delay infatti abbassiamo il tempo di "ban" che di default è di 5 minuti (che secondo me è troppo) e 60 secondi. Poi riavviamo postgrey:
    /etc/init.d/postgrey restart
    Adesso dobbiamo dire a postfix di fare ciò che gli dice postgrey prima di qualsiasi operazione, editiamo il file /etc/postfix/main.cf ed aggiungiamo le righe:
    smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:60000
    adesso ricarichiamo la conf in postfix: postfix reload Finito, ammirate la purezza e la pace che regnano nella vostra casella di posta totalmente priva di spam :D Con questo abbiamo anche concluso la serie di tutorials sulla messa in piedi di un relay di posta. Recapitolando ora abbiamo a disposizione un server smtp, con un efficace sistema antispam ed antivirus, contornato da un completo pannello di controllo per la gestione dei domini e degli amministratori, un servizio di webmail, e la possibilità di far autenticare i nostri utenti via pop ed imap con o senza ssl, cosa volere di più dalla vita? Un Lucano??!! O_o

    Full Story

Pagina 1 di 212

Canonical URL by SEO No Duplicate WordPress Plugin