Ашық Көзді Жеке Виртуалдық Желі (OpenVPN) Бағдарламасы
OpenVPN
OpenVPN – ашық кодты VPN бағдарламасы. Қауіпсіз қосылыс, деректерді шифрлау, сертификаттармен аутентификация. Жеке және корпоративтік қолдануға арналған.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Ашық және тегін виртуалды жеке желілік бағдарламалық қамтамасыз ету.
Free and open source virtual private network software
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 is a virtual private network (VPN) system that implements techniques to create secure point to point or site to site connections in routed or bridged configurations and remote access facilities. It implements both client and server applications. OpenVPN allows peers to authenticate each other using pre shared secret keys, certificates or username/password. When used in a multiclient server configuration, it allows the server to release an authentication certificate for every client, using signatures and certificate authority. It uses the OpenSSL encryption library extensively, as well as the TLS protocol, and contains many security and control features. It uses a custom security protocol that utilizes SSL/TLS for key exchange. It is capable of traversing network address translators (NATs) and firewalls. OpenVPN has been ported and embedded to several systems. For example, DD WRT has the OpenVPN server function. SoftEther VPN, a multi protocol VPN server, also has an implementation of OpenVPN protocol. It was written by James Yonan and is free software, released under the terms of the GNU General Public License version 2 (GPLv2). Additionally, commercial licenses are available.
Шифрлау
OpenVPN деректерді және басқару арналарын шифрлау үшін OpenSSL кітапханасын пайдаланады. OpenSSL-ге барлық шифрлау және аутентификация жұмыстарын жүргізуге мүмкіндік береді, соның арқасында OpenVPN OpenSSL пакетіндегі барлық шифрларды қолдана алады. Қосымша қауіпсіздік қабатын қосу үшін HMAC пакеттік аутентификация мүмкіндігін де пайдалана алады (авторы оны «HMAC Firewall» деп атайды). Шифрлау өнімділігін арттыру үшін аппараттық үдетуді де қолдануға болады. mbed TLS қолдауы 2.3 нұсқасынан бастап қолжетімді.
OpenVPN uses the OpenSSL library to provide encryption of both the data and control channels. It lets OpenSSL do all the encryption and authentication work, allowing OpenVPN to use all the ciphers available in the OpenSSL package. It can also use the HMAC packet authentication feature to add an additional layer of security to the connection (referred to as an "HMAC Firewall" by the creator). It can also use hardware acceleration to get better encryption performance. Support for mbed TLS is available starting from version 2.3.
Аутентификация
OpenVPN әріптестерді бір-бірімен аутентификациялаудың бірнеше тәсілін ұсынады. OpenVPN алдын ала бөлісілген кілттер, сертификатқа негізделген және пайдаланушы аты/құпия сөз негізінде аутентификацияны қолдайды. Алдын ала бөлісілген құпия кілт ең оңайы, ал сертификатқа негізделген аутентификация ең сенімді және мүмкіндіктерге толы. 2.0 нұсқасында пайдаланушы аты/құпия сөзді аутентификациялау сертификаттармен немесе оларсыз қосуға болады. Дегенмен, пайдаланушы аты/құпия сөзді аутентификациялауды пайдалану үшін OpenVPN үшінші тараптық модульдерге тәуелді.
OpenVPN has several ways to authenticate peers with each other. OpenVPN offers pre shared keys, certificate based, and username/password based authentication. Preshared secret key is the easiest, and certificate based is the most robust and feature rich. In version 2.0 username/password authentications can be enabled, both with or without certificates. However, to make use of username/password authentications, OpenVPN depends on third party modules.
Желі құру
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 can run over User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) transports, multiplexing created SSL tunnels on a single TCP/UDP port (RFC 3948 for UDP). From 2.3. x series on, OpenVPN fully supports IPv6 as protocol of the virtual network inside a tunnel and the OpenVPN applications can also establish connections via IPv6. It has the ability to work through most proxy servers (including HTTP) and is good at working through network address translation (NAT) and getting out through firewalls. The server configuration has the ability to "push" certain network configuration options to the clients. These include IP addresses, routing commands, and a few connection options. OpenVPN offers two types of interfaces for networking via the Universal TUN/TAP driver. It can create either a layer 3 based IP tunnel (TUN), or a layer 2 based Ethernet TAP that can carry any type of Ethernet traffic. OpenVPN can optionally use the LZO compression library to compress the data stream. Port 1194 is the official IANA assigned port number for OpenVPN. Newer versions of the program now default to that port. A feature in the 2.0 version allows for one process to manage several simultaneous tunnels, as opposed to the original "one tunnel per process" restriction on the 1. x series. OpenVPN's use of common network protocols (TCP and UDP) makes it a desirable alternative to IPsec in situations where an ISP may block specific VPN protocols in order to force users to subscribe to a higher priced, "business grade" service tier. For example, Comcast previously declared that their @Home product was, and had always been, designated as a residential service and did not allow the use of commercial applications. Their argument was that conducting remote work via a VPN can adversely affect the network performance of their regular residential subscribers. They offered an alternative, @Home Professional, this would cost more than @Home product. So, anyone wishing to use VPN would have to subscribe to higher priced, business grade service tier. When OpenVPN uses Transmission Control Protocol (TCP) transports to establish a tunnel, performance will be acceptable only as long as there is sufficient excess bandwidth on the un tunneled network link to guarantee that the tunneled TCP timers do not expire. If this becomes untrue, performance falls off dramatically. This is known as the "TCP meltdown problem".
Қауіпсіздік
OpenVPN әр түрлі ішкі қауіпсіздік мүмкіндіктерін ұсынады. OpenSSL кітапханасы арқылы 256 биттік шифрлауға қолдау бар, бірақ кейбір қызмет провайдерлері төменгі деңгейде шифрлау ұсына алады, нәтижесінде тұтынушыларға қол жетімді ең жылдам VPN-нің біріне айналады. Ол IP стекін (демек, ядроны) пайдалануды қажет етпейді, пайдаланушы кеңістігінде жұмыс істейді. OpenVPN root құқықтарын жоюға, сезімтал деректерді дискіге ауыстыруды болдырмау үшін mlockall функциясын пайдалануға, бастапқы конфигурациядан кейін chroot ортасына кіруге және бастапқы конфигурациядан кейін SELinux контекстін қолдануға қабілетті. OpenVPN SSL және TLS негізіндегі арнайы қауіпсіздік протоколын қолданады. Бұл көбінесе OpenVPN-ді кеңейтілген журналдау, пайдаланушы аты және пароль арқылы күшейтілген аутентификация, динамикалық брандмауэр жаңартулары, RADIUS интеграциясы және т.б. мүмкіндіктермен толықтыру үшін жасалған. Плагиндер динамикалық түрде жүктелетін модульдер болып табылады, әдетте C тілінде жазылады, ал скрипттер интерфейсі OpenVPN-ге қол жетімді кез келген скрипттерді немесе бағдарламаларды іске қоса алады. OpenVPN кодында мұндай плагиндердің мысалдары бар, соның ішінде PAM аутентификация плагині. LDAP немесе SQL дерекқорына, мысалы SQLite және MySQL сияқты дерекқорларға аутентификация үшін бірнеше үшінші тарап плагиндері де бар.
OpenVPN offers various internal security features. It has up to 256 bit encryption through the OpenSSL library, although some service providers may offer lower rates, effectively providing some of the fastest VPN available to consumers. It runs in userspace instead of requiring IP stack (therefore kernel) operation. OpenVPN has the ability to drop root privileges, use mlockall to prevent swapping sensitive data to disk, enter a chroot jail after initialization, and apply a SELinux context after initialization. OpenVPN runs a custom security protocol based on SSL and TLS, The purpose of this is often to extend OpenVPN with more advanced logging, enhanced authentication with username and passwords, dynamic firewall updates, RADIUS integration and so on. The plug ins are dynamically loadable modules, usually written in C, while the scripts interface can execute any scripts or binaries available to OpenVPN. In the OpenVPN source code there are some examples of such plug ins, including a PAM authentication plug in. Several third party plug ins also exist to authenticate against LDAP or SQL databases such as SQLite and 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 клиенттерімен үйлесімсіз. Толық пакет клиенттік және серверлік қосылыстар үшін бір бинарлық файлдан, қосымша конфигурациялық файлдан және қолданылатын аутентификация әдісіне байланысты бір немесе бірнеше кілт файлдарынан тұрады.
It is available on Solaris, Linux, OpenBSD, FreeBSD, NetBSD, QNX, macOS and Windows XP and later. OpenVPN is available for mobile operating systems including Maemo, Windows Mobile 6.5 and below, iOS 3GS+ devices, jailbroken iOS 3.1.2+ devices, Android 4.0+ devices, and Android devices that have had the Cyanogenmod aftermarket firmware flashed or have the correct kernel module installed. It is not compatible with some mobile phone OSes, including Palm OS. It is not a "web based" VPN shown as a web page such as Citrix or Terminal Services Web access; the program is installed independently and configured by editing text files manually, rather than through a GUI based wizard. OpenVPN is not compatible with VPN clients that use the IPsec over L2TP or PPTP protocols. The entire package consists of one binary for both client and server connections, an optional configuration file, and one or more key files depending on the authentication method used.
Бағдарламалық жасақтамаларды іске асыру
OpenVPN пайдаланушыларға қолданыстағы OpenVPN клиенттері арқылы VPN серверіне қосылу мүмкіндігін беру үшін ашық кодты, көп протоколды VPN сервері SoftEther VPN-ге енгізілді. Сондай-ақ, OpenVPN Vyos-қа да интеграцияланды, ол Vyatta бағдарламалық бағыттағышынан жасалған ашық бастапқы кодты маршрутизациялық операциялық жүйе.
OpenVPN has been integrated into SoftEther VPN, an open source multi protocol VPN server, to allow users to connect to the VPN server from existing OpenVPN clients. OpenVPN is also integrated into Vyos, an open source routing operating system forked from the Vyatta software router.