- PVSM.RU - https://www.pvsm.ru -

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы - 1
Веб-сервер на Raspberry Pi

Чтобы выложить информацию в открытый доступ, необязательно покупать аккаунт у хостинг-провайдера [1]. Существует много альтернативных вариантов, в том числе бесплатных. Есть бесплатные хостинги для текста, картинок и файлов, начиная с Github Pages [2].

А если мы хотим держать сайт полностью под своим контролем, то можем разместить веб-сервер на домашнем компьютере, одноплатнике Raspberry Pi или даже на мобильном телефоне. Главное, чтобы устройство всё время было в онлайне.

Веб-сервер на домашнем компьютере

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы - 2
Домашний сервер в винтажном корпусе, источник [3]

Старому компьютеру всегда можно найти применение: он может работать как торрент-клиент и медиасервер (раздавая видео через Plex на все телевизоры, ноутбуки и смартфоны), как файловое хранилище, архив бэкапов, а также как веб-сервер. Нет ничего проще.

Конечно, для стандартного программного стека лучше установить Linux, но и в Windows нет ничего зазорного. По крайней мере, 29,2% серверов в интернете работает под Windows [4], так что не обязательно менять операционную систему, если на компьютере изначально стояла она, тем более если вам привычно работать с такими инструментами, как ASP.NET и C.

Для простоты можно сразу установить весь комплект программ. Выбираем один из стеков AMP [5] (Apache, MySQL/MariaDB, Perl/PHP/Python) под любую платформу: Windows, macOS, Linux, BSD. Например, комплект WampServer [6] под Windows.

WampServer — это платформа для веб-разработки под Windows для динамических веб-приложений с помощью сервера Apache2, интерпретатора скриптов PHP и базы данных MySQL. В него также входит веб-приложение PHPMyAdmin для простой обработки баз данных.

Устанавливаем софт, получаем у провайдера внешний IP-адрес, прописываем в конфигурации доменное имя, открываем в маршрутизаторе порты 80, 3306 (MySQL), 21 (FTP), 22(SSH) или меняем их на нестандартные для уменьшения мусорного трафика от ботов-сканеров — и всё должно работать.

Подробнее см. статью «Подкроватный хостинг: жуткая практика домашних хостингов» [7], а также большой список программного обеспечения [8], которое можно развернуть на собственном хостинге [1].

Хостинг на Raspberry Pi

Алгоритм понятен: нужно поднять веб-сервер на Raspberry Pi и подключить его к сети. Это не какая-то экзотика, а вполне штатное использование «малинки». На официальном сайте даже есть инструкции по установке Apache [9] и Nginx [10].

Как вариант, веб-сервер можно поднять прямо на маршрутизаторе [7] (с прошивкой OpenWRT).

После установки Nginx проверяем доступность сайта на адресе http://localhost/ на самом Pi или по IP-адресу устройства внутри сети, например, http://192.168.1.10. Узнать свой внутренний IP-адрес можно командой hostname -I.

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы - 3

Веб-страницы по умолчанию хранятся в директории /var/www/html. Заходим туда и размещаем что угодно, заменив стандартные страницы. Адрес страницы по умолчанию прописывается в /etc/nginx/sites-available.

Кроме Nginx, для более функционального сайта можно установить PHP:

sudo apt install php-fpm

Далее в /etc/nginx/sites-available находим строчку index index.html index.htm; и добавляем в середину index.php, а в середине конфигурационного файла раскомменчиваем следующие строки:

location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}

После этой процедуры перезагружаем конфигурационный файл.

Вообще, Raspberry Pi можно использовать для разных полезных DIY-проектов. Например, сделать настенный календарь, превратить USB-принтер в беспроводной принтер [11], установить собственный VPN-сервер [12] и многое другое.

В целях эксперимента даже официальный сайт Raspberry Pi [13] (а это большой и посещаемый сайт) однажды захостили на мини-компьютерах Raspberry Pi 3 [14], пришлось соорудить кластер из восьми штук.

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы - 4
Кластер из четырёх Raspberry Pi Model B и одной Raspberry Pi Model B+, общая стоимость системы $183,34 (из другого проекта [15])

За сутки эксперимента кластер обслужил десятки миллионов посетителей.

Домашний веб-сервер на одноплатном компьютере потребляет совсем немного электроэнергии, для его работы достаточно единственной солнечной панели на балконе. В сентябре 2018 года энтузиаст из Low-tech Magazine запустил эксперимент с таким веб-сервером [16] на одноплатнике Olimex Olinuxino A20 Lime 2, который к настоящему моменту почти бесперебойно работает примерно два года (аптайм около 95%).

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы - 5 [17]
Первый прототип солнечного сервера с контроллером заряда

По расчётам разработчика, расход энергии на одного уникального посетителя составляет 0,021 Вт⋅ч.

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы - 6
Упрощённая схема питания веб-сервера. На ней отсутствуют преобразователь напряжения с 12 на 5 вольт и счётчик ампер-часов

Блокчейн и распределённый хостинг

На базе блокчейна создан ряд экспериментальных проектов, в том числе криптовалюты, умные контракты, проверка подлинности документов, электронное голосование и многое другое, в том числе и децентрализованный хостинг [1]. Одним из первых проектов такого рода стал Swarm [18] от разработчика Ethereum Виктора Трона.

Welcome to the Swarm.... Bzzz Bzzzz Bzzzz
 /
 o ^ o /
 ( ) /
____________(%%%%%%%)____________
( / / )%%%%%%%(   )
(___/___/__/ ________)
( / /(%%%%%%%)  )
(__/___/ (%%%%%%%) _____)
/( )
/ (%%%%%) 
(%%%)
!

Децентрализованный хостинг [1] предполагает, что сайт одновременно хранится сразу у нескольких участников сети. Теоретически, это повышает устойчивость сайта против DDoS-атак или государственной цензуры.

Программное обеспечение для работы Swarm выпускалось для всех основных платформ: Linux, macOS, Windows, Raspberry Pi, Android и iOS. Чтобы поднять у себя узел Swarm, нужно было скачать соответствующий бинарник с официальной страницы [19] или поднять Swarm в контейнере Docker.

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы - 7

Однако новые версии для узлов Swarm не выходят с февраля 2020 года, так что сейчас работа сети под вопросом. Разработчики пишут [20], что они перешли к разработке нового клиента Bee [21], который основан на более продвинутом сетевом слое (libp2p [22]). Они также считают, что проще переписать систему с нуля, чем исправлять ошибки. Так или иначе, но Swarm и Bee — это интересные эксперименты, которые демонстрируют концептуальную возможность распределённого хостинга [1].

Можно упомянуть ещё один P2P-проект: хостинг [1] картинок ipfs.pics [23], основанный на распределённой файловой системе InterPlanetary File System [24]. Он уже несколько лет работает без сбоев. Файлы здесь хранятся в P2P-сети пользователей. Когда картинка закачивается в сеть, для неё вычисляется 46-байтный хэш, который служит уникальным идентификатором файла. Хэш соответствует названию файла. Для загрузки файла достаточно знать его хэш. Например:

http://ipfs.pics/ipfs/QmcT99xWRNDAYunp7Zr8wGiwMKSgVfDpfbXw9hBtLCM4Mm

Файлы в распределённой сети IPFS практически невозможно удалить или заблокировать. Исходный код сервера опубликован на Github [25].

Чтобы защититься от мусора, сеть раздаёт на хранение новым пирам только те файлы, которые кто-то запрашивает.

Другой P2P-хостинг картинок можно организовать на фреймворке Tornado [26], если указать файловую систему GridFS [27]. На Хабре публиковалась инструкция, как сделать такой сервис в 30-ти строчках кода [28].

«Хостинг» на чужих серверах

Если кто-то рискнёт открыть порты на своём компьютере и посмотрит в логи — то сразу поймёт, в какую враждебную среду он попал. Множество попыток сканирования по всем стандартным портам с запросами на установленное ПО. Если не принимать защитных мер, то в софте практически на любом сервере можно найти уязвимости — и получить к нему доступ с правами администратора.

Дальше злоумышленник уже сам выбирает, что делать с ресурсами, которые попали к нему в руки: сделать дефейс ради лулзов, установить майнер криптовалюты, добавить в ботнет для DDoS'а или разместить файлы для распространения. Это и называется «хостинг на чужих серверах» — незаконная опция, которой пользуются злоумышленники.

Например, самый крупный современный ботнет Emotet распространяет свою вредоносную нагрузку через сеть взломанных сайтов, которые бот-мастер с условным именем именем Иван [29] контролирует через свои веб-шеллы, установленные там.

Так же работают некоторые другие ботнеты. В их состав которых входят домашние компьютеры, веб-серверы под Linux, смартфоны, маршрутизаторы и другие устройства интернета вещей, например, умные телевизоры под Android [30].

На устройствах из ботнета злоумышленник может размещать свои файлы как на своеобразном распределённом хостинге [1]. Это довольно надёжное хранилище, потому что многие пользователи годами не обновляют софт, не используют файрвол и не следят за трафиком.


В общем, собственный хостинг [1] имеет ряд преимуществ. Cервер в подвале или на балконе полностью находится под вашим контролем. Вы устанавливаете любое железо и программное обеспечение, на своё усмотрение. Никому не нужно платить ежемесячную плату за хостинг [1] (даже наоборот, вы и сами можете предоставлять такие услуги). И главное преимущество — всегда интересно узнать что-то новое, в данном случае — освоить некоторые навыки инженера и девопса.

Если же вам нужен надёжный сервер [31], который работает как швейцарские часы, то милости просим в ВДСину! Только современное и брендовое оборудование, одни из лучших дата-центров в России и Нидерландах, защита от DDoS «из коробки», удобная панель управления серверами собственной разработки и ещё много других плюшек. Поспешите заказать!

Автор: Александр

Источник [32]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/357476

Ссылки в тексте:

[1] хостинг-провайдера: https://www.reg.ru/?rlink=reflink-717

[2] Github Pages: https://pages.github.com/

[3] источник: https://www.armortechs.com/make-it-useful-again-turn-that-old-pc-into-a-diy-home-media-server

[4] 29,2% серверов в интернете работает под Windows: https://w3techs.com/technologies/overview/operating_system

[5] один из стеков AMP: https://en.wikipedia.org/wiki/List_of_Apache%E2%80%93MySQL%E2%80%93PHP_packages

[6] WampServer: https://www.wampserver.com/en/

[7] «Подкроватный хостинг: жуткая практика домашних хостингов»: https://habr.com/ru/company/vdsina/blog/486762/

[8] большой список программного обеспечения: https://github.com/awesome-selfhosted/awesome-selfhosted

[9] Apache: https://www.raspberrypi.org/documentation/remote-access/web-server/apache.md

[10] Nginx: https://www.raspberrypi.org/documentation/remote-access/web-server/nginx.md

[11] превратить USB-принтер в беспроводной принтер: https://maker.pro/raspberry-pi/projects/how-to-turn-a-usb-printer-into-a-wireless-printer-with-raspberry-pi-zero-w

[12] собственный VPN-сервер: https://www.pivpn.io/

[13] официальный сайт Raspberry Pi: https://www.raspberrypi.org/

[14] однажды захостили на мини-компьютерах Raspberry Pi 3: https://www.raspberrypi.org/blog/the-little-computer-that-could/

[15] другого проекта: https://medium.com/swlh/how-i-built-a-raspberry-pi-cluster-for-cheap-38ab661bd641

[16] эксперимент с таким веб-сервером: https://solar.lowtechmagazine.com/2018/09/how-to-build-a-lowtech-website/

[17] Image: https://hsto.org/webt/eh/th/2d/ehth2dv7ykrf9lj6lrozxqzmdei.jpeg

[18] Swarm: https://swarm-gateways.net/bzz:/swarm.eth/

[19] официальной страницы: https://swarm-gateways.net/bzz:/swarm.eth/downloads/

[20] пишут: https://swarm-guide.readthedocs.io/en/latest/introduction.html

[21] Bee: https://github.com/ethersphere/bee

[22] libp2p: https://docs.libp2p.io/

[23] ipfs.pics: http://ipfs.pics/

[24] InterPlanetary File System: https://ipfs.io/

[25] опубликован на Github: https://github.com/ipfspics/ipfspics-server

[26] Tornado: https://www.tornadoweb.org/en/stable/

[27] GridFS: https://docs.mongodb.com/manual/core/gridfs/

[28] 30-ти строчках кода: https://habr.com/ru/post/230607/

[29] условным именем именем Иван: https://paste.cryptolaemus.com/emotet/2020/07/23/emotet-malware-IoCs_07-23-20.html

[30] умные телевизоры под Android: https://wootcloud.com/wp-content/uploads/2019/10/WootCloud-Discovers-ARES-ADB-IOT-Botnet-Targeting-Android-Devices-especially-STBs_-TVs-1.pdf

[31] надёжный сервер: https://vdsina.ru/cloud-servers?partner=habr120

[32] Источник: https://habr.com/ru/post/521382/?utm_source=habrahabr&utm_medium=rss&utm_campaign=521382