transparent a virus... Dodał: grzywka18 Dnia: 2008-05-13 11:19:58 hmm Dodał: dzibi Dnia: 2007-12-12 10:01:14 Bez tytułu Dodał: grzywka18 Dnia: 2007-12-11 17:46:06 Bez tytułu Dodał: termid Dnia: 2007-05-09 18:01:11 Bez tytułu Dodał: sarelo33 Dnia: 2006-12-30 23:50:14 Jest ok ale.. Dodał: theviant Dnia: 2006-11-16 08:10:05
Google
Newsletter
Zapisz się na nasz newsletter, jeżeli chcesz być na bieżąco informowany o aktualnościach..
Postfix - bezpieczny i wydajny serwer MTA - 1. Instalacja
sobota, 24 kwietnia 2004 -
Napisał: Tomasz Stała (31409 odsłon)
TLS polega na tym, że wszystkie wiadomości przesyłane i
odbierane z danego programu pocztowego będą szyfrowane co uniemożliwi dostęp do
nich niepowołanym osobom. Chyba każdy z nas nie chciałby aby ktoś podszył się
pod naszą osobę i wysłał pocztę do kogoś w naszym imieniu. Szyfrowanie to będzie
odbywać się za pomocą SSL. Secure Socket Layer jest to protokół bezpiecznej
komunikacji między klientem a serwerem, stworzony przez firmę Netscape. SSL
zapewnia trzy rzeczy:prywatność - połączenie jest szyfrowaneautoryzację - klient
i serwer określa swoją tożsamośćintegralność przesyłanych danych - przez sumy
kontrolneTo tak na wstępie chciałem przypomnieć na jakiej zasadzie działa
szyfrowanie połączenia SMTP. Przejdźmy do konfiguracji. Czynnością jaką
powinniśmy wykonać najpierw jest wygenerowanie odpowiednich certyfikatów.
Utworzymy je w katalogu `/etc/ssl/mail` i nadamy mu odpowiednie uprawnienia:
# mkdir /etc/ssl/mail
# chmod 700 /etc/ssl/mail
# cd /etc/ssl/mail
Zaczynamy od wygenerowania klucza prywatnego RSA, o długości
1024 bitów i nazwie ca.key. Powinniśmy ujrzeć komunikat taki jak poniżej. Jeśli
masz już wygenerowany certyfikat CA, możesz ten krok pominąć i przejść dalej:
# openssl genrsa -out cakey.pem 1024
Generating RSA private key, 1024 bit long modulus
...............................++++++
.................................++++++
e is 65537 (0x10001)
Jeśli mamy już klucz prywatny możemy z niego wygenerować klucz
publiczny odpowiadając na poniższe zapytania, podając w nich podstawowe
informacje o serwerze oraz jego właścicielu, będzie on stanowił CSR (Certificate
Signing Request), czyli nie podpisany certyfikat X.509:
# openssl req -new -key cakey.pem -out
cacsr.pem
You are about to be asked to enter information that will be
incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:Twoje
województwo
Locality Name (eg, city) []:Twoje miasto
Organization Name (eg, company) [Internet Widgits Pty
Ltd]:Nazwa instytucji (np.
TEST Home Server)
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:Twoje imię i nazwisko lub
nazwa firmy
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
Po wykonaniu powyższej czynności, przystępujemy do zgłoszenia
naszego CSR, do podpisania, korzystamy z podpisywanego CSR oraz podpisującego
klucza prywatnego i wynik zapisujemy do pliku cacert.pem, oczywiście podany
został tu przykładowy komunikat zwrotny:
# openssl x509 -req -in cacsr.pem -signkey
cakey.pem -out cacert.pem
Signature ok
subject=/C=PL/ST=podkarpackie/L=Tarnobrzeg/O=PLANET - Home
LAN Server/CN=PLANET -
Home LAN Server/emailAddress=
Getting Private key
W ten sposób otrzymaliśmy właściwy certyfikat CA instytucji,
którym będziemy podpisywać inne certyfikaty. Pozostało nam już tylko utworzyć
klucz prywatny RSA i wygenerować odpowiedni certyfikat dla naszego SMTP oraz
zgłosić go do podpisania.. Wydajemy więc polecenie, generujące klucz, o długości
1024 bitów i nazwie smtpkey.pem:
# openssl genrsa -out smtpkey.pem
1024
Generating RSA private key, 1024 bit long modulus
.............++++++
......++++++
e is 65537 (0x10001)
Teraz generujemy odpowiedni certyfikat, dla smtp. Uwaga!
Zamiast nazwy firmy lub imienia i nazwiska w polu Common Name podajemy nazwę
naszego serwera (nazwę domeny). Pole to będzie później wykorzystywane przez
klientów do porównania z nazwą serwera, z którym się połączyli.:
# openssl req -new -key smtpkey.pem
-out smtpcsr.pem
You are about to be asked to enter information that will be
incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:Twoje
województwo
Locality Name (eg, city) []:Twoje miasto
Organization Name (eg, company) [Internet Widgits Pty
Ltd]:Nazwa instytucji (np. TEST Home Server)
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:domena.pl
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
Ostatnia czynność to złożenie podpisu, używamy do tego
utworzony już wcześniej klucz prywatny CA, klucz publiczny CA:
# openssl x509 -CA cacert.pem -CAkey
cakey.pem -req -CAcreateserial -in smtpcsr.pem -out smtpcert.pem
Signature ok
subject=/C=PL/ST=podkarpackie/L=Tarnobrzeg/O=PLANET -
Home LAN
Server/CN=domena.pl/emailAddress=
Getting CA Private Key
Możliwe jest też wygenerowanie certyfikatu "na skróty", otóż
tworzymy nowy certyfikat X.509, który będzie ważny przez 3650 dni, utworzony
zostanie plik smtpd.pem, który będzie zarówno kluczem prywatnym, jak i
certyfikatem serwera. Musisz jednak pamiętać, że po wygenerowaniu takiego
certyfikatu, w pliku konfiguracyjnym Postfix'a (main.cf) do zmiennych
smtpd_tls_key_file , smtpd_tls_cert_file, smtpd_tls_CAfile dopisujesz ścieżkę
właśnie do tego pliku smtpd.pem.:
# openssl req -new -x509 -nodes -out
smtpd.pem -keyout smtpd.pem -days 3650
Generating a 1024 bit RSA private key
.................++++++
............................++++++
writing new private key to 'smtpd.pem'
-----
You are about to be asked to enter information that will be
incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:Twoje
województwo
Locality Name (eg, city) []:Twoje miasto
Organization Name (eg, company) [Internet Widgits Pty
Ltd]:Nazwa instytucji (np. TEST Home Server)
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:domena.pl
Email Address []:
Osobiście preferuję to drugie rozwiązanie, ze względu na
certyfikat instytucji CA, którym być może w późniejszym czasie podpisywał inne
certyfikaty. Wybór pozostawiam Tobie.
Skoro mamy już wygenerowane certyfikaty, wypadało by zająć się plikiem `main.cf`
w celu dodania do niego niezbędnych opcji, aby nasz Postfix mógł obsługiwać
szyfrowane połączenie SMTP. Edytujmy więc ten plik i wstawmy do niego to co
zostało napisane poniżej:
# vi /etc/postfix/main.cf
--- main.cf ---
# TLS
# Parametr uaktywniający używanie TLS dla SMTP i
SMTPD:
smtp_use_tls = yes
smtpd_use_tls = yes
# Autoryzacja odbywa się jedynie poprzez
szyfrowanie połączenia (poprzez tunele TLS):
smtpd_tls_auth_only = yes
smtp_tls_note_starttls_offer = yes
# Ścieżka do pliku zawierającego klucz prywatny RSA:
smtpd_tls_key_file = /etc/ssl/mail/smtpkey.pem
# Ścieżka do pliku zawierający wygenerowany
certyfikat dla SMTP:
smtpd_tls_cert_file = /etc/ssl/mail/smtpcert.pem
# Ścieżka do pliku zawierającego wygenerowany certyfikat CA:
smtpd_tls_CAfile = /etc/ssl/mail/cacert.pem
# Wybieramy poziom logowania (0-4)
smtpd_tls_loglevel = 3
# Sprawdzenie, czy informacje dotyczące protokołu oraz szyfru zawarte są w
nagłówku wiadomości:
smtpd_tls_received_header = yes
# Szacowany czas trwania sesji:
smtpd_tls_session_cache_timeout =
3600s
# ???
tls_random_source = dev:/dev/urandom
--- end of main.cf ---
Restartujemy Postfix'a i sprawdzamy, czy wszystko działa.
# /usr/local/etc/rc.d/postfix.sh
reload
Aby móc korzystać z możliwości szyfrowania wysyłanych
wiadomości za pomocą SSL należy dokonać odpowiednich ustawień w programie do
odbioru poczty np. Outlook Express. Oto przykład ustawień w przypadku Outlook
Express. Wchodzimy do zakładki Narzędzia / Konta / Poczta / Właściwości
(właściwe konto) / Zaawansowane i ustawiamy w niej następujące opcje: Poczta
wychodząca SMTP - port 25 [x] ten serwer wymaga bezpiecznego połączenia SSL
Jeśli możesz wysyłać pocztę to napewno wszystko działa i udało Ci się poprawnie
skonfigurować Postfix'a z autoryzacją i szyfrowanym połączeniem SMTP. Możesz
również sprawdzić, czy wszystko działa dobrze logując się przez telnet na port
25:
$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost
Escape character is '^]'.
220 domena.pl ESMTP Postfix
EHLO domena.pl
250-domena.pl
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-XVERP
250 8BITMIME
Zauważ, że poniższe dwie linijki, które były aktywne w czasie
gdy konfigurowaliśmy SMTP AUTH, mowa tu o:
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
zastąpiła jedna:
250-STARTTLS
Jeśli ukazał Ci się taki komunikat, wszystko działa OK. Wpisz
`QUIT`, aby zakończyć połączenie.
Możesz na stałe ustawić
wartości zmiennych
środowiskowych, dodając
je do pliku startowego
twojego shell'a. Nazwy
tych plików różnią się w
zależności od shell'a
jakiego używasz - tcsh i
csh używają .login, a
bash, sh ,ksh i zsh
.profile. Używając bash,
sh, ksh lub zsh, nie
zapomnij o
wyeksportowaniu zmiennej.