Dopo un anno di sviluppo, è stata rilasciata una nuova versione stabile del server di posta Postfix — 3.6.0. Allo stesso tempo, è stato annunciato il termine del supporto per la versione 3.2 di Postfix, rilasciata all'inizio del 2017. Postfix è uno dei pochi progetti che combinano sicurezza, affidabilità e prestazioni elevate, grazie a un'architettura ben pensata e a una politica rigorosa di codifica e audit delle patch. Il codice del progetto è distribuito sotto le licenze EPL 2.0 (Eclipse Public License) e IPL 1.0 (IBM Public License).
Secondo un sondaggio automatico di aprile coinvolgente circa 600.000 server di posta, serverPostfix è utilizzato dal 33,66% (un anno fa 34,29%) dei server di posta, la quota di Exim è del 59,14% (57,77%), Sendmail — 3,6% (3,83%), MailEnable — 2,02% (2,12%), MDaemon — 0,60% (0,77%), Microsoft Exchange — 0,32% (0,47%).
Novità principali:
- A causa della modifica dei protocolli interni utilizzati per l'interazione tra i componenti di Postfix, è necessaria la fermata del server di posta prima dell'aggiornamento. server comando «postfix stop». In caso contrario, potrebbero verificarsi malfunzionamenti nei processi pickup, qmgr, verify, tlsproxy e postscreen, che possono portare a ritardi nell'invio delle email fino al riavvio di Postfix.
- È stata effettuata una pulizia delle menzioni delle parole «white» e «black», percepite da alcune rappresentanze della comunità come discriminazione razziale. Al posto di «whitelist» e «blacklist», ora è opportuno utilizzare «allowlist» e «denylist» (ad esempio, i parametri postscreen_allowlist_interfaces, postscreen_denylist_action e postscreen_dnsbl_allowlist_threshold). Le modifiche riguardano la documentazione, le impostazioni del processo postscreen (firewall integrato) e la registrazione delle informazioni nei log. postfix/postscreen[pid]: ALLOWLIST VETO [address]:port postfix/postscreen[pid]: ALLOWLISTED [address]:port postfix/postscreen[pid]: DENYLISTED [address]:port
Per preservare i termini precedenti nei log, è disponibile il parametro «respectful_logging = no», che deve essere specificato in main.cf prima di «compatibility_level = 3.6». Il supporto per i vecchi nomi delle impostazioni di postscreen è mantenuto per garantire la retrocompatibilità. Anche il file di configurazione «master.cf» rimane invariato.
- In modalità "compatibility_level = 3.6", è stato impostato per default l'uso della funzione hash SHA256 invece di MD5. Se viene specificata una versione precedente nel parametro compatibility_level, continua ad essere applicato MD5, ma per le impostazioni relative all'uso degli hash, in cui l'algoritmo non è definito esplicitamente, verrà emesso un avviso nel log. È stata interrotta la supporto per la variante di esportazione del protocollo di scambio delle chiavi Diffie-Hellman (il valore del parametro tlsproxy_tls_dh512_param_file ora viene ignorato).
- È stata semplificata la diagnostica dei problemi legati all'indicazione, in master.cf, di un programma di gestione non valido. Per identificare tali errori, ogni servizio interno, incluso postdrop, ora annuncia il nome del protocollo prima dell'inizio dello scambio dati, e ogni processo client, inclusi sendmail, verifica la corrispondenza del nome del protocollo dichiarato con la versione supportata.
- È stato aggiunto un nuovo tipo di mappature «local_login_sender_maps» per una gestione flessibile dell'indirizzo di invio dell'envelope (fornito nel comando «MAIL FROM» durante la sessione SMTP) nei processi di sendmail e postdrop. Ad esempio, per consentire agli utenti locali, esclusi root e postfix, di specificare in sendmail solo i propri login, utilizzando il legame UID al nome, è possibile utilizzare le seguenti configurazioni: /etc/postfix/main.cf: local_login_sender_maps = inline:{ { root = *}, { postfix = * } }, pcre:/etc/postfix/login_senders /etc/postfix/login_senders: # È consentito specificare sia i login che le forme login@dominio. /(.+)/ $1 $1…@example.com
- È stata aggiunta e attivata di default l'impostazione «smtpd_relay_before_recipient_restrictions=yes», in base alla quale il server SMTP verificherà le restrizioni smtpd_relay_restrictions prima delle smtpd_recipient_restrictions, e non viceversa, come avveniva in precedenza.
- È stato aggiunto il parametro «smtpd_sasl_mechanism_list», impostato di default su «!external, static:rest» per evitare errori confusi, nel caso in cui il backend SASL dichiari il supporto per la modalità «EXTERNAL», che non è supportata in Postfix.
- Nella definizione dei nomi DNS, viene utilizzato per impostazione predefinita un nuovo API che supporta il multi-threading (threadsafe). Per compilare con il vecchio API, è necessario specificare durante la compilazione «make makefiles CCARGS=»-DNO_RES_NCALLS…».
- È stata aggiunta l'opzione «enable_threaded_bounces = yes» per l'inserimento delle notifiche sui problemi di consegna, sulle consegne ritardate o sulla conferma di consegna con lo stesso identificatore della discussione (la notifica verrà mostrata dal client di posta nella stessa thread, insieme ai restanti messaggi della conversazione).
- Per impostazione predefinita, è stato interrotto l'uso del database di sistema /etc/services per la definizione dei numeri di porta TCP per SMTP e LMTP. Invece, i numeri di porta sono configurati tramite il parametro known_tcp_ports (di default lmtp=24, smtp=25, smtps=submissions=465, submission=587). Se un servizio è omesso in known_tcp_ports, viene ancora utilizzato /etc/services.
- Il livello di compatibilità («compatibility_level») è stato innalzato a «3.6» (in passato questo parametro è stato cambiato due volte, oltre a 3.6 sono supportati i valori 0 (di default), 1 e 2). D'ora in poi, «compatibility_level» cambierà in base al numero di versione in cui sono state apportate modifiche che violano la compatibilità. Sono stati aggiunti operatori di confronto separati per verificare i livelli di compatibilità in main.cf e master.cf, come «<=level» e «< level» (gli operatori di confronto standard non sono adatti, poiché considererebbero 3.10 minore di 3.9).
Fonte: opennet.ru
