Virtual private network

**Virtual private network** буюу **VPN** (**Хувийн хуурмаг сүлжээ**) гэдэг нь интернет зэрэг олон нийтийн харилцаа холбооны дэд бүтцийг ашиглан төв байгууллагынхаа сүлжээтэй холбогдох сүлжээ юм.

## VPN-н тухай 
VPN гэдэг нь (VIRTUAL PRIVATE NETWORK үгийн товчлол) нийтийн эзэмшлийн сүлжээ буюу интернэт сүлжээг ашиглан Хостуудын хооронд газар нутгийн байрлалаас үл хамааран хувийн, нууцлалтай сүлжээг бий болгодог бөгөөд мэдээллийг ямар нэгэн гадны халдлагад өртөхгүйгээр найдвартай дамжуулах боломжийг олгодог технологи юм. Анх 1998 онд үүссэн. 
Encryption болон электрон гарын үсэг нь encapsulating технологи ашиглагдаж эхэлсэнээс хойш нэмэгдсэн юм. Encapsulated буюу өгөгдөлийг капсул болгосон өгөгдөл нь VPN холболтын үед дамжуулагдахын тулд туннель үүсгэсэн байдаг.
Интернэтээр таны дамжиж байгаа өгөгдөл encrypt хийгдээгүй л бол бүгдийн нүдэнд ил байгаа л гэсэн үг. VPN нь аюулгүй байдлыг нэмэгдүүлэх үүднээс бүхийл апликэйшн болон IP эсвэл Ethernet ашиглан автомат encryption хэрэглэдэг.
Хуучны VPN протоколууд тодорхой хэмжээний алдаа болон хэрэглэгчийн хэрэгцээг тийм ч сайн хангаж чадахгүй байсан харин Одоо үед ашиглагдаж байгаа VPN систем нь хүчирхэг функцуудтай мөн бодит үр дүнтэй, маш уян хатан шинж чанартай болсоноороо дээрх асуудлуудыг шийдэж чадсан юм.
Мөн сүүлийн үеийн VPN нь технологи нь Сүлжээний 2 дэх түвшинд хийсвэр байдлаар ажиллах чадвартай болсон юм

Virtual private network буюу хийсэр хувийн сүлжээний гол онцлог бол өгөгдлийг өөр хоорондоо өндөр нууцлалтайгаар дамжуулах юм. Үндсэн 2 төрлийн нууцлал байдаг.
* Symmetric буюу нууцлах түлхүүр, тайлах түлхүүр хоорондоо ижилхэн. Өөрөөр хэлбэл өгөгдлийг нууцлаад, түүнийг тайлж унших нэг л түлхүүр хэрэглэдэг.

* Asymmetric буюу нууцдах түлхүүр, тайлах түлхүүр хоѐр хоорондоо ялгаатай. Өөрөөр хэлбэл тухайн мэдээллийг хүлээн авах гэж байгаа хэрэглэгчийн public key (нийтийн түлхүүр) ээр мэдээллийг шифрлэж хэрэглэж тухайн шифрлэсэн мэдээллийг өөрийн private key (хувийн түлхүүр) ээр тайлж жинхэнэ эхийг(plaintext) гаргаж авдаг аргууд орно.

### VPN-н давуу тал 
* Зардалд хэмнэлттэй
* Сүлжээний зохион байгуулалт нь энгийн, хялбар
* Хамгаалалтын механизм сайтай
* Өргөтгөх боломжтой
* Өргөн зурвасын сүлжээнд ашиглахад тохиромжтой

## VPN-н ажиллагааны зарчим 
* Authentication – сүлжээнд хандаж байгаа хэрэглэгчдийг шалгах. (passwords, digital certificates, smart cards, and biometrics зэрэгээр)
* Data Confidentiality – өгөгдлийг гадны зөвшөөрөлгүй хэрэглэгчийн хандалтаас хамгаалж нууцлах. (Encryption algorithms ашиглан)
DES, 3DES, AES гэсэн нийтлэг шифрлэлтийн алгоритмууд байгаа бөгөөд DES нь 56bit, 3DES нь 56bit*3=168bits, AES нь 256bit-н урттай түлхүүр ашиглан өгөгдлийг шифрлэдэг. Эх текст ба түлхүүрийг бага зэрэг өөрчлөхөд шифр текст асар их өөрчлөгддөг давуу талтай. Түлхүүрийн урт хэдий чинээ урт байна түлхүүрийг тайлах магадлал тэр хэмжээгээр бага байдаг.
 Өнөөгийн VPN төрлүүд нь Triple DES ANSI standard x9.52 –г хэрэглэж байгаа бөгөөд өгөгдөл 3 удаагийн дамжлагаар нууцлагддаг ба энэ үед нийтийн түлхүүр (public key) нь тодорхой хугацаанд дахин дахин өөрчлөгддөг болохоор түлхүүрийг тайлсан ч хэсэгхэн хугацаанд л хэрэглэх боломжтой.
