Працуючы сайт — гэта доказ таго, што пастаўшчык можа аддаваць HTTP, а не таго, што вы кантралюеце машыну. Паміж агульным планам, кіраванай праграмай і самакіраваным серверам ляжыць вялікая розніца ў тым, што ўліковы запіс можа рабіць з сеткай. Вырашыце, які бок гэтай розніцы патрэбны вашай архітэктуры VPN, перш чым плаціць яшчэ за год. Чатыры магчымасці аддзяляюць адно ад другога, і ні адна з іх не паказана ў прайсе.

Што насамрэч дае кожны план

Карыснае параўнанне — не цана і не памер дыска, а паўнамоцтвы. Спытайцеся, што ўліковы запіс можа запусціць, да якіх функцый ядра ён мае доступ, якія порты прымаюць уваходны трафік і ці можа дапушчаны трафік зноў выйсці дзесьці іншым.

Большасць паслуг хосцінгу належаць да трох формаў, і толькі апошняя — сервер агульнага прызначэння:

CapabilityWebsite planSelf-managed server
Long-running custom processUsually not permittedYours to run under a service manager
Virtual network interfaceAlmost never availablePresent when the kernel module and privilege allow it
Arbitrary inbound portRestricted to the web stackProvider filtering still applies
Forwarding for clientsNot offeredPossible once routing and policy are configured

Уліковы запіс shell — звычайная крыніца блытаніны. Перадача файлаў або доступ да запланаваных задач могуць выглядаць як адміністраванне, хоць працэс абмежаваны каталогам і невялікім наборам дазволеных аперацый.

Чатыры магчымасці, якія вырашаюць адказ

Бярыце іх па парадку, бо збой на першым кроку робіць астатнія неістотнымі.

Па-першае, праграма павінна працаваць як доўгажывучы працэс, які перажывае абслугоўванне. Па-другое, рэалізацыя павінна ўмець ствараць свой віртуальны інтэрфейс; у Linux гэта звычайна азначае адкрыццё /dev/net/tun з адпаведнымі адміністрацыйнымі правамі, як дакументацыя ядра па TUN/TAP апісвае, хаця не кожная архітэктура VPN выкарыстоўвае гэтую прыладу. Па-трэцяе, кліенты павінны дасягаць слухача на публічным адрасе, праз транспарт і порт, якія вы маеце на ўвазе, а вэб-зваротны проксі, што прымае HTTPS, нічога не кажа пра незвязаны пратакол на тым жа нумары. Па-чацвёртае, дапушчаны трафік павінен мець магчымасць ісці далей, з маршрутамі, перасылкай і любой трансляцыяй, што рэальна падтрымліваецца.

Умовы абслугоўвання стаяць побач з гэтымі чатырма і зусім не тэхнічныя. Безлімітныя нормы трафіку звычайна апісваюць вэб-запыты, а не тунель, што нясе чужыя загрузкі. Прачытайце раздзел пра дапушчальнае выкарыстанне, перш чым праектаваць вакол яго, і трымайце ў галаве доступ для аднаўлення на той дзень, калі сэрвіс не запусціцца.

Дзе вэб-акаўнт спыняецца

План вэб-сайта звычайна запускае ваш код у кіраваным асяроддзі выканання з фіксаванай кропкай уваходу. Нават калі бінарнік тунеля прысутнічае, працэсу можа не хапаць правоў адкрыць вузел прылады, заняць прывілеяваны порт або змяніць табліцу маршрутызацыі. Гэтыя абмежаванні — гэта прадукт, а не недагляд.

Таму плагін, які абяцае VPN, звычайна аказваецца проксі ў іншае месца. Калі бягучы акаўнт дае толькі вэб-кіраванне, сумленны крок — асобны сервер, а не пошук модуля, які адкрывае адсутныя паўнамоцтвы.

Калі адзін хост павінен трымаць абодва

Сумеснае выкарыстанне магчымае і часам разумнае, але стаўцеся да яго як да рашэння бяспекі, а не як да зручнасці. Вэб-праграма з формай загрузкі стаіць побач з уліковымі данымі тунеля і кіравальным сокетам, і ўразлівасць у адной дасягае другой. Асобныя акаўнты, асобныя службовыя адзінкі і асобныя файлавыя сістэмы памяньшаюць гэтую экспазіцыю без куплі другой машыны.

Канкурэнцыя за рэсурсы не менш важная. Рэзервовая копія праз тунель і заняты вэб-працэс спаборнічаюць за адзін і той жа ўзыходны канал і адзін і той жа дыск, і збой выглядае як павольны сайт, а не як насычаны тунель. Вырашыце, якая нагрузка перамагае, да інцыдэнту, і абмяжуйце тунель, каб сайт працягваў адказваць.

Ні адна з кампаноў не ізаляваная толькі таму, што абедзве службы працуюць. Магчымасць размясціць іх разам — гэта пачатак праекта, а праца па ізаляцыі робіць яго абараняльным.

Вырашыце гэта на пробным хосце чатырма камандамі

Перад міграцыяй арандуйце найменшы асобнік мэтавага прадукту на гадзіну і праверце чатыры магчымасці напрамую. Здагадкі па табліцы функцый марнуюць менш грошай, чым год няправільнага плана, але значна больш часу.

Выканайце гэта на пробным хосце і чытайце збоі як адказы, а не як перашкоды:

ls -l /dev/net/tun
sudo ip tuntap add dev tun9 mode tun && sudo ip link del tun9
sysctl net.ipv4.ip_forward
ss -lunp | head

Першыя два радкі кажуць, ці можа тунельная прылада наогул існаваць. Трэці паведамляе, ці можа хост перасылаць пакеты, а чацвёрты паказвае, што ўжо слухае, каб канфлікт порта злавіць рана. Пастаўшчык, які правальвае другі радок, усё ж можа падтрымліваць рэалізацыю ў прасторы карыстальніка, таму называйце механізм, які вам патрэбны, а не катэгорыю прадукту, калі пытаецеся ў службы падтрымкі.

Падобныя артыкулы