Подкроватный хостинг: жуткая практика домашних хостингов
«Подкроватный» хостинг — жаргонное название сервера, расположенного в обычной жилой квартире и подключённого к домашнему интернет-каналу. На таких серверах обычно размещался публичный 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-адресов, а все свои проекты держать на удалённых серверах в интернете.