Дополнительные рекомендации по настройке сервера Ubuntu 14.04

Для повышения безопасности и производительности сервера настоятельно рекомендуется выполнить некоторые дополнительные действия после начальной настройки. Это руководство охватывает рекомендуемые, но необязательные конфигурации для улучшения работы сервера Ubuntu 14.04.

Требования и цели

Чтобы следовать данному руководству, запустите предварительно настроенный сервер Ubuntu 14.04 (инструкции по начальной настройке можно найти в данной статье); на сервере нужно создать пользователя с привилегиями sudo и отключить SSH в целях безопасности.

Выполнив предварительные требования, приступайте к данному руководству, которое содержит рекомендуемые параметры и инструкции по настройке важных дополнительных компонентов (брандмауэра, синхронизации Network Time Protocol и своп-файла).

Базовая настройка фаервола

Фаервол (или брандмауэр) обеспечивает основной уровень безопасности сервера. Такое приложение запрещает трафик на все порты сервера (за исключением тех, что были одобрены пользователем). Ubuntu поставляется с фаерволом под названием ufw. Основная стратегия настройки брандмауэра – закрыть все порты, если нет причины оставить их открытыми.

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

По умолчанию демон SSH запущен на порту 22; ufw может выполнять правило по имени сервиса, если стандартные настройки последнего не были изменены. Итак, если стандартный порт SSH не был изменен, выполните:

sudo ufw allow ssh

Если же демон SSH был запущен на другой порт, нужно указать номер нового порта и протокол (TCP), например:

sudo ufw allow 4444/tcp

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

К примеру, чтобы запустить обычный HTTP веб-сервер, нужно разрешить доступ к порту 80:

sudo ufw allow 80/tcp

Чтобы запустить веб-сервер с поддержкой SSL/TLS , используйте:

sudo ufw allow 443/tcp

Чтобы включить SMTP, нужно открыть порт 25:

sudo ufw allow 25/tcp

В завершение можно просмотреть список открытых сервисов:

sudo ufw show added

Если такие настройки вас устраивают, включите фаервол:

sudo ufw enable

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

Примечание: не забудьте позже открыть порты новых сервисов, если такие появятся. Более подробную информацию о ufw можно найти в статье «Настройка фаервола UFW на облачных серверах Ubuntu и Debian».

Настройка часового пояса и синхронизации Network Time Protocol

Теперь нужно настроить параметры локализации сервера и синхронизацию протокола Network Time Protocol (NTP).

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

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

Это очень простая процедура, которую можно выполнить при помощи пакета tzdata.

sudo dpkg-reconfigure tzdata

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

Current default time zone: 'America/New_York'
Local time is now:      Mon Nov  3 17:00:11 EST 2014.
Universal Time is now:  Mon Nov  3 22:00:11 UTC 2014.

Готово! Теперь нужно синхронизировать сервер с NTP.

Настройка синхронизации NTP

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

Для этого используется сервис ntp, который можно установить из стандартного репозитория Ubuntu.

sudo apt-get update
sudo apt-get install ntp

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

Примечание: более подробную информацию о работе серверов NTP можно найти в данной статье.

Создание своп-файла

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

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

Своп-пространство можно выделить при помощи утилиты fallocate. К примеру, чтобы создать swap в 4 гигабайта, нужно для начала создать файл в /swapfile:

sudo fallocate -l 4G /swapfile

Затем необходимо ограничить доступ к этому файлу, чтобы другие пользователи не могли читать его:

sudo chmod 600 /swapfile

Итак, в системе есть готовый файл с правильными правами на него. Но пока что система не знает, что его можно использовать как своп-файл; чтобы система распознала его как swap, введите:

sudo mkswap /swapfile

Теперь включите своп-файл, набрав:

sudo swapon /swapfile

Система будет использовать новый swap-файл только в текущей сессии. Чтобы своп автоматически загружался вместе с сервером, нужно отредактировать системный файл. Для этого наберите:

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

Готово! Теперь система будет видеть своп-файл при каждой загрузке сервера.

Заключение

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

Теперь вы можете самостоятельно создать надежную основу для сервера.

Tags: , , , , , ,

Добавить комментарий