relay Archive

  • Il decalogo del Sysadmin

    Il decalogo del Sysadmin

    Ciao, questa è la prima volta che visiti questo blog. Se trovi i contenuti interessanti puoi condividerli, tramite l'uso dei pulsanti che vedi in fondo all'articolo, coi tuoi amici via twitter o facebook, oppure votare l'articolo su wikio. Se vuoi puoi restare sempre aggiornato sugli...

    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

  • Come rovinarsi una tranquilla domenica primaverile

    Come rovinarsi una tranquilla domenica primaverile

     

    Ecco come un comando messo al posto giusto ma al momento sbagliato, può rovinarti una tranquilla domenica.

    Full Story

  • Mysql master replica how-to

    Mysql master replica how-to

    Con mysql possiamo creare un cluster di ridondanza dei nodi, il tutto ci viene già fornito da mysql stesso.

    Vediamo come con questo semplice how-to.

     

    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_exceptionsAdesso 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 postgreypoi 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 reloadFinito, ammirate la purezza e la pace che regnano nella vostra casella di posta totalmente priva di spam :DCon 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

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

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

    Adesso che abbiamo installato e configurato il db e l'smtp vero e proprio, tocca configurare i programmi "accessori", partiamo da Courier il demone che permetterà ai nostri utenti di autenticarsi attraverso i protocolli pop ed imap.

    Configurazione Courier
    la prima cosa da fare è dire "al corriere" (courier ndr.), di effettuare l'autenticazione sul db e non sul sistema, andiamo quindi a modificare la stringa authmodulelist del file /etc/courier/authdaemonrc.authmodulelist="authmysql"adesso dobbiamo cancellare il contenuto di /etc/courier/authmysqlrc e sostituirlo con altri valori, dopo averne fatto una copia di backup ovviamente:cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig cat /dev/null > /etc/courier/authmysqlrce incolliamoci dentro:MYSQL_SERVER localhost MYSQL_USERNAME mail_admin MYSQL_PASSWORD mail_admin_password MYSQL_PORT 0 MYSQL_DATABASE mail MYSQL_USER_TABLE users MYSQL_CRYPT_PWFIELD password #MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD 5000 MYSQL_GID_FIELD 5000 MYSQL_LOGIN_FIELD email MYSQL_HOME_FIELD "/home/vmail" MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') #MYSQL_NAME_FIELD MYSQL_QUOTA_FIELD quotafatto questo diamo il restart al demone courier:/etc/init.d/courier-authdaemon restart /etc/init.d/courier-imap restart /etc/init.d/courier-imap-ssl restart /etc/init.d/courier-pop restart /etc/init.d/courier-pop-ssl restartadesso per testarne il funzionamento possiamo effettuare un telnet su localhost sulla porta pop3, e se otterremo risposta allora significa che tutto è andato bene:
    logubuntu:/var/log# telnet localhost pop3 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Hello there. quit +OK Better luck next time. Connection closed by foreign host.
    Per la gestione dei sistemi di posta, generalmente viene utilizzato un account "fittizio" chiamato mailer_deamon o postmaster, o come si vuole...noi in questo tutorial abbiamo scelto di utilizzare il postmaster, però non può essere un vero e proprio account finto, deve puntare a qualcosa, ed essendo l'account di management dell'MTA dobbiamo definire in /etc/aliases che esso punti al nostro account root del server:
    postmaster: root root: postmaster@yourdomain.tld
    ricordiamoci che ogni volta modifichiamo il file degli alias dobbiamo ricaricarlo col comando newaliases. Definito l'alias riavviamo postfix...
    Amavisd-new, ClamaV e Spamassassin difendiamoci dallo spam con il content analyzing:
    Secondo me dopo l'aids il secondo virus del nuovo millennio sono gli spammer, gente che molesta la serenità altrui con stupidi messaggi pubblicitari, spesso dietro compenso. Al giorno d'oggi non esiste server di posta che non abbia un servizio antispam, e giorno dopo giorno questo servizio si deve evolvere e migliorare. Sul nostro server abbiamo deciso di implementare un meccanismo di content analyzing accoppiando con amavisd-new sia ClamaV per i virus, che spamassassin per le mail di spam:apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 unzoo libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop paxdopo averli installati quindi andiamo a decommentare le stringhe che attivano il check antivirus ed antispam nel file di amavisd /etc/amavis/conf.d/15-content_filter_mode:
    @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); ------ @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
    eventualmente potete anche dare una modifica alle policy antispam/antivirus nel file /etc/amavis/conf.d/20-debian_defaults, di default i valori vanno bene per gli usi più generali, ma è bene sapere che potete gestirlo come meglio credete.Dopodiche andiamo a modificare /etc/amavis/conf.d/50-user aggiungendo una stringa:$pax='pax';modificata la configurazione andiamo quindi a riavviare sia clamav che amavisd:adduser clamav amavis /etc/init.d/amavis restart /etc/init.d/clamav-daemon restart /etc/init.d/clamav-freshclam restartadesso andiamo ad istruire postfix in modo che esso passi tutte le mail ad amavisd per il content filtering:postconf -e 'content_filter = amavis:[127.0.0.1]:10024' postconf -e 'receive_override_options = no_address_mappings'cosi facendo qualsiasi mail che arriverà, verrà prima spedita verso 127.0.0.1 alla porta 10024, verso amavisd, dopo che clamav e spamassassin avranno fatto il loro lavoro, se la mail non è di spam, questa verrà rispedita a postfix attraverso 127.0.0.1 sulla porta 10025, per fare questo però dobbiamo aggiungere al file /etc/postfix/master.cf alcune righe:
    amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1
    fatto questo riavviamo postfix; adesso se diamo "netstat -tap" vedremo che si sono aperte due porte, rispettivamente la 10024 e la 10025, la prima è ascoltata da amavis, la seconda da master, che altri non è che postfix:
    tcp 0 0 localhost.localdo:10024 *:* LISTEN 14491/amavisd (mast tcp 0 0 localhost.localdo:10025 *:* LISTEN 14869/master
    Phishing: Aiutiamo spamassassin con pyzor razor e dcc:
    Spamassassin da solo non ce la può fare, sebbene sia un ottimo motore antispam. Possiamo quindi affiancarlo con altri spamfilters che sono mirati soprattutto all'antiphishing:apt-get install razor pyzor dcc-cliente poi modifichiamo /etc/spamassassin/local.cf per dire a spamassassin di fare riferimento a loro per un ulteriore livello di content filtering, aggiungiamo quindi:
    # dcc use_dcc 1 dcc_path /usr/bin/dccproc dcc_add_header 1 dcc_dccifd_path /usr/sbin/dccifd#pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1#razor use_razor2 1 razor_config /etc/razor/razor-agent.conf#bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1
    e poi restartiamo amavis:/etc/init.d/amavis restart
    Quota excedance notification:
    Se vi ricordate ad inizio tutorial vi ho fatto patchare i sorgenti di postfix, in quanto questo di default non ha abilitata la gestione delle quote delle caselle, ma non possiamo, una volta che il sistema è a regime, andare ogni giorno a verificare quante e quali caselle sono "over quota". Andiamo quindi a scaricare uno script da inserire in crontab per la notifica automatica:cd /usr/local/sbin/ wget http://puuhis.net/vhcs/quota.txt mv quota.txt quota_notify chmod 755 quota_notifypoi andiamo a modificarlo per adattarlo alle nostre esigenze, in particolare modificando le prima righe:
    my $POSTFIX_CF = "/etc/postfix/main.cf"; my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('postmaster@yourdomain.tld'); my $CONAME = 'My Company'; my $COADDR = 'postmaster@yourdomain.tld'; my $SUADDR = 'postmaster@yourdomain.tld'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1;
    e dando un occhio alle ultime due:
    print "Subject: WARNING: Your mailbox is $lusers{$luser}% full.\n"; [...] print "Your mailbox: $luser is $lusers{$luser}% full.\n\n";
    fatto questo aggiungiamo la seguente stringa al nostro crontab:0 0 * * * /usr/local/sbin/quota_notify &> /dev/nulladesso facciamo una piccola verifica, dobbiamo vedere se il nostro postfix è configurato correttamente per l'autenticazione tramite starttls:
    logubuntu:/var/log# telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.logubuntu.it ESMTP Postfix (Debian/GNU) ehlo localhost 250-mail.logubuntu.it 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host.
    se vediamo le due stringhe in grassetto allora possiamo tranquillizzarci ;)Bene, adesso il sistema è pronto e funzionante, non ci resta che popolare il database per le varie caselle, ma siccome il sistema che voglio configurare deve essere il più possibile completo, nei prossimi articoli andremo a vedere come installare una webmail e un pannello di controllo per amministratori di dominio, cosi da non doverci impelagare in query sql illeggibili ;)

    Full Story

  • Servizio SMTP

    Servizio SMTP

    Chiunque possiede una connessione ad internet, possiede una casella di posta, ed il 90% dei cyber-utenti la utilizza, per scopi personali, professionali, o quant'altro.

    Noi del Portalinux siamo ben coscienti di questa realtà, sviluppata tantissimo nel mondo del lavoro, ed è per questo che abbiamo deciso di fornire un servizio gratuito di posta ai nostri utenti.

    Full Story

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

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

    Adesso passiamo alla vera e propria configurazione del sistema di posta, dovremo infatti dire a postfix che dovrà fare riferimento ad un database per il check delle utenze, e dovremo istruirlo su come fare anche.

    Configurazione Postfix

    Prima di tutto dobbiamo controllare una direttiva sul file di configurazione di mysql, che generalmente è attivata, ma è sempre meglio controllare; postfix infatti lavora in una jail chroot, per motivi di sicurezza, e quindi non ha accesso al socket mysql via localhost, deve per forza connettersi a 127.0.0.1;

    Controlliamo nel file /etc/mysql/my.cnf quindi che sia presente la direttiva bind-address:

    bind-address = 127.0.0.1se lo modifichiamo ricordiamoci di restartare il server sql:/etc/init.d/mysql restartAdesso dobbiamo fare un operazione semplice, ma che è molto delicata, in quanto da questa dipende il funzionamento di postfix; dobbiamo creare sei file di testo che contengono delle direttive che istruiscono postfix per la connessione e le query da effettuare sul db mysql; per comodità quindi metterò prima il comando che potete incollare per creare il rispettivo file, e poi in un blockquote quello che dovete inserire dentro:vi /etc/postfix/mysql-virtual_domains.cf
    user = mail_admin password = mail_admin_password dbname = mail query = SELECT domain AS virtual FROM domains WHERE domain='%s' hosts = 127.0.0.1
    vi /etc/postfix/mysql-virtual_forwardings.cf
    user = mail_admin password = mail_admin_password dbname = mail query = SELECT destination FROM forwardings WHERE source='%s' hosts = 127.0.0.1
    vi /etc/postfix/mysql-virtual_mailboxes.cf
    user = mail_admin password = mail_admin_password dbname = mail query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s' hosts = 127.0.0.1
    vi /etc/postfix/mysql-virtual_email2email.cf
    user = mail_admin password = mail_admin_password dbname = mail query = SELECT email FROM users WHERE email='%s' hosts = 127.0.0.1
    vi /etc/postfix/mysql-virtual_transports.cf
    user = mail_admin password = mail_admin_password dbname = mail query = SELECT transport FROM transport WHERE domain='%s' hosts = 127.0.0.1
    vi /etc/postfix/mysql-virtual_mailbox_limit_maps.cf
    user = mail_admin password = mail_admin_password dbname = mail query = SELECT quota FROM users WHERE email='%s' hosts = 127.0.0.1
    Poi impostiamo i permessi per tali file: chmod o= /etc/postfix/mysql-virtual_*.cf chgrp postfix /etc/postfix/mysql-virtual_*.cfAdesso dobbiamo creare l'utente e la relativa home, che sarà utilizzato da postfix per salvare ogni casella e i relativi messaggi/cartelle:groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /home/vmail -mAdesso inseriremo dei comandi che andranno a modificare il file /etc/postfix/main.cf, inserendo tutte le direttive che diranno a postfix come comportarsi (fate attenzione a modificare i parametri del dominio in base alle vostre esigenze):
    postconf -e 'myhostname = server.dominio.com' postconf -e 'mydestination = server.dominio.com, localhost, localhost.localdomain' postconf -e 'mynetworks = 127.0.0.0/8' postconf -e 'virtual_alias_domains =' postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf' postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf' postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf' postconf -e 'virtual_mailbox_base = /home/vmail' postconf -e 'virtual_uid_maps = static:5000' postconf -e 'virtual_gid_maps = static:5000' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtpd.cert' postconf -e 'smtpd_tls_key_file = /etc/postfix/smtpd.key' postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf' postconf -e 'virtual_create_maildirsize = yes' postconf -e 'virtual_mailbox_extended = yes' postconf -e 'virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf' postconf -e 'virtual_mailbox_limit_override = yes' postconf -e 'virtual_maildir_limit_message = "The user you are trying to reach is over quota."' postconf -e 'virtual_overquota_bounce = yes' postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'
    Adesso creeremo il certificato SSL necessario per l'autenticazione via imaps o pops, rispondendo alle domande in base ai nostri dati:cd /etc/postfix openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509Poi dobbiamo cambiare i permessi del file del certificato:chmod o= /etc/postfix/smtpd.key
    Configurazione Saslauthd
    Tramite saslauthd postfix effettua connessioni per verificare l'autenticazione dell'utente, confrontando i dati passati con quelli presenti sul db. Prima di tutto dobbiamo creare una cartella per il demone:mkdir -p /var/spool/postfix/var/run/saslauthdE poi dobbiamo modificare il file /etc/default/saslauthd per far si che il demone venga lanciato in fase di boot (eh si di default è disabilitato), e cambiamo la stringa OPTIONS="-c" che non sono altro i parametri da passare al binario per lanciare il demone:
    # Should saslauthd run automatically on startup? (default: no) START=yes------------ # Other options (default: -c) # See the saslauthd man page for information about these options. # # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" # Note: See /usr/share/doc/sasl2-bin/README.Debian OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
    Poi dobbiamo creare il file /etc/pam.d/smtp che conterrà solamente due stringhe:
    auth required pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
    Adesso creiamo il file /etc/postfix/sasl/smtpd.conf delle direttive per effettuare le query sul db da parte di saslauthd:
    pwcheck_method: saslauthd mech_list: plain login allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 127.0.0.1 sql_user: mail_admin sql_passwd: mail_admin_password sql_database: mail sql_select: select password from users where email = '%u'
    Adesso riavviamo sia postfix (ogni qualvolta modifichiamo la conf dobbiamo farlo) e saslauth:/etc/init.d/postfix restart /etc/init.d/saslauthd restart

    Full Story

Canonical URL by SEO No Duplicate WordPress Plugin