Как защитить веб-сервер?
Если у вас есть сервер c ОС Linux — Apache или nginx, и вы желаете разместить на нём web-сайт, в первую очередь следует подумать о его защите. При этом с точки зрения информационной безопасности не столь важно, какой именно ресурс вы планируете запустить — интернет-магазин, развлекательный портал или информационный сайт — действия по защите будут схожими. О них и поговорим.
Если у вас «белый» IP, к серверу сможет подключиться любой пользователь глобальной сети. Соответственно, когда вы работаете в локальной сети, к серверу тоже сможет подключиться любой компьютер из этой сети. Значит это лишь одно: для обеспечения нужного уровня безопасности очень важно правильно настроить компоненты вашего веб-сервера.
Запрещаем доступ извне к MySQL/MariaDB
Запретив к базам данных доступ извне, мы защитим сервер от утечки исходного кода, который вы разрабатываете и тестируете.
Обычно web-сервер имеет 2 сетевые службы: • непосредственно веб-сервер, прослушивающий 80-й порт (если HTTPS, то 443-й порт); • сетевую службу СУБД MariaDB/MySQL – 3306.
Чтобы СУБД MariaDB или MySQL принимали подключения лишь от web-приложений, работающих на localhost, следует исправить конфигурационный файл my.cnf, то есть он должен выглядеть так:
[mysqld] datadir="c:/Server/data/DB/data/" bind-address = 127.0.0.1
Изменив конфигурационный файл, не забудьте перезапустить службу.
net stop mysql net start mysql
Что же, теперь никто не сможет подключиться к базе данных извне, за исключением компьютера, на котором работает сервер. Но так как web-серверы создают, чтобы с них получали информацию не только разработчики и тестировщики, но и другие люди, не обойтись без более тонкой настройки безопасности.
Устанавливаем пароль на MySQL/MariaDB
По умолчанию у админа установлен пустой пароль. Но раз мы уже отключили доступ к серверу извне, дефолтные настройки уже не так опасны. Тем не менее, существует вероятность того, что злоумышленник попытается найти уязвимость в web-приложении, а уже через эту уязвимость подключиться к серверу. Следовательно, рекомендуется всё же изменить настройки по умолчанию, задав надёжный и безопасный пароль доступа.
Не забывайте про «зачистки»
Для защиты веб-сервера полезно систематически выполнять «чистку», удаляя резервные копии файлов, архивы с исходным кодом, различные тестовые файлы. То есть речь идёт о файлах, созданных во время установки и тестирования сервера, следовательно, они уже не нужны. Если вы этого не сделаете, есть вероятность, что злоумышленник попытается взломать сервер через неиспользуемые файлы со всеми вытекающими отсюда неприятными последствиями.
Блокируем доступ к резервным копиям
Доступ к папкам с резервными копиями надо блокировать для всех публичных web-серверов, ведь эти папки злоумышленник может легко обнаружить.
Прячем версию web-сервера
На самом деле, версия сервера может рассказать знающим людям многое. Например, какие уязвимости характерны для этой конкретной версии. Всё это упростит задачу хакеру, поможет при планировании атаки.
Устанавливаем файрвол
Файрвол анализирует любые запросы к серверу. Если же какой-нибудь запрос предоставляет угрозу, файрвол его не пустит и заблокирует. Простой, но действенный способ.
Теперь давайте перечислим рекомендуемые меры защиты для web-серверов c операционной Linux — Apache либо nginx: 1. Проводите регулярные обновления серверного программного обеспечения. Важно не забывать об этом и проверять наличие обновлений хотя бы раз в одну-две недели. 2. Как известно, во время установки серверного ПО выполняется его диагностика, плюс задаются настройки по умолчанию. Эти самые настройки нередко становятся «лазом» для хакеров. Именно поэтому после проверки работоспособности сервера нужно удалять настройки по умолчанию. Это несложно, зато обеспечивает безопасность серверов с ОС Linux. 3. Поговорите с коллегами, какие конкретно модули вам нужны для работы, а остальные ненужные модули лучше закомментировать. Если возникнет необходимость, раскомментировать несложно. 4. Отключите все доступы к веб-сайтам по IP-адресу. Дело в том, что хакеры сканируют именно их, а юзеры «ходят» по доменному имени. 5. В обязательном порядке защитите ваши сервера от DoS и DDoS-атак. Более подробные инструкции есть в глобальной сети. В принципе, такая мера безопасности актуальна для любых видов серверов: и Linux, и Windows. 6. Ведите запись логов, чтобы при возникновении ошибок либо внештатной ситуации вы смогли отследить источник проблем. Вести такие журналы надо всегда — это важнейший элемент обеспечения защиты.