Как человек с довольно ограниченными знаниями о сетевой безопасности, я хотел бы знать: «Безопасно ли» запускать (1) сервер MySQL, (2) некоторые док-контейнеры с произвольными сервисами и (3) apache или nginx в качестве обратного DNS в стандартной домашней сети и выставить их в интернет? Моя сетевая настройка довольно проста: один маршрутизатор подключается к Интернету, все устройства в доме напрямую подключаются к этому маршрутизатору. Я могу использовать переадресацию портов и DDNS, чтобы любое устройство в локальной сети стало сервером. В настоящее время не настроена DMZ, и я не использую физический брандмауэр.

Безопасно ли перенаправлять порты типа 80 на устройства в такой локальной сети, или я должен даже воздержаться от регистрации публичного IP-адреса маршрутизатора в DDNS? Другими словами: может ли описанная установка (1) сделать устройства уязвимыми, на какие порты перенаправляются (внедрение вредоносных программ, кража данных,…) или даже (2) сделать уязвимыми другие устройства в локальной сети, которым нечего делать с серверами?

Конечно, это не производственная среда. Я просто часто работаю над несколькими проектами одновременно, которые я хочу получить за пределами моего дома, и я не хочу платить большие суммы денег за AWS, GCP и т.д. Итак, я хотел иметь серверы для MySQL, Mongo , Neo4J и т.д. Всегда запущен и работает, а также развертывает некоторые из моих веб-приложений для личной демонстрации и тестирования.

1 ответ1

0

[...]Может ли описанная настройка (1) сделать устройства уязвимыми, на какие порты перенаправляются (внедрение вредоносных программ, кража данных, ...) или даже (2) сделать уязвимыми другие устройства в локальной сети, которые не имеют никакого отношения к серверам ?

Да и да.

Это безопасно[?]

Вероятно, это личное мнение в зависимости от того, что вы называете "безопасным". В практическом плане, однако, есть две вещи, которые следует учитывать:

  • Современные серверы постоянно находятся под шквалом автоматических сценариев эксплойтов (как правило, именно так большинство злоумышленников предназначаются для жертв).

  • Большинство из этих угроз можно смягчить с помощью регулярных обновлений программного обеспечения, минимального количества мер предосторожности и некоторых надлежащих настроек безопасности (которые вы можете разумно исследовать).

В итоге, если вы пойдете по этому пути, вы будете играть любительским системным администратором в своей сети (вероятно, читая логи, проверяя обновления программного обеспечения и т.д.). Если вы не против взять на себя эту роль, вы можете быть в относительной безопасности с домашней установкой. В противном случае традиционные сторонние сервисы могут быть более быстрыми.

Моя сетевая настройка довольно проста: один маршрутизатор подключается к Интернету, все устройства в доме напрямую подключаются к этому маршрутизатору.

Это может быть относительно безопасно с правильными настройками брандмауэра. Тем не менее, вы можете посвятить дешевому ПК (старому или, может быть, даже Raspberry Pi) работу брандмауэра с чем-то вроде pfsense.

Безопасно ли перенаправлять порты типа 80 на устройства в такой локальной сети, или я должен даже воздержаться от регистрации публичного IP-адреса маршрутизатора в DDNS?

По общему признанию, это анекдотично, но, поскольку в течение многих лет у меня были чрезвычайно похожие настройки для тестирования и личного использования, у меня никогда не было проблем с безопасностью.

Что касается Apache/Nginx и MySQL, в частности, так же, как некоторые маленькие лакомые кусочки:

  • Убедитесь, что Apache/Nginx не действует в качестве открытого прокси-сервера (который созрел для злоупотреблений и делает ваш сервер целью). Эту опасность обычно смягчают с помощью некоторых простых команд настройки (таких, как подробно описанные здесь для Apache).

  • Для Apache я бы порекомендовал отключить файлы .htaccess.

  • Для MySQL одной большой проблемой является использование основанных на браузере инструментов администрирования, таких как phpMyAdmin. Наряду с WordPress, при просмотре журналов это одно из наиболее атакованных программ, которые я когда-либо видел (вероятно, потому что SQL-инъекция может быть настолько мощной). Любое веб-приложение, которое подключается к базе данных, должно быть должным образом защищено, но работающие инструменты, подобные этим, (потенциально) вызывают проблемы.

  • Обратите внимание, что вышесказанное идет рука об руку с ограничением доступа сервера базы данных только к выбранным локальным компьютерам и ограниченными разрешениями базы данных.

  • Атаки SQL-инъекций могут быть смягчены с помощью брандмауэров веб-приложений (WAF). Сторонние сервисы, такие как CloudFlare, предлагают эти виды услуг (в настоящее время 20 долларов в месяц с другими функциями) для решения "установи и забудь". Тем не менее, довольно легко добавить эту функцию самостоятельно через Apache или Nginx с такими модулями, как ModSecurity.

И последнее слово: основы защиты вашего веб-сервера и MySQL хорошо документированы и, как правило, достаточно просты для изучения, например, "Как защитить Apache в Linux" или «Как предотвратить атаки с использованием SQL-инъекций». Они оба предлагают общие советы, которые не позволят большинству злонамеренных пользователей связываться с вашими системами.

Конечно, вы можете придумать и попытаться добавить дополнительную безопасность (например, настоящую DMZ), но это потенциально намного больше работы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .