Exchange 2007 - bezpieczna komunikacja smtp, cz. I     Microsoft Exchange Server      Exchange 2007 - bezpieczna komunikacja smtp, cz. iII

Exchange 2007 - bezpieczna komunikacja smtp, cz. II Udostępnij na: Facebook

Autor: Jacek Kochan

Opublikowano: 10 maja 2008

Scenariusz „single Exchange 2007”

Po instalacji serwera powinniśmy wykonać kilka czynności. Pierwszą jest założenie Send connectora. W konsoli Exchange zrobimy to wchodząc na Organization Configuration – Hub Transport i wybierająca akcję New Send Connector. Wpisujemy nazwę np. „Default”, typ można pozostawić Custom lub wybrać Internet.

Rys. 1. New Send Connector.

Rys. 1 New Send Connector.

Następnie w Address Space podajemy domeny, które ma ten konektor obsługiwać. My chcemy, by obsługiwał całą komunikację, więc klikamy na Add i w pole Address wpisujemy gwiazdkę.

Rys. 2. New Send Connector - Address Spac.

Rys. 2. New Send Connector - Address Space.

Następne okno „Network settings” pozostawiamy tak jak jest, czyli konektor będzie używał rekordów DNS typu MX do wyszukiwania adresów serwerów poczty, do których ma być ona dostarczona.

Rys. 3. New Send Connector - Network settings

Rys. 3. New Send Connector - Network settings.

Następnie musimy skojarzyć ten konektor z serwerem Hub Transport. Ponieważ mamy tylko jeden serwer w organizacji, to pozostawiamy ten wybór.

Rys. 4. New Send Connector - Hub Transport

Rys. 4. New Send Connector - Hub Transport.

W następnym oknie po kliknięciu New zobaczymy, że wykona nam się takie polecenie Shella:

new-SendConnector -Name 'Default' -Usage 'Custom' -AddressSpaces 'SMTP:*; 

      1' -IsScopedConnector $false -DNSRoutingEnabled $true -UseExternalDNSServersEnabled $false 

      -SourceTransportServers 'EXCH2007-1'

Ważne jest, aby send connector miał ustawiony parametr FQDN, którym będzie przedstawiał się innym serwerom pocztowym. Powinniśmy także ustawić logowanie protokołu na Verbose, abyśmy mieli wgląd do logów konektora. Te ustawienia są dostępne we właściwościach konektora na zakładce General.

Rys. 5. New Send Connector z parametrem FQDN

Rys. 5. New Send Connector z parametrem FQDN.

Polecenie Exchange Management Shell:

Set-SendConnector "Default" -fqdn "exch2007.pl”

ustawia parametr FQDN konektora

Set-SendConnector "Default" -protocollogginglevel "verbose"

Ustawia logowanie zdarzeń do folderu „C:\Program Files\Microsoft\Exchange Server\TransportRoles\Logs\ProtocolLog\SmtpSend”.

Drugą rzeczą, jaką zrobimy, jest włączenie mechanizmów antyspamowych, które standardowo obsługuje serwer Edge. Ponieważ nasz serwer ma za zadanie bezpośrednią obsługę poczty z zewnątrz, powinniśmy takie mechanizmy na nim włączyć. W tym celu wystarczy uruchomić skrypt z lokalizacji „C:\Program Files\Microsoft\Exchange Server\Scripts” (jeżeli wybraliśmy domyślny katalog instalacyjny Exchange)o nazwie „install-AntispamAgents.ps1”.

W Exchange Management Shell wpisujemy:

cd „C:\Program Files\Microsoft\Exchange Server\Scripts”
a następnie
install-AntispamAgents.ps1.

Rys. 6. Exchange Management Shell

Rys. 6. Exchange Management Shell.

Na koniec restartujemy usługę Transport poleceniami

  • Stop-Service MSExchangeTransport
  • Start-Service MSExchangeTransport

gdy włączymy na nowo konsolę Exchange, pojawi nam się nowa zakładka w Organization Configuration – Hub Transport o nazwie Anti-Spam.

Rys. 7. Organization Configuration – Hub Transport - Anti-Spam

Rys. 7. Organization Configuration – Hub Transport - Anti-Spam.

Trzecią rzeczą, którą trzeba zrobić, jest umożliwienie komunikacji serwerów z Internetu z naszym serwerem. Domyślnie w instalacji z pojedynczym serwerem takiego dostępu nie ma, gdyż jak wiemy, odbierające konektory nie mają włączonego dostępu anonimowego. Mamy do wyboru dwie możliwości - albo zmodyfikujemy konektor Default, albo utworzymy do tego celu nowy konektor. Najłatwiej oczywiście jest skorzystać z pierwszej metody i zmodyfikować zakładkę Permission groups.

Rys. 8. Permission groups

Rys. 8. Permission groups.

Często jako serwer pocztowy brzegowy wykorzystujemy inne rozwiązania, niż Exchange. Wówczas lepiej jest utworzyć dodatkowy Receive connector, który będzie obierał od niego pocztę z włączonym uwierzytelnianiem anonimowym i ograniczeniem dostępu adresów IP tylko z tego serwera brzegowego.
W tym celu tworzymy nowy konektor z szablonu Custom, przypisujemy mu port 25 na oddzielnym adresie IP i ustawiamy, z których adresów IP jest możliwe połączenie. W tym wypadku zakresem byłby jeden adres IP, przypisany do brzegowego serwera SMTP. Po utworzeniu konektora w jego właściwościach na zakładce Network powinniśmy uzyskać taką konfigurację:

Rys.9. Konfiguracja zakładki Network

Rys.9. Konfiguracja zakładki Network.

W tym przypadku Receive Connector działa na adresie 192.168.151.217 i przyjmuje pocztę jedynie z adresu 192.168.10.10. Jeżeli byśmy spróbowali połączyć się telnetem z innego adresu, to konektor nas rozłączy z komunikatem:

421 4.3.2 Service not available, closing transmission channel

Niestety w Exchange 2007 nie ma możliwości zdefiniowania konektorów, na których mają działać filtry antyspamowe, a na których mają być wyłączone. Tak więc filtry działają albo na wszystkich, albo wcale. Dlatego też nie mamy możliwości, aby ograniczyć działanie internetowego konektora wyłącznie do obsługi obcych domen, tak jak to robiliśmy na Exchange 2003 wykorzystując Sender filtering na danym serwerze SMTP. Możliwe będzie następujące działanie:

Rys. 10. Exchange 2007 - filtry antyspamowe

Rys. 10. Exchange 2007 - filtry antyspamowe.

Konektor z włączonym dostępem anonimowym zezwala na przesyłanie maili w ramach organizacji, co na pewno nie jest bezpiecznym rozwiązaniem.

Czy można coś z tym fantem zrobić? Można! Exchange 2007 daje nam fantastyczne możliwości kontroli ruchu pocztowego poprzez reguły transportowe. Właśnie taką regułą się posłużymy.

W konsoli Exchange wchodzimy na Organization Configuration – Hub Transport i wybieramy akcję New Transport Rule. W pierwszym okienku podajemy nazwę, np.:

Rys. 11. New Transport Rule

Rys. 11. New Transport Rule.

W następnym oknie wybieramy warunek selekcji When From address contains specific words. Klikamy na podkreśleniu specific words, aby wpisać wszystkie domeny, które obsługuje nasz serwer. Najlepiej, by była to ta sama lista domen, która znajduje się na liście Accepted Domains serwera Exchange. Na tym przykładzie wpisałem domeny exch.local i firma.pl.

Rys. 12. Przykładowy wpis domeny

Rys. 12. Przykładowy wpis domeny

Klikamy Next i w akcji wybieramy Send bounce message to sender with enhanced status code. Tekst wiadomości jak i status można w tym miejscu zmienić.

Rys. 13. Send bounce message to sender with enhanced status code

Rys. 13. Send bounce message to sender with enhanced status code.

Następnie określamy wyjątki dla tej reguły. Jest to tutaj bardzo ważne, gdyż jeśli byśmy tego nie zrobili, to wszystkie maile wysyłane od użytkowników naszego serwera byłyby odrzucane. Wybieramy wyjątek Except when the message is from users inside or outside the organization. W edycji reguły pozostawiamy wyraz inside. Dzięki temu uwierzytelnione maile z wewnątrz będą akceptowane przez serwer.

Rys. 14. Except when the message is from users inside or outside the organization

Rys. 14. Except when the message is from users inside or outside the organization

Klikamy Next, następnie potwierdzamy kliknięciem New. Warto poznać polecenie, które się wykona:

new-TransportRule -Name 'Reject unauthenticated from inside' -Comments '' -Conditions 

      'Microsoft.Exchange.MessagingPolicies.Rules.Tasks.FromAddressContainsPredicate' -Actions 

      'Microsoft.Exchange.MessagingPolicies.Rules.Tasks.RejectMessageAction' -Exceptions 

      'Microsoft.Exchange.MessagingPolicies.Rules.Tasks.FromScopePredicate' -Enabled $true -Priority '0'

Reguła gotowa, jesteśmy bezpieczni. W konsekwencji maile w obrębie własnej domeny można wysyłać jedynie po uwierzytelnieniu. Możemy ją oczywiście przetestować. Na przykład możemy spróbować poprzez Telnet wysłać nieuwierzytelnionego maila do samego siebie.

Rys. 15. New Send Connector z parametrem FQDN

Rys. 15. Exchange 2007 - Reguły

Mail zostanie zaakceptowany, ale reguła transportowa każe serwerowi odrzucić tego maila i nie zostanie on dostarczony do adresata. Oczywiście w tym przypadku dostaniemy zwrotkę NDR zamiast maila.

Rys.16. Zwrotka NDR

Rys.16. Zwrotka NDR.

Podsumowując, Exchange 2007 w trybie single można skonfigurować do bezpiecznej obsługi poczty wewnętrznej zewnętrznej wraz z wykorzystaniem funkcji antyspamowych.


Jacek Kochan Jacek Kochan
Absolwent Wydziału Matematyki i Informatyki Uniwersytetu Adama Mickiewicza w Poznaniu. Obecnie pracuje w poznańskiej firmie softwarowo-consultingowej DomData. Autor artykułów do poradników dla administratorów wyd. "Wiedza i Praktyka". Wdrożył też m.in. pierwsze środowisko hostingowe, oparte na Exchange 2007, w Polsce.
Specjalizuje się w systemach Windows Server, Exchange oraz ISA. Interesuje się też fizyką i kryptografią kwantową. Posiada certyfikaty MCSE+S, MCSE+M.
 Do początku strony Do początku strony

Exchange 2007 - bezpieczna komunikacja smtp, cz. I     Microsoft Exchange Server      Exchange 2007 - bezpieczna komunikacja smtp, cz. iII