"Linux in Action" kitobi

"Linux in Action" kitobi Salom, Khabro aholisi! Kitobda Devid Klinton 12 ta real hayot loyihasini, jumladan, zaxira va tiklash tizimini avtomatlashtirish, Dropbox uslubidagi shaxsiy fayllar bulutini o‘rnatish va o‘z MediaWiki serveringizni yaratishni tasvirlab beradi. Siz qiziqarli amaliy tadqiqotlar orqali virtualizatsiya, falokatlarni tiklash, xavfsizlik, zaxira, DevOps va tizim muammolarini bartaraf etish bilan tanishasiz. Har bir bob ilg‘or tajribalarni ko‘rib chiqish, yangi atamalar lug‘ati va mashqlar bilan yakunlanadi.

Ko‘chirma “10.1. OpenVPN tunnelini yaratish"

Men ushbu kitobda shifrlash haqida ko'p gapirganman. SSH va SCP masofaviy ulanishlar orqali uzatiladigan ma'lumotlarni himoya qilishi mumkin (3-bob), fayl shifrlash serverda saqlangan ma'lumotlarni himoya qilishi mumkin (8-bob) va TLS/SSL sertifikatlari saytlar va mijoz brauzerlari o'rtasida uzatiladigan ma'lumotlarni himoya qilishi mumkin (9-bob). . Ammo ba'zida ma'lumotlaringiz kengroq ulanishlar oralig'ida himoyalangan bo'lishi kerak. Masalan, jamoangizning ba'zi a'zolari umumiy ulanish nuqtalari orqali Wi-Fi tarmog'iga ulanayotganda yo'lda ishlashlari mumkin. Siz, albatta, bunday kirish nuqtalarining barchasi xavfsiz deb o'ylamasligingiz kerak, lekin sizning odamlaringizga kompaniya resurslariga ulanish usuli kerak - va bu erda VPN yordam berishi mumkin.

To'g'ri ishlab chiqilgan VPN tunneli xavfsiz tarmoq orqali harakatlanayotganda ma'lumotlarni yashiradigan tarzda uzoq mijozlar va server o'rtasida to'g'ridan-to'g'ri ulanishni ta'minlaydi. Nima bo'libdi? Siz allaqachon shifrlash bilan buni amalga oshiradigan ko'plab vositalarni ko'rgansiz. VPN ning haqiqiy qiymati shundaki, tunnelni ochish orqali siz masofaviy tarmoqlarni xuddi mahalliy bo'lgandek ulashingiz mumkin. Qaysidir ma'noda siz aylanma yo'ldan foydalanyapsiz.

Ushbu kengaytirilgan tarmoqdan foydalanib, ma'murlar o'z serverlarida o'z ishlarini istalgan joydan bajarishlari mumkin. Ammo bundan ham muhimi, resurslari bir nechta joylarda tarqalgan kompaniya ularni qaerda bo'lishidan qat'i nazar, ularga muhtoj bo'lgan barcha guruhlarga ko'rinadigan va ochiq qilib qo'yishi mumkin (10.1-rasm).

Tunnelning o'zi xavfsizlikni kafolatlamaydi. Ammo shifrlash standartlaridan biri tarmoq tuzilishiga kiritilishi mumkin, bu xavfsizlik darajasini sezilarli darajada oshiradi. Ochiq kodli OpenVPN to'plami yordamida yaratilgan tunnellar siz allaqachon o'qigan TLS/SSL shifrlashdan foydalanadi. OpenVPN - bu tunnel ochishning yagona varianti emas, lekin u eng mashhurlaridan biridir. Bu IPsec shifrlashdan foydalanadigan muqobil Layer 2 tunnel protokolidan biroz tezroq va xavfsizroq hisoblanadi.

Yo'lda yoki turli binolarda ishlashda jamoangizdagilarning barchasi bir-biri bilan xavfsiz muloqot qilishlarini xohlaysizmi? Buning uchun dasturni almashish va serverning mahalliy tarmoq muhitiga kirishga ruxsat berish uchun OpenVPN serverini yaratishingiz kerak. Buning ishlashi uchun ikkita virtual mashina yoki ikkita konteynerni ishga tushirish kifoya: biri server/xost vazifasini bajaradi, ikkinchisi mijoz sifatida ishlaydi. VPN-ni yaratish oddiy jarayon emas, shuning uchun katta rasmni yodda tutish uchun bir necha daqiqa vaqt ajratishga arziydi.

