Како да подесите ОпенВПН сервер на Убунту 20.04

Ултимативни водич за подешавање безбедног ОпенВПН сервера на Убунту 20.04

Виртуелна приватна мрежа (ВПН) вам омогућава да се безбедно и приватно повежете са удаљеном приватном мрежом, на пример, канцеларијском мрежом или интернетом на начин као да сте директно повезани на приватну мрежу.

ВПН ради у архитектури сервер-клијент. ВПН сервер је распоређен на машини и јавно је доступан преко Интернета. ВПН сервер се може конфигурисати тако да дозволи повезивање на приватну ЛАН мрежу, као што је канцеларијска мрежа, или да дозволи повезивање са Интернетом. Корисник се повезује на ВПН сервер користећи ВПН клијент на својој локалној машини. Комуникација између ВПН сервера и клијента се одвија коришћењем безбедног протокола за тунелирање. Интернету се чини да је одредиште саобраћаја ВПН сервер; међутим, саобраћај пролази до клијента преко сервера.

ВПН има много употреба у свакодневном животу, као што је безбедно повезивање на јавну Ви-Фи мрежу, која је често угрожена или заобилази гео-ограничења на одређеним веб локацијама повезивањем на ВПН са седиштем у земљи коју веб локација дозвољава.

ОпенВПН је широко коришћена ВПН имплементација која омогућава широк спектар конфигурација и опција. Користи Сецуре Соцкетс Лаиер (ССЛ) протокол за шифровање података и унапред дељених кључева, корисничког имена/лозинке или сертификата за аутентификацију ВПН клијента. У овом чланку ћемо видети како да подесите ВПН сервер и ВПН клијент на Убунту 20.04.

Инсталација

ОпенВПН је доступан у званичним Убунту репозиторијумима у пакету опенвпн. Овај пакет инсталира и ОпенВПН сервер као и клијента.

судо апт инсталл опенвпн

Као што је раније поменуто, ОпенВПН користи ССЛ сертификате за шифровање података између сервера и клијента. Морамо да поставимо сопствено овлашћење за издавање сертификата (ЦА) за издавање сертификата за ВПН. Имајте на уму да ово треба да буде подешено на другој машини од оне на којој је постављен ОпенВПН; разлог је тај што ако је на истом серверу и ако буде компромитован, нападач може да приступи приватном кључу и тако нападне ВПН везу.

Користићемо алат под називом „Еаси-РСА“ да бисмо поставили ауторитет за сертификацију. Да бисте га инсталирали, покрените следеће на ЦА машини, ОпенВПН серверској машини и клијентској машини, јер је конфигурација потребна на сва три да би се подесио ЦА.

судо апт инсталл еаси-рса

Сада ћемо прво конфигурисати ауторитет сертификата на ЦА машини и извршити неке потребне кораке конфигурације за исту на Опен ВПН сервер машини.

Подешавање ауторитета за сертификате

Почетно подешавање на ЦА машини

Сада, овај пакет инсталира команду под називом маке-цадир који се користи за креирање фасцикле за конфигурацију ауторитета за сертификате. Креирајмо фасциклу користећи ово и унесите фасциклу.

маке-цадир церт_аутхорити && цд церт_аутхорити

Отворите датотеку под називом варс креиран у овом директоријуму. Ова датотека садржи неке конфигурационе променљиве које морамо да изменимо. Вредности које треба изменити су у редовима 91-96, после коментара о Организациона поља који описује ова поља. Раскоментирајте редове и попуните одговарајуће вредности уместо вредности узорка.

Сачувајте и изађите из датотеке. Ако користите вим едитор, притисните изаћи, тип :вк и притисните Ентер да сачувате и изађете.

Затим покрећемо еасирса програм у директоријуму за постављање инфраструктуре јавног кључа (ПКИ), која ће се користити за генерисање јавног кључа и сертификата.

./еасирса инит-пки

Следећи корак ће генерисати ЦА кључ и сертификат. Када команда затражи лозинку, унесите лозинку за ЦА кључ. Такође, унесите уобичајено име када се то од вас затражи. Ако оставите ово празно, користиће се подразумевано име Еаси-РСА ЦА.

./еасирса буилд-ца

Као што видимо из излаза, сертификат и кључ су генерисани. Овај кључ ће се користити за потписивање сертификата клијента и сервера, стога га никада не би требало дирати/изменити.

