OpenVPN-ро дар Docker дар 2 сония оғоз кунед

Салом, сокинони Хабаровск! Оё шумо ягон бор бо вазъияте дучор шудаед, ки шумо воқеан мехостед ба шаҳр, кишвар ё қитъаи дигар интиқол диҳед? Ман ба ин эҳтиёҷот хеле зуд-зуд дорам, аз ин рӯ, имкони доштани сервери VPN-и худ, ки метавонад дар ҳама ҷо, дар як чанд сония ба кор андохта шавад, хеле фаврӣ буд.Дар ин мақола ман мехоҳам дар бораи лоиҳаи худ сухан гӯям, ки дар он замоне, ки ман ҳомила шуда будам. Ҷустуҷӯи ҳалли омода, дар ин ҳолат Docker тасвире, ки ба шумо имкон медиҳад, ки сервери OpenVPN-ро бо ҳадди ақали танзимот ва сатҳи қобили қабули амният насб кунед.

OpenVPN-ро дар Docker дар 2 сония оғоз кунед

prehistory

Қобилияти иҷро кардани хидмат дар ҳама гуна мошин - хоҳ он сервери физикӣ ё сервери хусусии виртуалӣ ва ё ҳатто фазои контейнерӣ дар дохили системаи дигари идоракунии контейнер - муҳим буд. Нигоҳам дарҳол ба Докер афтод. Аввалан, ин хидмат маъруфият пайдо мекунад ва аз ин рӯ, шумораи бештари провайдерҳо бо насби пешакӣ ҳалли тайёрро пешниҳод мекунанд; дуюм, анбори мутамаркази тасвирҳо мавҷуд аст, ки аз он ҷо шумо метавонед хидматро бо истифода аз як фармон дар терминал зеркашӣ ва иҷро кунед. Фикри он ки чунин лоиҳа бояд аллакай вуҷуд дошта бошад, ба сарам омад ва ман сахт ҷустуҷӯ кардам. Аммо аксари лоиҳаҳое, ки ман ёфтам, ё хеле вазнин буданд (шумо бояд барои нигоҳдории доимии маълумот як контейнер эҷод кунед ва контейнерро бо барнома якчанд маротиба бо параметрҳои гуногун оғоз кунед) ё бидуни ҳуҷҷатҳои солим ё тамоман партофташуда. Ҳеҷ чизи қобили қабул наёфтанд. , Ман дар лоиҳаи шумо ба кор шурӯъ кардам. Пеш аз омӯзиши ҳуҷҷатҳо, навиштани код ва ислоҳкунӣ шабҳои бехобӣ буданд, аммо дар ниҳоят хидмати ман равшании рӯзро дид ва бо ҳама рангҳои панели монохромии LED роутер дурахшид. Пас, ман аз шумо хоҳиш мекунам, ки дӯст доред ва илтифот кунед - Docker-OpenVPN. Ман ҳатто бо як логотип (боло, пеш аз буридан) пайдо кардам, аммо онро ба таври қатъӣ доварӣ накунед, зеро ман тарроҳ нестам (дигар) Вақте ки ман ин лоиҳаро амалӣ мекардам, ман суръати ҷойгиркунӣ, ҳадди аққал танзимот ва сатҳи қобили қабули амният. Тавассути озмоиш ва иштибоҳ, ман тавозуни оптималии ин меъёрҳоро пайдо кардам, аммо дар баъзе ҷойҳо ман маҷбур будам, ки суръати густаришро ба хотири амният қурбон кунам ва ман маҷбур будам, ки барои интиқол барои ҳадди ақали танзимот пардохт кунам: дар конфигуратсияи ҷорӣ, як контейнерро, ки дар як сервер сохта шудааст, ба сервери дигар интиқол додан ва оғоз кардан мумкин нест. Масалан, ҳама сертификатҳои муштарӣ ва сервер ҳангоми оғоз кардани хидмат тавлид мешаванд ва ин тақрибан 2 сонияро мегирад. Бо вуҷуди ин, насли файли Hellman Defi бояд дар вақти сохтани он гирифта мешуд: он ҳангоми сохтани тасвири докер сохта мешавад ва метавонад то 10 дақиқа давом кунад. Ман дар ҳақиқат мехоҳам аудити амниятии чунин ҳалли худро аз ҷомеаи мӯҳтарам гирам.

