Jak skonfigurować SELinux podczas korzystania z Postfix lub Sendmail milter

Bitdefender Security for Mail Servers chroni serwery pocztowe bazujące na Windows, oraz UNIX przed znanymi i nieznanymi zagrożeniami bezpieczeństwa z nagradzanymi pro-aktywnymi technologiami antywirusowymi, antyspyware, antyspamowymi, antyphishingowymi, filtrowania zawartości i załączników. Rozwiązanie zabezpiecza usługi pocztowe organizacji, zapewnia zwiększoną produktywność poprzez blokowanie spamu, oraz udostępnianie wspólnych narzędzi do scentralizowanego zarządzania.

Ten artykuł opisuje jak skonfigurować SELinux, aby zezwalał na ruch wiadomości, w trakcie używania Bitdefender milters for Postfix, oraz Sendmail.

Przegląd

Na serwerach pocztowych z SELinux w trybie wymuszania (domyślne ustawienie), polityka SELinux uniemożliwia integrację agentów Bitdefender milter z agentami ruchu wiadomości e-mail Postfix, oraz Sendmail (MTA). W konsekwencji serwer poczty e-mail opuszcza cały ruch wiadomości.

Aby rozwiązać ten problem, musisz stworzyć serie wyjątków polityki bezpieczeństwa. Poniżej podano kroki, aby utworzyć wyjątki SELinux dla każdego MTA.

Wymagania wstępne

Pakiet policycoreutils-python musi być zainstalowany. Pakiet ten zawiera skrypt audit2allow, potrzebny do stworzenia modułów polityki SELinux

Pakiet policycoreutils-python nie jest zainstalowany domyślnie.

Aby zweryfikować, czy pakiet jest w systemie, uruchom:

a) W dystrybucji bazującej na Red Hat

$ rpm -qa policycoreutils-python

b) W dystrybucji bazującej na Debianie

$ dpkg –s policycoreutils-python

Aby zainstalować pakiet, uruchom:

a) W dystrybucji bazującej na Red Hat

# yum install policycoreutils-python

b) W dystrybucji bazującej na Debianie

# apt-get update # apt-get install policycoreutils-python

Rozwiązywanie problemów

SELinux rejestruje wszystkie swoje działania w /var/log/audit/audit.log . Audit2allow używa wpisów dziennika wygenerowanych przez akcje „odmowa” do budowania wyjątków.

Wykonaj następujące kroki, aby skonfigurować SELinux za pomocą audit2allow:

A. Dla Postfix milter

Dla poniższego wpisu dziennika, zbuduj moduł SELinux, pozwalając smtp pisać na gnieździe utworzonym przez Bitdefender:

type=AVC msg=audit(1420639482.638:359): avc: denied { write } for pid=2628 comm=”smtpd” name=”bdmilterd.sock” dev=”dm-1″ ino=17433124 scontext=system_u:system_r:postfix_smtpd_t:s0 tcontext=system_u:object_r:postfix_spool_t:s0 tclass=sock_file

# grep "denied { write }" /var/log/audit/audit.log|grep "smtpd"|audit2allow -M smtpd-write

Moduł powinien składać się z dwóch plików:

smtpd-write.te, plik typu egzekwowania.

smtpd-write.pp, plik pakietu polityki

2. Wczytaj pakiet do polityki.

# semodule -i smtpd-write.pp

3. Stwóż inną politykę, pozwalającą smtp na połączenie z plikiem gniazda dla następującego wpisu dziennika:

type=AVC msg=audit(1420712445.141:616): avc: denied { connectto } for pid=4292 comm=”smtpd” path=”/var/spool/postfix/BitDefender/bdmilterd.sock” scontext=system_u:system_r:postfix_smtpd_t:s0 tcontext=system_u:system_r:init_t:s0 tclass=unix_stream_socket

# grep "denied { connectto }" /var/log/audit/audit.log|grep
"smtpd"|audit2allow -M smtpd-connectto

Powstałe pliki: smtpd-connectto.te, smtpd-connectto.pp

4. Wczytaj pakiet do polityki.

# semodule -i smtpd-connectto.pp

5. Aby zobaczyć zainstalowane moduły polityki, uruchom:

# semodule -l

B. Dla Sendmail milter

1. Dla poniższego wpisu dziennika, zbuduj moduł SELinux, który pozwoli Sendmailowi na odczyt atrybutów gniazda utworzonego przez Bitdefender:

type=AVC msg=audit(1420728867.579:709): avc: denied { getattr } for pid=5805 comm=”sendmail” path=”/run/BitDefender/bdmilterd.sock” dev=”tmpfs” ino=334905 scontext=system_u:system_r:sendmail_t:s0 tcontext=unconfined_u:object_r:init_var_run_t:s0 tclass=sock_file

# grep "denied { getattr }" /var/log/audit/audit.log|grep "sendmail"|audit2allow -M sendmail-gettattr

Moduł powinien składać się z dwóch plików:

sendmail-gettattr.te, plik typu egzekwowania.

sendmail-gettattr.pp, plik pakietu polityki.

2. Wczytaj pakiet do polityki.

# semodule -i sendmail-gettattr.pp

3. Dla wpisu dziennika poniżej, zbuduj moduł SELinux, pozwalając sendmailowi pisać na gnieździe utworzonym przez Bitdefender:

type=AVC msg=audit(1420729472.802:720): avc: denied { write } for pid=5881 comm=”sendmail” name=”bdmilterd.sock” dev=”tmpfs” ino=334905 scontext=system_u:system_r:sendmail_t:s0 tcontext=unconfined_u:object_r:init_var_run_t:s0 tclass=sock_file

# grep "denied { write }" /var/log/audit/audit.log|grep "sendmail"|audit2allow -M sendmail-write

Powstałe pliki: sendmail-write.te, sendmail-write.pp

4. Wczytaj pakiet do polityki.

# semodule -i sendmail-write.pp

5. Aby uzyskać następujący wpis dziennika, utwórz politykę, która pozwoli sendmailowi połączyć się z plikiem gniazda:

type=AVC msg=audit(1420730220.602:729): avc: denied { connectto } for pid=5999 comm=”sendmail” path=”/run/BitDefender/bdmilterd.sock” scontext=system_u:system_r:sendmail_t:s0 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=unix_stream_socket

# grep "denied { connectto }" /var/log/audit/audit.log|grep "sendmail"|audit2allow -M sendmail-connectto

Powstaną pliki: sendmail-connectto.te, sendmail- connectto.pp

6. Wczytaj pakiet do polityki.

# semodule -i endmail-connectto.pp

7. Aby zobaczyć zainstalowane moduły polityki, uruchom:

# semodule -l

Źródło: https://www.bitdefender.com/support/how-to-configure-selinux-when-using-postfix-or-sendmail-milter-1415.html