ProHoster > Blog > İdarə > Rutoken EDS 2 və Rutoken PKI istifadə edərək L2.0TP şəbəkəsində autentifikasiyanın qurulması
Rutoken EDS 2 və Rutoken PKI istifadə edərək L2.0TP şəbəkəsində autentifikasiyanın qurulması
Məsələlər
Bu yaxınlarda çoxları evdən işləməyin nə olduğunu bilmirdilər. Pandemiya dünyadakı vəziyyəti kəskin şəkildə dəyişdirdi, hər kəs mövcud şəraitə, yəni evdən çıxmağın sadəcə təhlükəli hala gəlməsinə uyğunlaşmağa başladı. Və bir çoxları işçiləri üçün tez bir zamanda evdən iş təşkil etməli oldular.
Bununla belə, uzaqdan işləmək üçün həllər seçmək üçün səlahiyyətli bir yanaşmanın olmaması geri dönməz itkilərə səbəb ola bilər. İstifadəçi parolları oğurlana bilər və bu, təcavüzkarın müəssisənin şəbəkəsinə və İT resurslarına nəzarətsiz şəkildə qoşulmasına imkan verəcək.
Buna görə etibarlı korporativ VPN şəbəkələrinin yaradılmasına ehtiyac indi artıb. haqqında sizə məlumat verəcəyəm etibarlı, təhlükəsiz и sadə VPN şəbəkəsindən istifadə edərkən.
Müştərilərin autentifikasiyası üçün tokenlərdə saxlanan qeyri-geri açarları və sertifikatları istifadə edən IPsec/L2TP sxeminə uyğun işləyir, həmçinin məlumatları şifrələnmiş formada şəbəkə üzərindən ötürür.
Konfiqurasiya üçün nümayiş stendləri kimi CentOS 7 ilə server (ünvan: centos.vpn.server.ad) və Ubuntu 20.04 ilə müştəri, həmçinin Windows 10 ilə müştəri istifadə edilib.
Sistem təsviri
VPN IPSec + L2TP + PPP sxeminə uyğun işləyəcək. Protokol Nöqtədən Nöqtə Protokolu (PPP) OSI modelinin məlumat keçidi səviyyəsində işləyir və ötürülən məlumatların istifadəçinin autentifikasiyasını və şifrələnməsini təmin edir. Onun məlumatları L2TP protokolunun məlumatlarına daxil edilmişdir, bu, əslində VPN şəbəkəsində əlaqə yaratmağı təmin edir, lakin autentifikasiya və şifrələməni təmin etmir.
L2TP məlumatları IPSec-də əhatə olunub, bu da autentifikasiya və şifrələməni təmin edir, lakin PPP-dən fərqli olaraq autentifikasiya və şifrələmə istifadəçi səviyyəsində deyil, cihaz səviyyəsində baş verir.
Bu funksiya istifadəçiləri yalnız müəyyən cihazlardan autentifikasiya etməyə imkan verir. Biz IPSec protokolundan olduğu kimi istifadə edəcəyik və istənilən cihazdan istifadəçinin autentifikasiyasına icazə verəcəyik.
Smart kartlardan istifadə etməklə istifadəçinin autentifikasiyası EAP-TLS protokolundan istifadə etməklə PPP protokolu səviyyəsində həyata keçiriləcək.
Bu dövrənin işləməsi haqqında daha ətraflı məlumatı burada tapa bilərsiniz Bu məqalə.
Niyə bu sxem yaxşı VPN şəbəkəsinin hər üç tələbinə cavab verir?
Bu sxemin etibarlılığı zamanla sınaqdan keçirilmişdir. 2000-ci ildən bəri VPN şəbəkələrini yerləşdirmək üçün istifadə olunur.
Təhlükəsiz istifadəçi autentifikasiyası PPP protokolu ilə təmin edilir. Paul Mackerras tərəfindən hazırlanmış PPP protokolunun standart tətbiqi kifayət qədər təhlükəsizlik səviyyəsini təmin etmir, çünki Doğrulama üçün, ən yaxşı halda, giriş və paroldan istifadə edərək autentifikasiya istifadə olunur. Hamımız bilirik ki, giriş parolu casusluq edilə, təxmin edilə və ya oğurlana bilər. Ancaq uzun müddətdir ki, tərtibatçı Jan Just Keijser в onun həyata keçirilməsi Bu protokol bu problemi düzəltdi və autentifikasiya üçün EAP-TLS kimi asimmetrik şifrələməyə əsaslanan protokollardan istifadə etmək imkanı əlavə etdi. Bundan əlavə, o, autentifikasiya üçün smart kartlardan istifadə imkanını əlavə edib ki, bu da sistemi daha təhlükəsiz edib.
Hazırda bu iki layihənin birləşdirilməsi istiqamətində fəal danışıqlar aparılır və əmin ola bilərsiniz ki, gec-tez bu, onsuz da baş verəcək. Məsələn, PPP-nin yamaqlanmış versiyası identifikasiya üçün təhlükəsiz protokollardan istifadə edərək uzun müddət Fedora repozitoriyalarında olmuşdur.
Son vaxtlara qədər bu şəbəkə yalnız Windows istifadəçiləri tərəfindən istifadə edilə bilərdi, lakin Moskva Dövlət Universitetindən olan həmkarlarımız Vasili Şokov və Aleksandr Smirnov tapdılar. Linux üçün köhnə L2TP müştəri layihəsi və onu dəyişdirdi. Biz birlikdə müştərinin işindəki bir çox səhv və çatışmazlıqları aradan qaldırdıq, sistemin quraşdırılmasını və konfiqurasiyasını, hətta mənbədən qurarkən belə sadələşdirdik. Onlardan ən əhəmiyyətliləri bunlardır:
Openssl və qt-nin yeni versiyalarının interfeysi ilə köhnə müştərinin uyğunluq problemləri həll edildi.
Token PIN kodunu müvəqqəti fayldan ötürməkdən pppd silindi.
Qrafik interfeys vasitəsilə parol sorğu proqramının səhv işə salınması düzəldildi. Bu, xl2tpd xidməti üçün düzgün mühitin quraşdırılması ilə həyata keçirilib.
L2tpIpsecVpn demonunun qurulması indi müştərinin özünün qurulması ilə birlikdə həyata keçirilir ki, bu da qurma və konfiqurasiya prosesini asanlaşdırır.
İnkişafın asanlığı üçün Azure Pipelines sistemi qurulmanın düzgünlüyünü yoxlamaq üçün birləşdirilir.
Məcburi endirmə qabiliyyəti əlavə edildi təhlükəsizlik səviyyəsi openssl kontekstində. Bu, standart təhlükəsizlik səviyyəsinin 2-yə təyin edildiyi yeni əməliyyat sistemlərini düzgün dəstəkləmək üçün faydalıdır, bu səviyyənin təhlükəsizlik tələblərinə cavab verməyən sertifikatlardan istifadə edən VPN şəbəkələri. Bu seçim mövcud köhnə VPN şəbəkələri ilə işləmək üçün faydalı olacaq.
Düzəliş edilmiş versiyanı burada tapa bilərsiniz bu depo.
Bu müştəri autentifikasiya üçün smart kartların istifadəsini dəstəkləyir və həmçinin bu sxemin Linux altında qurulmasının bütün çətinliklərini və çətinliklərini mümkün qədər gizlədir, müştəri quraşdırmasını mümkün qədər sadə və sürətli edir.
Əlbəttə ki, PPP və müştəri GUI arasında rahat əlaqə üçün layihələrin hər birinə əlavə redaktələr olmadan mümkün deyildi, lakin buna baxmayaraq, onlar minimuma endirildi və minimuma endirildi:
Sabit konfiqurasiyanın yüklənməsi və openssl kontekstinin işə salınması qaydasında səhv. Bu səhv bizə yerli /etc/ppp/openssl.cnf konfiqurasiya faylından smart kartlarla işləmək üçün openssl mühərrikləri haqqında məlumat istisna olmaqla, heç nə yükləməyə imkan vermədi, bu, məsələn, mühərriklər haqqında məlumatdan əlavə, ciddi narahatlıq yaradırdı. başqa bir şey təyin etmək istədik. Məsələn, əlaqə qurarkən təhlükəsizlik səviyyəsini düzəldin.
İndi quraşdırmaya başlaya bilərsiniz.
Server Sazlama
Bütün lazımi paketləri quraşdıraq.
Strongswan (IPsec) quraşdırılması
Əvvəlcə ipsec əməliyyatı üçün firewall-u konfiqurasiya edək
Quraşdırıldıqdan sonra siz strongswan-ı konfiqurasiya etməlisiniz (IPSec tətbiqlərindən biri). Bunu etmək üçün faylı redaktə edin /etc/strongswan/ipsec.conf :
Biz həmçinin ümumi giriş parolunu təyin edəcəyik. Paylaşılan parol autentifikasiya üçün bütün şəbəkə iştirakçılarına məlum olmalıdır. Bu üsul açıq-aydın etibarsızdır, çünki bu parol asanlıqla şəbəkəyə girişi təmin etmək istəmədiyimiz şəxslərə məlum ola bilər.
Lakin bu fakt belə şəbəkənin təhlükəsizliyinə təsir etməyəcək, çünki Əsas məlumatların şifrələnməsi və istifadəçinin autentifikasiyası PPP protokolu ilə həyata keçirilir. Lakin ədalət naminə qeyd etmək lazımdır ki, strongswan məsələn, şəxsi açarlardan istifadə etməklə autentifikasiya üçün daha təhlükəsiz texnologiyaları dəstəkləyir. Strongswan həmçinin smart kartlardan istifadə edərək autentifikasiyanı təmin etmək imkanına malikdir, lakin indiyə qədər yalnız məhdud sayda cihazlar dəstəklənir və buna görə də Rutoken tokenləri və smart kartlarından istifadə etməklə autentifikasiya hələ də çətindir. Fayl vasitəsilə ümumi parol təyin edək /etc/strongswan/ipsec.secrets:
Gəlin onu fayl vasitəsilə konfiqurasiya edək /etc/xl2tpd/xl2tpd.conf:
[global]
force userspace = yes
listen-addr = 0.0.0.0
ipsec saref = yes
[lns default]
exclusive = no
; определяет статический адрес сервера в виртуальной сети
local ip = 100.10.10.1
; задает диапазон виртуальных адресов
ip range = 100.10.10.1-100.10.10.254
assign ip = yes
refuse pap = yes
require authentication = yes
; данную опцию можно отключить после успешной настройки сети
ppp debug = yes
length bit = yes
pppoptfile = /etc/ppp/options.xl2tpd
; указывает адрес сервера в сети
name = centos.vpn.server.ad
#директория с сертификатами пользователей, УЦ и сервера
sudo mkdir /etc/ppp/certs
#директория с закрытыми ключами сервера и УЦ
sudo mkdir /etc/ppp/keys
#запрещаем любой доступ к этой дирректории кроме администатора
sudo chmod 0600 /etc/ppp/keys/
#генерируем ключ и выписываем сертификат УЦ
sudo openssl genrsa -out /etc/ppp/keys/ca.pem 2048
sudo openssl req -key /etc/ppp/keys/ca.pem -new -x509 -out /etc/ppp/certs/ca.pem -subj "/C=RU/CN=L2TP CA"
#генерируем ключ и выписываем сертификат сервера
sudo openssl genrsa -out /etc/ppp/keys/server.pem 2048
sudo openssl req -new -out server.req -key /etc/ppp/keys/server.pem -subj "/C=RU/CN=centos.vpn.server.ad"
sudo openssl x509 -req -in server.req -CAkey /etc/ppp/keys/ca.pem -CA /etc/ppp/certs/ca.pem -out /etc/ppp/certs/server.pem -CAcreateserial
Beləliklə, biz əsas server quraşdırma ilə tamamlandıq. Server konfiqurasiyasının qalan hissəsi yeni müştərilərin əlavə edilməsini nəzərdə tutur.
Yeni müştəri əlavə olunur
Şəbəkəyə yeni müştəri əlavə etmək üçün onun sertifikatını bu müştəri üçün etibarlı olanlar siyahısına əlavə etməlisiniz.
İstifadəçi VPN şəbəkəsinin üzvü olmaq istəyirsə, bu müştəri üçün açar cütü və sertifikat tətbiqi yaradır. İstifadəçiyə güvənilirsə, bu proqram imzalana bilər və nəticədə sertifikat sertifikatlar kataloquna yazıla bilər:
QEYD
Qarışıqlığın qarşısını almaq üçün daha yaxşı olar: Ümumi ad, sertifikat faylının adı və istifadəçi adı unikal olsun.
Əlavə etdiyimiz istifadəçinin adının digər autentifikasiya fayllarında heç bir yerdə görünmədiyini də yoxlamağa dəyər, əks halda istifadəçinin autentifikasiya üsulu ilə bağlı problemlər yaranacaq.
Eyni sertifikat istifadəçiyə geri göndərilməlidir.
Açar cütü və sertifikatın yaradılması
Uğurlu autentifikasiya üçün müştəri aşağıdakıları etməlidir:
açar cütü yaratmaq;
CA kök sertifikatına sahib olmaq;
açar cütünüz üçün kök CA tərəfindən imzalanmış sertifikata sahib olun.
Linux-da müştəri üçün
Əvvəlcə tokendə açar cütü yaradaq və sertifikat üçün ərizə yaradaq:
Windows və Linux müştəriləri üçün (daha universal üsul)
Bu üsul daha universaldır, çünki Windows və Linux istifadəçiləri tərəfindən uğurla tanınacaq bir açar və sertifikat yaratmağa imkan verir, lakin açar yaratma prosedurunu həyata keçirmək üçün Windows maşını tələb olunur.
Sorğular yaratmadan və sertifikatları idxal etməzdən əvvəl VPN şəbəkəsinin kök sertifikatını etibarlılar siyahısına əlavə etməlisiniz. Bunu etmək üçün onu açın və açılan pəncərədə “Sertifikatı quraşdır” seçimini seçin:
Açılan pəncərədə yerli istifadəçi üçün sertifikatın quraşdırılmasını seçin:
Bundan sonra biz bir açar cütü yaradacağıq və sertifikat üçün ərizə yaradacağıq. Bunu etmək üçün powershell-i açın və aşağıdakı əmri daxil edin:
certreq.exe -new -pin $PIN .cert.tmp .client.req
Yaradılmış client.req tətbiqini CA-ya göndərin və client.pem sertifikatının alınmasını gözləyin. O, bir işarəyə yazıla və aşağıdakı əmrdən istifadə edərək Windows sertifikat mağazasına əlavə edilə bilər:
certreq.exe -accept .client.pem
Qeyd etmək lazımdır ki, oxşar hərəkətlər mmc proqramının qrafik interfeysindən istifadə edərək təkrarlana bilər, lakin bu üsul daha çox vaxt aparır və daha az proqramlaşdırıla bilər.
Ubuntu müştərisinin qurulması
QEYD
Linux-da müştəri qurmaq hazırda kifayət qədər vaxt aparır, çünki... mənbədən ayrı proqramlar qurmağı tələb edir. Çalışacağıq ki, yaxın vaxtlarda bütün dəyişikliklər rəsmi repozitoriyalara daxil edilsin.
Serverə IPSec səviyyəsində əlaqəni təmin etmək üçün strongswan paketi və xl2tp demonundan istifadə olunur. Ağıllı kartlardan istifadə edərək şəbəkəyə qoşulmanı sadələşdirmək üçün biz sadələşdirilmiş əlaqənin qurulması üçün qrafik qabığı təmin edən l2tp-ipsec-vpn paketindən istifadə edəcəyik.
Elementləri addım-addım yığmağa başlayaq, lakin bundan əvvəl VPN-in birbaşa işləməsi üçün bütün lazımi paketləri quraşdıracağıq:
sudo apt-get install xl2tpd strongswan libp11-3
Tokenlərlə işləmək üçün proqram təminatının quraşdırılması
Ən son librtpkcs11ecp.so kitabxanasını quraşdırın сайта, həmçinin smart kartlarla işləmək üçün kitabxanalar:
sudo apt-get -y install git make gcc libssl-dev
git clone "https://github.com/jjkeijser/ppp"
cd ppp
./configure --prefix /usr
make -j4
sudo make install
L2tpIpsecVpn müştərisinin quraşdırılması
Hazırda müştəri də mənbə kodundan tərtib edilməlidir. Bu, aşağıdakı əmrlər ardıcıllığından istifadə etməklə edilir:
sudo apt-get -y install git qt5-qmake qt5-default build-essential libctemplate-dev libltdl-dev
git clone "https://github.com/Sander80/l2tp-ipsec-vpn"
cd l2tp-ipsec-vpn
make -j4
sudo make install
L2tpIpsecVpn müştərisinin qurulması
Quraşdırılmış müştərini işə salın:
Başladıqdan sonra L2tpIpsecVPN tətbiqi açılmalıdır. Bunun üzərinə sağ vurun və əlaqəni konfiqurasiya edin:
Tokenlərlə işləmək üçün, ilk növbədə, biz OpenSSL mühərrikinin opensc mühərrikinə və PKCS#11 kitabxanasına gedən yolu göstəririk. Bunu etmək üçün openssl parametrlərini konfiqurasiya etmək üçün "Tercihlər" sekmesini açın:
.
OpenSSL parametrləri pəncərəsini bağlayaq və şəbəkənin qurulmasına keçək. Parametrlər panelində Əlavə et... düyməsini sıxaraq yeni şəbəkə əlavə edək və şəbəkə adını daxil edək:
Bundan sonra bu şəbəkə parametrlər panelində əlçatan olacaq. Yeni şəbəkəni konfiqurasiya etmək üçün üzərinə iki dəfə sağ klikləyin. Birinci sekmədə IPsec parametrlərini etməlisiniz. Server ünvanını və açıq açarı təyin edək:
Bundan sonra, PPP parametrləri sekmesine keçin və orada şəbəkəyə daxil olmaq istədiyimiz istifadəçi adını göstərin:
Bundan sonra, Xüsusiyyətlər sekmesini açın və açara, müştəri sertifikatına və CA-ya gedən yolu göstərin:
Bu nişanı bağlayaq və son parametrləri yerinə yetirək; bunun üçün "IP parametrləri" sekmesini açın və "DNS server ünvanını avtomatik əldə et" seçiminin yanındakı qutuyu işarələyin:
Bu seçim müştəriyə serverdən şəbəkə daxilində şəxsi IP ünvanını almağa imkan verəcək.
Bütün parametrlərdən sonra bütün nişanları bağlayın və müştərini yenidən başladın:
Şəbəkə bağlantısı
Parametrlərdən sonra şəbəkəyə qoşula bilərsiniz. Bunu etmək üçün applet sekmesini açın və qoşulmaq istədiyimiz şəbəkəni seçin:
Bağlantının qurulması prosesində müştəri bizdən Rutoken PİN kodunu daxil etməyimizi xahiş edəcək:
Status panelində əlaqənin uğurla qurulduğuna dair bildiriş görünürsə, bu, quraşdırmanın uğurlu olduğunu bildirir:
Əks təqdirdə, əlaqənin niyə qurulmadığını anlamağa dəyər. Bunun üçün appletdə "Bağlantı məlumatı" əmrini seçməklə proqram jurnalına baxmaq lazımdır:
Windows müştərisinin qurulması
Windows-da müştəri qurmaq Linux-dan daha asandır, çünki... Bütün lazımi proqram təminatı sistemə artıq quraşdırılmışdır.
Sistem Quraşdırma
Rutokens ilə işləmək üçün bütün lazımi sürücüləri yükləyərək quraşdıracağıq of. Sayt.
Doğrulama üçün kök sertifikatının idxalı
Server kök sertifikatını yükləyin və sistemə quraşdırın. Bunu etmək üçün onu açın və açılan pəncərədə “Sertifikatı quraşdır” seçimini seçin:
Açılan pəncərədə yerli istifadəçi üçün sertifikatın quraşdırılmasını seçin. Əgər siz sertifikatın kompüterdəki bütün istifadəçilər üçün əlçatan olmasını istəyirsinizsə, o zaman sertifikatı yerli kompüterdə quraşdırmağı seçməlisiniz:
Bütün bu hərəkətlərdən sonra biz bütün digər məqamlarla razılaşırıq. Sistem indi konfiqurasiya olunub.
VPN bağlantısı qurulur
VPN bağlantısı qurmaq üçün idarəetmə panelinə keçin və yeni əlaqə yaratmaq seçimini seçin.
Açılan pəncərədə iş yerinizə qoşulmaq üçün əlaqə yaratmaq seçimini seçin:
Növbəti pəncərədə VPN bağlantısını seçin:
və VPN bağlantısı təfərrüatlarını daxil edin, həmçinin smart kartdan istifadə seçimini göstərin:
Quraşdırma hələ tamamlanmayıb. Yalnız IPsec protokolu üçün paylaşılan açarı təyin etmək qalır; bunu etmək üçün "Şəbəkə bağlantısı parametrləri" sekmesine keçin və sonra "Bu əlaqə üçün xüsusiyyətlər" sekmesine keçin:
Açılan pəncərədə “Təhlükəsizlik” sekmesine keçin, şəbəkə növü kimi “L2TP/IPsec Şəbəkəsi”ni göstərin və “Ətraflı Parametrlər”i seçin:
Açılan pəncərədə paylaşılan IPsec açarını göstərin:
Подключение
Quraşdırmanı tamamladıqdan sonra şəbəkəyə qoşulmağa cəhd edə bilərsiniz:
Qoşulma prosesi zamanı bizdən işarənin PİN kodunu daxil etməmiz tələb olunacaq:
Təhlükəsiz VPN şəbəkəsi qurduq və bunun çətin olmadığına əmin olduq.
Təşəkkürlər
Mən bir daha həmkarlarımız Vasili Şokova və Aleksandr Smirnova Linux müştəriləri üçün VPN bağlantılarının yaradılmasını asanlaşdırmaq üçün birlikdə gördükləri işlərə görə təşəkkür etmək istərdim.