Запуск

Барои оғози хидмат ба мо чанд чиз лозим аст:

  1. Сервер: ҷисмонӣ ё виртуалӣ. Аз ҷиҳати назариявӣ кор кардан дар реҷаи docker-within-docker имконпазир аст, аммо ман ин вариантро ба таври васеъ санҷидаам;
  2. Дар асл Docker. Бисёре аз провайдерҳои хостинг ҳалли тайёрро бо Docker дар борт таъмин мекунанд;
  3. Суроғаи IP умумӣ.

Агар ҳамаи тафсилот дар ҷои худ бошад, пас мо бояд танҳо фармони зеринро дар консоли сервери худ иҷро кунем:

docker run --cap-add=NET_ADMIN 
-it -p 1194:1194/udp -p 80:8080/tcp 
-e HOST_ADDR=$(curl -s https://api.ipify.org) 
alekslitvinenk/openvpn

Хонандаи бодиққат шояд пай бурда бошад, ки суроғаи IP-и сервер бо истифода аз худкор муайян карда мешавад ipify.org. Агар бо ягон сабаб ин кор накунад, шумо метавонед суроғаро ба таври дастӣ муайян кунед.

Sun Jun  9 08:56:11 2019 Initialization Sequence Completed
Sun Jun  9 08:56:12 2019 Client.ovpn file has been generated
Sun Jun  9 08:56:12 2019 Config server started, download your client.ovpn config at http://example.com/
Sun Jun  9 08:56:12 2019 NOTE: After you download you client config, http server will be shut down!

Мо ба максад наздикем: акнун бояд нусхабардорй кунем example.com (дар ҳолати шумо он суроғаи сервери шумо хоҳад буд) ва онро ба сатри суроғаҳои браузери худ часбонед. Пас аз пахш кардани Enter, файли client.ovpn бор карда мешавад ва худи сервери http дар ҳолати фаромӯшӣ нопадид мешавад. Агар ин ҳалли шубҳанок бошад, шумо метавонед ҳиллаи зеринро истифода баред: фармони қаблиро иҷро кунед ва парчамҳоро илова кунед zp ва парол. Акнун, агар шумо истиноди тавлидшударо ба равзанаи браузер часбонед, шумо бойгонии zip-ро бо парол мегиред.Вақте ки шумо файли конфигуратсияи муштарӣ доред, шумо метавонед ҳама гуна муштарии мувофиқро истифода баред. Ман Tunnelblick барои Mac истифода мекунам.

Видео дарс

Ин дастури видеоӣ дорои дастурҳои муфассал оид ба ҷойгиркунии хидмат дар DigitalOcean мебошад.

PS Агар шумо ин лоиҳаро муфид ёбед, лутфан ба он дар GitHub ситора диҳед, онро буред ва ба дӯстонатон бигӯед. Саҳмгузорон ва аудитҳои амниятӣ низ ба таври васеъ истиқбол карда мешаванд.PPS Агар ин мақола дар Ҳабр ба итмом расад, пас ман ният дорам, ки мақолаи навбатиро дар бораи он ки чӣ гуна ман docker-in-docker ва docker-in-docker-in-docker-ро ба кор андохтам, чаро ман ин корро кардам ва аз он чӣ натиҷа дод, нависам.
EDIT1:

  1. Хатогиҳои ислоҳшуда дар нашрия,
  2. Дар посух ба шарҳҳо ман тасмим гирифтам, ки ин маълумотро дар ин ҷо гузорам: барои кор бо iptables -парчами имтиёзнок лозим аст.

EDIT2:

  1. Фармони оғози тасвир такмил дода шуд: ҳоло он парчами -имтиёзнокро талаб намекунад
  2. Истинод ба дастури видеозабони русӣ илова карда шуд: youtu.be/A8zvrHsT9A0

Манбаъ: will.com

Илова Эзоҳ