Этот чек-лист безопасности сервера поможет вам в конфигурации и первичной проверке защищенности вашей Windows- или Linux-инфраструктуры. В нем перечислены доступные базовые меры по предотвращению возможных атак, не требующие специальных познаний и навыков.
Для начальной настройки параметров безопасности вашего сервера вы можете воспользоваться нашими инструкциями для Windows и Linux.
Исключите физический доступ третьих лиц к серверу (для арендуемых физических и виртуальных серверов за вас это cделает дата-центр).
Не подключайте непроверенные носители к вашему серверу.
Установите пароль для входа в BIOS.
Желательно выполнить NTFS-форматирование всех разделов.
Используйте различные разделы для работы системы и под пользовательские программы/файлы.
Используйте разные разделы для системных и пользовательских файлов (директории /home).
Желательно выполнить шифрование разделов (LVM Encryption).
Настройте fstab для контроля доступа к дискам.
Установите для раздела boot права только на чтение.
С помощью локальных политик безопасности установите требование сложных паролей и срок их действия.
Также стоит активировать временную или постоянную блокировку учетной записи после нескольких неверных попыток ввода пароля.
Установите требование сложных паролей и блокировку учетной записи после нескольких неверных попыток ввода пароля.
Используйте ssh-сертификаты для подключения к серверу и отключите доступ по паролю.
Запретите доступ пользователям с пустым паролем через инструмент passwd.
С помощью локальных политик безопасности и групповых политик безопасности отключите гостевые учетные записи, активируйте автоматическое завершение сессий пользователей при бездействии и запрос пароля для аккаунта при выходе из режима ожидания, а также запретите вход для аккаунтов с пустым паролем.
Используйте предустановленные и собственные группы пользователей и разграничьте их права. Это проще, чем каждый раз устанавливать индивидуальные права доступа к файлам и сервисам.
По возможности, не наделяйте пользователей лишними правами и используйте для задач, не требующих административных привилегий, учетную запись с ограниченными правами.
Создайте пользователя с ограниченными правами, и делегируйте ему права суперпользователя (добавлением в группу sudo). Выполняйте операции, для которых не требуются root-полномочия, от имени этого пользователя.
Заблокируйте ssh и ftp-подключения для пользователя root (вы всегда сможете войти в его аккаунт, выполнив команду sudo –s или su root от имени рядового пользователя).
Не актуально для Linux. Другое дело, если Linux-машины интегрированы в сеть Windows и работают с Active Directory – в этом случае изучите аспекты безопасности Samba.
Используйте преднастроенные и собственные группы пользователей и разграничивайте их права. Это удобнее и надежнее, чем регулярно настраивать индивидуальные права.
Активируйте доступ только из внутренней сети для машин и сервисов, которым не требуется интернет-доступ из внешней сети для полноценной работы.
Используйте VLAN и VPN для сегментации групп узлов и безопасности каналов между ними. Готовые услуги по развертыванию VLAN иногда предлагаются самими хостинг-провайдерами.
Смените порты стандартных сервисов на самих хостах или измените и переадресуйте порты сервисов на сетевом оборудовании (офисном роутере или виртуальном маршрутизаторе).
Используйте IPsec для шифрования трафика, активируйте использование ключей и сертификатов (Secure Key Exchange) между сайтами.
В идеале, один сервер должен выполнять одну конкретную функцию (контроллер домена, файловый сервер, терминальный сервер и т.д.). На практике такая диверсификация ролей редко оказывается возможной в полной мере, но вы можете реализивать его достаточной степени, например, с помощью виртуальных машин, развернутых для выполнения отдельных ролей.
Отключайте неиспользуемые роли и службы на сервере.
Избегайте установки на сервер лишних пакетов и работы неиспользуемых сервисов. Получить список запущенных сервисов можно с помощью chkconfig
Физически (например, с помощью виртуализации) и логически изолируйте функции серверов. Для логической изоляции процессов вы можете использовать jail.
Настройте периодическое резервное копирование на отдельный диск, раздел или в безопасное удаленное хранилище. Сделать это можно с помощью стандартных инструментов Windows или стороннего ПО (например, Acronis). Если вы арендуете сервер у хостинг-провайдера, то, возможно, он предлагает готовые решения по резервному копированию.
Не храните резервные копии незашифрованными и в незащищенных хранилищах.
Выполняйте регулярное резервное копирование на отдельный диск, раздел или в безопасное удаленное хранилище. Сделать это можно с помощью стандартных средств Linux или стороннего ПО (например, Acronis). При аренде сервера на хостинге вы можете использовать готовые решения по резервному копированию, предоставляемые хостинг-провайдером.
Не храните резервные копии незашифрованными и в незащищенных хранилищах.
Выполните настройку безопасности RDP-подключений: запретите подключение к удаленным рабочим столам для пользователей с пустым паролем, смените стандартный порт Remote Desktop Protocol, настройте SSL для RDP.
Хорошим способом усиления безопасности служб удаленных рабочих столов является использование шлюза терминальных серверов (TS Gateway)
Не включайте доступ через VNC для root-пользователя, особенно на постоянной основе.
Используйте VNC через SSH для обеспечения безопасности удаленных рабочих столов на Linux-машинах.
Используйте для VNC-сессий пароли, отличные от используемых в системе sudo-пользователями.
Не используйте один и тот же SQL-сервер для работы со всеми критически важными базами.
Если вы используете Active Directory, настройте запуск SQL-сервера от имени пользователя домена с минимальными полномочиями.
Для аудита безопасности SQL-сервера вы можете обратиться к соответствующему списку рекомендаций Microsoft.
Для настройки параметров безопасности MySQL изучите и измените параметры файла my.cnf (/etc/mysql.cnf): bind-address, local-infile, log.
Проверьте MySQL на наличие пользователей с пустым паролем.
Измените правила удаленного администрирования MySQL (вместо любого адреса подключения укажите белый список IP, от которых будут приниматься обращения).
Измените имя root-пользователя MySQL.
Отключите неиспользуемые функции IIS (например, FTP-сервер).
Настройте параметры безопасности сервера IIS: права доступа к файлам, папкам, сайту; MIME-Type; фильтрацию запросов; пул приложений; ведение логов.
Используйте систему безопасности SE Linux.
Установите и настройте modsecurity – firewall для веб-серверов.
Измените права по умолчанию на доступ к общим директориям исходя из принципа установки минимально необходимого уровня прав доступа для пользователя. Давайте полные права только администраторам. Удалите лишние группы и пользователей.
Предпочтительнее создавать группы пользователей и делегировать права им, а не отдельным клиентам.
Не разрешайте анонимный доступ общим директориям.
Используйте SFTP вместо FTP и уделите внимание его конфигурации.
Если на вашем сервере выполняются действия, инициируемые пользователями (напр., работа с удаленными рабочими столами, сетевыми хранилищами), рекомендуется установка антивирусного ПО и его настройка на автоматическое обновление.
В анализе состояния безопасности Windows-инфраструктуры вам также поможет Microsoft Baseline Security Analyzer.
Антивирусное ПО не требуется, но обязательны детальная настройка Firewall и мониторинг безопасности сервера (например, c помощью утилиты Tiger).