Дополнительные рекомендации по настройке сервера Ubuntu 14.04
Cloud Server, Ubuntu | Комментировать запись
Для повышения безопасности и производительности сервера настоятельно рекомендуется выполнить некоторые дополнительные действия после начальной настройки. Это руководство охватывает рекомендуемые, но необязательные конфигурации для улучшения работы сервера 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 и может использовать брандмауэр и своп-файл, что защищает его от несанкционированного доступа и ошибок памяти. Дальнейшие настройки зависят только от целей использования сервера. Возможно, вам пригодится одно из нижеприведенных руководств:
- Установка LAMP stack
- Установка LEMP stack
- Установка WordPress+Nginx
- Установка Node.js на Ubuntu 14.04
- Установка Ruby on Rails с помощью RVM в Ubuntu 14.04
Теперь вы можете самостоятельно создать надежную основу для сервера.
Tags: Cloud Server, NTP, SSH, SWAP, Ubuntu, Ubuntu 14.04, UFW