Сада имамо ПКИ подешавање. Следећи корак је креирање серверског кључа и сертификата на машини коју ћемо користити као ОпенВПН сервер. Овај сертификат ће касније бити потписан од стране ЦА машине.

Генерисање серверског кључа и сертификата на серверској машини

Већ смо инсталирали Еаси РСА на серверску машину. Сада извршите три корака на серверској машини, које смо претходно извели на ЦА машини, тј. креирање ЦА именика користећи маке-цадир и улази у њега, мењајући варијабле у варс датотеку и генерисање ПКИ-ја користећи ./еасирса инит-пки команда.

Затим морамо да покренемо наредбу за генерисање захтева за сертификат сервера и кључа.

./еасирса ген-рек сервер нопасс

Имајте на уму да смо прошли опцију нопасс тако да команда неће тражити од нас да унесемо лозинку за кључ сервера. И даље ће тражити заједничко име за сервер, које можете да унесете било шта, или га оставите празним за подразумевано име (сервер) који ће се користити.

Померите генерисану кључну датотеку унутар /етц/опенвпн именик.

судо мв пки/привате/сервер.кеи /етц/опенвпн

Пошаљите захтев за сертификат ЦА машини. Користићемо команду сцп за ову сврху.

сцп пки/рекс/сервер.рек корисник@ЦА_МАЦХИНЕ_ХОСТНАМЕ:/дирецтори

На слици изнад, хост 45.79.125.41 је ЦА машина. Копирали смо сертификат у /роот директоријум.

Сада је сертификат сервера копиран на ЦА машину. Следећи корак је да се вратите на ЦА машину и потпишете овај сертификат.

Потписивање сертификата сервера у ЦА

Прво, хајде да проверимо да ли је датотека захтева за сертификат са сервера копирана на ЦА машину. Идите у директоријум у који смо копирали датотеку (/роот у мом примеру) и покрените лс.

:~# цд /роот && лс церт_аутхорити сервер.рек

Као што видимо, фајл сервер.рек је присутан. Затим идите у ЦА директоријум и увезите овај захтев.

цд церт_аутхорити ./еасирса импорт-рек /роот/сервер.рек сервер

Да бисте потписали овај захтев, покрените следећу команду.

./еасирса сервер сервера сигн-рек

Овде је први аргумент врста захтева, тј. сервер, а други аргумент је уобичајено име серверске машине, за коју смо претходно користили подразумевану вредност, тј. сервер.

Унесите фразу да, и лозинку за ЦА кључ када се то од вас затражи.

Сада можемо уклонити датотеку захтева за сертификат и копирати генерисани сертификат за сервер, као и јавни сертификат ЦА назад на машину сервера.

рм /роот/сервер.рек сцп пки/иссуед/сервер.црт роот@172.105.61.175:/роот сцп пки/ца.црт роот@172.105.61.175:/роот

Затим морамо да извршимо још неколико корака како бисмо осигурали безбедну везу ВПН-а.

Генерисање ДХ параметара

ДХ (Диффие-Хеллман) размена кључева је алгоритам који обезбеђује безбедну размену крипто кључева преко несигурног канала. Прво, преместимо примљени сертификат и јавни сертификат ЦА у /етц/опенвпн.

мв /роот/ца.црт /роот/сервер.црт /етц/опенвпн

Идите у ЦА фасциклу на серверској машини и покрените следећу команду да генеришете ДХ параметре. Може потрајати много времена да се генерише.

./еасирса ген-дх

Сада преместите генерисану датотеку у /етц/опенвпн.

мв /роот/церт_аутхорити/пки/дх.пем /етц/опенвпн

Генерисање ТА кључева

ОпенВПН користи још једну додатну безбедносну меру користећи ТЛС аутх кључ. Да бисте генерисали ТЛС кључ за потврду, покрените:

опенвпн --генкеи --сецрет тлс_аутх.кеи

И померите кључ на /етц/опенвпн.

мв тлс_аутх.кеи /етц/опенвпн

Конфигурација кључа сервера и подешавање ауторитета за сертификате су сада завршени. Пређимо сада на стварну конфигурацију ВПН сервера.

Конфигурација ОпенВПН сервера

Конфигурациона датотека за ОпенВПН сервер се не креира аутоматски, али можемо користити конфигурациону датотеку шаблона из опенвпн пакет.

судо цп /уср/схаре/доц/опенвпн/екамплес/сампле-цонфиг-филес/сервер.цонф.гз /етц/опенвпн/ судо гзип -д /етц/опенвпн/сервер.цонф.гз

Отворите датотеку користећи вим или било који уређивач по вашем избору.

цд /етц/опенвпн вим сервер.цонф

Морамо да унесемо уобичајена имена кључева и сертификата које смо претходно генерисали. Идите на линију бр. 78. Пошто смо користили сва подразумевана имена, задржавамо их непромењене. Затим проверите име датотеке ДХ параметара у реду 85. Користили смо назив дх.пем, па хајде да га променимо.

Затим, хајде да изменимо привилегије за ОпенВПН сервер. Идите на ред 274 и 275 и уклоните водећи ; да га декоментаришу.

Слично идите на ред 192 и уклоните тачку и зарез. Ова директива омогућава да саобраћај свих клијената пролази кроз ВПН.

Сачувајте и изађите из датотеке.

Промените власништво фасцикле /етц/опенвпн у роот.

судо цховн -Р корен: корен /етц/опенвпн

Подешавање мреже и заштитног зида

Морамо да дозволимо ИП прослеђивање на серверу како бисмо омогућили прослеђивање пакета са и на ВПН клијент. Декоментирајте ред 28 /етц/сисцтл.цонф:

Сачувајте и изађите из датотеке.

Поново покренути системцтл да би се ове промене десиле.

судо сисцтл -п

Морамо да подесимо превођење мрежних адреса (НАТ) на серверу користећи УФВ заштитни зид како бисмо омогућили ВПН клијенту да приступи Интернету користећи ИП адресу ВПН сервера. Прво, омогућимо прослеђивање пакета у конфигурацији заштитног зида. Отвори /етц/дефаулт/уфв и промените променљиву у реду 19 у АЦЦЕПТ.

Сачувајте и изађите из датотеке.

Сада додајте следећа правила у датотеку /етц/уфв/бефоре.рулес пре филтер ред у датотеци.

*нат :ПРИХВАТИ ПОСТРОУТИНГ [0:0] -А ПОСТРОУТИНГ -с 10.8.0.0/8 -о -ј МАСКУЕРАДЕ ЦОММИТ

Унесите свој мрежни интерфејс уместо . Можете видети свој мрежни интерфејс помоћу команде ифцонфиг.

Дозволите саобраћај за ОпенВПН услугу на заштитном зиду и дозволите порт 1194.

судо уфв дозволи опенвпн && судо уфв дозволи 1194

Поново учитајте услугу заштитног зида.

судо уфв релоад

Сада можемо поново покренути Опен ВПН сервер даемон тако што ћемо покренути:

судо сервис опенвпн рестарт

Омогућите да се покрене у тренутку покретања тако што ћете покренути:

судо системцтл омогући опенвпн

ОпенВПН сервер је сада конфигурисан и покренут. Хајде сада да наставимо са захтевом за сертификат клијента и генерисањем кључева и другом конфигурацијом.

Конфигурација ОпенВПН клијента

Морамо да генеришемо кључ и захтев за сертификат за клијента. Процедура за ово је иста као и за сервер.

Иако се клијентски кључ и захтев за сертификат могу креирати на клијентској машини и затим пренети на ЦА машину, препоручује се да се креирају на серверској машини. Предност овог рада на серверу је у томе што можете креирати скрипту за извођење свих потребних корака на серверу што олакшава новом клијенту да се придружи ВПН-у.

Идите у ЦА фасциклу на серверу и покрените следеће:

цд ~/церт_аутхорити ./еасирса ген-рек клијент нопасс

На сличан начин као што је урађено раније, унесите заједничко име када се то од вас затражи или оставите празно да бисте користили подразумевано заједничко име, тј. клијент.

Хајде да сада копирамо генерисани захтев за сертификат клијента на ЦА машину.

сцп пки/рекс/цлиент.рек роот@45.79.125.41:/роот

Хајде да увеземо овај захтев у ЦА машину:

./еасирса импорт-рек /роот/цлиент.рек клијент

А хајде сада да потпишемо:

./еасирса сигн-рек клијент клијент

Ентерда када се од вас затражи да наставите. Унесите лозинку за ЦА кључ када се то од вас затражи.

Сада можемо уклонити тражену датотеку за клијента и копирати захтев назад на машину ВПН сервера.

рм /роот/цлиент.рек сцп пки/иссуед/цлиент.црт роот@172.105.61.175:/роот

Хајде да направимо фасциклу под називом клијент да задржите све датотеке везане за клијента на ВПН серверу. Преместићемо клијентски кључ и сертификат у ову фасциклу.

мкдир ~/цлиент судо мв ~/цлиент.црт ~/церт_аутхорити/пки/привате/цлиент.кеи ~/цлиент

Сада, хајде да направимо конфигурациону датотеку од доступног шаблона, слично ономе како смо креирали конфигурациону датотеку сервера.

цп /уср/схаре/доц/опенвпн/екамплес/сампле-цонфиг-филес/цлиент.цонф ~/цлиент

Отворите датотеку цлиент.цонф. На линији 42 унесите име хоста или ИП адресу вашег сервера уместо мој-сервер-1.

Декоментирајте редове 61 и 62 тако што ћете уклонити почетну тачку и зарез, да бисте смањили привилегије за датотеку.

Затим коментаришите редове 88-90 и ред 108. Разлог је што желимо да ручно додамо садржај поменутих датотека уместо да користимо локације датотека. Сврха овога је да се конфигурациона датотека клијента касније пренесе на клијента, где заправо нећемо имати клијентски кључ и датотеке сертификата; стога копирамо њихов садржај у саму конфигурациону датотеку.

Додајте следеће у конфигурациону датотеку клијента. Унесите садржај датотека одговарајућих датотека унутар датих ознака.

 # Овде налепите садржај ца.црт датотеке # Овде налепите садржај датотеке цлиент.црт # Овде налепите садржај датотеке цлиент.кеи смер кључа 1 # Овде налепите садржај датотеке тлс_аутх.кеи 

Сачувајте и изађите из датотеке. Преименујте ову датотеку из цлиент.цонф до цлиент.овпн, пошто је ова друга екстензија потребна за конфигурационе датотеке које се могу увести као мрежне конфигурације.

Сада пренесите датотеку цлиент.овпн клијенту, односно локалној машини.

Трцати сцп на вашој клијентској машини за пренос датотеке са серверске машине на вашу локалну машину.

сцп усер@сервер_ип:/патх_то_филе лоцал_дестинатион_патх

Коначно, морамо да користимо ову конфигурациону датотеку за повезивање са ВПН сервером. Ово се може урадити и преко командне линије као и преко ГУИ.

Да бисте покренули ВПН клијент из командне линије, покрените:

судо опенвпн --цонфиг цлиент.овпн

И то је једина команда коју треба да покренете да бисте покренули ВПН клијент.

Да бисте покренули ВПН клијент преко ГУИ, извршите следеће кораке.

Идите на Подешавања » Мрежа на вашој клијентској машини.

Кликните на + дугме у одељку ВПН и изаберите „Увези из датотеке…“ из опција.

Кликните на „Додај“ да бисте почели да користите ВПН.

Имајте на уму да је под „Гатеваи“ ИП адреса сервера.

На крају, укључите дугме „ВПН за клијенте“ да бисте омогућили ВПН на машини.

Може потрајати неколико секунди да се успостави ВПН веза. Нови логотип напретка за ВПН ће се појавити у горњем левом углу вашег екрана док се поставља, а након подешавања ће се променити у ВПН логотип.

Да бисте проверили да ли ВПН ради исправно, покрените следеће:

цурл //ипинфо.ио/ип

Требало би да врати ИП адресу вашег сервера. Или можете да проверите своју ИП адресу једноставним претраживањем „Моја ИП” на Гоогле-у. Требало би да покаже ИП адресу вашег ВПН сервера ако наше подешавање ВПН-а ради исправно.

Закључак

У овом чланку смо видели како да конфигуришемо ОпенВПН сервер, ауторитет за издавање сертификата и ОпенВПН клијент. Да бисмо додали више клијената ВПН-у, сада морамо да следимо процедуру за генерисање и потписивање сертификата за клијента и да користимо исту конфигурациону датотеку која је креирана овде, са промењеним само кључем клијента и вредностима сертификата.

У случају спорије интернет конекције, могуће је да ако се УДП користи за комуникацију, дође до значајног губитка пакета. Корисник може да пређе на ТЦП декоментарисањем линије прото тцп и коментаришући линију прото удп у конфигурационој датотеци сервера.

Такође, у случају да постоје друге грешке, можете подесити ниво евидентирања помоћу глагол директива у конфигурационим датотекама сервера и клијента. Можете унети вредности између 0 и 9. Што је већа вредност ове директиве, дневник ће бити опширнији.