Po 10 miesiącach prac rozwojowych odbyła się premiera nowej stabilnej wersji serwera pocztowego Postfix — 3.7.0. Jednocześnie ogłoszono koniec wsparcia dla wersji Postfix 3.3, wydanej na początku 2018 roku. Postfix jest jednym z nielicznych projektów, który łączy wysokie bezpieczeństwo, niezawodność i wydajność, co udało się osiągnąć dzięki przemyślanej architekturze oraz dość rygorystycznej polityce kodowania i audytu poprawek. Kod projektu jest rozpowszechniany na licencjach EPL 2.0 (Eclipse Public License) oraz IPL 1.0 (IBM Public License).
Zgodnie z automatycznym badaniem z stycznia, obejmującym około 500 tysięcy serwerów pocztowych, serwerówPostfix jest używany na 34,08% (rok temu 33,66%) serwerów pocztowych, udział Exim wynosi 58,95% (59,14%), Sendmail — 3,58% (3,6%), MailEnable — 1,99% (2,02%), MDaemon — 0,52% (0,60%), Microsoft Exchange — 0,26% (0,32%), OpenSMTPD — 0,06% (0,05%).
Główne nowości:
- Dodano możliwość wstawiania w miejsce zawartości małych tabel „cidr:”, „pcre:” i „regexp:” wewnątrz wartości parametrów konfiguracyjnych Postfix, bez połączenia z zewnętrznymi plikami lub bazami danych. Podstawianie w miejscu jest określane przy użyciu nawiasów klamrowych, na przykład domyślna wartość parametru smtpd_forbidden_commands teraz zawiera ciąg „CONNECT GET POST regexp:{{/^[^A-Z]/ Thrash}}”, co zapewnia resetowanie połączeń od klientów wysyłających śmieci zamiast poleceń. Ogólny składnia: /etc/postfix/main.cf: parameter = .. map-type:{ { rule-1 }, { rule-2 } .. } .. /etc/postfix/master.cf: .. -o { parameter = .. map-type:{ { rule-1 }, { rule-2 } .. } .. } ..
- Handler postlog jest teraz wyposażony w flagę set-gid i przy uruchomieniu wykonuje operacje z uprawnieniami grupy postdrop, co pozwala na jego użycie przez programy nieposiadające uprawnień do zapisu logów za pośrednictwem procesu w tle postlogd, co zwiększa elastyczność konfiguracji maillog_file oraz wdraża między innymi logowanie stdout z kontenera.
- Dodano wsparcie dla bibliotek API OpenSSL 3.0.0, PCRE2 oraz Berkeley DB 18.
- Dodano ochronę przed atakami wykorzystującymi kolizje w haszach metodą przeszukiwania kluczy. Ochrona jest realizowana przez losowanie początkowego stanu tabel haszowych przechowywanych w pamięci operacyjnej. Obecnie zidentyfikowano tylko jeden sposób prowadzenia takich ataków, związany z przeszukiwaniem adresów IPv6 klientów SMTP w usłudze anvil, wymagający nawiązywania setek krótkotrwałych połączeń na sekundę przy cyklicznym przeszukiwaniu tysięcy różnych klientów. adresów IP. Inne tabele haszy, w których klucz może być weryfikowany na podstawie danych atakującego, nie są podatne na takie ataki, ponieważ zastosowano ograniczenie wielkości (w anvil czyszczenie odbywało się co 100 sekund).
- Wzmocniona ochrona przed zewnętrznymi klientami i serwerami, które bardzo powoli przesyłają dane, aby utrzymać aktywne połączenia SMTP i LMTP (na przykład w celu zablokowania działania poprzez stworzenie warunków wyczerpania limitu liczby ustanowionych połączeń). Zamiast ograniczeń czasowych związanych z rekordami wprowadzono ograniczenie związane z zapytaniami, a także dodano ograniczenie minimalnej możliwej intensywności przesyłania danych w blokach DATA i BDAT. Odpowiednio, w miejsce ustawień {smtpd,smtp,lmtp}_per_record_deadline wprowadzono {smtpd,smtp,lmtp}_per_request_deadline oraz {smtpd,smtp,lmtp}_min_data_rate.
- W zespole postqueue wprowadzono czyszczenie nieprzyjaznych znaków, takich jak nowe linie, na etapie przed wyjściem do standardowego strumienia wyjściowego lub formatowaniem tekstu w JSON.
- W tlsproxy wprowadzono nowe ustawienia tlsproxy_client_security_level oraz tlsproxy_client_policy_maps, które zastąpiły parametry tlsproxy_client_level i tlsproxy_client_policy w celu ujednolicenia nazewnictwa parametrów w Postfixie (nazwa ustawień tlsproxy_client_xxx teraz odpowiada ustawieniom smtp_tls_xxx).
- Przeprojektowano obsługę błędów od klientów korzystających z LMDB.
Źródło: opennet.ru
