OpenVPN - клиенттің құрылғыдан OpenVPN орнатылған серверге шифрланған деректерді беру арқылы «пайдаланушыдан» трафикті қорғауға мүмкіндік беретін бағдарламалық пакет. Үшінші тараптар ақпаратты ұстап алатын қоғамдық WiFi кіру нүктелерін пайдалану үшін тамаша. Немесе ip сіздің белгілі бір сайтқа тыйым салынған жағдайда және сіз осы шектеулерді қауіпсіз айналып өтуіңіз керек.
Серверде OpenVPN орнату мен теңшеуге қосымша, Windows-ге операциялық жүйе ретінде пайдаланылатын компьютерден қатынасу үшін клиентті теңшеуге болады.
Стандартты пакет менеджерін пайдалану арқылы openvpn орнатыңыз.
# aptitude openvpn орнату
Мақала мазмұны:
- Создание сертификатов 1 Сертификаттарды жасау
- Настройка сервера 2 Серверді орнату
- Перенаправление трафика через OpenVPN 3 OpenVPN арқылы трафикті қайта бағыттау
- OpenVPN клиент на Windows Windows-дегі 4 OpenVPN клиенті
- OpenVPN совместно с NetworkManager 5 NetworkManager бар OpenVPN
Сертификаттарды жасау
OpenVPN сервері мен клиенттері үшін сертификаттарды жасауды міндетті түрде талап етеді. Бұл логикалық, өйткені клиентке серверге қосылу шифрлануы керек.
Openvpn қалтасына өтіңіз:
# cd / etc / openvpn
Біз жеңіл-rsa арқылы кілттерді шығарамыз.
Конфигурациялық файлдар және сертификат генерациялау сценарийлеріне арналған сілтемелері бар қалтаны жасаңыз:
# make-cadir rsa # cd rsa
Әдепкі конфигурация файлын ашып, параметрлерді өзгертіңіз:
экспорт KEY_COUNTRY = «АҚШ» экспорт KEY_PROVINCE = «CA» экспорт KEY_CITY = «SanFrancisco» экспорт KEY_ORG = «Fort-Funston» экспорт KEY_EMAIL = «me@myhost.mydomain»
KEY_COUNTRY - елдің кодын (RU, UA және т.б.) енгізіңіз;
KEY_PROVINCE - егер сіз Құрама Штаттарда тұрмасаңыз, бұл тармақ маңызды емес. :) Сіз XX ауыстыра аласыз;
KEY_CITY - сіз тұратын елді;
KEY_EMAIL - сіздің электрондық пошта мекенжайыңыз.
Сондай-ақ, экспорттаудың KEY_CN жолын ескермей, сервер атауын көрсететін мән үшін:
экспорт KEY_CN = «example.com»
Барлық айнымалылар латын тілінде толтырылады.
Файлды сақтаңыз және іске қосыңыз:
# әдетте
Содан кейін ескі сертификаттарды жойыңыз:
# ./clean-all
Түбірлік сертификатты жасаңыз:
# ./build-ca
Егер түбірлік сертификатты генерациялау кезінде сіз қате error:0E065068:configuration file routines:STR_COPY:variable has no value:conf_def.c:618:line 198
, error:0E065068:configuration file routines:STR_COPY:variable has no value:conf_def.c:618:line 198
файлға қосыңыз:
экспорт KEY_ALTNAMES = «бірдеңе»
Содан кейін алдыңғы пәрмендерді қайта іске қосыңыз :. vars, ./clean-all, ./build-ca.
Келесі қадам - кілтті және сервер сертификатын жасау.
# ./build-key-server сервері
Содан кейін клиент үшін сертификат пен кілт жасаңыз:
# ./build-key клиенті
Пожалуйста, назар аударыңыз: әр клиентке өзіңіздің сертификатыңызды және кілтіңізді жасауыңыз қажет. Сізге әртүрлі атауларды (клиенттің орнына) көрсету керек және оларды конфигурациялық файлдарда өзгерту керек. Сонымен қатар, клиенттің кілттерін парольмен қорғай аласыз, ол үшін build-key пәрменінің орнына build-key-pass командасын пайдаланыңыз.
Әрі қарай, Diffie-Hellman кілтін жасау үшін Forward Secrecy пайдалану керек:
# ./build-dh
Tls түпнұсқалық растамасының кілті:
# openvpn --genkey --secret /etc/openvpn/ta.key
Енді сервер сертификаттарын және кілттерді OpenVPN баптауларының қалтасына көшіру қажет:
# cp пернелері / ca.crt пернелері / server.crt пернелері / server.key пернелері / dh2048.pem / etc / openvpn /
Сондай-ақ, оларға тек иесіне ғана оқуға және өзгеруге мүмкіндік беретін құқықтар берілді.
# chmod 0600 /etc/openvpn/ca.crt /etc/openvpn/server.crt /etc/openvpn/server.key /etc/openvpn/dh2048.pem /etc/openvpn/ta.key
Компьютеріңізге, мысалы, жұмыс үстеліне, кілттер қалтасынан, клиентті қосу үшін қажетті пернелерді : client.crt , client.key , ca.crt , ta.key көшірмеңіз .
Бұл сертификаттарды дайындау процесін аяқтайды.
Серверді орнату
/ Usr / share / doc / openvpn / каталогында Openvpn серверін орнатудың үлгісі бар. Оны / etc / openvpn / каталогына көшіріп, ашыңыз:
cd / etc / openvpn; cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz / etc / openvpn /; gunzip server.conf.gz
Енді біз openvpn жұмыс істеу үшін қажетті параметрлерді қарастырамыз.
Openvpn қосылымдарды қабылдайтын порт. Әдепкі бойынша, 1194. Мен оны жасыру үшін оны өзгертуді ұсынамын. Сіз 80-портты көрсете отырып, веб-сервер астындағы openvpn-ді жасыра аласыз.
20100 порты
Куәліктер файлдарына және сервер кілтіне жолдарды тіркеңіз.
ca ca.crt cert server.crt негізгі сервер.key
Diffie-Hellman кілтінің жолы.
dh dh2048.pem
/ Etc / openvpn каталогына (егер файлдар орналасқан болса) және абсолютті көрсетуге болады.
Жолды табыңыз және енгізбеңіз:
«def-by-pass-dhcp-шлюзін қайта бағыттау»
OpenVPN сервері арқылы Интернетке қол жеткізу мүмкіндігі болуы керек. Егер ол мәлімдеме жасалмаса, желі ішіндегі компьютерлер ғана қол жетімді болады.
Сондай-ақ, клиенттерді қосу үшін DNS серверлерін көрсету қажет.
«dhcp-option DNS 213.183.57.55» «dhcp-option DNS 87.98.175.85» басу
Сервердің орналасуына қарай, басқа DNS-серверлерді, мысалы, OpenNIC жобасында алуға болады .
Содан кейін, tls-auth параметрін табыңыз және енгізбеңіз.
tls-auth ta.key 0
Назар аударыңыз! Клиенттік баптауларда осы параметрдің соңғы санымен ауыстырылуы тиіс 1 - tls-auth ta.key 1 .
Төменде тек конфигурация файлында қол жетімді шифрлердің тізімі келтірілген. AES-128-CBC шифрын бермеңіз.
AES-128-CBC # AES шифры
Қажет болса, оны AES-256-CBC ауыстыруға болады. Клиенттің конфигурация файлында шифр сервердің шифры бойынша бірдей болуы керек.
Auth параметрін қосыңыз. Әдепкі бойынша, аутентификация үшін 160-бит sha1 пернелері пайдаланылады, бірақ sha1 алгоритмі осал болып табылады. Келесі параметрді анықтағанда, SHA512 ұзындығы 512 биттің кілттері пайдаланылады.
SHA512 аутентификациясы
Қолданылатын tls нұсқасын анықтайтын tls-version-min параметрі сияқты. Бұл жағдайда соңғы нұсқасы - 1.2. Назар аударыңыз! Network Manager бұл параметрді (жазу кезінде) қолдамайды. Сондықтан VPN серверіне Network Manager арқылы қосылуды жоспарласаңыз, онда бұл параметр сервер параметрінде көрсетілмеген.
tls-version-min 1.2
OpenVPN түбірі ретінде іске қосылмауы керек. Сондықтан, жолдарды ескермеңіз:
пайдаланушысы жоқ топтық топ
OpenVPN журналдарын қосу артық болмайды. Әсіресе, қателерді іздеу және т.б.
log /var/log/openvpn.log
/Etc/openvpn/server.conf конфигурациялық файлындағы барлық басқа параметрлерді әдепкі мәндермен қалдырыңыз. Бұл OpenVPN серверін орнатуды аяқтайды.
Пәрменмен openvpn іске қосыңыз:
# systemctl openvpn мүмкіндігін қосыңыз
Және қайта іске қосыңыз:
# service openvpn қайта іске қосу
Қателер үшін журналды тексеру пайдалы.
OpenVPN арқылы трафикті қайта бағыттау
Сервер openvpn арқылы Интернетке қол жеткізу үшін, сіз бұл үшін бірдеңе істеуіңіз керек.
1. sysctl-ді конфигурациялау
Консольде мына пәрменді іске қосыңыз:
# sysctl net.ipv4.ip_forward
Егер пәрменнің нәтижесі net.ipv4.ip_forward = 1 тең болса, онда ештеңені өзгертудің қажеті жоқ. Егер айнымалы мән 0 болса, онда келесі жолды /etc/sysctl.conf файлына қосу керек:
net.ipv4.ip_forward = 1
Ережелерді командамен қайта жүктеңіз:
# sysctl -p
2. iptables параметрлерін конфигурациялау
Сонымен қатар, консольде келесі пәрмендерді іске қосыңыз:
# iptables -A FORWARD -i eth0 -o tun0 -m state - state ҚҰРЫЛҒАН, ҚАЙТАЛАУ -J ACCEPT # iptables -A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT # iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Осылайша, OpenVPN сервері арқылы 10.8.0.0 ішкі желісінде трафиктің орнатылып тұрған байланыстары шегінде рұқсат етіледі.
Егер openvpn клиенті сервердің нақты сыртқы IP мекенжайын тағайындауы қажет болса, iptables үшін алдыңғы тізімдегі соңғы пәрменнің орнына, оны іске қосу керек:
-A POSTROUTING - 10.8.0.0/24 -o eth0 -j SNAT - көзіне 127.0.0.1
Қайдан көзге параметрден кейін сыртқы ip серверін көрсету керек.
Windows-дегі OpenVPN клиенті
Windows жүйесінде Openvpn клиентін орнатуды бастау. Мұнда барлығы қарапайым: клиентті ресми сайтқа жүктеп , орнатыңыз, конфигурациялық файлды жасаңыз және оны іске қосыңыз.
Тіркелгілерді басқару белсенді болған жағдайда, Windows-ге әкімшілік құқықтарымен Openvpn іске қосу керек.
Егер орнату жолын өзгерткен болсаңыз, онда компьютердегі конфигурация файлдарының мысалдары C: \ Program Files \ OpenVPN \ sample-config каталогында орналасқан. Client.ovpn файлын осы жерден көшіріп, оны C: \ Program Files \ OpenVPN \ config каталогына орналастырыңыз.
Клиентке жасалған сертификаттарды есте сақтаңыз? Олар сондай-ақ серверден жүктеліп, осы каталогқа көшірілуі керек.
Client.ovpn конфигурациялық файлын ашыңыз және my-server-1 1194 параметрін табыңыз. Менің серверімнің орнына серверіңіздің ip немесе домен атауын көрсетіңіз. Содан кейін бұрын біз өзгерткен порт. Нәтижесінде жол келесідей болуы мүмкін:
қашықтан 192.168.0.1 20100
Содан кейін серверде жасаған куәліктердің жолын көрсетуіңіз керек. Әр клиент үшін кілт клиенттің орнына төменде көрсетілген бірегей атаумен жасалады.
ca ca.crt cert клиент.crt негізгі клиент
Сондай-ақ, tls-кілт жолын анықтайтын параметрді ескермеуіңіз керек.
tls-auth ta.key 1
Бұрын айтылғандай, сервердегі соңғы сан 0 болуы керек, клиентте - 1.
Ал соңғы параметрлер - серверде орнатылған шифрлар.
AES-128-CBC шифры SHA512 аутентификациясы tls-version-min 1.2
Бұл клиентті конфигурациялау үшін қажет. OpenVPN клиентін іске қосып көріңіз және серверге қосылыңыз. Қажетті қосылым туралы ақпарат openvpn gui терезесінде көрсетіледі.
NetworkManager көмегімен OpenVPN
Network Manager үшін графикалық интерфейсті орнатыңыз.
# aquity-network-manager-openvpn-gnome орнату
Және қайта іске қосыңыз.
# сервистік желі менеджерін қайта іске қосу
Клиентке жасалған сертификаттарды компьютердегі еркін қалтаға көшіреміз. Мысалы, in /home/user/.openvpn/.
Желілік менеджер белгішесінің тінтуірдің оң жақ түймешігімен нұқыңыз, «қосылымдарды өзгерту» элементін таңдап, «OpenVPN» түріне жаңа қосылымды қосыңыз.
Анықтаңыз:
- Қосылым атауы
- Шлюз (домен немесе сервер ip)
- Түрі: Сертификаттар
Пайдаланушы куәлігі - клиент үшін (client.crt) басында жасаған сертификат.
CA сертификаты - ca.crt файлы.
Жеке кілт - клиенттің кілті (client.key).
«Қосымша» түймешігін басыңыз. Ашылған терезеде «Жалпы» қойындысында бірнеше элементтерді өзгерту қажет болады.
- Басқа шлюз портын қолданыңыз (егер сіз серверді орнатқан кезде стандартты емес көрсеткен болсаңыз)
- Лзостың қысылуын қолданыңыз
«Қауіпсіздік» қойындысына ауысыңыз. Сервер параметрлері сияқты шифрды таңдаңыз. Hmac аутентификация параметрінің мәні ретінде, сервердің аутентификациясындағыдай, алгоритмді көрсету керек. Мақалада біз SHA512 таңдадық.
TLS түпнұсқалық растама қойындысын ашып, келесі элементтерді белгілеңіз:
- Теңгерімді тексеру ...
- Қосымша TLS түпнұсқалық растамасын пайдаланыңыз
Соңғы параметр үшін, ta.key файлына жолды көрсетіңіз және Windows үшін конфигурация файлына ұқсас ашылмалы тізімнен негізгі бағыт ретінде таңдаңыз.
Қосылымды сақтаңыз және қосылуға тырысыңыз. :)
Немесе, жүйелік журналға қосылу кезінде НМ жазады:
# tail -f / var / log / syslog
Мақала үшін рахмет. Өте пайдалы.
Өте жақсы мақала, құрметті адам!
Автор сияқты, менің клиенттерім неге қосыла алмайтынын түсінуге тырыспадым, openvpn журналдарды жасамайды! маған не істеу керектігін айт!
Сондықтан клиенттердің журналдарын тексеру қажет. OpenVPN GUI мұндай журнал міндетті түрде алып келеді. Тінтуірдің оң жағын басыңыз -> журналды көрсету.
Мүмкін бірдеңе нұсқаулықта жоқ ...
Рахмет, бірақ шықты, бұл #openvpn /opt/vp/vp.conf және бағдарлама конфигурациялық файлды ашады - логтар жүрді - мен бәріне қарап, vpn-ды жұмысшы жасадым.
Түсінікті оқулықтың авторы сізден сұрайды. Debian және Mikrotikom серверлері арасындағы туннельді қалай жасауға болады. Жергілікті желіге қосылыңыз. 2 пәтер.
Пост үшін рахмет. Мобильді клиенттерді орнатуға әлі де мүдделі - мысалы, http://sysadm.pp.ua/linux/shifrovanie/openvpn-client-server.html . Сізге ыңғайлы және ыңғайлы ұялы OpenVPN клиентіне хабарласыңыз ба?
Менің Android смартфонда мен Openvpn әзірлеушісінен - «Openvpn connect» -тен ресми клиентті қолданамын https://play.google.com/store/apps/details?id=net.openvpn.openvpn
Орнату өте оңай. Клиент үшін жасалған файлдар телефонның флэш-дискісіндегі кез-келген қалтаға жүктелуі керек. Содан кейін Openvpn Connect іске қосыңыз, мәзірден «Импорттау» таңдаңыз, содан кейін «SD картасынан профильді импорттаңыз». * .Ovpn файлын таңдау қажет файл менеджері ашылады, «Таңдау» батырмасын басыңыз. Сәтті импорттауды растау кезінде экранда «Профиль импортталған» хабары көрсетіледі.
Қосылу үшін «Қосу» түймесін басыңыз. Осымен болды. :)
Басқа клиенттер туралы білмеймін, бірақ бұл жақсы жұмыс істейді.
PS Егер сіз бір мезгілде компьютерден немесе телефоннан қосылғыңыз келсе, онда соңғысы үшін өз кілтіңізді және сертификатты жасаңыз.
Мақалада жалпы Openvpn принциптерін түсінуге көмектесті. Рахмет.
НҰРЫСНЫҢ НҰСҚАУЫ ЖӘНЕ НЕГІЗГІ НҰСҚАУЛЫҚ БЕРМЕЙДІ!
Рахмет. Барлығы жұмыс істейді!
жаңарту.
2-тармақ client.key кілтіне құқықты орнату туралы шешім қабылдады. + TCP қосылымының түрін айқын түрде орнатып, адаптер түрін - TAP / TUN-ды көрсету керек болды
Рахмет! Үлкен мақала!
Барлығын нұсқаулыққа сай орнаттым, бірақ мұндай мәселе бар:
Клиент серверге қосылады, бірақ Интернет жоқ. Клиент VPN 10.8.0.1 серверін және арнайы сервердің ipін жалдайды. Серверден сыртқы сайттар проблемаларсыз жауап береді. Көрсетіледі, бұл иттің IPтабельдерінде және ip.frwarding-да жерленеді. Кез келген ойлар? Бұл орманмен күресуден гөрі, тез кеңес бере аласыз ба?
Басқа бағыттау ережелерін белгілеу қажет
iptables -t nat -A POSTROUTING-venet0 -j SNAT-to IP_ADDRESS_Your_SERVER
iptables -A FORWARD -i venet0 -o tun0 -m state -state ҰЛТТЫҚ, ҚҰРЫЛҒАН -J ACCEPT
iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT