Начальная настройка сервера Fedora 21
Cloud Server, RHEL, VPS | Комментировать запись
Свежий сервер 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: Fedora, Fedora 21, Iptables, Locate, Mlocate, RHEL