Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Sieve scripts (mail filtering)

Termin Definicja
Sieve scripts (mail filtering)

Skrypty Sieve pozwalają definiować reguły przetwarzania poczty wykonywane bezpośrednio na serwerze.

Techniczny kontekst filtrowania poczty po stronie serwera

Język Sieve, zdefiniowany pierwotnie w dokumencie RFC 3028 i zaktualizowany w dokumencie RFC 5228, stanowi standard branżowy służący do tworzenia skryptów filtrujących wiadomości e-mail. W przeciwieństwie do reguł przetwarzania konfigurowanych w lokalnych klientach pocztowych, takich jak Microsoft Outlook czy Mozilla Thunderbird, skrypty Sieve są wykonywane bezpośrednio na serwerze pocztowym w momencie dostarczania wiadomości do skrzynki docelowej użytkownika. Mechanizm ten jest integrowany w warstwie oprogramowania odpowiedzialnego za lokalne doręczanie poczty, określanego jako Local Delivery Agent (LDA) lub Mail Delivery Agent (MDA). Implementacjami obsługującymi ten standard są między innymi serwery Dovecot oraz Cyrus IMAP. Podstawową cechą wdrożenia serwerowego jest niezależność procesu filtrowania od urządzeń końcowych. Niezależnie od tego, czy użytkownik pobiera pocztę za pomocą protokołu IMAP na urządzeniu mobilnym, czy korzysta z przeglądarkowego interfejsu Webmail, zdefiniowane reguły są aplikowane asynchronicznie, zanim klient zainicjuje synchronizację nagłówków. Sieve zaprojektowano z myślą o bezpieczeństwie środowisk wielodostępnych. W odróżnieniu od historycznych rozwiązań, takich jak Procmail, Sieve nie jest językiem programowania ogólnego przeznaczenia (nie jest kompletny w sensie Turinga). Środowisko uruchomieniowe nie pozwala na wykonywanie zewnętrznych procesów, wprowadzanie modyfikacji w systemie plików serwera poza ściśle zdefiniowanymi obszarami skrzynek pocztowych, ani na tworzenie nieskończonych pętli za pomocą instrukcji skoku. Składnia ogranicza się do operacji na strukturze wiadomości opisanej w standardzie RFC 5322, co zamyka klasę wektorów ataków opartych na wstrzykiwaniu kodu (code injection). Skrypty Sieve operują na etapie dostarczania do skrzynek, a nie wysyłania, przez co nie mają wpływu na protokół SMTP w fazie autoryzacji sesji. Interpreter operuje w kontekście uprawnień przypisanych do jednej skrzynki, w izolacji od pozostałych zasobów w systemie, co izoluje dane w obrębie tego samego serwera fizycznego. Architektura ta odciąża jednostki klienckie, zdejmując z nich konieczność pobierania pełnych wiadomości do pamięci operacyjnej lokalnego komputera w celu kategoryzacji. Zintegrowane systemy pocztowe wykorzystują Sieve jako mechanizm segregacji korespondencji wewnętrznej na podstawie wartości niestandardowych nagłówków wstrzykiwanych przez aplikacje biznesowe. Przykładowo, serwer aplikacyjny może dodawać identyfikator X-Project-ID do nagłówków generowanych raportów, a reguła na docelowym koncie przechwyci ten identyfikator i bez interakcji ze strony użytkownika zapisze plik w wymaganym folderze struktury IMAP.

Architektura działania i specyfikacja składni skryptów