* Data Integrity – өгөгдлийн бүрэн бүтэн байдлыг хангах. (Hash algorithms ашиглан)
Hash algorythm нь оролтод орж ирж байгаа мэссэжийн уртаас үл хамааран (дурын урттай мэссэж оруулахад) гаралтад тогтмол 128 битийн хэш утга буцаадаг. 
Хэш функц /Hash functions/- Мэдээлэл буюу мессэжийн бүрэн бүтэн байдлыг хангах үүрэгтэй. Бусад нууцлал хамгааллын механизмтай хамтран ашиглагдана.
Хэш функц H–ийн үйлдэл: Оролтонд -Санамсаргүй урттай M мессэж ороход түүний гаралтанд тогтмол урттай H(M)утга гарна. Үр дүнд бий болсон H(M)–ийг хэш утга гэж нэрлэдэг бөгөөд text,message digest, checksum аль ч хэлбэрт хөрвүүлэх боломжтой.

Хостууд нь хоорондоо өндөр нууцлалтайгаар найдвартай холбогдоно. Ингэж холбогдохдоо 3 алхамыг дамжина.

1. Identification буюу холбогдох нэр болон нууц үгээ оруулах

2. Authentication буюу нэр болон нууц үг мөн эсэхийг бататгах3. Authorization буюу сүлжээнд ажиллах боломжтой эсэхийг харуулна. 

### VPN сүлжээний төхөөрөмжүүд 
VPN тохируулагдан ажиллаж буй сүлжээний төхөөрөмжүүдийг байрлалаас нь хамааруулж Provider Edge болон Customer Edge гэж ялган нэрлэдэг. Тухайн үйлчилгээ үзүүлэгч байгууллагын provider backbone сүлжээний хэрэглэгчийн vpn site сүлжээтэй виртуалиар холбогдож байгаа хамгийн захын төхөөрөмжийг Provider Edge гэнэ. 

Хэрэглэгчийн vpn site сүлжээний үйлчилгээ үзүүлэгч байгууллагын provider backbone сүлжээтэй виртуалиар холбогдож байгаа хамгийн захын төхөөрөмжийг Customer Edge гэнэ.

Provider Edge:	-PE routers	-PE switches	-PE both Router, Switch

Customer Edge:	-CE routers	-CE switches

## VPN-н ангилал 
VPN нь site-to-site болон remote access гэсэн үндсэн 2 төрлөөр ажилладаг.

### Site-to-Site 
 Энэхүү VPN нь өөр өөр газар байрлах оффисуудыг интертэд дээгүүрх хувийн аюулгүй холболт үүсгэж зохицуулах үүрэгтэй.
Site-to-site VPN нь компаны сүлжээг өргөтгөх, компьютерийн нөөц бололцоог ашиглах үүднээс өөр өөр газруудаас нэг байршилруу хандаж ажиллах боломжийг олгоно.Энэхүү төрлийн сүлжээ дэлхий дээрх маш олон салбар оффисуудыг үндсэн оффистой холбох үүргийг гүйцэтгэж байна.
 
* Intranet- Хэрвээ компани нь нэг эсвэл бусад алсын байршилаас дан ганц хувийн сүлжээрүү нэвтэрч ордог байх, эдгээр тохиолдолд Intranet VPN үүсгэж ашиглах ба LAN тус бүр дан ганц WAN сүлжээрүү холбогдох юм.
* Extranet- Хэрвээ компани нь хамтран ажилладаг байгууллагуудтайгаа эсвэл захиалагч байгуулагуудтайгаа сүлжээн дээрх харилцаа холбоо байдаггүй бол, Энэхүү төрөл нь өргөтгөсөн VPN холболтыг хийж тэдгээр компаны LAN уудыг холбох боломжийг өгнө. Энэ өргөтгөсөн VPN нь компаниуд ажлаа хамтран хийх аюулгүй болон хуваалцдаг сүлжээний орчинг тус тусдаа байгаа intranet-үүдийг холбож үүсгэж болно.

### Remote access 
Remote-access VPN нь тусдаа хэрэглэгчидэд алсын компьютераас аюулгүй сүлжээгээр холбогдох боломжийг олгодог. Тэдгээр хэрэглэгчид нь аюулгүй байдлын шаардлагын хангасан тохиолдолд тухайн сервертэй шууд холбогдоно.
жишээ нь: Компаниудад олон зуун хэрэглэгчийг аюулгүй холбогдох нөхцөлийг хангах зорилгоор энэхүү remote-access VPN ашигладаг.
Өөр нэг нэршил буюу VPN төрөл нь virtual private dial-up network (VPDN) юм.
Энэ нь бидний хэрэглэдэг aналог телефон систем ба энэ нь серверлүү дуудлага хийхэд remote-access VPN шаардагддаг юм.
remote-access VPN нь 2 үндсэн бүрэлдэхүүн хэсэгтэй. Эхнийхд нь network access server буюу NAS юм. NAS нь дан ганц сервер байх эсвэл олон төрлийн хэрэглээний програмууд энэхүү хуваалцдаг сервер дээр ажиллаж байх зэргээр ажилладаг. Энэ нь тухайн хэрэглэгч интернэтээр дамжуулан холбогдох ба VPN нь ашигладаг. NAS нь зөвхөн VPN холбогдохыг зөвшөөрөгдсөн буюу баталгаажсан хэрэглэгчийг ашиглах нь зөвшөөрөгдөнө.
Хэрэглэгчдийн баталгаажуулалтыг NAS нь сүлжээг ашиглан баталгаажуулах сервер дээр хийдэг. Зарим remote-access VPN клиент програм хангамжийг шаарддаг. Ерөнхийдөө үндсэн төв серверлүү VPN ашиглан холбогдох гэж байгаа бол тухайн хэрэглэгчийн компьютер дээр клиент програм хангамж суусан байх шаардлагатай гэсэн үг. Томоохон корпораци болон бизнесийн байгууллагууд хэдэн арван албан хаагчидтай газрууд remote-access VPN ашиглах шаардлага сүүлийн үед их гарч байгаа ба энэ үйлчилгээг үзүүлдэг байгууллагууд ч байна үүнийг enterprise service provider (ESP) гэж нэрлэдэг. Remote-access VPN нь тус тусдаа буюу өөр өөр газраас ажилладаг нөхцөл байдалд гайхалтай зохицсон технологи юм
Remote access VPN сүлжээг дотор нь:
* Compulsory tunnel mode
Энэ нь service provider дээр тулгуурласан загвар юм. Хэрэглэгч нь NAS-тэй холболт тогтоох ба NAS нь VPN gateway-тэй холбогдож ажиллах бөгөөд NAS болон Gateway 2-ын хооронд туннель үүснэ.
* Voluntary tunnel mode
Customer болон service provider дээр тулгуурласан загвар ба хэрэглэгч нь VPN gateway-тэй шууд туннель үүсгэн ажилладаг.

## VPN-н протоколын төрлүүд 
Хийсвэр хувийн сүлжээ нь IPv4, IPv6 дээр дараах протоколуудыг ашиглан virtual private network сүлжээгээ зохион байгуулна.

### PPTP буюу Point to Point Tunneling Protocol 
Энэ нь OSI 7 түвшинт загварын 2-р түвшинд ажилладаг.
Length талбарын утга нь дамжуулж буй мэдээний нийт уртыг заана.
Message type талбарын утга нь дамжуулж буй мэдээний төрлийг заана.Энэ мэдээ нь хяналтын эсвэл менежментийн мэдээлэл байхаас харгалзан 0,1 утгаар илэрхийлэгдэнэ.
Magic Cookie талбарын утга нь тогтмол 0x1A2B3C4D гэсэн 16-тын тооллын систэмийн утга байна.	Data талбарын утга нь дамжуулж буй өгөгдөл байна.

### L2TP буюу Layer Two Tunneling Protocol 
T талбарын утга нь мэдээний төрлийг заах бөгөөд	1-тэй тэнцүү байвал өгөгдлийн 0-той тэнцүү бол хяналтын мэдээ байдаг.
L талбарын утга нь уртын мэдээлэл байгаа эсэхийг заана.
S талбарын утга нь Nr болон Ns талбарууд ашиглагдсан эсэхийг тодорхойлно.
O талбарын утга нь Offset талбар ашиглагдаж байгаа эсэхийг заах бөгөөд хяналтын мэдээний хувьд тэг(0) байна.
P талбарын утга нь дарааллын бит ба хяналтын мэдээний хувьд 0 байна.
Version талбарын утга нь L2TP-ийн хувилбарыг заана.
Length талбарын утга нь тухайн багцын нийт уртыг заана.
Tunnel ID талбарын утга нь сувгийн хаягийг заана.
Session ID талбарын утга нь туннель дотор байгаа session-уудыг ялгахад ашиглагдана.
Ns талбарын утга нь өгөгдлийн мэдээний эсвэл хяналтын мэдээний дарааллыг заана.
Nr талбарын утга нь дараагийн мэдээний дугаарыг заана ,Nr = Ns+1 томъёгоор тодорхойлдог.
Offset size талбарын утга нь дамжуулагдаж өнгөрсөн багцын L2TP толгойн дээр үндэслээд дараагийн мэдээллийн багцын хэмжээг тодорхойлдог.
Offset pad талбарын утга нь Дараагийн багцын эхлэх байтыг агуулдаг.

### IPSec 
IPsec буюу Internet Protocol Security нь IP түвшинд нууц туннель үүсгэх үүрэгтэй протокол бөгөөд хэрэглэгч хоорондын өгөгдлийг тусгай түлхүүрийн тусламжтайгаар нууцалдаг маш өргөн тархсан тунел холболтын протокол юм. Анх Internet Engineering Task Force (IETF) байгууллагаас 1995 онд  3 – р түвшний нууцлалын стандарт болгож хөгжүүлсэн. IPSec нь олон төрлийн шифрлэлтийг хэрэгжүүлэх механизмтай, хэрэглэгчийн хандалтыг таниж зөвшөөрөх, эс зөвшөөрөх (authenticate хийх) хяналтын протокол болон дамжигдаж буй мэдээллийн нууцлал хамгаалалтыг хангах протоколуудын шийдэлтэй. IPsec нь сүлжээний түвшинд үйлчилдэг бөгөөд cisco рутер гэх мэт IPsec төхөөрөмжүүд хоорондох IP пакетуудыг хамгаалж, баталгаажуулдаг. IPsec-н хэрэгжүүлэлтийн хоёр чухал тохиргооны бүрэлдэхүүн байдаг. IKE(Internet Key Exchange) параметр, IPsec(IP Security) параметр юм.

# AH (authentication header) – энэ нь ESP шиг өгөгдлийг нууцлалтай болон хамгаалалттай дамжуулахад зориулсан протокол бөгөөд энэ нь RFC2402 тодорхойлогдсон.

# ESP (Encapsulating Security Payload) – энэ нь өгөгдлийг алдаагүй, нууцлалтай, мөн хандалтын эрхийг тодорхойлох болон IP пакетуудыг хамгаалалттай дамжуулахад хэрэглэгдэх протокол

# IKE (Internet Key exchange) –IPsec протоколд шаардлагатай түлхүүрүүдыг үүсгэхэд, солилцоход хэрэглэгдэнэ. 
 IPsec тохируулах;
 IKE нь peer-үүдийн хооронд IKE policy-ийг солилцох болон түүнийг ашиглах боломжийг peer-үүдэд олгодог. IKE-г идэвхижүүлэхдээ: crypto isakmp enable командыг рутерийн глобаль тохиргооны горим дээр бичнэ. IKE policy нь дамжуулж байгаа болон хүлээн авч байгаа IPsec төгсгөлийн цэгүүдийн түлхүүр солилцох(key exchange), баталгаа (authentication), шифрлэх алгоритм(encryption algorithm) зэргийг удирддаг. IKE үе 1-ийн тохиролцоог зөвшөөрөхдөө ISAKMP policy-г үүсгэж дараа нь ISAKMP policy-д багтаж байгаа peer холбоонд тохируулна. ISAKMP policy нь хоёр VPN төгсгөлийн цэг хооронд удирдлагын трафик илгээхэд ашиглагдах хаш функц, шифрлэлтийн алгоритмууд, баталгаажуулалтыг тодорхойлдог. IKE peer-үүд ISAKMP нууцлалын холбоог хүлээн авахад, IKE үе 1 дуусна. Бид pre-shared key-ээ IKE policy-д сонгосны дараа, бусад VPN төгсгөлийн цэгд харгалзах рутерууд дээр түлхүүрээ тохируулах ёстой. Эдгээр түлхүүрүүд амжилттай таарвал IKE peering дуусна. IPsec transform set нь рутерууд нууцлалын холбооны төрлөө тохиролцдог crypto тохиргооны параметр юм.Access list-г тодорхойлсноор рутер аль трафикийг шифрлэхээ мэдэж авдаг. Crypto map Үүсгэсэн бүх тохиргооны загвараа crypto map-д авчирах боломжтой. Crypto map нь peer-н access list-д таарч байгаа трафик, зарим IKE болон IPsec тохиргоог холбож үзсэн mapping юм. Crypto map үүсгэсний дараа үүнийг хэдэн ч интерфейсд идэвхжүүлж болно.
IPSec GRE-Internet Protocol Security Generic Route Encapsulation Tunneling Protocol
GRE туннеллыг IPSec ашиглан нууцална. 

## Гадаад холбоос
* symmetric-vs-asymmetric-ciphers
* IPsec_IPSEC
* SSL tutorials
* WAN and MAN/P2P GRE IPSec/P2P GRE/2 p2pGRE
* Тохиргоо жишээ

Ангилал:Сүлжээний архитектур