Содержание статьи
INFO
Это перевод статьи, впервые опубликованной в блоге Hyperion Gray. Рассказал Джейсон Хоппер, записал Дэвид Таулер, перевела Алёна Георгиева.
На самом деле главной причиной стало то, что я очень много сканирую интернет. Это не какое-то сомнительное сканирование, а вполне себе крутое. В частности, глубоко сканирую каждый IP в интернете — и делаю это чрезвычайно быстро. Что, разумеется, дает очень серьезную нагрузку на мою сеть — и на железо тоже. Сканировать так через традиционного провайдера почти невозможно: обычно они имеют строгие ограничения, а достаточной пропускной способности, напротив, не имеют. Есть, конечно, сервисы, которые позволяют использовать базу данных, но с ними столь объемное сканирование становится слишком дорогим — и довольно быстро.
У меня было 250 тысяч долларов на счету одного провайдера VSP, да еще и с ограничением по времени (как я к этому пришел — отдельная большая история). И когда эти деньги закончились — а они закончились, и быстро, — мне пришлось искать какой-то другой вариант.
Я стал придумывать что-то еще и после некоторых подсчетов обнаружил, что купить сервер в моей ситуации дешевле — настолько, что в итоге он окупился примерно за полгода. Большинство компаний полагают, что лучше пользоваться облачным провайдером, — а может, всего лишь не хотят разбираться, — и просто исправно оплачивают выставленные счета. Но для технологических компаний вроде нашей, кому нужно не только сайт захостить, это не вариант.
«Что представляет собой процесс?»
Поскольку повышенной секретности не требовалось, я пошел официальным путем (вах-вах!). Обратился к Канадской комиссии по радио, телевидению и телекоммуникациям (CRTC), канадскому аналогу Федеральной комиссии по связи Соединенных Штатов (FCC), чтобы получить базовую лицензию международных телекоммуникационных сервисов (BITS), — в общем, Очень Много Аббревиатур.
INFO
От редакции: в России функции организаций, обозначенных этими сокращениями, выполняет Роскомнадзор. Если вдруг решишься на беспримерный подвиг, ищи в первую очередь две лицензии — на телематические услуги и на передачу данных за исключением передачи данных для целей голосовой информации (то есть без IP-телефонии, на нее нужна отдельная лицензия).
Здесь потребовались кое-какие юридические действия, нотариус и оформление бумаг в трех экземплярах, но ходить на голове не пришлось — в целом это вполне осуществимо. Ой, чуть не забыл — есть еще период общественного обсуждения заявки на лицензию, когда люди могут написать, что они думают по этому поводу. Я не получил ни одного комментария… (Всплакнул.)
Когда юридическая подготовка успешно завершилась и я получил официальное разрешение продавать интернет, началось самое интересное. Право-то я получил — но продавать мне было нечего. Сам процесс меня знатно фрустрировал, а стоимость интернета, который я мог бы перепродавать, была очень высокой. И что же делать?
Окей, несколько лет назад я познакомился с владельцем одного интернет-провайдера, и он рассказал мне об «оптовом» интернете от большого канадского провайдера Bell. Сам Bell об этой услуге не распространяется — оно и понятно: зачем отдавать даром то, что можно продать подороже? Правда, была одна серьезная проблема: чтобы продавать в розницу «оптовый» интернет, нужно было протянуть оптоволокно от крупного узла доступа в мой дом. А это дополнительное строительство, разрешения от города и куча других накладных расходов — в общем, месячная стоимость выходила за разумные пределы. А если еще учесть, что договор нужно заключать минимум на шесть лет…
Лучше застрелите… Цитируя бессмертные слова Эксла Роуза, «куда мы теперь?».
Другой вариант: у одного реселлера интернета от Bell было существенно более доступное, но все еще дорогое предложение. Я знаю, о чем ты сейчас думаешь: «Эй, Джейсон, а почему ты просто не арендуешь стойку в колокационном центре?» Хороший вопрос. Я пробовал, но каждый новый сервер заметно увеличивает арендную плату. C сетью все было пристойно, но я должен был делить ее с другими людьми — а это значит, что, если у меня или у них будет какой-то программный баг, может рухнуть вся сеть, и никого это не порадует.
Помимо всего прочего, это все еще очень дорого — и я бы переплачивал за функции, которые не собираюсь использовать. Такой план был бы жизнеспособен, если бы у меня был фиксированный набор требований к оборудованию и я ничего не менял. Но в том-то и загвоздка: мое сканирование в ряду многих других операций не будет статичным; напротив, оно будет более чем динамичным. Так что пришлось бы постоянно менять настройки и функции — а это такая головная боль, что оно того не стоит. Но и это еще не все (глубокий вдох): колокации заявляют, что они работают безотказно 99,99999% времени — этот показатель называют «пять девяток». Но если ты готов запустить сервер самостоятельно и согласиться на 99,9% — удивительная разница! — можно сэкономить немного денег. Ну и за нежелательные функции, включенные в стоимость, переплачивать не придется.
«Что же ты сделал?»
Всё и сам.
Выяснил, как построить собственную сеть, собрал билд, дополнил его диаграммой сети и выложил на обсуждение в сабреддит /r/homelab. И да, мой ник на «Реддите» реально 420SwagBootyWizzard — смирись с этим.
Двигаемся дальше: в сети есть пять основных компонентов, у всех названия из «Стартрека».
USS Defiant — Dell R710, основной шлюз обмена сообщениями. Размещает и анализирует все мои данные, а также управляет ими. Учитывая, что данные я собираю по всему интернету, на этом сервере висит довольно много работы.
Picard — моя установка глубокого обучения, обладающая несколькими графическими процессорами (GPU) и самым мощным в дата-центре CPU. Ее главная функция — быть машиной глубокого обучения и анализа. Она очень экономит время, когда я работаю над очередным проектом — аналитическим или по машинному обучению.
Janeway — очень мощная база данных с твердотельным накопителем (SSD) большого объема. В ней собраны несколько SSD «корпоративного уровня». База данных должна иметь очень высокую скорость записи, чтобы не отставать от поступающих данных, и располагать многотерабайтным хранилищем. Собрать этот сервер было довольно сложно. Он должен не только быстро записывать, но и быстро считывать, выдерживать интенсивную запись, а также иметь большую вместимость. Удовлетворить все эти требования было непросто. Я подсчитал, что обычный SSD (например, Samsung Evo 860), скорее всего, умрет за год использования.
Дальше идет Delta Flyer, еще один Dell R710. Это сервер моей виртуальной машины, на котором крутится среда Proxmox.
И наконец, Databanks (я планировал назвать его в честь бортового компьютера корабля «Энтерпрайз», но не смог найти имя — если кто-нибудь подскажет, буду признателен). В основном он работает как сервер DNS и сетевой накопитель (NAS) от Synology. Он имеет очень большую емкость и используется главным образом для бэкапов и архивирования — но его можно подцепить к любой виртуальной машине или другому серверу, которому нужно хранить несколько больших папок.
WWW
Если хочешь узнать побольше о DNS-серверах и их использовании в кибератаках, загляни в мой блог.
Заодно мы перестроили наш дом — в смысле, я такой: камон, это лучший момент, чтобы добавить еще немного проводки! До этого моя жена думала, что я просто чуть более чокнутый, чем обычно, — но теперь она все поняла и оценила. После ремонта дома и укладывания новой проводки я пошел еще дальше — и разорился на остекленный дата-центр и пару точек доступа Wi-Fi бизнес-класса. В итоге получилась очень маленькая комната — но много места под мои нужды.
Я уверен, ты уже оценил, насколько значительны затраты: серверы, корпус, направляющие, распределение питания, источник бесперебойного питания (просто большой аккумулятор — чтобы при перебоях электроэнергии компы продолжали работать) и так далее. Все нарастает как снежный ком — и довольно быстро. Но, с другой стороны, поскольку теперь я технически лицензированный интернет-провайдер, я могу легально продавать интернет своим соседям — что, конечно, довольно гнусно. Однако куда важнее, что все это может облегчить мои исследования достаточно эффективным экономически способом. И хотя в целом проект дорогой, в долгосрочной перспективе все вполне рентабельно и реально может отбиться за первые несколько лет. И я знаю, что прыгнул прямо сейчас на двадцать уровней крутости вверх, — но постараемся держать себя в руках, верно? 😛
«Что собираешься делать дальше?»
Поскольку работа еще не завершена, я не могу выстроить четкой картины будущего. Полагаю, что буду развивать и развивать свой проект, потому что, если честно, мне нравится быть самому себе провайдером — можно даже сказать, королем собственного домена. Теперь у меня есть свобода, скорость и пропускная способность, чтобы сканировать то, что мне нравится, и так часто, как я хочу. Я не говорю, что тебе обязательно стоит последовать моему примеру, — говорю лишь, что ты мог бы. Это было на удивление легко и очень весело.
Одной из первых идей было предложить этот путь исследователям инфосека, потому что, например, мы этим уже занимаемся, — и теперь, когда проект запущен и работает, мы определенно хотим предложить его тем, кто профессионально исследует инфобезопасность. Когда я выяснил, насколько трудно исследовать информационную безопасность крупных облачных провайдеров, я подумал: а ведь было бы неплохой идеей поддержать исследования, предоставив доступ к общим датасетам и совместным исследованиям. И хотя с тех пор мы немного отошли от этой мысли из-за особенностей логистики и управления клиентами, это определенно остается вариантом на будущее.