Dlaczego nikt o zdrowych zmysłach nie wystawia serwerów opartych na produktach Microsoftu na świat? Bo są one jak burdele w krajach trzeciego świata – otwarte dla każdego, dużo w nich robactwa i niepołatanych dziur w dachu. Tak wiec wyobraźmy sobie, że jesteśmy PIMP’ami w taki przybytku, to co robimy? Jak w starych westernach stawiamy ładną fasadę dla naszego burdeliku.

Ten artykuł będzie akurat o konfiguracji Proxy dla OWA (Outlook Web App). Będziemy to robić za pomocą serwera z jakimś Linusem. Może być Ubuntu, Red hat, cokolwiek, aby dało się na tym Apache2 zainstalować. Tak więc podczas wstępnej konfiguracji uruchamiamy mod_proxy i tworzymy sobie plik wirtualnego hosta naszego serwera zewnętrznego. Przyjmijmy że nasz serwer zewnętrzny nazywa się „mail.cmentarnapolka.pl”, a wewnętrzny Exchange ma IP – 10.1.1.100. Do pliku który stworzyliśmy wklejamy:

# Poniżej ładujemy moduły SSL’a i ustawiamy go.
LoadModule ssl_module modules/mod_ssl.so
Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin
SSLMutex default

SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin

<VirtualHost mail.cmentarnapolka.pl:80>
ServerName mail.cmentarnapolka.pl

ProxyPreserveHost On
RewriteEngine on

# Przekierowanie ruchu nie SSL do SSL

RewriteRule ^/(.*)$         https://mail.cmentarnapolka.pl /$1 [L,R]
</VirtualHost>

<VirtualHost mail.cmentarnapolka.pl:443>

ServerName mail.cmentarnapolka.pl:443

ErrorLog logs/mail.cmentarnapolka.pl -ssl_error_log
TransferLog logs/mail.cmentarnapolka.pl -ssl_access_log
LogLevel warn

# Odpalamy nasze proxy

RequestHeader set Front-End-Https On
ProxyRequests On
ProxyPreserveHost On
SSLProxyEngine On
ProxyVia full
CacheDisable *

ProxyPass /owa https://10.1.1.100/owa/
ProxyPassReverse /owa https://10.1.1.100/owa/
ProxyPass /ecp https:// 10.1.1.100/ecp/
ProxyPassReverse /ecp https:// 10.1.1.100/ecp/

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/mail.cmentarnapolka.pl.crt
SSLCertificateKeyFile /etc/pki/tls/certs/mail.cmentarnapolka.pl.key.insecure

# Te regułki poniżej przydają się gdy np. wpiszemy błędne hasło. Jak ich niema
# to Exchange coś zwraca a nie dochodzi to do naszego serwera. Te czary poniżej
# sprawiają że wszystko działa. Jak ich nie wpiszecie będziecie mieli błąd:
# The custom error module does not recognize this error.

RewriteEngine on
RewriteRule ^/$             https://mail.cmentarnapolka.pl /owa/ [R]
RewriteRule ^/(.*)          https://10.1.1.100/$1 [P]

<Files ~ „\.(cgi|shtml|phtml|php3?)$”>
SSLOptions +StdEnvVars
</Files>
<Directory „/var/www/cgi-bin”>
SSLOptions +StdEnvVars
</Directory>

# Tutaj mamy kolejne dosyć ważne zaklęcia które sprawiają, że nasze Proxy
# przekazuje wszystko tak jak chcemy, one są również ważne. Jak ich nie wpiszecie
# będziecie mieli błąd 502 (Bad Gateway)

SetEnvIf User-Agent „.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1

CustomLog logs/ssl_request_log \
„%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

Oczywiście jest to config używający SSL. Zresztą tylko świry nie korzystają z SSL do poczty. Jednak jakbyś się drogi czytelniku poczuł urażony, bo uważasz że SSL jest dla paranoików to mam dla Ciebie cudowną informację – można to dostosować do braku SSL, ale to już zrobisz sobie sam 🙂

W komentarzach są krótkie opisy co do czego. Ale generalnie chodzi i jak przeładujecie serwer powinno wszystko śmigać, a wy powinniście czuć się jak prawdziwi administratorzy.

