Начальная настройка сервера Fedora 21

Свежий сервер Fedora 21 или RHEL изначально не готов к использованию в качестве системы производства. Потому сначала нужно выполнить ряд действий по обеспечению высокой производительности и безопасности сервера.

В данном руководстве продемонстрирована начальная настройка свежей установки Fedora 21.

Требования

Для выполнения руководства нужен новый сервер Fedora 21, пользователь root и SSH-ключи.

1: Создание пользователя

Войдите на сервер как пользователь root:

ssh root@ip_адрес_сервера

Постоянно использовать root не рекомендуется из соображений безопасности; для постоянной работы нужно создать нового пользователя с расширенными привилегиями sudo. В данном руководстве такого пользователя зовут finn. Выберите любое удобное имя и используйте:

adduser finn

Укажите надёжный пароль при помощи следующей команды (пароль нужно ввести дважды):

passwd finn

Затем добавьте нового пользователя в группу wheel, которая даёт доступ к sudo:

gpasswd -a finn wheel

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

ssh-copy-id finn@ip_адрес_сервера

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

ssh finn@ip_адрес_сервера

2: Отключение root-логина и авторизации на основе пароля

Теперь нужно отключить root-логин и авторизацию на основе пароля, чтобы обеспечить более высокую безопасность авторизации SSH.

Для редактирования конфигурационных файлов нужен текстовый редактор. В данном руководстве используется nano.

Для начала получите  все доступные обновления при помощи команды:

sudo yum update

Затем установите nano:

sudo yum install -y nano

Откройте конфигурационный файл демона SSH для редактирования:

sudo nano /etc/ssh/sshd_config

В этом файле найдите директиву PermitRootLogin. Раскомментируйте её, удалив символ #, и задайте значение no:

PermitRootLogin no

Затем найдите директиву PasswordAuthentication и измените её значение на no:

PasswordAuthentication no

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

sudo systemctl reload sshd

Теперь никто не сможет войти на сервер как root, а при попытке такого входа на экране появится сообщение:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

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

На этом этапе нужно настроить системные часы, задав правильный часовой пояс. По умолчанию часы настраиваются согласно стандарту UTC.

Все часовые пояса можно найти в каталоге /usr/share/zoneinfo/. Просмотрите этот каталог:

ls /usr/share/zoneinfo/

Чтобы установить часовой пояс, найдите в этом каталоге свою страну или географическую зону и создайте символическую ссылку к каталогу /etc/localtime. К примеру, пользователь из центральной части Соединённых Штатов должен задать часовой пояс Central (или CST), файл которого находится в /usr/share/zoneinfo/US/Central.

Итак, чтобы настроить часовой пояс, нужно использовать:

sudo ln -sf /usr/share/zoneinfo/your_zone_file /etc/localtime

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

date

На экране появится примерно такой результат:

Wed Mar 25 14:41:20 CST 2015

CST значит, что задан часовой пояс центральной части США.

4: Настройка фаервола

На свежем сервере Fedora 21 нет активных приложений брандмауэра. Потому для этих целей можно использовать фаервол IPTables, о настройке которого и пойдёт речь в этом разделе.

Пакет IPTables уже установлен, но его нужно активировать; для этого нужен пакет iptables-services:

sudo yum install -y iptables-services

Установив этот пакет, включите IPTables, чтобы фаервол автоматически запускался при загрузке сервера.

sudo systemctl enable iptables

Запустите IPTables:

sudo systemctl start iptables

IPTables поставляется с набором стандартных правил для Fedora 21. Одно из этих правил разрешает SSH-трафик. Чтобы просмотреть стандартные правила, введите:

sudo iptables -L

На экране появится такой вывод:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Эти правила действительны дл одной сессии и будут сброшены при перезагрузке сервера. Чтобы сохранить текущие правила в файл и, таким образом, сделать их постоянными (они будут сохранены после перезагрузки), введите:

sudo /usr/libexec/iptables/iptables.init save

Теперь правила фаервола сохранены в файл iptables в каталоге /etc/sysconfig.

5: Разрешение трафика HTTP и HTTPS (опционально)

Теперь нужно отредактировать правила фаервола, чтобы открыть трафик HTTP и HTTPS (порты 80 и 443 соответственно).

Стандартные правила IPTables разрешают только трафик SSH, но HTTP и HTTPS используются многими приложениями, потому их рекомендуется открыть.

Для этого откройте конфигурационный файл:

sudo nano /etc/sysconfig/iptables

В него нужно внести два правила, одно для порта 80, второе – для 443. Эти правила должны находиться после правила для SSH-трафика (порт 22). Строки, которые нужно добавить, выделены красным.

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

Чтобы новые правила вступили в силу, перезапустите IPTables:

sudo systemctl restart iptables

6: Установка Mlocate (опционально)

Команда locate – очень полезная утилита для поиска файлов в системе. К примеру, чтобы найти файл по имени example, нужно просто ввести:

locate example

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

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

sudo yum install -y mlocate

Затем запустите команду updatedb, чтобы обновить поиск по базе данных.

sudo updatedb

Теперь можно использовать команду locate для поиска файлов.

Заключение

Теперь свежий сервер Fedora 21 настроен, защищён и готов к использованию.

Tags: , , , , ,

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