Назад | Перейти на главную страницу

На что следует обратить внимание разработчику программного обеспечения, если ему нужно настроить готовый к работе сервер?

Как разработчик программного обеспечения я очень привык устанавливать свой типичный стек (java, mysql и tomcat / apache) на свою машину разработки. Но установка и обеспечение безопасности производственной машины - это не то, чем я могу быть уверен. Есть ли руководство от А до Я для чайников по настройке и защите рабочего сервера? Сильно ли различается процесс в зависимости от платформы (Windows или Linux)? Есть ли какие-то общие правила, которые можно применять на разных платформах (и стеках приложений)?

Есть ли руководство от А до Я для чайников по настройке и защите рабочего сервера?

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

Сильно ли различается процесс в зависимости от платформы (Windows или Linux)?

В обработать закалки то же самое, но детали реализации нет.

Есть ли какие-то общие правила, которые можно применять на разных платформах (и стеках приложений)?

Да. Вы должны создать профиль конфигурации вашего приложения: задокументировать зависимости вашего приложения (любые службы, которые должны быть запущены; любые сетевые порты / протоколы, которые должны быть открыты (входящие и выходящие); любые сторонние библиотеки / компоненты) для установки базовые требования для работы вашего приложения. Систематически удаляйте / отключайте любые службы, приложения и порты, которые вам не нужны; запускать службы и приложения с минимальными необходимыми привилегиями. Испытайте каждый шаг на пути; ты воля сломать что-нибудь.

Приобретите надлежащий брандмауэр и включите фильтрацию исходящего трафика (если ваш ящик переходит в собственность, не позволяйте ему устанавливать прямые TCP-соединения); используйте прокси из белого списка, чтобы разрешить исходящий HTTP только для необходимых обновлений (windowsupdate.com и др., репозитории Linux). Настройка предупреждений и надлежащее ведение журнала: предупреждение о неудачных попытках входа в систему, запуске / остановке служб, установке, повышении привилегий и т.д. Важное значение имеет управление исправлениями; разработать разумный интервал обслуживания и придерживаться его. Не позволяйте обновлениям накапливаться слишком долго.

Если это веб-приложение, посмотрите на свои точки входа, сопоставления HTTP-глаголов с URI и внесите в белый список свои параметры POST или GET, очистите формы (не доверяйте никаким входам), экранируйте свой SQL (или используйте 3-й партийная библиотека, которая делает это за вас), регистрируйте все ваши SQL-запросы, и так далее.

Существует множество общих правил, применимых ко всем типам серверов, например:

  1. Удалите неиспользуемое программное обеспечение и отключите неиспользуемые порты / службы. Они тратят ресурсы впустую и представляют собой возможную уязвимость.

  2. Применяйте исправления и обновления постоянно, особенно при обнаружении ошибок или слабых мест.

  3. Измените все пароли по умолчанию и / или отключите гостевые / стандартные учетные записи, когда это возможно.

  4. Используйте надежные пароли.

  5. Используйте SSL для защиты ваших транзакций, когда это применимо и целесообразно.

Также для каждой конкретной службы могут быть советы по ее обеспечению.

используйте брандмауэр, например iptables, и уделите время планированию того, какие подключения к машине должны быть возможными и необходимыми. ограничивать входящий И ДАЖЕ исходящий трафик.

Специальный совет для tomcat: привяжите его порты к localhost и используйте правильный веб-сервер (например, apache httpd) в качестве интерфейса. Многие из последних слабых мест Tomcat можно было использовать, только если у вас был доступ к приложению-менеджеру.

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

В полной мере используйте различные роли - веб-серверу httpd не нужен доступ на уровне операционной системы к файлам, которые предоставляет tomcat, и наоборот. Поэтому, если кто-то воспользуется уязвимостью httpd и перейдет к командной строке, убедитесь, что он не может написать ничего важного.

Взгляните на ISO 27001 - есть также форум обмена стеками, который специализируется на безопасность.

В дополнении к Халедответ:

  • Измените имена учетных записей по умолчанию, включая:

    • sa имя учетной записи в SQL Server или MySQL
    • administrator имя учетной записи в Windows
    • любое имя учетной записи администратора по умолчанию в любом другом продукте с удаленным доступом (Plesk, Wordpress и т. д.)
  • В случае SQL Server или любого другого сервера БД отключите удаленные подключения, если они не нужны, а если они необходимы, рассмотрите возможность блокировки портов, которые использует сервер, и занесения в белый список разрешенных IP-адресов.