ot Peio Popov(4-09-2005)

reiting (22)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Pokrai novata mashina na Linux-BG, Slavi (nashiiat bezstrashen lider) predlozhi da opishem kato statii po-interesnite neshta, koito sa implementirali vurhu neia. Nadiavam se tova da dovede do poreditsa ot polezni statii i zatova eto opit za kratko opisanie kak se aktivirat i izpolzvat TLS vuzmozhnostite na Postfix.

Za TLS podruzhkata v Postfix
Do nastoiashtata 2.2.2 versiia TLS podruzhkata v Postfix se osushtestviavashe chrez pach, koito se dobaviashe v protsesa na kompilatsiia ili ot suzdatelite na paketa v polzvanata distributsiia. Na konkretnata mashina imame Debian-stable, koito idva s Postfix 2.1.5 i ima otdelen paket postfix-tls, koito osiguriava TLS podruzhkata. V RHEL i Fedora Core 2 i 3 Postfix idva kompiliran s podruzhka na TLS, kato za nastroikata mu ima optsiia v src.rpm faila. S Fedora Core 4 se distributira versiia 2.2.2, kudeto TLS podruzhkata e inkorporirana v koda na survura.

Suzdavane na CA
Suzdavaneto, nastroivaneto i upravlenieto na Certification Authority e tema, na koiato sa pisani knigi i e nevuzmozhno da se dadat izcherpatelni poiasneniia. Za Linux-BG reshihme da polzvame sredstvata, koito idvat s distributsiiata na openssl, tui kato te osiguriavat minimuma za funktsionirane na CA.
Predi da se suzdade CA e dobre da se nastroi openssl.cnf (namira se v /etc/ssl pri Debian i /etc/pki na Fedora) taka, che da otgovaria na nuzhdite ni. Ot nego mozhe da promenite imeto na direktoriiata na CA, vuprosite, koito se zadavat, i tehnite otgovori po podrazbirane, heshirashtiia algoritum, prednaznachenieto na sertifikata, url-te s politikite na CA i dr..

Za upravlenie na CA shte izpolzvame skripta CA.pl koito idva s distributsiiata na openssl. Imeto na skripta e razlichno pri razlichnite distributsii i az sum go sreshtal kato CA ili ca, no toi e standartna chast ot openssl (obiknoveno e v misc/ direktoriiata) i triabva da mozhe lesno da go otkriete. Az obiknoveno go kopiram v direktoriiata, koiato shte sudurzha failovete na CA i nanasiam malki promeni po nego, kasaeshti imeto na direktoriiata, sroka na validnost na sertifikatite, clr listi, izpolzvani algoritmi i dr.. Suzdavaneto na nova CA se izvurshva s komandata:

# ./CA.pl -newca

Sledvat vuprosi otnosno CA, koito sluzhat za populvane na sertifikatnite poleta i za ustanoviavane na parola za chastniia i klyuch.
V tozi sluchai samopodpisaniiat sertifikat na novata CA se namira vuv faila cacert.pem.

Suzdavane i podpisvane na sertifikat
S pomoshta na openssl suzdavame chasten RSA klyuch s golemina 1024 bita i populvame zaiavka za sertifikat:

# openssl req -new -nodes -keyout newkey.pem -out newreq.pem

V faila newkey.pem se sudurzha chastniia klyuch, a v newreq.pem — zaiavkata za sertifikat. Izpolzvaneto na konventsiiata za imenovane na failovete newkey.pem, newreq.pem i newcert.pem e zaradi izpolzvaneto na CA.pl i tezi imena mozhe lesno da budat promeneni s redaktsiia na skripta.

Preglezhdaneto i podpisvaneto na zaiavkata ot strana na CA se izvurshvat s komandata:

# ./CA.pl -signreq

Sled neinoto izpulnenie vuv faila newcert.pem se namira podpisaniiat ot nashata CA sertifikat.

Konfiguratsiia na Postfix
Obiknoveno failovete svurzani s TLS podruzhkata se slagat v otdelna direktoriia v /etc/postfix. Ako imame sertifikati na drugi CA mozhe da konkatenirame nashiia sertifikat kum tiah s izpulnenieto na:

# cat cacert.pem >> /etc/postfix/cabundle.pem

pri usovie, che gi suhraniavame v edin fail, ili da go dobavim v direktoriiata v koiato durzhim sertifikatite na vunshni CA: (certs/ v primera):

# cp cacert.pem /etc/postfix/certs/
# openssl c_rehash /etc/postfix/certs/

Za suzhalenie, v distributsiite na Postfix po podrazbirane niama takiva failove i gornoto niama da e nuzhno v obshtiia sluchai i nie mozhem da izpulnim samo:

# cp cacert.pem /etc/postfix/ssl/

Kopirame i chastniia klyuch i sertifikata na poshtenskiia survur kato se uveriavame, che klyucha mozhe da se prochete samo ot root:

# mv newkey.pem /etc/postfix/ssl/mailserver-key.pem
# mv newcert.pem /etc/postfix/ssl/mailserver-cert.pem
# chmod 400 /etc/postfix/ssl/mailserver-key.pem

Za da aktivirame TLS uslugata v main.cf dobaviame:

# TLS Settings
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
#smtpd_tls_auth_only = yes
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom

# TLS Server
smtpd_tls_cert_file = /etc/postfix/ssl/mailserver-cert.pem
smtpd_tls_key_file = /etc/postfix/ssl/mailserver-key.pem
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem

I prezarezhdame konfiguratsiiata:

# /etc/init.d/postfix reload

Na tozi etap nashiiat poshtenski survur triabva da e sposoben da komunikira izpolzvaiki TLS.

Udostoveriavane za izprashtane na poshta chrez klientski sertifikat
Vmesto traditsionniiat nachin za udostoveriavane chrez smtp-auth ili pop-before-smtp mozhem da izpolzvame znachitelno po-sigurnoto udostoveriavane chrez klientski sertifikat.

Za tazi tsel e nuzhno nashite potrebiteli da si generirat chasten klyuch i zaiavka za sertifikat, koiato nie da podpishem i s pomoshta na podpisaniiat ot nas sertifikat te da si generirat PKCS#12 fail, koito da vnesat v poshtenskiia si klient.
Ot potrebitelska strana se izpulniava slednata komanda:

$ openssl req -new -nodes -keyout newkey.pem -out newreq.pem

Zaiavkata za sertifikat (newreq.pem) se izprashta po nadezhden nachin do upravliavashtiiat CA, koito preglezhda zaiavkata i ia podpisva chrez:

# ./CA.pl -signreq

Za da se pozvoli izprashtaneto na poshta potrebitelskiiat sertifikat se triabva da se opishe i da se ukazhe na Postfix da iska potrebitelski sertifikat i spisukut na validnite sertifikati. V main.cf se dobavia:

# Relay users with certificate
smtpd_tls_ask_ccert = yes
relay_clientcerts = hash:/etc/postfix/ssl/relay_clientcerts

a v reda na smtpd_recipient_restrictions se dobavia i permit_tls_clientcerts:

smtpd_recipient_restrictions =
permit_mynetworks,
permit_tls_clientcerts,

Sertifikatut se opisva chrez otpechatuka si v /etc/postfix/ssl/relay_clientcerts. Otpechatukut se generira chrez:

# openssl x509 -fingerprint -noout -in newcert.pem | cut -d= -f2

i se dobavia v relay_clientcerts, kato mozhe da se poiasni i chii e toi:

15:B5:3E:3F:1B:CF:AD:B4:CA:CB:E9:A8:BB:BB:50:14 peio@linux-bg.org

/etc/postfix/ssl/relay_clientcerts e standarten za Postfix hash format i zatova triabva da se kompilira chrez:

# postmap /etc/postfix/ssl/relay_clientcerts

I konfiguratsiiata da se prezaredi:

# /etc/init.d/postfix reload

Podpisaniiat sertifikat (newcert.pem) se izprashta obratno na potrebitelia, koito suzdava PKCS#12 fail s komandata:

$ openssl pkcs12 -export -in newcert.pem -inkey newkey.pem -certfile cacert.pem -name „Linux-BG Certificate“ -out user-linux-bg.p12

Kudeto cacert.pem e sertifikata na podpisvashtoto CA.

Novosuzdadeniiat .p12 fail zaedno sus sertifikata na CA se vnasiat v poshtenskiia klient na potrebitelia, kato se ukazva polzvaneto na TLS za svurzvaneto kum tozi poshtenski survur. Sled uspeshnoto im vnasiane potrebiteliat triabva da mozhe da se avtentikira samo chrez svoia sertifikat.

Postfix kato TLS klient
Za da dadem vuzmozhnost za izpolzvane na TLS, kogato nashiia poshtenski survur se svurzva kato klient s drugi se ukazva izpolzvaneto na sertifikati chrez slednite nastroiki v main.cf:

# TLS client
smtp_use_tls = yes
smtp_tls_key_file = /etc/postfix/ssl/key.pem
smtp_tls_cert_file = /etc/postfix/ssl/cert.pem
smtp_tls_CAfile = /etc/postfix/ssl/cacert.pem

Za suzhalenie tazi vuzmozhnost sum vizhdal da se se izpolzva edinstveno v korporativnite komunikatsii ili mezhdu survurite na organizatsii, koito tiasno si sutrudnichat. Ekiput na Linux-BG e gotov da obmeni sertifikati s organizatsii, koito proiaviavat interes v ustanoviavaneto na nadezhdna vruzka mezhdu poshtenskite ni survuri.

Ot po-populiarnite poshtenski survuri TLS podruzhka imat: Sendmail, qmail (chrez pach), Exim, courier-mta. Dori i da niama vgradena TLS podruzhka e vuzmozhno ustanoviavaneto na sigurna komunikatsiia chrez izpolzvaneto na stunnel, koito ima versiia dori i za Windows.

Polezni chetiva

Zaklyuchenie
Tui kato tazi statiia sum ia pisal poveche po pamet i ne sum izpulniaval stupkite v neia edna sled druga sa vuzmozhni propuski i netochnosti. Molia da mi suobshtite, ako namerite takiva.



<< Ogranichavane na dostupa chrez mod_ssl | Greylisting s Postgrey >>