Dlaczego nikt o zdrowych zmysłach nie wystawia serwerów opartych na produktach Microsoftu na świat? Bo są one jak burdele w krajach trzeciego świata – otwarte dla każdego, dużo w nich robactwa i niepołatanych dziur w dachu. Tak wiec wyobraźmy sobie, że jesteśmy PIMP’ami w taki przybytku, to co robimy? Jak w starych westernach stawiamy ładną fasadę dla naszego burdeliku.
Ten artykuł będzie akurat o konfiguracji Proxy dla OWA (Outlook Web App). Będziemy to robić za pomocą serwera z jakimś Linusem. Może być Ubuntu, Red hat, cokolwiek, aby dało się na tym Apache2 zainstalować. Tak więc podczas wstępnej konfiguracji uruchamiamy mod_proxy i tworzymy sobie plik wirtualnego hosta naszego serwera zewnętrznego. Przyjmijmy że nasz serwer zewnętrzny nazywa się „mail.cmentarnapolka.pl”, a wewnętrzny Exchange ma IP – 10.1.1.100. Do pliku który stworzyliśmy wklejamy:
# Poniżej ładujemy moduły SSL’a i ustawiamy go.
LoadModule ssl_module modules/mod_ssl.so
Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin
SSLMutex default

SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin

<VirtualHost mail.cmentarnapolka.pl:80>
ServerName mail.cmentarnapolka.pl

ProxyPreserveHost On
RewriteEngine on

# Przekierowanie ruchu nie SSL do SSL

RewriteRule ^/(.*)$         https://mail.cmentarnapolka.pl /$1 [L,R]
</VirtualHost>

<VirtualHost mail.cmentarnapolka.pl:443>

ServerName mail.cmentarnapolka.pl:443

ErrorLog logs/mail.cmentarnapolka.pl -ssl_error_log
TransferLog logs/mail.cmentarnapolka.pl -ssl_access_log
LogLevel warn

# Odpalamy nasze proxy

RequestHeader set Front-End-Https On
ProxyRequests On
ProxyPreserveHost On
SSLProxyEngine On
ProxyVia full
CacheDisable *

ProxyPass /owa https://10.1.1.100/owa/
ProxyPassReverse /owa https://10.1.1.100/owa/
ProxyPass /ecp https:// 10.1.1.100/ecp/
ProxyPassReverse /ecp https:// 10.1.1.100/ecp/

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/mail.cmentarnapolka.pl.crt
SSLCertificateKeyFile /etc/pki/tls/certs/mail.cmentarnapolka.pl.key.insecure

# Te regułki poniżej przydają się gdy np. wpiszemy błędne hasło. Jak ich niema
# to Exchange coś zwraca a nie dochodzi to do naszego serwera. Te czary poniżej
# sprawiają że wszystko działa. Jak ich nie wpiszecie będziecie mieli błąd:
# The custom error module does not recognize this error.

RewriteEngine on
RewriteRule ^/$             https://mail.cmentarnapolka.pl /owa/ [R]
RewriteRule ^/(.*)          https://10.1.1.100/$1 [P]

<Files ~ „\.(cgi|shtml|phtml|php3?)$”>
SSLOptions +StdEnvVars
</Files>
<Directory „/var/www/cgi-bin”>
SSLOptions +StdEnvVars
</Directory>

# Tutaj mamy kolejne dosyć ważne zaklęcia które sprawiają, że nasze Proxy
# przekazuje wszystko tak jak chcemy, one są również ważne. Jak ich nie wpiszecie
# będziecie mieli błąd 502 (Bad Gateway)

SetEnvIf User-Agent „.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1

CustomLog logs/ssl_request_log \
„%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

Oczywiście jest to config używający SSL. Zresztą tylko świry nie korzystają z SSL do poczty. Jednak jakbyś się drogi czytelniku poczuł urażony, bo uważasz że SSL jest dla paranoików to mam dla Ciebie cudowną informację – można to dostosować do braku SSL, ale to już zrobisz sobie sam 🙂
W komentarzach są krótkie opisy co do czego. Ale generalnie chodzi i jak przeładujecie serwer powinno wszystko śmigać, a wy powinniście czuć się jak prawdziwi administratorzy.

About the author

Bloger i niezależny konsultant z wieloletnim doświadczeniem w branży IT. Specjalizujący się w wirtualizacji i cloud computingu. Posiada tytuły MCP, MCTS, VCP oraz VMware vExpert.
2 Responses
  1. witam

    próbuję i próbuje z tym reverse w ramach laboratorium na studia. Mam postawionego ex oraz owe oczywiście ad. Próbuje zrobić reverse proxy ale nie wychodzi mi. Moze mi Pan krok po kroku rozpisac to dla systemu suse ?

    Z góry dziękuje i pozdrawiam

Leave a Reply