Вступление
Когда вы впервые заходите в свежую Fedora 22, она не готова к использованию в качестве производственной системы. Существует ряд рекомендованных шагов для его настройки и защиты, таких как включение брандмауэра.
Из этого туториала вы узнаете, как улучшить свежую установку сервера Fedora 22 и быть готовым к использованию.
Предпосылки
Чтобы следовать этому уроку, вам понадобится:
-
Капля Fedora 22 с корневыми ключами SSH.
Вы можете подписаться на this раздел учебника по ключам SSH для создания ключей, если у вас их нет, и https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a -linux-server # how-to-to-embed-your-public-key-когда-создавая-ваш-сервер [этот раздел] того же учебника, чтобы автоматически вставлять ваш SSH-ключ в корневую учетную запись сервера при создании Droplet.
Шаг 1 - Создание стандартной учетной записи пользователя
Сначала войдите на свой сервер под именем * root *.
ssh root@
Работа в качестве пользователя root представляет угрозу безопасности, поэтому на этом этапе мы настроим учетную запись пользователя sudo без полномочий root для использования в системных и других вычислительных задачах. Имя пользователя, используемое в этом руководстве - * sammy *, но вы можете использовать любое имя, которое вам нравится.
Чтобы добавить пользователя, введите:
adduser
Укажите надежный пароль для пользователя, используя команду ниже. Вам будет предложено ввести пароль дважды.
passwd
Затем добавьте пользователя в группу wheel, что дает ему привилегии sudo.
gpasswd -a wheel
Выйдите из своего сервера и добавьте свой SSH-ключ в новую учетную запись пользователя, выполнив следующую команду на своем локальном компьютере.
ssh-copy-id @
Для получения дополнительной информации о том, как скопировать ключи SSH с локального компьютера на сервер, вы можете прочитать https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on. -a-linux-server # как копировать открытый ключ на ваш сервер [этот раздел] руководства по SSH.
Наконец, войдите в систему как новый пользователь sudo без полномочий root. Вам не будет предложено ввести пароль, потому что эта учетная запись теперь имеет ключи SSH.
ssh @
Шаг 2 - Запрещение аутентификации с использованием корневого логина и пароля
На этом этапе мы сделаем SSH-входы более безопасными, отключив root-входы и аутентификацию по паролю.
Для редактирования файлов конфигурации вам необходимо установить текстовый редактор. Мы будем использовать + nano +
, но вы можете использовать то, что вам больше нравится.
Сначала примените все доступные обновления, используя:
sudo dnf update
Затем, чтобы установить + nano +
, введите:
sudo dnf install -y nano
Теперь откройте файл конфигурации демона SSH для редактирования.
sudo nano /etc/ssh/sshd_config
Внутри этого файла найдите директиву + PermitRootLogin +
. Раскомментируйте его (это означает удаление начального символа + # +
) и установите для него значение * no *.
PermitRootLogin no
Аналогичным образом найдите директиву + PasswordAuthentication + и установите для нее значение * no *.
PasswordAuthentication no
Сохраните и выйдите из файла, затем перезагрузите конфигурацию, чтобы изменения вступили в силу.
sudo systemctl reload sshd
Если кто-то попытается войти в систему как * root * сейчас, ответ должен быть + Отказано в доступе (publickey, gssapi-keyex, gssapi-with-mic) +
.
[[step-3---configuring-the-time-zone]] === Шаг 3 - Настройка часового пояса
На этом шаге вы узнаете, как изменить системные часы на местный часовой пояс. Часы по умолчанию установлены на UTC.
Все известные часовые пояса находятся в каталоге + / usr / share / zoneinfo / +
. Посмотрите на файлы и каталоги в + / usr / share / zoneinfo / +
.
ls /usr/share/zoneinfo/
Чтобы настроить часы на использование местного часового пояса, найдите в этом каталоге свою страну или географический регион, найдите под ним файл зоны, а затем создайте из него символическую мягкую ссылку на каталог + / etc / localtime +
. Например, если вы находитесь в центральной части Соединенных Штатов, где часовой пояс * Central * или * CST *, файл зоны будет иметь вид + + usr / share / zoneinfo / US / Central + `.
Создайте символическую мягкую ссылку из файла вашей зоны на + / etc / localtime +
.
sudo ln -sf /usr/share/zoneinfo/ /etc/localtime
Убедитесь, что часы теперь установлены на местное время, просмотрев выходные данные команды + date +
.
date
Вывод будет выглядеть примерно так:
Wed Mar 25 14:41:20 CST 2015
-
CST * в этом выводе подтверждает, что это центральное время.
Шаг 4 - Включение брандмауэра
На новом сервере Fedora 22 нет активного брандмауэра. На этом шаге мы узнаем, как включить приложение брандмауэра IPTables и убедиться, что правила выполнения сохраняются после перезагрузки.
Пакет IPTables уже установлен, но чтобы включить его, необходимо установить пакет + iptables-services +
.
sudo dnf install -y iptables-services
Затем вы можете включить IPTables, чтобы он автоматически запускался при загрузке.
sudo systemctl enable iptables
Затем запустите IPTables.
sudo systemctl start iptables
IPTables на Fedora 22 поставляется с набором правил по умолчанию. Одно из этих правил разрешает трафик 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
В этом разделе мы рассмотрим, как редактировать правила брандмауэра, чтобы разрешить службы для портов 80 (HTTP) и 443 (HTTPS).
Правила 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 -j REJECT --reject-with icmp-host-prohibited
Чтобы активировать новый набор правил, перезапустите IPTables.
sudo systemctl restart iptables
Шаг 6 (необязательно) - установка Mlocate
Команда + locate +
- очень полезная утилита для поиска местоположения файлов в системе. Например, чтобы найти файл с именем * example *, вы должны набрать:
locate example
Это отсканирует файловую систему и распечатает местоположение или местоположения файла на вашем экране. Существуют и более продвинутые способы использования + locate +
.
Чтобы сделать команду доступной на вашем сервере, сначала вам нужно установить пакет + mlocate +
.
sudo dnf install -y mlocate
Затем выполните команду + updatedb +
, чтобы обновить базу данных поиска.
sudo updatedb
После этого вы сможете использовать + locate +
, чтобы найти любой файл по имени.
Заключение
После выполнения последнего шага ваш сервер Fedora 22 должен быть настроен, достаточно защищен и готов к использованию!