Поиск по сайту:

Дополнительные рекомендуемые шаги для новых серверов CentOS 7


Введение

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

Предпосылки и цели

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

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

Настройка базового брандмауэра

Брандмауэры обеспечивают базовый уровень безопасности вашего сервера. Эти приложения отвечают за запрет трафика на каждый порт на вашем сервере, за исключением разрешенных вами портов/служб. CentOS поставляется с брандмауэром под названием firewalld. Для настройки политик брандмауэра можно использовать инструмент под названием firewall-cmd. Наша основная стратегия будет заключаться в том, чтобы заблокировать все, что у нас нет веской причины держать открытым. Сначала установите firewalld:

  1. sudo yum install firewalld

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

  1. sudo systemctl start firewalld

Теперь, когда служба запущена и работает, мы можем использовать утилиту firewall-cmd для получения и установки информации о политике для брандмауэра. Приложение firewalld использует концепцию «зон» для маркировки надежности других хостов в сети. Эта маркировка дает нам возможность назначать различные правила в зависимости от того, насколько мы доверяем сети.

В этом руководстве мы будем настраивать политики только для зоны по умолчанию. Когда мы перезагрузим наш брандмауэр, это будет зона, применяемая к нашим интерфейсам. Мы должны начать с добавления исключений в наш брандмауэр для утвержденных служб. Наиболее важным из них является SSH, поскольку нам необходимо сохранить удаленный административный доступ к серверу.

Если вы не изменили порт, на котором работает демон SSH, вы можете включить службу по имени, набрав:

  1. sudo firewall-cmd --permanent --add-service=ssh

Если вы изменили порт SSH для своего сервера, вам придется явно указать новый порт. Вам также потребуется указать протокол, который использует служба. Введите следующее, только если ваш SSH-сервер уже был перезапущен для использования нового порта:

  1. sudo firewall-cmd --permanent --remove-service=ssh
  2. sudo firewall-cmd --permanent --add-port=4444/tcp

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

Если вы планируете использовать обычный веб-сервер HTTP, вам необходимо включить службу http:

  1. sudo firewall-cmd --permanent --add-service=http

Если вы планируете запустить веб-сервер с включенным SSL/TLS, вы также должны разрешить трафик для https:

  1. sudo firewall-cmd --permanent --add-service=https

Если вам нужно включить электронную почту SMTP, вы можете ввести:

  1. sudo firewall-cmd --permanent --add-service=smtp

Чтобы просмотреть дополнительные службы, которые можно включить по имени, введите:

  1. sudo firewall-cmd --get-services

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

  1. sudo firewall-cmd --permanent --list-all

Когда вы будете готовы применить изменения, перезагрузите брандмауэр:

  1. sudo firewall-cmd --reload

Если после тестирования все работает как положено, следует убедиться, что брандмауэр будет запускаться при загрузке:

  1. sudo systemctl enable firewalld

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

Настройка часовых поясов и синхронизации сетевого протокола времени

Следующим шагом является настройка параметров локализации для вашего сервера и настройка синхронизации по протоколу сетевого времени (NTP).

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

Настройка часовых поясов

Наш первый шаг — установить часовой пояс нашего сервера. Это очень простая процедура, которую можно выполнить с помощью команды timedatectl:

Во-первых, взгляните на доступные часовые пояса, набрав:

  1. sudo timedatectl list-timezones

Это даст вам список часовых поясов, доступных для вашего сервера. Когда вы найдете параметр региона/часового пояса, подходящий для вашего сервера, установите его, набрав:

  1. sudo timedatectl set-timezone region/timezone

Например, чтобы установить восточное время США, введите:

  1. sudo timedatectl set-timezone America/New_York

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

  1. sudo timedatectl

Настроить NTP-синхронизацию

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

Для синхронизации NTP мы будем использовать службу под названием ntp, которую мы можем установить из репозиториев CentOS по умолчанию:

  1. sudo yum install ntp

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

  1. sudo systemctl start ntpd
  2. sudo systemctl enable ntpd

Теперь ваш сервер будет автоматически корректировать свои системные часы, чтобы они соответствовали глобальным серверам.

Создать файл подкачки

Добавление «подкачки» на сервер Linux позволяет системе перемещать редко используемую информацию о запущенной программе из ОЗУ в место на диске. Доступ к данным, хранящимся на диске, намного медленнее, чем доступ к ОЗУ, но наличие подкачки часто может быть разница между сохранением работоспособности вашего приложения и сбоем.Это особенно полезно, если вы планируете размещать какие-либо базы данных в своей системе.

Рекомендации по оптимальному размеру пространства подкачки существенно различаются в зависимости от источника, к которому обращаются. Как правило, хорошей отправной точкой является объем, равный или удвоенный объем оперативной памяти в вашей системе.

Выделите пространство, которое вы хотите использовать для файла подкачки, с помощью утилиты fallocate. Например, если нам нужен файл размером 4 гигабайта, мы можем создать файл подкачки, расположенный в /swapfile, набрав:

  1. sudo fallocate -l 4G /swapfile

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

  1. sudo chmod 600 /swapfile

Теперь у нас есть файл с правильными разрешениями. Чтобы указать нашей системе отформатировать файл для подкачки, мы можем ввести:

  1. sudo mkswap /swapfile

Теперь сообщите системе, что она может использовать файл подкачки, набрав:

  1. sudo swapon /swapfile

Наша система использует файл подкачки для этого сеанса, но нам нужно изменить системный файл, чтобы наш сервер делал это автоматически при загрузке. Вы можете сделать это, набрав:

  1. sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'

С этим дополнением ваша система должна автоматически использовать файл подкачки при каждой загрузке.

Куда пойти отсюда?

Теперь у вас есть очень приличная начальная установка для вашего Linux-сервера. Отсюда есть довольно много мест, куда можно отправиться. Во-первых, вы можете сделать снимок своего сервера в его текущей конфигурации.

Сделайте снимок вашей текущей конфигурации

Если вы довольны своей конфигурацией и хотите использовать ее в качестве основы для будущих установок, вы можете сделать снимок своего сервера через панель управления DigitalOcean. Начиная с октября 2016 года моментальные снимки стоят 0,05 доллара США за гигабайт в месяц в зависимости от объема используемого пространства в файловой системе.

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

  1. sudo poweroff

Теперь в панели управления DigitalOcean вы можете сделать снимок, посетив вкладку «Снимки» вашего сервера:

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

Дополнительные ресурсы и следующие шаги

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

  • Настройка стека LAMP (Linux, Apache, MySQL/MariaDB, PHP)
  • Настройка стека LEMP (Linux, Nginx, MySQL/MariaDB, PHP)
  • Установка CMS WordPress
  • Установка Node.js
  • Установка Puppet для управления вашей инфраструктурой

Заключение

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