Linux in Action ном

Linux in Action ном Сайн байна уу, Khabro оршин суугчид! Дэвид Клинтон уг номонд нөөцлөлт болон сэргээх системийг автоматжуулах, Dropbox маягийн хувийн файлын үүл үүсгэх, өөрийн MediaWiki серверийг бий болгох зэрэг бодит амьдрал дээр хэрэгжсэн 12 төслийг тайлбарласан байна. Та сонирхолтой кейс судалгаагаар виртуалчлал, гамшгийн нөхөн сэргээлт, аюулгүй байдал, нөөцлөлт, DevOps болон системийн алдааг олж засварлах талаар судлах болно. Бүлэг бүр шилдэг туршлагын тойм, шинэ нэр томьёоны тайлбар толь, дасгалуудаар төгсдөг.

Ишлэл “10.1. OpenVPN туннель үүсгэх"

Би энэ номонд шифрлэлтийн талаар маш их ярьсан. SSH болон SCP нь алсын холболтоор дамжуулагдсан өгөгдлийг хамгаалах боломжтой (Бүлэг 3), файлын шифрлэлт нь сервер дээр хадгалагдаж байх үед өгөгдлийг хамгаалах боломжтой (Бүлэг 8), TLS/SSL сертификатууд нь сайтууд болон үйлчлүүлэгч хөтчүүдийн хооронд дамжуулагдсан өгөгдлийг хамгаалах боломжтой (Бүлэг 9) . Гэхдээ заримдаа таны өгөгдлийг илүү өргөн хүрээний холболтоор хамгаалах шаардлагатай болдог. Жишээлбэл, танай багийн зарим гишүүд нийтийн сүлжээгээр дамжуулан Wi-Fi-д холбогдож байхдаа зам дээр ажилладаг байж магадгүй. Та ийм бүх хандалтын цэгүүдийг аюулгүй гэж бодож болохгүй, гэхдээ танай хүмүүст компанийн нөөцөд холбогдох арга хэрэгтэй байдаг бөгөөд үүнд VPN туслах болно.

Зөв зохион бүтээсэн VPN туннель нь найдвартай сүлжээгээр дамжих үед өгөгдлийг нуух замаар алсын үйлчлүүлэгч болон серверийн хооронд шууд холболтыг хангадаг. Тэгээд юу гэж? Та үүнийг шифрлэлтийн тусламжтайгаар хийж болох олон хэрэгслийг аль хэдийн харсан. VPN-ийн жинхэнэ үнэ цэнэ нь хонгил нээснээр та алсын сүлжээг бүгдийг нь дотоод сүлжээ шиг холбож болно. Нэг ёсондоо та тойруулгыг ашиглаж байна гэсэн үг.

Энэхүү өргөтгөсөн сүлжээг ашигласнаар администраторууд сервер дээрээ хаанаас ч ажлаа гүйцэтгэх боломжтой. Гэхдээ хамгийн чухал нь олон байршилд тархсан нөөцтэй компани нь тэдгээрийг хаана ч байсан хэрэгтэй бүх бүлгүүдэд харагдахуйц, хүртээмжтэй болгож чадна (Зураг 10.1).

Хонгил өөрөө аюулгүй байдлыг хангахгүй. Гэхдээ шифрлэлтийн стандартуудын нэгийг сүлжээний бүтцэд оруулж болох бөгөөд энэ нь аюулгүй байдлын түвшинг ихээхэн нэмэгдүүлдэг. Нээлттэй эхийн OpenVPN багц ашиглан үүсгэсэн хонгилууд нь таны уншиж байсан TLS/SSL шифрлэлтийг ашигладаг. OpenVPN бол туннель хийх цорын ганц сонголт биш боловч хамгийн алдартай хувилбаруудын нэг юм. Энэ нь IPsec шифрлэлтийг ашигладаг 2-р түвшний туннелийн өөр протоколоос арай хурдан бөгөөд аюулгүй гэж тооцогддог.

Та багийнхаа бүх гишүүдийг зам дээр эсвэл өөр барилгад ажиллаж байхдаа хоорондоо аюулгүйгээр харилцахыг хүсч байна уу? Үүнийг хийхийн тулд та програмыг хуваалцах, серверийн дотоод сүлжээний орчинд хандах боломжийг олгохын тулд OpenVPN сервер үүсгэх хэрэгтэй. Үүнийг ажиллуулахын тулд та хоёр виртуал машин эсвэл хоёр контейнер ажиллуулахад л хангалттай: нэг нь сервер/хост, нөгөө нь үйлчлүүлэгчийн үүргийг гүйцэтгэх. VPN бүтээх нь энгийн үйл явц биш тул ерөнхий дүр зургийг санахад хэдэн минут зарцуулах нь зүйтэй болов уу.

Linux in Action ном

10.1.1. OpenVPN серверийн тохиргоо

Эхлэхээсээ өмнө би танд хэрэгтэй зөвлөгөө өгөх болно. Хэрэв та үүнийг өөрөө хийх гэж байгаа бол (би танд зөвлөж байна) ширээний компьютер дээрээ олон терминалын цонх нээгдэж, тус бүр нь өөр машинд холбогдсон байж магадгүй юм. Хэзээ нэгэн цагт та цонх руу буруу тушаал оруулах эрсдэлтэй. Үүнээс зайлсхийхийн тулд та hostname командыг ашиглан командын мөрөнд харагдах машины нэрийг хаана байгааг тань тодорхой зааж өгөх зүйл болгон өөрчилж болно. Үүнийг хийсний дараа шинэ тохиргоо хүчин төгөлдөр болохын тулд серверээс гарч, дахин нэвтрэх шаардлагатай болно. Энэ нь иймэрхүү харагдаж байна:

Linux in Action ном
Энэ аргыг дагаж, ажиллаж байгаа машин бүртээ тохирох нэр өгснөөр та хаана байгаагаа хялбархан хянах боломжтой.

Хост нэрийг ашигласны дараа дараагийн командуудыг гүйцэтгэх үед та Host OpenVPN-Серверийг шийдвэрлэх боломжгүй гэсэн ядаргаатай мессежүүдтэй тулгарч магадгүй. /etc/hosts файлыг тохирох шинэ хостын нэрээр шинэчлэх нь асуудлыг шийдэх ёстой.

OpenVPN-д серверээ бэлдэж байна

OpenVPN-ийг сервер дээрээ суулгахын тулд танд хоёр багц хэрэгтэй: openvpn болон easy-rsa (шифрлэлтийн түлхүүр үүсгэх процессыг удирдах). CentOS хэрэглэгчид шаардлагатай бол эхлээд 2-р бүлэгт дурдсанчлан epel-release репозиторыг суулгах хэрэгтэй. Серверийн програмд ​​​​хэрэглэх боломжийг шалгахын тулд та Apache вэб серверийг (Ubuntu дээр apache2, CentOS дээр httpd) суулгаж болно.

Таныг серверээ тохируулах үед би 22 (SSH) болон 1194 (OpenVPN-ийн анхдагч порт)-аас бусад бүх портуудыг блоклодог галт ханыг идэвхжүүлэхийг зөвлөж байна. Энэ жишээ нь Ubuntu дээр ufw хэрхэн ажиллахыг харуулсан боловч 9-р бүлгээс CentOS галт ханын програмыг санаж байгаа гэдэгт итгэлтэй байна.

# ufw enable
# ufw allow 22
# ufw allow 1194

Сервер дээрх сүлжээний интерфэйсүүдийн хооронд дотоод чиглүүлэлт хийхийг идэвхжүүлэхийн тулд та /etc/sysctl.conf файлын нэг мөрийг (net.ipv4.ip_forward = 1) тайлбарлах хэрэгтэй. Энэ нь алсын үйлчлүүлэгчид холбогдсоны дараа шаардлагатай бол дахин чиглүүлэх боломжийг олгоно. Шинэ сонголтыг ажиллуулахын тулд sysctl -p командыг ажиллуулна уу:

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

Таны серверийн орчин бүрэн тохируулагдсан боловч бэлэн болохоос өмнө хийх өөр нэг зүйл байна: та дараах алхмуудыг хийх хэрэгтэй (бид дараа нь тэдгээрийг дэлгэрэнгүй авч үзэх болно).

  1. Easy-rsa багцад өгөгдсөн скриптүүдийг ашиглан сервер дээр нийтийн түлхүүрийн дэд бүтцийн (PKI) шифрлэлтийн түлхүүрүүдийг үүсгэнэ үү. Үндсэндээ OpenVPN сервер нь өөрийн гэрчилгээжүүлэх эрх бүхий байгууллагын (CA) үүрэг гүйцэтгэдэг.
  2. Үйлчлүүлэгчид тохирох түлхүүрүүдийг бэлтгэ
  3. Серверийн server.conf файлыг тохируулна уу
  4. OpenVPN клиентээ тохируулна уу
  5. VPN-ээ шалгана уу

Шифрлэлтийн түлхүүрүүдийг үүсгэж байна

Бүх зүйлийг энгийн байлгахын тулд та OpenVPN сервер ажиллаж байгаа ижил төхөөрөмж дээр үндсэн дэд бүтцээ тохируулж болно. Гэсэн хэдий ч аюулгүй байдлын шилдэг туршлагууд нь үйлдвэрлэлийн байршуулалтад тусдаа CA сервер ашиглахыг санал болгодог. OpenVPN-д ашиглах шифрлэлтийн түлхүүрийн нөөцийг үүсгэх, түгээх үйл явцыг Зураг дээр үзүүлэв. 10.2.

Linux in Action ном
Таныг OpenVPN суулгах үед /etc/openvpn/ лавлах автоматаар үүсгэгдсэн боловч одоохондоо юу ч байхгүй байна. Openvpn болон easy-rsa багцууд нь загвар файлын жишээнүүдийн хамт ирдэг бөгөөд үүнийг та өөрийн тохиргооны үндэс болгон ашиглаж болно. Гэрчилгээжүүлэх үйл явцыг эхлүүлэхийн тулд easy-rsa загварын лавлахыг /usr/share/-аас /etc/openvpn руу хуулж, easy-rsa/ лавлах руу өөрчилнө үү.

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

Easy-rsa лавлах одоо нэлээд хэдэн скрипт агуулсан болно. Хүснэгтэнд 10.1-д түлхүүр үүсгэхэд ашиглах хэрэгслүүдийг жагсаав.

Linux in Action ном

Дээрх үйлдлүүд нь root эрх шаарддаг тул sudo su-ээр дамжуулан root болох хэрэгтэй.

Таны ажиллах эхний файлыг vars гэж нэрлэдэг бөгөөд хялбар-rsa түлхүүр үүсгэх үед ашигладаг орчны хувьсагчдыг агуулдаг. Та аль хэдийн байгаа өгөгдмөл утгуудын оронд өөрийн утгыг ашиглахын тулд файлыг засах хэрэгтэй. Миний файл иймэрхүү харагдах болно (Жагсаалт 10.1).

Жагсаалт 10.1. Файлын үндсэн хэсгүүд /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 файлыг ажиллуулах нь түүний утгыг бүрхүүлийн орчинд шилжүүлэх бөгөөд тэдгээр нь таны шинэ түлхүүрүүдийн агуулгад багтах болно. Яагаад sudo тушаал өөрөө ажиллахгүй байна вэ? Учир нь эхний алхамд бид vars нэртэй скриптийг засаад дараа нь хэрэглэнэ. Хэрэглэх нь vars файл нь утгуудаа бүрхүүлийн орчинд дамжуулж, тэдгээр нь таны шинэ түлхүүрүүдийн агуулгад багтах болно гэсэн үг юм.

Дуусаагүй процессыг дуусгахын тулд шинэ бүрхүүл ашиглан файлыг дахин ажиллуулахаа мартуузай. Үүнийг хийж дууссаны дараа скрипт нь /etc/openvpn/easy-rsa/keys/ лавлах дахь аливаа агуулгыг устгахын тулд өөр скриптийг ажиллуулахыг хүсэх болно.

Linux in Action ном
Мэдээжийн хэрэг, дараагийн алхам бол clean-all скриптийг ажиллуулж, дараа нь build-ca-г ажиллуулах бөгөөд энэ нь pkitool скриптийг ашиглан root сертификат үүсгэх болно. Та vars-аас өгсөн таниултын тохиргоог баталгаажуулахыг хүсэх болно:

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

Дараа нь build-key-server скрипт ирдэг. Энэ нь шинэ эх гэрчилгээний хамт ижил pkitool скрипт ашигладаг тул түлхүүр хос үүсгэсэн эсэхийг баталгаажуулахын тулд та ижил асуултуудыг харах болно. Түлхүүрүүдийг таны дамжуулсан аргументууд дээр үндэслэн нэрлэх бөгөөд хэрэв та энэ машин дээр олон VPN ажиллуулахгүй бол жишээн дээрх шиг сервер байх болно:

# ./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 нь Diffie-Hellman алгоритмаар үүсгэгдсэн параметрүүдийг (build-dh ашиглан) ашиглан шинэ холболтын баталгаажуулалтыг хийдэг. Энд үүсгэсэн файл нь нууц байх шаардлагагүй бөгөөд одоогоор идэвхтэй байгаа RSA түлхүүрүүдийн build-dh скриптийг ашиглан үүсгэгдсэн байх ёстой. Хэрэв та ирээдүйд шинэ RSA түлхүүр үүсгэвэл Diffie-Hellman файлыг шинэчлэх шаардлагатай болно:

# ./build-dh

Таны серверийн талын түлхүүрүүд одоо /etc/openvpn/easy-rsa/keys/ санд байх болно, гэхдээ OpenVPN үүнийг мэдэхгүй. Өгөгдмөл байдлаар, OpenVPN түлхүүрүүдийг /etc/openvpn/ дотор хайх тул тэдгээрийг хуулна:

# 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

Үйлчлүүлэгчийн шифрлэлтийн түлхүүрүүдийг бэлтгэж байна

Таны харж байгаагаар TLS шифрлэлт нь сервер дээр суулгасан, алсын клиент дээр суулгасан хос түлхүүрүүдийг ашигладаг. Энэ нь танд үйлчлүүлэгчийн түлхүүр хэрэгтэй болно гэсэн үг юм. Манай хуучин найз pkitool бол танд яг хэрэгтэй зүйл юм. Энэ жишээн дээр бид програмыг /etc/openvpn/easy-rsa/ директорт ажиллуулахдаа client.crt болон client.key нэртэй файлуудыг үүсгэхийн тулд клиент аргументыг дамжуулдаг:

# ./pkitool client

Түлхүүр/санд байгаа анхны ca.crt файлын хамт хоёр клиент файлыг одоо таны үйлчлүүлэгч рүү аюулгүйгээр шилжүүлэх ёстой. Тэдний эзэмшил, нэвтрэх эрхийн улмаас энэ нь тийм ч амар биш байж магадгүй юм. Хамгийн энгийн арга бол эх файлын агуулгыг (мөн энэ контентоос өөр зүйл байхгүй) өөрийн компьютерийн ширээний компьютер дээр ажиллаж байгаа терминал руу гараар хуулах явдал юм (текстийг сонгоод хулганы баруун товчийг дараад цэснээс Хуулахыг сонгоно уу). Дараа нь үүнийг үйлчлүүлэгчтэйгээ холбогдсон хоёр дахь терминал дээр үүсгэсэн ижил нэртэй шинэ файл руу буулгана уу.

Гэхдээ хэн ч зүсэж, нааж болно. Харин оронд нь администратор шиг бодоорой, учир нь та огтлох/буулгах үйлдэл хийх боломжтой GUI-д үргэлж хандах боломжгүй болно. Файлуудыг хэрэглэгчийн нүүр директор руу хуулж (алсын scp үйлдэл тэдгээрт хандах боломжтой) дараа нь chown ашиглан файлуудын өмчлөлийг root-оос энгийн root бус хэрэглэгч болгон өөрчил, ингэснээр алсын scp үйлдлийг гүйцэтгэх боломжтой болно. Таны бүх файл одоо суулгагдсан, хандах боломжтой эсэхийг шалгаарай. Та тэдгээрийг хэсэг хугацааны дараа үйлчлүүлэгч рүү шилжүүлэх болно:

# 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

Шифрлэлтийн түлхүүрүүдийн бүрэн багцыг ашиглахад бэлэн байгаа тул та VPN-г хэрхэн үүсгэхээ серверт хэлэх хэрэгтэй. Энэ нь server.conf файлыг ашиглан хийгддэг.

Товчлуурын тоог багасгах

Хэт их юм бичиж байна уу? Хаалттай өргөтгөл нь эдгээр зургаан тушаалыг хоёр болгон багасгахад тусална. Та энэ хоёр жишээг судалж, юу болоод байгааг ойлгож чадна гэдэгт итгэлтэй байна. Хамгийн чухал нь та эдгээр зарчмуудыг хэдэн арван эсвэл бүр хэдэн зуун элементийг хамарсан үйл ажиллагаанд хэрхэн хэрэгжүүлэх талаар ойлгох боломжтой болно.

# 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 файлыг тохируулж байна

server.conf файл ямар байх ёстойг яаж мэдэх вэ? /usr/share/-аас хуулсан easy-rsa лавлах загвараа санаж байна уу? Та OpenVPN-г суулгахад /etc/openvpn/ руу хуулж болох шахсан тохиргооны загвар файлтай үлдсэн. Би загвар нь архивлагдсан баримт дээр тулгуурлан танд хэрэгтэй хэрэглүүрийг танилцуулах болно: zcat.

Файлын текстийн агуулгыг cat командыг ашиглан дэлгэцэн дээр хэвлэх талаар та аль хэдийн мэддэг байсан ч файлыг gzip ашиглан шахвал яах вэ? Та үргэлж файлыг задлах боломжтой бөгөөд дараа нь муур үүнийг баяртайгаар гаргах болно, гэхдээ энэ нь шаардлагатай хэмжээнээс нэг эсвэл хоёр алхам илүү юм. Үүний оронд та zcat командыг өгч задалаагүй текстийг санах ойд нэг алхамаар ачаалж болно. Дараах жишээнд та текстийг дэлгэцэн дээр хэвлэхийн оронд server.conf нэртэй шинэ файл руу дахин чиглүүлэх болно.

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

Файлтай хамт ирдэг өргөн хүрээтэй, хэрэгтэй баримт бичгийг хойш тавьж, засварлаж дууссаны дараа энэ нь ямар харагдахыг харцгаая. Цэг таслал (;) нь OpenVPN-д дараагийн мөрийг уншихгүй, ажиллуулахгүй байхыг хэлдэг гэдгийг анхаарна уу (Жагсаалт 10.2).

Linux in Action ном
Эдгээр тохиргоонуудын заримыг авч үзье.

  • Анхдагчаар OpenVPN нь 1194 порт дээр ажилладаг. Жишээлбэл, та үйл ажиллагаагаа цаашид нуух эсвэл бусад идэвхтэй хонгилтой зөрчилдөхөөс зайлсхийхийн тулд үүнийг өөрчилж болно. 1194 нь үйлчлүүлэгчидтэй хамгийн бага зохицуулалт шаарддаг тул үүнийг ингэж хийх нь хамгийн сайн арга юм.
  • OpenVPN нь өгөгдөл дамжуулахдаа Transmission Control Protocol (TCP) эсвэл User Datagram Protocol (UDP) ашигладаг. TCP нь арай удаан байж болох ч энэ нь илүү найдвартай бөгөөд хонгилын хоёр төгсгөлд ажиллаж байгаа програмуудад илүү ойлгомжтой байдаг.
  • Та өгөгдлийн агуулгыг агуулсан илүү энгийн, илүү үр ашигтай IP туннель үүсгэхийг хүсвэл dev tun-г зааж өгч болно. Хэрэв эсрэгээр та олон сүлжээний интерфэйсүүдийг (мөн тэдгээрийн төлөөлдөг сүлжээг) холбож, Ethernet гүүр үүсгэх шаардлагатай бол dev tap-ыг сонгох хэрэгтэй болно. Хэрэв та энэ бүхэн юу гэсэн үг болохыг ойлгохгүй байгаа бол tun аргументыг ашиглана уу.
  • Дараагийн дөрвөн мөрөнд OpenVPN-д сервер дээрх гурван баталгаажуулалтын файл болон таны өмнө үүсгэсэн dh2048 сонголтын файлын нэрийг өгнө.
  • Серверийн шугам нь нэвтрэх үед үйлчлүүлэгчдэд IP хаяг өгөхөд ашиглагдах хүрээ болон дэд сүлжээний маскыг тогтоодог.
  • Нэмэлт түлхэх параметр "маршрут 10.0.3.0 255.255.255.0" нь алсын үйлчлүүлэгчдэд серверийн ард байгаа хувийн дэд сүлжээнд хандах боломжийг олгодог. Энэ ажлыг хийхийн тулд хувийн дэд сүлжээ нь OpenVPN дэд сүлжээний (10.8.0.0) талаар мэдэхийн тулд сервер дээр сүлжээг тохируулах шаардлагатай.
  • Port-share localhost 80 шугам нь 1194-р порт дээр ирж буй үйлчлүүлэгчийн урсгалыг 80-р портыг сонсож байгаа дотоод вэб сервер рүү дахин чиглүүлэх боломжийг олгодог. (Хэрэв та VPN-ээ шалгахын тулд вэб сервер ашиглах гэж байгаа бол энэ нь хэрэг болно.) Энэ нь зөвхөн ажиллана. дараа нь tcp протоколыг сонгох үед.
  • Хэрэглэгч nobody болон групп nogroup мөрүүдийг цэг таслалыг (;) арилгах замаар идэвхжүүлэх ёстой. Алсын үйлчлүүлэгчдийг хэн ч биш, бүлэггүй гэж ажиллуулахыг албадах нь сервер дээрх сешнүүдийг давуу эрхгүй болгодог.
  • log нь OpenVPN-г эхлүүлэх бүрт одоогийн бүртгэлийн оруулгууд хуучин оруулгуудыг дарж бичихийг зааж өгдөг бол log-append нь одоо байгаа бүртгэлийн файлд шинэ оруулгуудыг хавсаргана. openvpn.log файл нь өөрөө /etc/openvpn/ санд бичигдсэн байдаг.

Нэмж дурдахад, тохиргооны файлд үйлчлүүлэгчээс үйлчлүүлэгчийн утгыг ихэвчлэн нэмдэг бөгөөд ингэснээр OpenVPN серверээс гадна олон үйлчлүүлэгч бие биенээ харж болно. Хэрэв та өөрийн тохиргоонд сэтгэл хангалуун байвал OpenVPN серверийг эхлүүлж болно:

# systemctl start openvpn

OpenVPN болон systemd хоорондын харилцааны мөн чанар өөрчлөгдөж байгаа тул заримдаа үйлчилгээг эхлүүлэхийн тулд дараах синтакс шаардлагатай байж болно: systemctl start openvpn@server.

Таны серверийн сүлжээний интерфэйсүүдийг жагсаахын тулд ip addr-г ажиллуулснаар tun0 нэртэй шинэ интерфэйс рүү холбоос гарч ирнэ. OpenVPN нь ирж буй үйлчлүүлэгчдэд үйлчлэхийн тулд үүнийг үүсгэнэ:

$ 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

Бүх зүйл бүрэн ажиллаж эхлэхээс өмнө серверийг дахин ачаалах шаардлагатай байж магадгүй юм. Дараагийн зогсоол бол үйлчлүүлэгчийн компьютер юм.

10.1.2. OpenVPN клиентийг тохируулж байна

Уламжлал ёсоор хонгилуудыг дор хаяж хоёр гарцтай барьдаг (өөрөөр бол бид тэднийг агуй гэж нэрлэдэг). Сервер дээрх зөв тохируулагдсан OpenVPN нь хонгил руу орж гарах урсгалыг нэг талаас нь чиглүүлдэг. Гэхдээ танд үйлчлүүлэгчийн талд, өөрөөр хэлбэл хонгилын нөгөө үзүүрт ажилладаг програм хангамж хэрэгтэй болно.

Энэ хэсэгт би зарим төрлийн Linux компьютерийг OpenVPN үйлчлүүлэгчийн үүргийг гүйцэтгэхийн тулд гараар тохируулахад анхаарлаа хандуулах болно. Гэхдээ энэ бол ийм боломж байгаа цорын ганц арга зам биш юм. OpenVPN нь Windows эсвэл macOS үйлдлийн системтэй ширээний компьютер, зөөврийн компьютер, мөн Android болон iOS ухаалаг гар утас, таблет дээр суулгаж, ашиглах боломжтой клиент програмуудыг дэмждэг. Дэлгэрэнгүйг openvpn.net сайтаас авна уу.

OpenVPN багцыг сервер дээр суулгасан тул клиент машин дээр суулгах шаардлагатай болно, гэхдээ таны ашиглаж буй түлхүүрүүд аль хэдийн байгаа тул энд easy-rsa шаардлагагүй. Та client.conf загварын файлыг өөрийн үүсгэсэн /etc/openvpn/ директор руу хуулах хэрэгтэй. Энэ удаад файлыг зипд оруулахгүй тул ердийн cp команд нь ажлыг маш сайн хийх болно:

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

Таны client.conf файлын ихэнх тохиргоонууд нь өөрөө ойлгомжтой байх болно: тэдгээр нь сервер дээрх утгатай тохирч байх ёстой. Дараах жишээ файлаас харахад өвөрмөц параметр нь алсын удирдлагатай 192.168.1.23 1194 бөгөөд энэ нь үйлчлүүлэгчид серверийн IP хаягийг хэлдэг. Дахин хэлэхэд энэ нь таны серверийн хаяг мөн эсэхийг шалгаарай. Та мөн үйлчлүүлэгчийн компьютерийг серверийн гэрчилгээний жинхэнэ эсэхийг шалгахыг шаардаж, магадгүй хүн дундах халдлагаас урьдчилан сэргийлэх хэрэгтэй. Үүнийг хийх нэг арга бол remote-cert-tls серверийг нэмэх явдал юм (Жагсаалт 10.3).

Linux in Action ном
Та одоо /etc/openvpn/ лавлах руу орж, серверээс баталгаажуулалтын түлхүүрүүдийг гаргаж авах боломжтой. Жишээн дээрх серверийн IP хаяг эсвэл домэйн нэрийг өөрийн утгуудаар солино уу:

Linux in Action ном
OpenVPN-ийг үйлчлүүлэгч дээр ажиллуулах хүртэл сэтгэл хөдөлгөм зүйл тохиолдохгүй. Та хэд хэдэн аргумент дамжуулах шаардлагатай тул командын мөрөөс үүнийг хийх болно. --tls-client аргумент нь OpenVPN-д таныг үйлчлүүлэгчийн үүргийг гүйцэтгэж, TLS шифрлэлтээр холбогдоно гэж хэлдэг ба --config нь таны тохиргооны файл руу чиглэнэ:

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

Зөв холбогдсон эсэхээ шалгахын тулд тушаалын гаралтыг анхааралтай уншина уу. Хэрэв ямар нэг зүйл анх удаа буруу болвол энэ нь сервер болон үйлчлүүлэгчийн тохиргооны файлуудын тохиргооны таарахгүй байдал эсвэл сүлжээний холболт/галт ханын асуудалтай холбоотой байж болно. Энд алдааг олж засварлах хэдэн зөвлөмж байна.

  • Үйлчлүүлэгч дээрх OpenVPN үйлдлийн гаралтыг анхааралтай уншина уу. Энэ нь ихэвчлэн яг юу хийж болохгүй, яагаад гэсэн үнэтэй зөвлөгөөг агуулдаг.
  • Сервер дээрх /etc/openvpn/ лавлах дахь openvpn.log болон openvpn-status.log файлуудын алдааны мэдэгдлийг шалгана уу.
  • OpenVPN-тэй холбоотой болон хугацаатай мессежийг сервер болон үйлчлүүлэгчийн системийн бүртгэлээс шалгана уу. (journalctl -ce нь хамгийн сүүлийн бичлэгүүдийг харуулах болно.)
  • Сервер болон үйлчлүүлэгчийн хооронд идэвхтэй сүлжээний холболт байгаа эсэхээ шалгаарай (энэ талаар дэлгэрэнгүйг 14-р бүлэгт).

Зохиогчийн тухай

Дэвид Клинтон - системийн администратор, багш, зохиолч. Тэрээр Линукс систем, үүлэн тооцоолол (ялангуяа AWS), Докер зэрэг контейнерийн технологи зэрэг олон чухал техникийн салбаруудад зориулсан сургалтын материалыг удирдаж, бичиж, бүтээсэн. Тэрээр “Амазоны вэб үйлчилгээг үдийн хоолны сард сур” (Маннинг, 2017) ном бичсэн. Түүний олон видео сургалтын курсуудыг Pluralsight.com дээрээс олж болно, мөн түүний бусад номны холбоосыг (Линукс удирдлага болон серверийн виртуалчлалын тухай) эндээс авах боломжтой. bootstrap-it.com.

» Номын талаарх дэлгэрэнгүй мэдээллийг эндээс авах боломжтой нийтлэгчийн вэбсайт
» Агуулга
» Ишлэл

Khabrozhiteley-ийн хувьд купон ашиглан 25% хөнгөлөлт - Linux
Номын цаасан хувилбарыг төлсний дараа цахим номыг цахим шуудангаар илгээнэ.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх