«Подкроватный» хостинг — жаргонное название сервера, расположенного в обычной жилой квартире и подключённого к домашнему интернет-каналу. На таких серверах обычно размещался публичный FTP-сервер, домашняя страничка владельца и иногда даже целый хостинг для других проектов. Явление было распространено в ранние времена появления доступного домашнего интернета по выделенному каналу, когда аренда выделенного сервера в дата-центре была слишком дорогой, а виртуальные сервера ещё не были распространены и достаточно удобны.
Чаще всего для «подкроватного» сервера выделялся старый компьютер, в который устанавливались все найденные жесткие диски. Он также мог выполнять роль домашнего роутера и файрвола. Такой сервер обязательно был дома у каждого уважающего себя сотрудника телекома.
С появлением доступных облачных сервисов домашние сервера стали менее популярны, и сегодня максимум, что можно встретить в жилых квартирах — это NAS для хранения фотоальбомов, фильмов и бекапов.
В статье рассматриваются курьёзные случаи, связанные с домашними серверами, и проблемы, с которыми сталкиваются их администраторы. Посмотрим, как это явление выглядит в наши дни и выберем, что интересного можно захостить на своём подкроватном сервере сегодня.
Серверы домовой сети в г. Новая Каховка. Фото с сайт nag.ru
Правильный IP-адрес
Главным требованием для домашнего сервера было наличие реального, то есть маршрутизируемого из интернета IP-адреса. Многие провайдеры не предоставляли такой услуги для физических лиц, и добывать его приходилось по особенной договоренности. Часто провайдер требовал заключить отдельный договор на предоставление выделенного IP. Иногда даже эта процедура предусматривала создание отдельного NIC Handle для владельца, в результате чего его ФИО и домашний адрес были доступны прямо с помощью команды Whois. Тут уж приходилось быть осторожным при спорах в интернете, так как шутка про «вычислить по IP» переставала быть шуткой. Кстати, не так давно был скандал с провайдером Акадо, который решил размещать в whois персональные данные всех своих клиентов.
Постоянный IP-адрес vs DynDNS
Хорошо, если удавалось получить постоянный IP-адрес — тогда можно было легко направить все доменные имена на него и забыть, но это удавалось не всегда. Многие крупные ADSL провайдеры федерального масштаба выдавали клиентам реальный IP-адрес только на время жизни сессии, то есть он мог измениться либо раз в сутки, либо в случае перезагрузки модема или обрыва связи. В таком случае приходили на помощь сервисы Dyn (dynamic) DNS. Самый популярный сервис Dyn.com, долгое время бывший бесплатным, давал возможность получить поддомен в зоне *.dyndns.org, который мог быстро обновляться при смене IP-адреса. Специальный скрипт на стороне клиента постоянно стучался на сервер DynDNS, и, в случае если его исходящий адрес изменился, новый адрес сразу устанавливался в А-запись поддомена.
Закрытые порты и запрещенные протоколы
Многие провайдеры, особенно крупные ADSL, были против того, чтобы пользователи хостили на свои адресах какие-либо публичные сервисы, поэтому запрещали входящие соединения на популярные порты вроде HTTP. Известны случаи, когда провайдеры блокировали порты игровых серверов, вроде Counter-Strike и Half-Life. Эта практика популярна до сих пор, из-за чего иногда вызывает проблемы. Например, почти все провайдеры блокируют порты RPC и NetBios Windows (135-139 и 445), чтобы предотвратить распространение вирусов, а также часто входящие порты для протокола Email SMTP, POP3, IMAP.
Провайдеры, предоставляющие кроме интернета услуги IP-телефонии любят блокировать порты протокола SIP, чтобы таким образом заставить клиентов использовать только их услуги телефонии.
PTR и отправка почты
Хостинг собственного почтового сервера это отдельная большая тема. Держать у себя под кроватью личный почтовый сервер, который полностью вам подконтролен — идея очень соблазнительная. Но реализация на практике оказывалась не всегда возможной. Большинство диапазонов IP-адресов домашних провайдеров находятся в перманентом блоке в спам-листах (Policy Block List), поэтому почтовые сервера просто отказываются принимать входящие соединения на SMTP с IP-адресов домашних провайдеров. В результате отправить письмо с такого сервера было практически невозможно.
Кроме этого для успешной отправки почты требовалось установить корректную PTR-запись на IP-адрес, то есть обратное преобразование IP-адреса в доменное имя. Подавляющее большинство провайдеров соглашалось на это только при особой договоренности или при заключении отдельного договора.
Ищем подкроватные сервера соседей
Используя PTR записи, можем посмотреть, кто из наших соседей по IP-адресам договорился об установке особой DNS-записи для своего IP. Для этого возьмём наш домашний IP-адрес, выполним для него команду whois, и получим диапазон адресов, которые провайдер выдаёт клиентам. Таких диапазонов может быть много, но для эксперимента проверим один.
В нашем случае это провайдер Онлайм (Ростелеком). Заходим на 2ip.ru и получаем наш IP адрес:
Кстати, Онлайм один из тех провайдеров, который выдаёт клиентам постоянный IP всегда, даже без подключённой услуги выделенного IP-адреса. При этом адрес может не изменяться месяцами.
Отрезолвим весь диапазон адресов 95.84.192.0/18 (около 16 тысяч адресов) с помощью nmap. Опция -sL по сути не выполняет активного сканирования хостов, а только посылает DNS-запросы, так что в результатах мы увидим только строчки, содержащие домен привязанный к IP-адресу.
$ nmap -sL -vvv 95.84.192.0/18
......
Nmap scan report for broadband-95-84-195-131.ip.moscow.rt.ru (95.84.195.131)
Nmap scan report for broadband-95-84-195-132.ip.moscow.rt.ru (95.84.195.132)
Nmap scan report for broadband-95-84-195-133.ip.moscow.rt.ru (95.84.195.133)
Nmap scan report for broadband-95-84-195-134.ip.moscow.rt.ru (95.84.195.134)
Nmap scan report for broadband-95-84-195-135.ip.moscow.rt.ru (95.84.195.135)
Nmap scan report for mx2.merpassa.ru (95.84.195.136)
Nmap scan report for broadband-95-84-195-137.ip.moscow.rt.ru (95.84.195.137)
Nmap scan report for broadband-95-84-195-138.ip.moscow.rt.ru (95.84.195.138)
Nmap scan report for broadband-95-84-195-139.ip.moscow.rt.ru (95.84.195.139)
Nmap scan report for broadband-95-84-195-140.ip.moscow.rt.ru (95.84.195.140)
Nmap scan report for broadband-95-84-195-141.ip.moscow.rt.ru (95.84.195.141)
Nmap scan report for broadband-95-84-195-142.ip.moscow.rt.ru (95.84.195.142)
Nmap scan report for broadband-95-84-195-143.ip.moscow.rt.ru (95.84.195.143)
Nmap scan report for broadband-95-84-195-144.ip.moscow.rt.ru (95.84.195.144)
.....
Почти все адреса имеют стандартную PTR запись вида broadband-адрес.ip.moscow.rt.ru кроме пары штук, среди которых mx2.merpassa.ru. Судя по поддомену mx, это почтовый сервер (mail exchange). Попробуем проверить этот адрес в сервисе SpamHaus
Видно, что весь диапазон IP находится в перманентном блок-листе, и письма, отправленные с этого сервера, будут крайне редко доходить до адресата. Учитывайте это при выборе сервера для исходящей почты.
Держать почтовый сервер в IP-диапазоне домашнего провайдера это всегда плохая идея. Такой сервер будет иметь проблемы с отправкой и получением почты. Имейте это в виду, если ваш системный администратор предлагает развернуть почтовый сервер прямо на офисном IP-адресе.
Используйте либо настоящий хостинг, либо email-сервис. Так вам придётся реже звонить, чтобы уточнить дошли ли ваши письма.
Хостинг на WiFi-роутере
С появлением одноплатных компьютеров вроде Raspberry Pi никого не удивишь сайтом, запущенным на устройстве размером с пачку сигарет, но ещё до появления Raspberry Pi энтузиасты запускали домашние страницы прямо на WiFi роутере!
Легендарный роутер WRT54G, с которого начался проект OpenWRT в 2004 году
Роутер Linksys WRT54G, с которого начался проект OpenWRT не имел USB портов, однако умельцы нашли в нём распаянные пины GPIO, которые можно было использовать как SPI. Так появился мод, добавляющий в устройство SD-карту. Это открывало огромную свободу для творчества. Можно было даже собрать целый PHP! Я лично помню, как почти не умея паять, припаивал SD-карту к этому роутеру. Позже уже в роутерах появятся USB-порты и можно будет просто вставить флешку.
Раньше в интернете было сразу несколько проектов, которые были целиком запущены на домашнем WiFi роутере, об этом будет приписка внизу. К сожалению, мне не удалось найти ни одного живого сайта. Возможно, вы знаете такие?
Серверные шкафы из столиков IKEA
Однажды кто-то обнаружил, что популярный журнальный столик из IKEA под названием Lack отлично подходит в качестве стойки для стандартных 19-дюймовых серверов. Из-за цены в $9 этот столик стал очень популярен для создания домашних дата-центров. Такой способ монтажа назвали Lack Rack.
Столик Икеа Лакк идеально подходит вместо серверного шкафа
Столики можно было устанавливать один на другой и строить настоящие сервервные шкафы. К сожалению, из-за хрупкого ЛДСП от тяжёлых серверов столики разваливались. Для надёжности их укрепляли металлическими уголками.
Как школьники лишили меня интернета
У меня, как полагается, тоже был свой подкроватный сервер, на котором крутился простенький форум, посвящённый околоигровой теме. Однажды недовольный баном агрессивный школьник подговорил своих товарищей, и те вместе начали DDoS-ить мой форум со своих домашних компьютеров. Так как весь канал в интернет тогда был около 20 Мегабит, им удалось полностью парализовать мой домашний интернет. Никакие блокировки на файрволе не помогали, потому что происходило полное исчерпание канала.
Со стороны выглядело очень смешно:
— Алло, почему ты мне не отвечаешь в аське?
— Прости, интернета нет, меня ддосят.
Обращения к провайдеру не помогли, мне ответили, что разбираться с этим не входит в их обязанности, и они могут только заблокировать мне полностью входящий трафик. Так я просидел два дня без интернета, пока атакующим не надоело.
Заключение
Здесь должна была быть подборка современных P2P-сервисов, которые можно развернуть на домашнем сервере, вроде ZeroNet, IPFS, Tahoe-LAFS, BitTorrent, I2P. Но за последние пару лет моё мнение сильно изменилось. Я считаю, что размещение каких-либо публичных сервисов на домашнем IP-адресе, а тем более тех, которые предполагают загрузку пользовательского контента, создает неоправданный риск для всех жильцов, проживающих в квартире. Теперь я советую максимально запретить входящие соединения из интернета, отказаться от выделенных IP-адресов, а все свои проекты держать на удалённых серверах в интернете.
GennPen
Gamliel_Fishkin
Ещё можно даже использовать CDN (Cloudflare, Imperva).
UrbanRider
А заодно через тот же CF организовать свой бесплатный DynDNS – благо делается легко.
BigD
еще проблема со стабильностью канала домашних провайдеров — как простым средством организовать резервирование с доступностью извне по IP или хотя бы DNS? брать два провайдера и роутер с failover?
ksenobayt
Возможности протянуть два аплинка у меня нет, в силу монополии, царящей в моём доме. Решается посредством LTE-свистка, который подкидывается в момента дауна основного канала. Разумеется, при срабатывании фейловера автоматом тушатся демоны торрент-клиента и всё, что не входит в essential сервисы.
А так, если говорить о технической стороне вопроса, то на OpenWRT той же это решается в течение получаса. На pfSense не пробовал, но предполагаю, что трудозатраты будут плюс-минус аналогичными.
BigD
ну IP-то поменяется без BGP, насколько я понимаю. Имеется в виду обновление DNS на новый IP, или еще что?
ksenobayt
Это реализовано посредством удалённого управления DNS через API клаудфлэра. При срабатывании фейловера, скрипты попросту стучатся к ним и быстренько меняют нужные А-записи. При минимальном TTL, клиенты на гугловых DNS замечают правки практически мгновенно.
BigD
а, ну аналог DynDNS, насколько я понимаю, с малым TTL — да, есть смысл
ksenobayt
Нет, никакого DynDNS. Внешний адрес статический у обоих линков, правки на CF идут только при событии фейловера. Это костыль, но вполне рабочий для моих нужд.
BigD
ну а чем это отличатся от DynDNS технически? Есть A запись с малым TTL (иначе обновления по событию не приведет к быстрому обновлению записей в Интернете), она обновляется по событию (редко), потом возвращается по восстановлению основного аплинка
ksenobayt
Идея похожа, но вряд ли реализация. DynDNS нужна была для автоматического сопоставления динамического, постоянно меняющегося, адреса. Тут задача несколько другая.
Впрочем, возможно, я всю эту историю в ближайшее время выброшу, и тупо заверну весь трафик в VPN. Тогда все эти свистопляски с DNS станут не нужны по определению.
TimsTims
Подскажите этот чудо-свисток, который выдает мало того, что белый IP, но ещё и статичный адрес? На физиков, насколько мне известно, такое давно уже не подключают.
ksenobayt
У МТС есть возможность подключить модемный тариф с, кажется, 30 Гб трафика в месяц, лимитом в 5 Мбит на линк, и с белым айпишником за сто рублей сверху. По крайней мере, в Москве.
Свисток — старый расшитый Huawei, брендированный Йотой. Его вполне хватает для доступа к видеонаблюдению и охранной системе.
KorDen32
Белый айпишник не статический, идет через другую APN (realip.msk), и вроде как на эту APN основной пакет интернета не распространяется, т.е. тарификация становится помегабайтной.
ksenobayt
Не могу сказать ничего за последнее, у меня тарифицируется из штатного пакета. Статика в итоге получается или нет — совершенно неважно, в нынешнем конфиге на API передётся актуальный на момент запуска скрипта внешний адрес.
stilic
Не-а. Не для всех клиентов.
Многие дешевые китайские роутеры кэшируют DNS навечно.
ksenobayt
К счастью, ни один из моих девайсов не подключается через дешёвый китайский роутер, так что меня это не касается. Публичных сервисов я никаких всё равно не предоставляю.
DGN
Это не поможет, так как DNS кешируется надолго. Делал точку входа на хостере с редиректом на текущий менее занятый IP. Два роутера от двух провайдеров, оба пробрасывают порты на сервак под кроватью. Таким образом в DNS одна запись, от DDoS защищает хостер и вообще все телемаркет.
p.s. Оно конечно держите серваки на хорошем хостере, но сколько стоит колокейшен на 4U сервак с анлимом 200 мегабит?
Gamliel_Fishkin
Для такой задачи достаточно са?мого дешёвого VPS. Или Cloudflare, который на начальном уровне вообще бесплатен (принцип start for free, pay as you grow).
DMGarikk
меня так забавляют все эти бесплатные тарифные планы где «вы платите только за то что используете!»… где месячный ценник за простаивающий сервер выходят дороже vps с фиксированной платой который работает
Gamliel_Fishkin
Вы знаете такие случаи у Cloudflare?