"Linux in Action" kitobi

10.1.1. OpenVPN server konfiguratsiyasi

Boshlashdan oldin men sizga foydali maslahatlar beraman. Agar siz buni o'zingiz qilmoqchi bo'lsangiz (va buni sizga juda tavsiya qilaman), ehtimol siz o'zingizni Ish stolida ochilgan, har biri boshqa mashinaga ulangan bir nechta terminal oynalari bilan ishlayotganingizni ko'rasiz. Bir nuqtada siz oynaga noto'g'ri buyruq kiritishingiz xavfi mavjud. Bunga yo'l qo'ymaslik uchun siz hostname buyrug'idan foydalanib, buyruq satrida ko'rsatilgan mashina nomini qaerda ekanligingizni aniq ko'rsatadigan narsaga o'zgartirishingiz mumkin. Buni qilganingizdan so'ng, yangi sozlamalar kuchga kirishi uchun serverdan chiqishingiz va tizimga qayta kirishingiz kerak bo'ladi. Bu shunday ko'rinadi:

"Linux in Action" kitobi
Ushbu yondashuvga rioya qilish va siz ishlaydigan har bir mashinaga tegishli nomlar berish orqali siz qayerda ekanligingizni osongina kuzatib borishingiz mumkin.

Xost nomidan foydalangandan so'ng, keyingi buyruqlarni bajarishda zerikarli Xost OpenVPN-Serverni hal qila olmaslik xabarlariga duch kelishingiz mumkin. /etc/hosts faylini tegishli yangi xost nomi bilan yangilash muammoni hal qilishi kerak.

Serveringizni OpenVPN uchun tayyorlash

