Кіріспе

Ашық және тегін виртуалды жеке желілік бағдарламалық қамтамасыз ету.

OpenVPN – маршрутталған немесе көпірленген конфигурацияларда, сондай-ақ қашықтан қол жеткізу мүмкіндіктерінде қауіпсіз нүктеден нүктеге немесе сайттан сайтқа қосылымдар құруға арналған әдістерді іске асыратын виртуалды жеке желі (VPN) жүйесі. Ол клиенттік және серверлік бағдарламаларды қолдайды. OpenVPN тараптарға алдын ала бөліскен құпия кілттер, сертификаттар немесе пайдаланушы аты/пароль арқылы бір-бірін растауға мүмкіндік береді. Көп клиенттік сервер конфигурациясында қолданылғанда, сервер әрбір клиент үшін қолтаңбалар мен сертификаттық орган қолданып, аутентификациялық сертификаттарды шығаруы мүмкін. OpenVPN кілт алмасу үшін SSL/TLS протоколын пайдаланатын, арнайы қауіпсіздік протоколын қолданады және OpenSSL шифрлау кітапханасын, сондай-ақ TLS протоколын кеңінен пайдаланады. Ол көптеген қауіпсіздік және басқару мүмкіндіктерін қамтиды. OpenVPN желілік адрес трансляторларын (NAT) және өрт қабырғаларын (firewall) өткізуге қабілетті. OpenVPN бірнеше жүйелерге көшіріліп, енгізілген. Мысалы, DD-WRT OpenVPN серверлік функциясына ие. SoftEther VPN, көп протоколдық VPN сервері, сонымен қатар OpenVPN протоколының іске асырылуын қамтиды. Ол Джеймс Йонан жасаған және GNU General Public License нұсқасы 2 (GPLv2) шарттарымен таратылатын тегін бағдарламалық жасақтама. Сонымен қатар, коммерциялық лицензиялар да қол жетімді.

Шифрлау

OpenVPN деректерді және басқару арналарын шифрлау үшін OpenSSL кітапханасын пайдаланады. OpenSSL-ге барлық шифрлау және аутентификация жұмыстарын жүргізуге мүмкіндік береді, соның арқасында OpenVPN OpenSSL пакетіндегі барлық шифрларды қолдана алады. Қосымша қауіпсіздік қабатын қосу үшін HMAC пакеттік аутентификация мүмкіндігін де пайдалана алады (авторы оны «HMAC Firewall» деп атайды). Шифрлау өнімділігін арттыру үшін аппараттық үдетуді де қолдануға болады. mbed TLS қолдауы 2.3 нұсқасынан бастап қолжетімді.

Аутентификация

OpenVPN әріптестерді бір-бірімен аутентификациялаудың бірнеше тәсілін ұсынады. OpenVPN алдын ала бөлісілген кілттер, сертификатқа негізделген және пайдаланушы аты/құпия сөз негізінде аутентификацияны қолдайды. Алдын ала бөлісілген құпия кілт ең оңайы, ал сертификатқа негізделген аутентификация ең сенімді және мүмкіндіктерге толы. 2.0 нұсқасында пайдаланушы аты/құпия сөзді аутентификациялау сертификаттармен немесе оларсыз қосуға болады. Дегенмен, пайдаланушы аты/құпия сөзді аутентификациялауды пайдалану үшін OpenVPN үшінші тараптық модульдерге тәуелді.

Желі құру

OpenVPN пайдаланушы Datagram протоколы (UDP) немесе Трансмиссиялық бақылау протоколы (TCP) арқылы жұмыс істей алады, бір TCP/UDP портында құрылған SSL туннельдерін мультиплекстеуді жүзеге асырады (UDP үшін RFC 3948). 2.3.x сериясынан бастап OpenVPN IPv6-ны туннель ішіндегі виртуалды желі протоколы ретінде толық қолдайды және OpenVPN қосымшалары IPv6 арқылы қосылымдар орната алады. Ол көптеген прокси-серверлер (соның ішінде HTTP) арқылы жұмыс істей алады және желілік мекенжай аударма (NAT) арқылы өтуде, сондай-ақ брандмауэрлерден өтуде жақсы нәтижелер көрсетеді. Сервер конфигурациясы клиенттерге желілік конфигурацияның белгілі бір параметрлерін "жіберуге" мүмкіндік береді. Бұларға IP-адрестер, маршруттау командалары және бірнеше қосылу опциялары кіреді. OpenVPN Universal TUN/TAP драйвері арқылы желіге қосылу үшін екі түрлі интерфейс ұсынады. Ол 3-қабатты IP-туннелін (TUN) немесе 2-қабатты Ethernet TAP-ты құра алады, ол кез келген Ethernet трафигін тасымалдауға қабілетті. OpenVPN опция бойынша LZO компрессиялық кітапханасын дерек ағынын сығу үшін пайдалана алады. 1194 порты – OpenVPN үшін IANA тағайындаған ресми порт нөмірі. Бағдарламаның жаңа нұсқалары осы портты әдепкі бойынша пайдаланады. 2.0 нұсқасындағы мүмкіндік бір процеске бірнеше бір уақыттағы туннельдерді басқаруға мүмкіндік береді, бұл 1.x сериясындағы бастапқы "бір процеске бір туннель" шектеуіне қайшы келеді. OpenVPN-нің жалпы желілік протоколдарды (TCP және UDP) қолдануы оны IPsec-ке қолайлы балама етеді, әсіресе ISP пайдаланушыларды жоғары бағалы, "бизнес-сыныпты" қызмет деңгейіне жазылуға мәжбүрлеу үшін белгілі бір VPN протоколдарын бұғаттауы мүмкін жағдайларда. Мысалы, Comcast бұрын олардың @Home өнімі тұрғын үй қызметі ретінде тағайындалғанын және әрқашан коммерциялық қосымшаларды пайдалануға рұқсат бермейтінін мәлімдеген. Олардың пікірінше, VPN арқылы қашықтан жұмыс істеу олардың тұрақты тұрғын абоненттерінің желілік өнімділігіне кері әсер етуі мүмкін. Олар @Home Professional деген альтернатива ұсынды, ол @Home өнімінен қымбат болатын. Сондықтан VPN-ді пайдалануды қалаған әркім жоғары бағамен, бизнес-сыныпты қызмет деңгейіне жазылуға тиіс. OpenVPN туннель құру үшін Трансмиссиялық бақылау протоколын (TCP) пайдаланғанда, өнімділік тек қана туннельденбеген желілік байланыста туннельденген TCP таймерлерінің мерзімі аяқталмауын қамтамасыз ететін жеткілікті артық ені болған жағдайда ғана қабылданады. Егер бұл орындалмаса, өнімділік күрт төмендейді. Бұл "TCP еріту мәселесі" деп аталады.

Қауіпсіздік

OpenVPN әр түрлі ішкі қауіпсіздік мүмкіндіктерін ұсынады. OpenSSL кітапханасы арқылы 256 биттік шифрлауға қолдау бар, бірақ кейбір қызмет провайдерлері төменгі деңгейде шифрлау ұсына алады, нәтижесінде тұтынушыларға қол жетімді ең жылдам VPN-нің біріне айналады. Ол IP стекін (демек, ядроны) пайдалануды қажет етпейді, пайдаланушы кеңістігінде жұмыс істейді. OpenVPN root құқықтарын жоюға, сезімтал деректерді дискіге ауыстыруды болдырмау үшін mlockall функциясын пайдалануға, бастапқы конфигурациядан кейін chroot ортасына кіруге және бастапқы конфигурациядан кейін SELinux контекстін қолдануға қабілетті. OpenVPN SSL және TLS негізіндегі арнайы қауіпсіздік протоколын қолданады. Бұл көбінесе OpenVPN-ді кеңейтілген журналдау, пайдаланушы аты және пароль арқылы күшейтілген аутентификация, динамикалық брандмауэр жаңартулары, RADIUS интеграциясы және т.б. мүмкіндіктермен толықтыру үшін жасалған. Плагиндер динамикалық түрде жүктелетін модульдер болып табылады, әдетте C тілінде жазылады, ал скрипттер интерфейсі OpenVPN-ге қол жетімді кез келген скрипттерді немесе бағдарламаларды іске қоса алады. OpenVPN кодында мұндай плагиндердің мысалдары бар, соның ішінде PAM аутентификация плагині. LDAP немесе SQL дерекқорына, мысалы SQLite және MySQL сияқты дерекқорларға аутентификация үшін бірнеше үшінші тарап плагиндері де бар.

Платформалар

Ол Solaris, Linux, OpenBSD, FreeBSD, NetBSD, QNX, macOS және Windows XP және одан кейінгі нұсқаларында қолжетімді. OpenVPN мобильді операциялық жүйелер үшін де қолжетімді, оның ішінде Maemo, Windows Mobile 6.5 және одан төмен, iOS 3GS+ құрылғылары, jailbreak жасалған iOS 3.1.2+ құрылғылары, Android 4.0+ құрылғылары, сондай-ақ Cyanogenmod баламалық микропрограммасы орнатылған немесе қажетті ядролық модуль орнатылған Android құрылғылары үшін. Ол Palm OS сияқты кейбір ұялы телефон операциялық жүйелерімен үйлесімсіз. Бұл Citrix немесе Terminal Services Web access сияқты веб-бет ретінде ұсынылатын «веб-негізделген» VPN емес; бағдарлама тәуелсіз орнатылады және графикалық интерфейске негізделген шебер арқылы емес, мәтіндік файлдарды қолмен өңдеу арқылы конфигурацияланады. OpenVPN IPsec-ті L2TP немесе PPTP протоколдары арқылы пайдаланатын VPN клиенттерімен үйлесімсіз. Толық пакет клиенттік және серверлік қосылыстар үшін бір бинарлық файлдан, қосымша конфигурациялық файлдан және қолданылатын аутентификация әдісіне байланысты бір немесе бірнеше кілт файлдарынан тұрады.

Бағдарламалық жасақтамаларды іске асыру

OpenVPN пайдаланушыларға қолданыстағы OpenVPN клиенттері арқылы VPN серверіне қосылу мүмкіндігін беру үшін ашық кодты, көп протоколды VPN сервері SoftEther VPN-ге енгізілді. Сондай-ақ, OpenVPN Vyos-қа да интеграцияланды, ол Vyatta бағдарламалық бағыттағышынан жасалған ашық бастапқы кодты маршрутизациялық операциялық жүйе.