Вэб-хосцінг ці VPS: ці можа ваш план запускаць VPN-сервер?
Агульны хосцінг, кіраваная праграма і самакіраваны сервер даюць розны ўзровень кантролю над сеткай. Параўнайце чатыры магчымасці, перш чым купляць або пераносіць што-небудзь.
Працуючы сайт — гэта доказ таго, што пастаўшчык можа аддаваць HTTP, а не таго, што вы кантралюеце машыну. Паміж агульным планам, кіраванай праграмай і самакіраваным серверам ляжыць вялікая розніца ў тым, што ўліковы запіс можа рабіць з сеткай. Вырашыце, які бок гэтай розніцы патрэбны вашай архітэктуры VPN, перш чым плаціць яшчэ за год. Чатыры магчымасці аддзяляюць адно ад другога, і ні адна з іх не паказана ў прайсе.
Што насамрэч дае кожны план
Карыснае параўнанне — не цана і не памер дыска, а паўнамоцтвы. Спытайцеся, што ўліковы запіс можа запусціць, да якіх функцый ядра ён мае доступ, якія порты прымаюць уваходны трафік і ці можа дапушчаны трафік зноў выйсці дзесьці іншым.
Большасць паслуг хосцінгу належаць да трох формаў, і толькі апошняя — сервер агульнага прызначэння:
| Capability | Website plan | Self-managed server |
|---|---|---|
| Long-running custom process | Usually not permitted | Yours to run under a service manager |
| Virtual network interface | Almost never available | Present when the kernel module and privilege allow it |
| Arbitrary inbound port | Restricted to the web stack | Provider filtering still applies |
| Forwarding for clients | Not offered | Possible 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Першыя два радкі кажуць, ці можа тунельная прылада наогул існаваць. Трэці паведамляе, ці можа хост перасылаць пакеты, а чацвёрты паказвае, што ўжо слухае, каб канфлікт порта злавіць рана. Пастаўшчык, які правальвае другі радок, усё ж можа падтрымліваць рэалізацыю ў прасторы карыстальніка, таму называйце механізм, які вам патрэбны, а не катэгорыю прадукту, калі пытаецеся ў службы падтрымкі.