Дополнительные рекомендации по настройке сервера CentOS 7
Centos, VPS | Комментировать запись
После начальной настройки сервера настоятельно рекомендуется выполнить некоторые дополнительные действия. Это руководство охватывает рекомендуемые, но необязательные конфигурации.
Требования и цели
Прежде чем приступить к выполнению руководства, запустите предварительно настроенный (согласно данному руководству) сервер CentOS 7; на сервере нужно создать пользователя с привилегиями sudo и отключить SSH в целях безопасности.
Выполнив все предварительные требования, можете приступать к данному руководству. Эта статья содержит рекомендуемые параметры и инструкции по настройке важных дополнительных компонентов (брандмауэра, своп-файла, синхронизации Network Time Protocol).
Базовая настройка фаервола
Фаерволы (или брандмауэры) обеспечивают базовый уровень безопасности сервера. Эти приложения запрещают трафик на все порты сервера за исключением одобренных пользователем портов. CentOS поставляется с фаерволом под названием firewalld. Для настройки политики фаервола используется инструмент firewall-cmd. Основная стратегия настройки брандмауэра – закрыть все порты, если нет причины оставить их открытыми.
Сервис firewalld позволяет вносить изменения в настройки, не сбрасывая при этом текущих соединений, потому его можно включить сразу:
sudo systemctl start firewalld
Итак, теперь сервис запущен; можно приступать к настройке политики фаервола при помощи firewall-cmd.
Приложение firewalld основывается на концепции зонирования для обозначения благонадежности хостов в сети. Это дает возможность создавать различные правила в зависимости от того, насколько пользователь доверяет сети.
В этом руководстве показано, как настроить стандартную сетевую зону. После перезапуска фаервола эта зона будет применена к интерфейсам. Для начала нужно оставить открытыми заведомо безопасные сервисы. Наиболее важным из них является SSH, так как он обеспечивает удаленный доступ к серверу.
Если стандартные настройки демона SSH не были изменены, используйте следующую строку, чтобы оставить SSH открытым.
sudo firewall-cmd --permanent --add-service=ssh
Если же стандартный порт SSH был изменен, нужно явно указать новый порт. Также необходимо указать протокол, который использует сервис. Итак, если SSH уже запущен на новом порту, введите следующий код:
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --permanent --add-port=4444/tcp
Это минимум, необходимый для сохранения административного доступа к серверу. При использовании дополнительных сервисов необходимо открыть брандмауэр и для них.
При необходимости использовать обычный веб-сервер HTTP, нужно разрешить сервис HTTP:
sudo firewall-cmd --permanent --add-service=http
Если же используется веб-сервер с поддержкой SSL/TLS, нужно разрешить трафик https:
sudo firewall-cmd --permanent --add-service=https
Чтобы открыть SMTP, введите:
sudo firewall-cmd --permanent --add-service=smtp
Чтобы просмотреть другие сервисы, которые можно открыть по имени, введите:
sudo firewall-cmd --get-services
Завершив настройку, можно просмотреть список открытых сервисов:
sudo firewall-cmd --permanent --list-all
Чтобы активировать изменения, перезапустите фаервол:
sudo firewall-cmd --reload
Если после тестирования все работает должным образом, автоматизируйте запуск фаервола при загрузке сервера:
sudo systemctl enable firewalld
Не забудьте позже открыть порты новых сервисов, если такие появятся.
Настройка часового пояса и синхронизации Network Time Protocol
Далее нужно настроить параметры локализации сервера и синхронизацию протокол Network Time Protocol (NTP).
Параметры локализации обеспечивают работу сервера в правильном часовом поясе. Синхронизация часов системы с протоколом NTP поможет предотвратить некоторые проблемы, которые могут возникнуть в связи с вышедшими из строя часами.
Настройка часового пояса
Это очень простая процедура, которую можно выполнить при помощи команды timedatectl. Для начала просмотрите доступные часовые пояса:
sudo timedatectl list-timezones
Это откроет список доступных часовых поясов. Выбрав правильный часовой пояс, установите его, набрав:
sudo timedatectl set-timezone region/timezone
К примеру, чтобы установить время восточной части США, наберите:
sudo timedatectl set-timezone America/New_York
Система будет использовать указанный часовой пояс. Чтобы проверить это, наберите:
sudo timedatectl
Настройка синхронизации NTP
Установив часовой пояс, нужно синхронизировать часы системы с протоколом NTP.
Благодаря этому часы всегда будут показывать правильное время, что положительно влияет на работу сервера.
Для этого нужно использовать сервис ntp, который можно установить из стандартного репозитория CentOS.
sudo yum install ntp
Затем нужно запустить сервис, а также настроить его автоматический запуск при каждом запуске сервера.
sudo systemctl start ntpd
sudo systemctl enable ntpd
Готово! Теперь сервер будет автоматически синхронизировать время.
Создание своп-файла
Swap-пространство позволяет системе перемещать редко используемую информацию из RAM на жесткий диск. Конечно, взаимодействие с информацией, хранящейся на диске, гораздо медленнее, чем взаимодействие с RAM; тем не менее, своп-файл очень часто предотвращает аварийные сбои приложения и ошибки памяти. Своп особенно полезен при работе с базами данных.
Существует множество различных мнений по поводу приемлемого размера своп-пространства. Как правило, на своп отводится объем, равный или в два раза превышающий объем оперативной памяти.
Утилита fallocate позволяет выделить пространство для swap. Например, чтобы создать своп в 4 гигабайта, нужно для начала создать файл в /swapfile:
sudo fallocate -l 4G /swapfile
Затем нужно ограничить доступ к файлу, чтобы другие пользователи не могли читать его:
sudo chmod 600 /swapfile
Итак, теперь есть готовый файл с правильными правами на него. Пока что система не знает, что его можно использовать в качестве своп-пространства; чтобы система отформатировала его для swap, наберите:
sudo mkswap /swapfile
Теперь активируйте своп-файл, набрав:
sudo swapon /swapfile
Теперь в текущей сессии система будет использовать своп. Чтобы своп автоматически загружался вместе с сервером, нужно отредактировать системный файл. Для этого наберите:
sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'
Теперь система будет видеть своп-файл при каждой загрузке сервера.
Итоги
Теперь сервер надежно настроен, и дальнейшие настройки зависят только от целей использования сервера. Ниже приведен список руководств, которые могут пригодиться:
Теперь вы знаете, как создать надежную основу для сервера.
Tags: CentOS, CentOS 7, Cloud Server, firewall-cmd, firewalld, Linux, NTP, SWAP, VPS