Tunelowanie POP3 i
SMTP Data: 21-07-2003 o
godz. 22:26:55 Temat: Konfiguracje SMTP, POP3,
IMAP
Prawie każdy z
nas posiada prywatną skrzynkę e-mail, każdy kto taką skrzynkę
posiada na pewnio chce aby informację które się na niej
znajdują były jego i tylko jego. Ale czy tak jest na prawdę ?.
Logując się na swoje konto poczty elektronicznej wprowadzamy
nazwę użytkownika i hasło i większości przypadków wysyłamy te
dane do serwera w celu weryfiakcji w postacji jawnej. Jeżeli
ktoś bardzo będzie chciał to taki jawny login i hasło
przechwyci, użyje i podszyje się pod naszą osobę wysyłając
pocztę w naszym imieniu. Aby temu zapobiec w kilku
zdaniach opiszę jak skonfigurować popularne protokoły pop3
oraz smtp aby były bezpieczne.
W artykule Konfigurowanie
Apache razem z SSL opisałem jak wygenerować certyfikaty
dla serwera www, tutaj opierając się na tym artykule
wygenerujemy certyfikaty dla POP3 i SMTP. No to
zaczynamy: Musimy zainstalować program STUNNEL który
jest dostępny w portach. Wchodzimy cd
/usr/ports/security/stunnel i wydajemy komende make install
clean. Po chwili mamy już odpowiednie pliki w systemie,
teraz musimy zająć się plikiem konfiguracyjnym który bez
problemu znajdziemy w /usr/local/etc/stunnel/stunnel.conf
Edytujemy go i zostawiamy tylko potrzebne linijki. Po
edycji powinien wyglądać następująco: cert =
/usr/local/etc/stunnel/mail.pem setuid = stunnel setgid
= stunnel output =
/var/log/stunnel.log
[pop3s] accept = 995 connect
= 110 Teraz artykuł będzie składał się z dwóch części :
pierwsza dla tych którzy nie generowałi jeszcze certyfikatu
dla serwera www, natomiast druga jest przeznaczona dla tych
którzy już powyższe kroki przeszli przy okazji konfigurowania
Apache
z SSL 1. Najpierw staniemy się organizacją
certyfikującą (CA). Potrzebujemy, klucza prywatnego CA oraz
certyfikatu. Nasze certyfikaty i klucze będziemy generowali do
katalogu /etc/ssl. Przystępujemy do generowania klucza CA.
cd /etc/ssl openssl genrsa -des3 -out ca.key
1024 W ten sposób utworzyliśmy prywatny klucz, ca.key,
instytucji certyfikującej. Teraz musimy sobie wygenerować
właściwy certyfikat CA. Będzimy proszeni o wpisanie hasła do
klucza prywatnego CA i wypełnienie poszczególnych pól.
openssl req -new -x509 -key ca.key -out ca.crt -days
3650 Otrzymaliśmy w ten sposób plik ca.crt, który jest
właściwym certyfikatem CA do podpisywania innych.
2.
Teraz stworzymy dla naszego POP3 i SMTP, klucz prywatny oraz
wygenerujmy prośbę o certyfikat: openssl genrsa -des3
-out mail.key 1024 Teraz gdy mamy już klucz prywatny,
pozostało wygenerować plik .csr, który później sobie
podpiszemy: openssl req -new -key mail.key -out
mail.csr Teraz musimy uważnie wypełnić poszczególne
linijki:
Country Name (2 letter code) [AU]: Należy
podać dwuliterowy kod kraju (PL)
State or Province Name
(full name) [Some-State]: Należy wpisać kropkę (.) lub podać
nazwę województwa
Locality Name (eg, city) []: Należy
podać nazwę miasta, w którym znajduje się siedziba
instytucji
Organization Name (eg, company) [Internet
Widgits Pty Ltd]: Należy podać nazwę
instytucji
Organizational Unit Name (eg, section) []:
Należy wpisać kropkę (.) lub podać nazwę komórki
organizacyjnej
Common Name (eg, YOUR name) []:
Należy podać nazwę domenową serwera np. mail.domena.pl (bardzo
ważne jeżeli nie chcemy żeby później wyietlały nam się błędy)
Email Address []: Należy wpisać kropkę
A
challenge password []: Należy wpisać kropkę
An optional
company name []: Należy wpisać kropkę
Podpisanie pliku
.csr musimy zrobić przy pomocy skryptu znajdującego się w
kodzie źródłowym mod_ssl'a
(/usr/ports/distfiles/mod_ssl-2.8.14-1.3.27/pkg.contrib/sign.sh) Podpisujemy:
./sign.sh
mail.csr Oraz: cd /etc/ssl/ cp mail.key
mail.key.old openssl rsa -in mail.key.old -out
mail.key chmod 400 mail.key
Następnym krokiem
będzie połączenie plików mail.key oraz mail.crt: cat
mail.key mail.crt >> mail.pem
Teraz jeszcze
usuwamy niepotrzebne dane, zostawiamy tylko to co znajduje się
pomiędzy wierszami:
-----BEGIN RSA PRIVATE
KEY----- -----END RSA PRIVATE
KEY-----
oraz
-----BEGIN
CERTIFICATE----- -----END CERTIFICATE-----
i
ustawiamy prawa pliku mail.pem: chmod 400 mail.pem Teraz
uruchamiamy stunnel /usr/local/etc/rc.d/stunnel.sh start
openssl s_client -quiet -connect localhost:995 Jeżeli
jest w ostatniej linijce: +OK POP3 domena.pl v2001.80
server ready to już jest dobrze, można jeszcze zajrzeć do
pliku /var/log/stunnel.log czy wszystko jest OK.
Na
koniec tunelowanie SMTP (Sendmail)
Przechodzimy do
pliku konfiguracyjnego sendmaila, (u mnie nazwa.hosta.pl.mc )
i dopisujemy następujące
linijki: define(`confCACERT_PATH',`/usr/local/etc/stunnel') define(`confCACERT',`/usr/local/etc/stunnel/ca.crt') define(`confSERVER_CERT',`/usr/local/etc/stunnel/mail.pem') define(`confSERVER_KEY',`/usr/local/etc/stunnel/mail.key')
wydajemy
w katalogu /etc/mail komendy make make install i
restartujemy sendmaila. Teraz np. w Outlooku wchodzimy:
Narzędzia>>Konta>>Właściwości>>Zaawansowane
i zaznaczamy przy POP3 i SMTP "Ten serwer wymaga
bezpiecznego połączenia SSL"
To już chyba wszystko
proszę o ewentualne
uwagi.
Pozdrawiam Jacek
| |