Proces przetwarzania wiadomości e-mail rozpoczyna się, gdy serwer pośredniczący (Mail Transfer Agent), taki jak Postfix lub Exim, przekazuje zaakceptowaną wiadomość do demona MDA. Interpreter ładuje przypisany do konta pocztowego skrypt i weryfikuje go sekwencyjnie. Struktura języka opiera się na instrukcjach warunkowych (if, elsif, else) oraz testach sprawdzających zawartość poszczególnych pól (header, address, size). Do standardowych akcji podejmowanych w wyniku spełnienia warunków należą: keep (zachowanie w domyślnej skrzynce odbiorczej), fileinto (przeniesienie do określonego folderu, co wymaga załadowania osobnego rozszerzenia), discard (ciche usunięcie wiadomości bez generowania odpowiedzi), reject (odrzucenie wiadomości na poziomie protokołu SMTP z określonym kodem błędu) oraz redirect (przekazanie wiadomości na inny adres e-mail). Podstawowa specyfikacja języka jest celowo ograniczona do podstawowych operacji logicznych, jednak umożliwia ładowanie modułów rozszerzających rejestrowanych przez IANA. Do implementowanych rozszerzeń należą między innymi moduł "vacation" (generujący odpowiedzi o nieobecności, wyposażony w mechanizm zapobiegania pętlom komunikacyjnym, który śledzi adresy wysyłkowe w przedziale czasu), moduł "regex" (implementujący silnik wyrażeń regularnych do analizy ciągów znaków w nagłówkach i treści) oraz moduł "imap4flags" (aplikujący tagi IMAP, takie jak \Seen czy \Answered, bezpośrednio przy zapisie pliku). Specyfikacja określa deterministyczny model ewaluacji zapytań tekstowych. Podstawowym trybem weryfikacji jest dopasowanie ciągów znaków za pomocą operatorów "is" lub "contains", operujących na surowych oktetach. Konstrukcja języka pozwala na iteracyjne analizowanie wielu wartości zawartych w jednym polu nagłówka. Pole "Received", które może występować wielokrotnie wskutek routingu przez serwery pośredniczące, jest traktowane przez silnik jako struktura tablicowa. Rozszerzenie "relational" opisane w dokumencie RFC 5231 dodaje obsługę operatorów matematycznych, co pozwala na weryfikowanie czy zmienna zadeklarowana w nagłówku określa wartość numeryczną wyższą niż próg zdefiniowany w kodzie. Moduł "date" wprowadzony przez RFC 5260 pozwala z kolei na ewaluację komponentów czasu, takich jak dzień tygodnia czy miesiąc, co wykorzystuje się do zmiany ścieżki dostarczania poczty poza godzinami roboczymi. Oprogramowanie Dovecot domyślnie wykorzystuje wbudowany silnik Pigeonhole, który ładuje wbudowane moduły w postaci bibliotek dynamicznych podczas inicjalizacji usługi. Bezpośrednia edycja skryptów na serwerze poprzez powłokę tekstową jest z reguły wyłączona dla użytkowników końcowych. Komunikację z usługą zapewnia protokół ManageSieve (RFC 5804), nasłuchujący na porcie TCP 4190. Zapewnia on autoryzowany transfer, aktywację i dezaktywację plików ze skryptami, wraz z wstępną walidacją składniową realizowaną przed kompilacją w środowisku produkcyjnym.

Trudności implementacyjne oraz błędy logiczne w regułach

