ProHoster > Blog > Administrasyon an > De-faktè otantifikasyon sou sit la lè l sèvi avèk yon siy USB. Kounye a tou pou Linux
De-faktè otantifikasyon sou sit la lè l sèvi avèk yon siy USB. Kounye a tou pou Linux
В youn nan atik anvan nou yo nou te pale sou enpòtans ki genyen de-faktè otantifikasyon sou portails antrepriz nan konpayi yo. Dènye fwa nou te demontre kijan pou mete kanpe otantifikasyon an sekirite nan sèvè entènèt IIS la.
Nan kòmantè yo, yo te mande nou ekri enstriksyon pou serveurs entènèt ki pi komen pou Linux - nginx ak Apache.
Ou te mande - nou te ekri.
Kisa ou bezwen pou kòmanse?
Nenpòt distribisyon Linux modèn. Mwen te fè yon konfigirasyon tès sou MX Linux 18.2_x64. Natirèlman, sa a se pa yon distribisyon sèvè, men pa gen anpil chans pou genyen okenn diferans pou Debian. Pou lòt distribisyon, chemen ki mennen nan bibliyotèk konfigirasyon yo ka varye yon ti kras.
Jeton. Nou kontinye sèvi ak modèl la Rutoken EDS PKI, ki se ideyal an tèm de karakteristik vitès pou itilizasyon antrepriz.
Pou travay ak yon siy nan Linux, ou bezwen enstale pakè sa yo:
libccid libpcsclite1 pcscd pcsc-tools opensc
Bay sètifika
Nan atik anvan yo, nou te konte sou lefèt ke sèvè ak sètifika kliyan yo pral bay lè l sèvi avèk Microsoft CA. Men, depi n ap mete tout bagay nan Linux, nou pral di w tou sou yon fason altènatif pou bay sètifika sa yo - san yo pa kite Linux.
Nou pral itilize XCA kòm CA (https://hohnstaedt.de/xca/), ki disponib sou nenpòt distribisyon Linux modèn. Tout aksyon nou pral fè nan XCA ka fèt nan mòd liy kòmand lè l sèvi avèk OpenSSL ak pkcs11-zouti sèvis piblik, men pou pi senplisite ak klè, nou pa pral prezante yo nan atik sa a.
Pou kòmanse
Enstale:
$ apt-get install xca
Epi nou kouri:
$ xca
Nou kreye baz done nou an pou CA - /root/CA.xdb
Nou rekòmande pou estoke baz done Otorite Sètifika a nan yon katab kote sèlman administratè a gen aksè. Sa a enpòtan pou pwoteje kle prive sètifika rasin yo, ki itilize pou siyen tout lòt sètifika yo.
Kreye kle ak rasin sètifika CA
Yon enfrastrikti kle piblik (PKI) baze sou yon sistèm yerarchize. Bagay pwensipal lan nan sistèm sa a se otorite sètifikasyon rasin oswa rasin CA. Sètifika li yo dwe kreye an premye.
Nou kreye yon kle prive RSA-2048 pou CA a. Pou fè sa, sou tab la Kle prive pouse Nouvo kle epi chwazi kalite ki apwopriye a.
Mete yon non pou nouvo pè kle a. Mwen rele li CA Key.
Nou bay sètifika CA a tèt li, lè l sèvi avèk pè kle kreye a. Pou fè sa, ale nan tab la sètifika epi klike sou Nouvo Sètifika.
Asire w ke w chwazi SHA-256, paske itilize SHA-1 pa kapab konsidere kòm san danje ankò.
Asire w ke w chwazi kòm yon modèl [default]CA. Pa bliye klike sou Aplike tout, sinon modèl la pa aplike.
Nan tab la Sijè chwazi pè kle nou an. Gen ou ka ranpli tout jaden prensipal yo nan sètifika a.
Kreye kle ak yon sètifika sèvè https
Nan yon fason menm jan an, nou kreye yon kle prive RSA-2048 pou sèvè a, mwen te rele li sèvè kle.
Lè w ap kreye yon sètifika, nou chwazi sètifika sèvè a dwe siyen ak yon sètifika CA.
Pa bliye chwazi SHA-256.
Nou chwazi kòm yon modèl [default] HTTPS_server. Klike sou Aplike tout.
Lè sa a, sou tab la Sijè chwazi kle nou an epi ranpli jaden yo mande yo.
Kreye kle ak sètifika pou itilizatè a
Kle prive itilizatè a pral estoke sou siy nou an. Pou travay avèk li, ou bezwen enstale bibliyotèk PKCS#11 nan sit entènèt nou an. Pou distribisyon popilè, nou distribye pakè pare yo, ki sitiye isit la - https://www.rutoken.ru/support/download/pkcs/. Nou gen tou asanble pou arm64, armv7el, armv7hf, e2k, mipso32el, ki ka telechaje nan SDK nou an - https://www.rutoken.ru/developers/sdk/. Anplis asanble pou Linux, gen tou asanble pou macOS, freebsd ak android.
Ajoute yon nouvo Founisè PKCS#11 nan XCA. Pou fè sa, ale nan meni an Opsyon nan tab la PKCS#11 Founisè.
Nou peze Add epi chwazi chemen ki mennen nan bibliyotèk PKCS#11 la. Nan ka mwen an li se usrliblibrtpkcs11ecp.so.
Nou chwazi kle RSA-2048 pou Rutoken EDS PKI kòm kalite kle. Mwen rele kle Kliyan sa a.
Antre kòd PIN la. Epi nou tann pou fini an nan jenerasyon pyès ki nan konpitè nan pè a kle
Nou kreye yon sètifika pou itilizatè a pa analoji ak sètifika sèvè a. Fwa sa a, nou chwazi yon modèl [default] HTTPS_client epi pa bliye klike sou Aplike tout.
Nan tab la Sijè antre enfòmasyon sou itilizatè a. Nou reponn afimatif nan demann pou sove sètifika a pou siy la.
Kòm yon rezilta, sou tab la Sètifikasyon nan XCA ou ta dwe jwenn yon bagay tankou sa a.
Sa a seri minimòm kle ak sètifika se ase yo kòmanse mete kanpe sèvè yo tèt yo.
Pou konfigirasyon, nou bezwen ekspòte sètifika CA, sètifika sèvè ak kle prive sèvè.
Pou fè sa, chwazi antre vle a sou tab ki koresponn lan nan XCA epi klike Ekspòte.
Nginx
Mwen pa pral ekri ki jan yo enstale ak kouri yon sèvè nginx - gen ase atik sou sijè sa a sou entènèt la, nou pa mansyone dokiman ofisyèl la. Ann jwenn tou dwat nan mete kanpe HTTPS ak de-faktè otantifikasyon lè l sèvi avèk yon siy.
Ajoute liy sa yo nan seksyon sèvè a nan nginx.conf:
Mwen pral jis dekri yon ti tan ke mwen te mande tèt mwen:
ssl_verify_client - presize ke chèn konfyans pou sètifika a bezwen verifye.
ssl_verify_depth - Defini pwofondè rechèch la pou sètifika rasin ou fè konfyans nan chèn lan. Depi sètifika kliyan nou an imedyatman siyen sou sètifika rasin lan, pwofondè a mete sou 1. Si sètifika itilizatè a siyen sou yon CA entèmedyè, Lè sa a, 2 dwe espesifye nan paramèt sa a, ak sou sa.
ssl_client_certificate - presize chemen an nan sètifika rasin ou fè konfyans, ki itilize lè w tcheke konfyans nan sètifika itilizatè a.
ssl_certificate/ssl_certificate_key - endike chemen ki mennen nan sètifika sèvè a/kle prive.
Pa bliye kouri nginx -t pou tcheke ke pa gen okenn typo nan konfigirasyon an, e ke tout dosye yo nan bon plas, ak sou sa.
Epi se tout! Kòm ou ka wè, konfigirasyon an se trè senp.
Ann eseye konekte san yon siy dabò. Nou jwenn foto sa a:
Nou ale sou sou: preferans # vi prive, epi nou ale nan Aparèy sekirite...
Nou peze Chajpou ajoute yon nouvo Pilote Aparèy PKCS#11 epi presize chemen librtpkcs11ecp.so nou an.
Pou tcheke si sètifika a vizib, ou ka ale nan Manadjè Sètifika. Y ap mande w pou w antre PIN w la. Apre opinyon kòrèk, ou ka tcheke sa ki sou tab la Sètifika ou yo sètifika nou an soti nan siy la parèt.
Koulye a, ann ale ak siy la. Firefox mande w pou w chwazi yon sètifika ki pral chwazi pou sèvè a. Chwazi sètifika nou an.
PROFIT!
Se konfigirasyon an fè yon fwa, epi jan ou ka wè nan fenèt demann sètifika a, nou ka sove seleksyon nou an. Apre sa, chak fwa nou konekte nan pòtal la, nou pral sèlman bezwen mete yon siy epi antre kòd PIN itilizatè a ki te espesifye pandan fòma. Apre otantifikasyon sa a, sèvè a deja konnen ki itilizatè te konekte epi ou pa ka kreye okenn fenèt adisyonèl pou verifikasyon, men imedyatman kite itilizatè a antre nan kont pèsonèl li.
Apache
Menm jan ak nginx, pèsonn pa ta dwe gen okenn pwoblèm pou enstale apache. Si ou pa konnen ki jan yo enstale sèvè entènèt sa a, jis itilize dokiman ofisyèl la.
Epi nou kòmanse mete HTTPS nou an ak otantifikasyon de faktè:
Premye ou bezwen aktive mod_ssl:
$ a2enmod ssl
Apre sa, pèmèt paramèt HTTPS default sit la:
$ a2ensite default-ssl
Koulye a, nou edite fichye konfigirasyon an: /etc/apache2/sites-enabled/default-ssl.conf:
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/apache2/sites-enabled/Server.crt
SSLCertificateKeyFile /etc/apache2/sites-enabled/ServerKey.pem
SSLCACertificateFile /etc/apache2/sites-enabled/CA.crt
SSLVerifyClient require
SSLVerifyDepth 10
Kòm ou ka wè, non yo nan paramèt yo pratikman kowenside ak non yo nan paramèt yo nan nginx, kidonk mwen pa pral eksplike yo. Ankò, nenpòt moun ki enterese nan detay yo akeyi nan dokiman an.
Koulye a, nou rekòmanse sèvè nou an:
$ service apache2 reload
$ service apache2 restart
Kòm ou ka wè, mete kanpe otantifikasyon de-faktè sou nenpòt sèvè entènèt, kit sou Windows oswa Linux, pran yon èdtan maksimòm. Ak konfigirasyon navigatè yo pran apeprè 5 minit. Anpil moun panse ke mete kanpe ak travay ak de-faktè otantifikasyon se difisil ak klè. Mwen espere atik nou an debunks mit sa a, omwen yon ti kras.
Se sèlman itilizatè ki anrejistre ki ka patisipe nan sondaj la. Enskri, tanpri.
Ou bezwen enstriksyon pou mete TLS ak sètifika dapre GOST 34.10-2012: