Postfix, Exchange - wysyłka w imieniu innego użytkownika

Sun 19 December 2010 by admin

Jednym ze sposobów zabezpieczenia serwera pocztowego jest uniemożliwienie użytkownikom wysyłki poczty pod zmienionym adresem nadawcy. Istnieją jednak od tej zasady odstępstwa np. sytuacja, w której sekretarka ma mieć możliwość odpowiedzi na pocztę w imieniu swojego przełożonego. Zatem jak osiągnąć zakładana funkcjonalność na przykładzie Postfix'a  oraz MS Exchange 2010.

W przypadku serwera pocztowego Postfix w sekcji smtpd_sender_restrictions dopisujemy parametr reject_sender_login_mismatch. Następnie dodajemy jeszcze wpis:

smtpd_sender_login_maps = hash:/etc/postfix/sender_login_maps

gdzie w /etc/postfix/sender_login_maps mapujemy to co znajduje się w nagłówku mail from z loginem jaki posłużył użytkownikowi w nawiązaniu połączenia smtp-auth np:

witalis@foo.bar     witalis
witalis2@foo.bar     witalis

użytkownik witalis, może podać się za osobę uprawnioną do wysyłki poczty z adresów witalis@foo.bar witalis2@foo.bar.

Na sam koniec należy poleceniem:

postmap /etc/postfix/sender_login_maps

wygenerować bazę danych. Baza ta nie koniecznie musi mieć postać pliku tekstowego, możemy dołączyć do naszego systemu bazę SQL. Więcej informacji pod adresem [1].

W przypadku MS Exchange 2010 systemu mającego szersze zastosowanie niż tylko zwykły serwery pocztowy, postawione zadanie możemy zrealizować na dwa sposoby z poziomu konsoli serwera. Pierwszy ze sposobów to skorzystanie z opcji SendOnBehalf, otrzymujemy w zamian możliwość wysyłki jako ktoś inny, przy czym w temacie nadawanej wiadomości znajdzie się w następująca przykładowa wzmianka:

witalis <witalis@foo.bar>; on behalf of; wit <wit@foo.bar>

Do konfiguracji tego ustawienia możemy użyć zarówno Exchange Management Console jak i Exchange Management Shell. Ilustracja ustawienia tego parametru w tym drugim wymienionym narzędziu de facto powershell' u wygląda następująco:

Set-Mailbox wit -GrantSendOnBehalfTo witalis@foo.bar

dla mailbox'a wit użytkownik witalis@foo.bar jest uprawniony do wysyłki, sprawdzenie ustawień:

Get-Mailbox -identity wit | Select-Object GrantSendOnBehalfTo

Druga opcja dostępna w Exchange'u to Send As Permission, tym razem nie mamy już wzmianki o tym, że wysłana wiadomość jest w imieniu innej osoby. W celu ustawienia tej opcji korzystamy z polecenia:

Add-ADPermission wit -ExtendedRights Send-As -user witalis@foo.bar

podobnie jak w poprzedniej wersji użytkownik witalis@foo.bar wysyła pocztę w imieniu właściciela mailbox'a wit. Zmiana ta jednak nie jest widoczna od razu, wymagana jest jej replikacja lub restart usługi Microsoft Exchange Information Store:

sc stop "MSExchangeIS"

sc start "MSExchangeIS"

sprawdzenie dostępności tego parametru, dla konkretnego konta to polecenie:

Get-ADPermission -identity wit1 |  Select-Object identity,user,extendedrights |   
? {$_.extendedrights -like "Send-As" }

Dodatkowo opcję delegowania send-as dla danego mailbox'a możemy wykonać z poziomu samego MS Outlook'a.

[1] http://www.postfix.org/postconf.5.html#smtpd_sender_login_maps


Comments