Tworzenie reguł filtrujących Sieve wiąże się ze specyficznymi trudnościami konfiguracji operacji asynchronicznych. Jednym z analizowanych problemów w środowiskach serwerowych jest zjawisko "backscatter", czyli wysyłanie komunikatów zwrotnych dla spamu. Występuje ono, gdy skrypt Sieve wywołuje polecenie "redirect" lub "reject" dla wszystkich nadchodzących wiadomości bez uprzedniej weryfikacji nagłówków wstawianych przez filtry antywirusowe (na przykład flagi X-Spam-Status zarządzanej przez środowisko SpamAssassin). Serwer pocztowy wysyła wtedy odpowiedzi do sfałszowanych nadawców wiadomości, co prowadzi do umieszczenia adresu IP maszyny filtrującej na listach RBL (Real-time Blackhole List). Problem stanowi również obsługa różnych wariantów kodowań w nagłówkach wiadomości. Standard MIME pozwala na zapis znaków diakrytycznych w formacie =?UTF-8?Q?, co wymaga dekodowania ciągów przez interpreter Sieve przed uruchomieniem testów dopasowania. Brak kompatybilności na etapie analizy wyrażeń regularnych prowadzi do fałszywie negatywnych wyników weryfikacji. Z poziomu architektury systemu operacyjnego występuje konieczność obsługi limitów przydziału dyskowego (quota). Gdy system plików zwraca błąd alokacji podczas wywołania funkcji "fileinto", interpreter uruchamia mechanizm naprawczy. Zgodnie ze specyfikacją standardu, środowisko uruchomieniowe zatrzymuje skrypt i próbuje użyć funkcji "keep", a w razie błędu zapisu w domyślnym katalogu, zwraca komunikat odrzucenia wiadomości. Innym błędem podczas konfiguracji jest tworzenie wykluczających się warunków logicznych. Wywołanie komendy "redirect" zatrzymuje dalsze przetwarzanie skryptu, jeżeli nie użyto flagi określającej wymuszenie kopiowania do lokalnej skrzynki. Błędne kontrolowanie przepływu wykonania skutkuje niezapisaniem wiadomości na dysku. Restrykcje modułu "vacation" stanowią kolejny techniczny przypadek. Mechanizm ten rejestruje skróty adresów w lokalnej bazie danych z parametrem retencji ustalonym na 7 dni, aby nie powielać odpowiedzi. Jeżeli konto e-mail jest obsługiwane przez przekierowania domenowe (aliasy), a użytkownik nie zdefiniuje odpowiednich parametrów w zmiennej ":addresses", silnik pominie wygenerowanie odpowiedzi. Serwery pocztowe implementują również sprzętowe liczniki przerwań (timeout) ograniczające czas analizy pojedynczej wiadomości przez skomplikowane algorytmy wyrażeń regularnych, aby minimalizować czas procesora zużywany przez proces demona dostarczającego pocztę.

Diagnostyka problemów z pocztą a profil działalności serwisów sprzętowych

Działanie oprogramowania serwerowego i protokołu Sieve jest zjawiskiem oddzielonym technologicznie od usług świadczonych przez lokalne punkty zajmujące się naprawą sprzętu komputerowego. Serwis elektroniki użytkowej koncentruje się na sprzętowych defektach urządzeń, realizując diagnostykę płyt głównych, wymianę matryc LCD, pomiary układów zasilania VRM, lutowanie złączy na laminatach oraz odzyskiwanie danych z nośników o usterkach logicznych lub sprzętowych. Prace z oprogramowaniem klienckim obejmują rekonfigurację profili systemów z rodziny Windows, naprawę spójności lokalnych plików danych (takich jak bazy .pst i .ost z programu Microsoft Outlook) czy rozwiązywanie błędów stosu TCP/IP w interfejsach sieciowych komputera. Bezpośredni dostęp do zarządzania usługami MTA oraz MDA w centrach danych leży wyłącznie w kompetencjach administratorów pracujących dla dostawców hostingu. W związku z tym, współcześnie niemal nie spotyka się zgłoszeń serwisowych od użytkowników indywidualnych wymagających integracji tego poziomu infrastruktury w serwisie komputerowym. Diagnostyka zachowań skryptów Sieve wymaga analizy logów usługi Dovecot w systemie Linux oraz dostępu do powłoki umożliwiającej monitorowanie transakcji na portach protokołu ManageSieve. W stacjonarnym serwisie inżynier naprawiający laptopy nie ma uprawnień autoryzacyjnych do systemów zewnętrznych. Jeżeli diagnoza zachowania poczty elektronicznej na urządzeniu klienta wykazała, że komunikacja po stronie programu pocztowego przebiega bez zakłóceń, a przyczyną przenoszenia wiadomości do niepożądanych folderów są zdefiniowane reguły działające bezpośrednio na serwerze usługi, proces diagnostyki serwisowej ulega zakończeniu. Klient jest informowany o konieczności skierowania problemu do centrum pomocy technicznej operatora hostingu. Większość dostawców integruje mechanizmy Sieve pod warstwą uproszczonych paneli graficznych (webmail), a korekta tych parametrów nie jest elementem diagnostyki ani konserwacji fizycznego komputera PC.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę