После настройки минимальной конфигурации для нового сервера, есть некоторые дополнительные шаги, которые настоятельно рекомендуется в большинстве случаев. В этом руководстве, мы продолжим конфигурацию наших серверов путем устранения некоторых рекомендуемых, но необязательных процедур.
Перед тем, как начать это руководство, вы должны произвести начальную настройку сервера на CentOS 7. Это необходимо для того, чтобы настроить учетные записи пользователей, настройки привилегий с sudo
, а также защитить SSH для обеспечения безопасности.
После того, как вы завершили руководство выше, вы можете продолжить с этой статьей. В этом руководстве мы будем концентрироваться на настройке некоторых необязательных, но рекомендуемые компонентов. Они будет включать в себя настройки нашей системы с брандмауэром и файл подкачки и настройки сетевого протокола времени синхронизации.
Межсетевые экраны обеспечивают базовый уровень безопасности для вашего сервера. Эти приложения несут ответственность за блокировкой трафика на каждом порту на вашем сервере с исключениями для портов/услуг, которые вы одобрили. CentOS поставляется с брандмауэром под названием firewalld
. Инструмент под названием firewall-cmd
может использоваться для настройки политик брандмауэра. Наша основная стратегия будет блокировать все, что у нас нет причины держать открытыми.
Служба firewalld
имеет возможность вносить изменения без падения текущих соединений, поэтому мы можем включить его, прежде чем создавать свои исключения:
sudo systemctl start firewalld
Теперь, когда сервис запущен и работает, мы можем использовать утилиту firewall-cmd
для получения и установки информационной политики брандмауэра. Приложение firewalld
использует понятие “zones” для обозначения достоверности других хостов в сети. Эта маркировка дает нам возможность назначать различные правила в зависимости от того, насколько мы доверяем сети.
В этом руководстве мы будем регулировать только политику для зоны по умолчанию. Когда мы перезагрузить наш брандмауэр, то это будет зона будет применена к нашим интерфейсам. Мы должны начать с добавления исключения из нашего брандмауэра для утвержденных услуг. Наиболее важным из них является 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
Помните, что вам придется явно открыть брандмауэр (со службами или портами) для каких-либо дополнительных услуг, которые вы можете настроить позже.
Следующим шагом является настройка параметров локализации для сервера и настройки синхронизации сетевого протокола времени (NTP).
Первым шагом будем гарантировать, что ваш сервер работает на правильном часовом поясе. Второй шаг настроим систему, чтобы синхронизировать свои системные часы на зимнее время поддерживаемое глобальной сетью серверов NTP. Это поможет предотвратить некоторые непоследовательное поведение, которое может возникнуть в результате вышедших из синхронизации часов.
Наш первый шаг, это установить часовой пояс нашего сервера. Это очень простая процедура, которая может быть выполнена с помощью команды timedatectl
:
Во-первых, обратите внимание на доступные часовые пояса, набрав:
sudo timedatectl list-timezones
Это даст вам список часовых поясов, доступных для вашего сервера. Когда вы найдете настройки область/часовой пояс, который является правильным для вашего сервера, установите его, набрав:
sudo timedatectl set-timezone region/timezone
Например, чтобы установить его в России по восточному времени, вы можете ввести:
sudo timedatectl set-timezone Europe/Moscow
Ваша система будет обновлена, чтобы использовать выбранный часовой пояс. Вы можете подтвердить это, набрав:
sudo timedatectl
Теперь, когда у вас есть набор временных зон, мы должны настроить NTP. Это позволит вашему компьютеру остаться в синхронизации с другими серверами, что приводит к большей предсказуемости в операциях, которые полагаются на имеющие правильное время.
Для NTP синхронизации, мы будем использовать сервис под названием ntp
, который мы можем установить из репозиториев CentOS по умолчанию:
sudo yum install ntp
Далее, вам нужно, чтобы запустить службу для этой сессии. Мы также включить службу таким образом, чтобы он автоматически запускалась каждый раз при загрузке сервера:
sudo systemctl start ntpd
sudo systemctl enable ntpd
Ваш сервер теперь будет автоматически корректировать его системные часы для выравнивания с глобальными серверами.
Добавление “swap” на сервер Linux позволяет системе реже перемещать запущенные программы из оперативной памяти в папку на диске. Доступ к данным, хранящимся на диске гораздо медленнее (не относиться к ssd), чем доступ к оперативной памяти, что снижает продуктивность сервера. Это особенно полезно, если вы планируете вести какие-либо базы данных в вашей системе.
Советы по оптимальному размеру для подкачки значительно варьируется в зависимости от источника. Как правило, равной или вдвое большей объема оперативной памяти вашей системы является хорошей отправной точкой.
Выделяют пространство, которое вы хотите использовать для файла подкачки с помощью утилиты fallocate
. Например, если нам нужен файл 4Gb, мы можем создать файл подкачки, расположенный в /swapfile
, выполнив:
sudo fallocate -l 4G /swapfile
После создания файла, нам нужно ограничить доступ к файлу, так чтобы не могли видеть другие пользователи или процессы:
sudo chmod 600 /swapfile
Теперь у нас есть файл с правильными разрешениями. Для того, чтобы сообщить системе отформатировать файл подкачки, мы можем ввести:
sudo mkswap /swapfile
Теперь, скажите системе, что она может использовать файл подкачки, набрав:
sudo swapon /swapfile
Наша система использует файл подкачки для этой сессии, но мы должны изменить системный файл, так чтобы наш сервер делал это автоматически при загрузке. Вы можете сделать это, набрав:
sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'
С этим дополнением, ваша система должна использовать файл подкачки автоматически при каждой загрузке.
Отсюда, ваш путь целиком и полностью зависит от того, что вы хотите сделать с вашим сервером. Приведенный ниже список руководств никоим образом не является исчерпывающим, но представляет некоторые из наиболее распространенных конфигураций, к которым чаще всего обращаются пользователи:
К этому моменту, вы должны знать, как настроить прочный фундамент для ваших новых серверов. Будем надеяться, что у вас также есть хорошая идея для ваших дальнейших шагов. Не стесняйтесь исследовать сайт для большего количества идей, которые можно реализовать на вашем сервере.