OpenVPN-ni serveringizga o'rnatish uchun sizga ikkita paket kerak bo'ladi: openvpn va easy-rsa (shifrlash kalitini yaratish jarayonini boshqarish uchun). CentOS foydalanuvchilari, agar kerak bo'lsa, birinchi navbatda, 2-bobda bo'lgani kabi, epel-relizlar omborini o'rnatishlari kerak. Server ilovasiga kirishni sinab ko'rish uchun siz Apache veb-serverini (Ubuntuda apache2 va CentOS'da httpd) ham o'rnatishingiz mumkin.

Serveringizni sozlashda men 22 (SSH) va 1194 (OpenVPN standart porti) dan tashqari barcha portlarni bloklaydigan xavfsizlik devorini faollashtirishni tavsiya qilaman. Ushbu misol Ubuntu-da ufw qanday ishlashini ko'rsatadi, ammo ishonchim komilki, siz hali ham 9-bobdagi CentOS xavfsizlik devori dasturini eslaysiz:

# ufw enable
# ufw allow 22
# ufw allow 1194

Serverdagi tarmoq interfeyslari o'rtasida ichki marshrutlashni yoqish uchun /etc/sysctl.conf faylida bitta qatorni (net.ipv4.ip_forward = 1) izohdan olib tashlashingiz kerak. Bu masofaviy mijozlarga ulangandan so'ng kerak bo'lganda qayta yo'naltirish imkonini beradi. Yangi variantni ishga tushirish uchun sysctl -p ni ishga tushiring:

# nano /etc/sysctl.conf
# sysctl -p

Sizning server muhitingiz endi to'liq sozlangan, ammo tayyor bo'lishingizdan oldin yana bir narsa qilishingiz kerak: siz quyidagi amallarni bajarishingiz kerak (keyinchalik ularni batafsil ko'rib chiqamiz).

  1. Easy-rsa paketi bilan ta'minlangan skriptlar yordamida serverda ochiq kalitlar infratuzilmasi (PKI) shifrlash kalitlari to'plamini yarating. Aslida, OpenVPN serveri o'zining sertifikat organi (CA) sifatida ham ishlaydi.
  2. Mijoz uchun tegishli kalitlarni tayyorlang
  3. Server uchun server.conf faylini sozlang
  4. OpenVPN mijozingizni sozlang
  5. VPN-ni tekshiring

Shifrlash kalitlarini yaratish

Ishlarni soddalashtirish uchun siz asosiy infratuzilmangizni OpenVPN serveri ishlayotgan bir xil mashinada sozlashingiz mumkin. Biroq, xavfsizlikning eng yaxshi amaliyotlari odatda ishlab chiqarishni joylashtirish uchun alohida CA serveridan foydalanishni taklif qiladi. OpenVPN-da foydalanish uchun shifrlash kalitlari resurslarini yaratish va tarqatish jarayoni rasmda ko'rsatilgan. 10.2.

"Linux in Action" kitobi
OpenVPN-ni o'rnatganingizda, /etc/openvpn/ katalogi avtomatik ravishda yaratilgan, ammo unda hali hech narsa yo'q. Openvpn va easy-rsa paketlari konfiguratsiya uchun asos sifatida foydalanishingiz mumkin bo'lgan namunaviy shablon fayllari bilan birga keladi. Sertifikatlash jarayonini boshlash uchun easy-rsa shablon katalogini /usr/share/ dan /etc/openvpn ga ko'chiring va easy-rsa/ katalogiga o'zgartiring:

# cp -r /usr/share/easy-rsa/ /etc/openvpn
$ cd /etc/openvpn/easy-rsa

Easy-rsa katalogi endi bir nechta skriptlarni o'z ichiga oladi. Jadvalda 10.1 kalitlarni yaratish uchun foydalanadigan vositalar ro'yxatini ko'rsatadi.

"Linux in Action" kitobi

Yuqoridagi operatsiyalar ildiz huquqlarini talab qiladi, shuning uchun siz sudo su orqali root bo'lishingiz kerak.

Siz ishlaydigan birinchi fayl vars deb ataladi va kalitlarni yaratishda easy-rsa foydalanadigan muhit o'zgaruvchilarini o'z ichiga oladi. Siz allaqachon mavjud bo'lgan standart qiymatlar o'rniga o'zingizning qiymatlaringizdan foydalanish uchun faylni tahrirlashingiz kerak. Mening faylim shunday ko'rinadi (Ro'yxat 10.1).

Ro'yxat 10.1. Faylning asosiy qismlari /etc/openvpn/easy-rsa/vars

export KEY_COUNTRY="CA"
export KEY_PROVINCE="ON"
export KEY_CITY="Toronto"
export KEY_ORG="Bootstrap IT"
export KEY_EMAIL="[email protected]"
export KEY_OU="IT"

Vars faylini ishga tushirish uning qiymatlarini qobiq muhitiga o'tkazadi, u erda ular sizning yangi kalitlaringiz tarkibiga kiritiladi. Nima uchun sudo buyrug'i o'z-o'zidan ishlamaydi? Chunki birinchi bosqichda biz vars nomli skriptni tahrir qilamiz va keyin uni qo'llaymiz. Qo'llash va bu vars fayli o'z qiymatlarini qobiq muhitiga o'tkazadi, u erda ular sizning yangi kalitlaringiz tarkibiga kiritiladi.

Tugallanmagan jarayonni yakunlash uchun faylni yangi qobiq yordamida qayta ishga tushirishni unutmang. Bu bajarilgandan so'ng, skript sizni /etc/openvpn/easy-rsa/keys/ katalogidagi har qanday tarkibni o'chirish uchun boshqa skriptni ishga tushirishni taklif qiladi, barchani tozalash:

"Linux in Action" kitobi
Tabiiyki, keyingi qadam barcha toza skriptni ishga tushirish, keyin esa root sertifikatini yaratish uchun pkitool skriptidan foydalanadigan build-ca ni ishga tushirishdir. Sizdan vars tomonidan taqdim etilgan identifikatsiya sozlamalarini tasdiqlash so'raladi:

# ./clean-all
# ./build-ca
Generating a 2048 bit RSA private key

Keyinchalik "Build-key-server" skripti keladi. Yangi ildiz sertifikati bilan bir xil pkitool skriptidan foydalanganligi sababli, kalit juftligini yaratishni tasdiqlash uchun bir xil savollarni ko'rasiz. Kalitlar siz topshirgan argumentlar asosida nomlanadi, agar siz ushbu mashinada bir nechta VPN ishlatmasangiz, ular odatda misoldagi kabi server bo'ladi:

# ./build-key-server server
[...]
Certificate is to be certified until Aug 15 23:52:34 2027 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

OpenVPN yangi ulanishlar uchun autentifikatsiyani muhokama qilish uchun Diffie-Hellman algoritmi (Build-dh yordamida) tomonidan yaratilgan parametrlardan foydalanadi. Bu yerda yaratilgan fayl maxfiy boʻlishi shart emas, lekin hozirda faol boʻlgan RSA kalitlari uchun build-dh skripti yordamida yaratilishi kerak. Agar siz kelajakda yangi RSA kalitlarini yaratsangiz, Diffie-Hellman faylini ham yangilashingiz kerak bo'ladi:

# ./build-dh

Sizning server tomonidagi kalitlaringiz endi /etc/openvpn/easy-rsa/keys/ katalogida tugaydi, lekin OpenVPN buni bilmaydi. Odatiy bo'lib, OpenVPN kalitlarni /etc/openvpn/ ichidan qidiradi, shuning uchun ularni nusxalash:

# cp /etc/openvpn/easy-rsa/keys/server* /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/dh2048.pem /etc/openvpn
# cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn

Mijoz shifrlash kalitlarini tayyorlash

Siz allaqachon ko'rganingizdek, TLS shifrlash mos keladigan kalitlardan foydalanadi: biri serverga o'rnatilgan, ikkinchisi esa masofaviy mijozga o'rnatilgan. Bu sizga mijoz kalitlari kerakligini anglatadi. Bizning eski do'stimiz pkitool buning uchun sizga kerak bo'lgan narsadir. Ushbu misolda, dasturni /etc/openvpn/easy-rsa/ katalogida ishga tushirganimizda, biz unga client.crt va client.key deb nomlangan fayllarni yaratish uchun mijoz argumentini beramiz:

# ./pkitool client

Ikki mijoz fayli, hali ham kalitlar/katalogdagi asl ca.crt fayli bilan birga mijozingizga xavfsiz tarzda uzatilishi kerak. Ularning egalik huquqi va kirish huquqlari tufayli bu unchalik oson bo'lmasligi mumkin. Eng oddiy yondashuv - bu manba fayl tarkibini (va shu tarkibdan boshqa hech narsa) shaxsiy kompyuteringiz ish stolida ishlaydigan terminalga qo'lda nusxalash (matnni tanlang, ustiga sichqonchaning o'ng tugmachasini bosing va menyudan Nusxa olish-ni tanlang). Keyin uni mijozingizga ulangan ikkinchi terminalda yaratgan bir xil nomdagi yangi faylga joylashtiring.

Lekin har kim kesishi va yopishtirishi mumkin. Buning o'rniga, administrator kabi o'ylab ko'ring, chunki siz kesish/joylashtirish operatsiyalari mumkin bo'lgan GUI-dan har doim ham foydalana olmaysiz. Fayllarni foydalanuvchining uy katalogiga nusxa ko'chiring (masofaviy scp operatsiyasi ularga kirishi mumkin bo'lishi uchun) va keyin chown yordamida fayllarning egaligini ildizdan oddiy root bo'lmagan foydalanuvchiga o'zgartiring, shunda masofaviy scp amalini bajaring. Barcha fayllaringiz hozirda oʻrnatilgan va ularga kirish mumkinligiga ishonch hosil qiling. Siz ularni birozdan keyin mijozga o'tkazasiz:

# cp /etc/openvpn/easy-rsa/keys/client.key /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/ca.crt /home/ubuntu/
# cp /etc/openvpn/easy-rsa/keys/client.crt /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/client.key
# chown ubuntu:ubuntu /home/ubuntu/client.crt
# chown ubuntu:ubuntu /home/ubuntu/ca.crt

Shifrlash kalitlarining to'liq to'plami foydalanishga tayyor bo'lsa, siz serverga VPN-ni qanday yaratmoqchi ekanligingizni aytishingiz kerak. Bu server.conf fayli yordamida amalga oshiriladi.

Klaviatura bosish sonini kamaytirish

Juda ko'p yozish bormi? Qavslar bilan kengaytirish ushbu oltita buyruqni ikkitaga qisqartirishga yordam beradi. Ishonchim komilki, siz ushbu ikkita misolni o'rganib, nima bo'layotganini tushunasiz. Eng muhimi, siz ushbu tamoyillarni o'nlab yoki hatto yuzlab elementlarni o'z ichiga olgan operatsiyalarga qanday qo'llashni tushuna olasiz:

# cp /etc/openvpn/easy-rsa/keys/{ca.crt,client.{key,crt}} /home/ubuntu/
# chown ubuntu:ubuntu /home/ubuntu/{ca.crt,client.{key,crt}}

server.conf faylini sozlash

server.conf fayli qanday ko'rinishini qanday bilish mumkin? /usr/share/ dan nusxa olgan easy-rsa katalog shablonini eslaysizmi? OpenVPN-ni o'rnatganingizda, sizda /etc/openvpn/ ga nusxalashingiz mumkin bo'lgan siqilgan konfiguratsiya shablon fayli qoldi. Men shablon arxivlanganiga asoslanib, sizni foydali vosita bilan tanishtiraman: zcat.

Siz allaqachon faylning matn tarkibini cat buyrug'i yordamida ekranga chop etish haqida bilasiz, lekin fayl gzip yordamida siqilgan bo'lsa-chi? Siz har doim faylni ochishingiz mumkin, keyin mushuk uni mamnuniyat bilan chiqaradi, lekin bu zarur bo'lgandan bir yoki ikki qadam ko'proq. Buning o'rniga, siz taxmin qilganingizdek, bir qadamda ochilgan matnni xotiraga yuklash uchun zcat buyrug'ini berishingiz mumkin. Quyidagi misolda matnni ekranga chop etish o‘rniga uni server.conf deb nomlangan yangi faylga yo‘naltirasiz:

# zcat 
  /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz 
  > /etc/openvpn/server.conf
$ cd /etc/openvpn

Keling, fayl bilan birga keladigan keng qamrovli va foydali hujjatlarni chetga surib, tahrirlashni tugatgandan so'ng qanday ko'rinishini ko'raylik. E'tibor bering, nuqta-vergul (;) OpenVPN-ga keyingi qatorni o'qimaslik yoki bajarmaslikni aytadi (Ro'yxat 10.2).

"Linux in Action" kitobi
Keling, ushbu sozlamalardan ba'zilarini ko'rib chiqaylik.

  • Odatiy bo'lib, OpenVPN 1194-portda ishlaydi. Siz buni o'zgartirishingiz mumkin, masalan, faoliyatingizni yanada yashirish yoki boshqa faol tunnellar bilan ziddiyatlarni oldini olish uchun. 1194 mijozlar bilan minimal muvofiqlashtirishni talab qilganligi sababli, buni shunday qilish yaxshidir.
  • OpenVPN ma'lumotlarni uzatish uchun Transmission Control Protocol (TCP) yoki User Datagram Protocol (UDP) dan foydalanadi. TCP biroz sekinroq bo'lishi mumkin, ammo u ishonchliroq va tunnelning ikkala uchida ishlaydigan ilovalar tomonidan tushunilishi mumkin.
  • Siz oddiyroq, samaraliroq IP-tunnelni yaratmoqchi bo'lganingizda, ma'lumotlar mazmunini va boshqa hech narsa yo'qligini belgilashingiz mumkin. Agar boshqa tomondan, Ethernet ko'prigini yaratib, bir nechta tarmoq interfeyslarini (va ular ifodalovchi tarmoqlarni) ulashingiz kerak bo'lsa, siz dev tap-ni tanlashingiz kerak bo'ladi. Agar bularning barchasi nimani anglatishini tushunmasangiz, tun argumentidan foydalaning.
  • Keyingi to'rt qator OpenVPN-ga serverdagi uchta autentifikatsiya fayli va siz avval yaratgan dh2048 variantlar faylining nomlarini beradi.
  • Server qatori tizimga kirgandan so'ng mijozlarga IP manzillarni belgilash uchun ishlatiladigan diapazon va pastki tarmoq niqobini o'rnatadi.
  • Majburiy bo'lmagan surish parametri "marshrut 10.0.3.0 255.255.255.0" masofaviy mijozlarga server orqasidagi shaxsiy pastki tarmoqlarga kirish imkonini beradi. Bu ishni bajarish, shuningdek, serverning o'zida tarmoqni sozlashni talab qiladi, shunda xususiy pastki tarmoq OpenVPN quyi tarmog'i (10.8.0.0) haqida biladi.
  • Port-share localhost 80 liniyasi 1194-portda kelayotgan mijoz trafigini 80-portda tinglayotgan mahalliy veb-serverga yo'naltirish imkonini beradi. (Agar siz VPN-ni sinab ko'rish uchun veb-serverdan foydalanmoqchi bo'lsangiz, bu foydali bo'ladi.) Bu faqat ishlaydi. keyin tcp protokoli tanlanganda.
  • Foydalanuvchi nobody va group nogroup qatorlari nuqta-vergulni (;) olib tashlash orqali yoqilishi kerak. Masofaviy mijozlarni hech kim va nogroup sifatida ishlashga majburlash serverdagi seanslar imtiyozsiz bo'lishini ta'minlaydi.
  • log har safar OpenVPN ishga tushirilganda joriy jurnal yozuvlari eski yozuvlarni qayta yozishini bildiradi, log-append esa mavjud jurnal fayliga yangi yozuvlarni qo'shadi. Openvpn.log faylining o'zi /etc/openvpn/ katalogiga yozilgan.

Bundan tashqari, OpenVPN serveriga qo'shimcha ravishda bir nechta mijozlar bir-birlarini ko'rishlari uchun konfiguratsiya fayliga mijozdan mijozga qiymati ham qo'shiladi. Agar konfiguratsiyangiz sizni qoniqtirsa, OpenVPN serverini ishga tushirishingiz mumkin:

# systemctl start openvpn

OpenVPN va systemd o'rtasidagi munosabatlarning o'zgaruvchan tabiati tufayli ba'zan xizmatni ishga tushirish uchun quyidagi sintaksis talab qilinishi mumkin: systemctl start openvpn@server.

Serveringizning tarmoq interfeyslarini ro'yxatga olish uchun IP manzilini ishga tushirish endi tun0 deb nomlangan yangi interfeysga havolani chiqarishi kerak. OpenVPN uni kiruvchi mijozlarga xizmat ko'rsatish uchun yaratadi:

$ ip addr
[...]
4: tun0: mtu 1500 qdisc [...]
      link/none
      inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
          valid_lft forever preferred_lft forever

Har bir narsa to'liq ishlaguncha serverni qayta ishga tushirishingiz kerak bo'lishi mumkin. Keyingi to'xtash - mijoz kompyuteri.

10.1.2. OpenVPN mijozini sozlash

An'anaga ko'ra, tunnellar kamida ikkita chiqish joyi bilan qurilgan (aks holda biz ularni g'orlar deb atar edik). Serverda to'g'ri sozlangan OpenVPN bir tomondan tunnel ichiga va tashqarisiga trafikni boshqaradi. Ammo sizga mijoz tomonida, ya'ni tunnelning narigi tomonida ishlaydigan ba'zi dasturiy ta'minot kerak bo'ladi.

Ushbu bo'limda men OpenVPN mijozi sifatida ishlash uchun ba'zi turdagi Linux kompyuterlarini qo'lda sozlashga e'tibor qaratmoqchiman. Ammo bu imkoniyatning yagona yo'li emas. OpenVPN Windows yoki macOS operatsion tizimidagi ish stollari va noutbuklarda, shuningdek, Android va iOS smartfon va planshetlarida oʻrnatilishi va ishlatilishi mumkin boʻlgan mijoz ilovalarini qoʻllab-quvvatlaydi. Tafsilotlar uchun openvpn.net ga qarang.

OpenVPN to'plami serverda o'rnatilganidek mijoz mashinasiga o'rnatilishi kerak bo'ladi, lekin bu erda oson-rsa kerak emas, chunki siz foydalanayotgan kalitlar allaqachon mavjud. Siz client.conf shablon faylini hozirgina yaratgan /etc/openvpn/ katalogiga nusxalashingiz kerak. Bu safar fayl ziplangan bo'lmaydi, shuning uchun oddiy cp buyrug'i ishni yaxshi bajaradi:

# apt install openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf 
  /etc/openvpn/

Client.conf faylingizdagi sozlamalarning aksariyati o'z-o'zidan tushunarli bo'ladi: ular serverdagi qiymatlarga mos kelishi kerak. Quyidagi misol faylidan ko'rinib turibdiki, noyob parametr masofaviy 192.168.1.23 1194 bo'lib, mijozga serverning IP-manzilini bildiradi. Yana bu sizning server manzilingiz ekanligiga ishonch hosil qiling. Bundan tashqari, mumkin bo'lgan odam-in-the-middle hujumining oldini olish uchun mijoz kompyuterini server sertifikatining haqiqiyligini tekshirishga majbur qilishingiz kerak. Buning usullaridan biri masofaviy sertifikat-tls serverini qo'shishdir (10.3 ro'yxati).

"Linux in Action" kitobi
Endi siz /etc/openvpn/ katalogiga borib, serverdan sertifikat kalitlarini chiqarib olishingiz mumkin. Misoldagi server IP-manzilini yoki domen nomini qiymatlaringiz bilan almashtiring:

"Linux in Action" kitobi
Mijozda OpenVPN-ni ishga tushirmaguningizcha, hech qanday qiziqarli narsa bo'lmaydi. Bir nechta argumentlarni topshirishingiz kerak bo'lganligi sababli, buni buyruq satridan bajarasiz. --tls-client argumenti OpenVPN-ga mijoz sifatida harakat qilishingizni va TLS shifrlash orqali ulanishingizni bildiradi va --config konfiguratsiya faylingizga ishora qiladi:

# openvpn --tls-client --config /etc/openvpn/client.conf

To'g'ri ulanganingizga ishonch hosil qilish uchun buyruq chiqishini diqqat bilan o'qing. Agar biror narsa birinchi marta noto'g'ri ketsa, bu server va mijoz konfiguratsiya fayllari o'rtasidagi sozlamalarning mos kelmasligi yoki tarmoq ulanishi/xavfsizlik devori muammosi bo'lishi mumkin. Bu erda muammolarni bartaraf etish bo'yicha ba'zi maslahatlar mavjud.

  • Mijozdagi OpenVPN operatsiyasining natijasini diqqat bilan o'qing. Unda ko'pincha nima qilish mumkin emasligi va nima uchun kerakligi haqida qimmatli maslahatlar mavjud.
  • Serverdagi /etc/openvpn/ katalogidagi openvpn.log va openvpn-status.log fayllaridagi xato xabarlarini tekshiring.
  • OpenVPN bilan bog'liq va vaqtli xabarlar uchun server va mijozdagi tizim jurnallarini tekshiring. (journalctl -ce eng so'nggi yozuvlarni ko'rsatadi.)
  • Server va mijoz o'rtasida faol tarmoq ulanishi mavjudligiga ishonch hosil qiling (bu haqda 14-bobda batafsilroq).

Muallif haqida

Devid Klinton - tizim ma'muri, o'qituvchi va yozuvchi. U ko'plab muhim texnik fanlar, jumladan Linux tizimlari, bulutli hisoblash (ayniqsa AWS) va Docker kabi konteyner texnologiyalari uchun o'quv materiallarini boshqargan, yozgan va yaratgan. U "Amazon veb-xizmatlarini tushlik oylarida o'rganing" kitobini yozgan (Manning, 2017). Uning ko'plab video o'quv kurslarini Pluralsight.com saytida topish mumkin va uning boshqa kitoblariga (Linux boshqaruvi va server virtualizatsiyasi bo'yicha) havolalar mavjud. bootstrap-it.com.

» Kitob haqida batafsil ma’lumotni quyidagi manzildan olishingiz mumkin nashriyot sayti
» Mundarija
» Parcha

Xabrozhiteley uchun kupondan foydalangan holda 25% chegirma - Linux
Kitobning qog'oz versiyasi uchun to'lov amalga oshirilgandan so'ng, elektron kitob elektron pochta orqali yuboriladi.

Manba: www.habr.com

a Izoh qo'shish