Поскольку скоро выйдет версия 0.5.0, кажется, сейчас самое время объяснить, над чем мы работали последние пару лет. Хотя в целом мы вполне довольны версией 0.4.X, в этой конструкции есть несколько проблем, которые могут привести к тому, что сеть будет вести себя не так, как нам нравится. Целью этой публикации является краткий обзор того, как работает версия 0.4, объяснение проблем, связанных с этим подходом, и описание изменений, которые мы внесли в версию 0.5, чтобы попытаться их решить.
Разработчик под Android, перешедший на Rust
Новый виток развития Yggdrasil
Сначала я хотел бы извиниться за то, что не придавал значения тому, что оба существующих "клиента" сети Yggdrasil для Android работали так себе эту пару лет. Почти год назад я написал статью о том, как настроить доступ в Yggdrasil через WireGuard, и сам использовал эту связку, поэтому клиентами не занимался. А ведь мог!
Примерно месяц назад кто-то из сообщества в очередной раз показал как у него не открываются сайты в Yggdrasil в браузере, и меня это достало. Я решил разобраться с проблемой и понеслось! Эту статью можно считать подведением некоторых промежуточных итогов.
Как защититься от сканирования портов и Shodan?
Серверы в опасности!
Вы знали, что каждый включенный и подключенный к сети сервер постоянно подвергается атакам? Это могут быть разные атаки и с разной целью.
Это может быть перебор портов с целью найти открытые от какой-то компании, которая позиционирует себя борцом за безопасность, но которая собирает статистику открытых портов на будущее по всем доступным IP (например Censys).
Может быть Shodan, который тоже собирает базу о том, где какие порты открыты, и отдаёт эту информацию любому заплатившему. И могут быть менее известные компании, которые работают в тени. Представьте, кто-то ходит по всем домам и переписывает модели замков входных дверей, дергает за дверь и выкладывает это в публичный доступ. Дичь! Но тоже самое происходит в интернете тысячи раз в секунду.
Кроме компаний могут быть бот-сети, перебирающие порты для поиска чего-то конкретного или для подготовки к целевым атакам.
Ну и собственно целевые атаки, во время которых ваши серверы в первую очередь тестируются на наличие открытых портов, а затем производятся атаки на найденные сервисы. Это может быть подбор эксплоитов для использования известных дыр или пока неизвестных 0-day, как и обычный DDoS.
Во всех этих сценариях используется предварительный перебор открытых портов. Скорее всего применение nmap
или подобных утилит в каких-то скриптах.
Как защитить сервер от сканирования портов без CloudFlare и подобных прослоек?
ALFIS DNS: перемещение точки доверия
Система доменных имён разрабатывалась как замена hosts
файлам, и в то время, в ограниченной среде университетских сетей никто не думал о безопасности. Всё основывалось на доверии. Ещё буквально лет 8-10 назад никто не думал о том, что трафик между сервером DNS и клиентом можно записывать для продажи, либо заменять для достижения своих целей. Но уже в то время существовали трояны, добавляющие записи в локальный файл hosts
, чтобы перенаправлять пользователей на подконтрольные серверы. В последние несколько лет появилось несколько новых протоколов, которые помогают устранить перехват или подмену трафика DNS. Но это только смещение точки доверия от одной группы провайдеров, к другой.
Но есть способ сделать создание и синхронизацию доменных имён и записей DNS очень простыми, да ещё и безопасными и не подверженными цензуре.
Wireguard VPN, Yggdrasil, ALFIS DNS и AdGuard
На написание этой статьи спровоцировала вот эта статья, с кучей странностей, и необязательных действий. Если коротко, то автор не понимает зачем он ставит те или иные программы, а именно - Unbound и dnsproxy. Но так как кроме исправления недочётов той статьи хочется добавить чего-то полезного, мы несколько расширим возможности подключающихся к серверу клиентов.
Во-первых, несколько слов об Yggdrasil. Это одноранговая сеть с адресами IPv6, которая по сути может считаться новым слоем сети Интернет. При установке и настройке у вас появляется новый сетевой интерфейс, который является окном в этот новый слой. Всё так же, как с обычным протоколом IPv6 - вы можете использовать его для удалённого подключения к своим устройствам без реального IPv4, для удалённого администрирования, размещения там каких-то ресурсов, например того же Nextcloud. Всё это находится как бы в глобальном пространстве общей приватной сети. Кто-то там разместил прокси-серверы для Telegram, которые нельзя заблокировать, кто-то выход в "большой" Интернет через сеть Tor. Там же есть несколько серверов для общения, вроде Mattermost, IRC и XMPP. Статей по настройке и использованию на Хабре уже достаточно.
Свободный DNS для свободного Интернета
Одна из больших проблем в этой сети — отсутствие хорошей замены существующей DNS. Чем не подходит существующая система? Например, зависимостью от «внешних сил» и функционированием в «обычном Интернете». Я предлагаю достаточно хороший вариант построения новой системы доменных имен.
Бэкап файлов, базы данных и настроек сервера в Dropbox
Так же поступил и я несколько лет назад. Сначала арендовал один сервер, потом другой, и переносил настройки ручками, находя нужные файлы в директории /etc.
За пару лет на моём сервере осело несколько блогов друзей, и даже почтовый сервер, так как давно не хочу, чтобы моя почта была у Google. Насчет сохранности данных задумывался после каждой статьи на Хабре, но всё было как-то не до этого. И, как говорится, админы делятся на три категории: на тех, кто не делает бэкапы, на тех, кто уже делает и на тех, кто даже проверяет восстанавливаемость из бэкапов. Так получилось и со мной, хоть хостер и очень хороший, но произошла у них авария с жесткими дисками. Да такая, что неделю они пытались восстановить диски и предварительные оценки были очень неутешительными. А бэкапов у меня не было. Какое настроение у меня было в те дни можете сами представить.
Но через несколько дней техникам хостера удалось-таки восстановить данные и запустить все виртуальные сервера на той ноде. А я задумался о бэкапах. Думал я так — бэкап должен быть не на том же сервере (естественно!), желательно, чтобы он был у меня на компьютере, но не в одном экземпляре. Я обдумал и установку FTP на домашний компьютер и даже отправку архивов письмами, но все эти варианты меня не устраивали. И я понял, что надо попробовать Dropbox, которым я к тому времени пользовался уже пару лет, а бесплатных гигов у меня было около 18-ти.
Преимущества бэкапа в Dropbox:
- Независимость от домашней инфраструктуры и канала в Интернет
- Множественные копии (сразу на все синхронизируемые ПК)
- Кроме собственного хранения бэкапы хранятся и в облаке
Что делает представленный мной скрипт?
- Инкрементальный бэкап файлов в указанных папках (по первым и пятнадцатым числам идет полный бэкап)
- Бэкап всей базы MySQL
- Бэкап архивируется с помощью 7zip, с указанием пароля (вам же не надо хранить пароли в открытом виде в Dropbox'е?)
Информация
- В рейтинге
- 1 900-й
- Откуда
- Bratislava, Bratislava, Словакия
- Дата рождения
- Зарегистрирован
- Активность