Установка CentOS 8. Настройка сервера после установки.
Данная статья описывает процесс установки и настройки серверного дистрибутива CentOS 8, хотя руководство полностью применимо и к 7 версии системы. Есть небольшие различия, но в общем и целом всё подходит. Приведённые ниже советы повышают безопасность и удобство работы с системой.
В CentOS 7 используется пакетный менеджер yum
, а в CentOS 8 -dnf
. В 8 версии yum это символьная ссылка на dnf. Будет работать как первое, так и второе написание.
Для начала скачиваем последний образ системы
Записываем на флешку или диск. Перед записью нужно обязательно проверить какому устройству соответствует ваша флешка. У меня это sdb
. Есть неплохая кроссплатформенная, графическая утилита etcher, которую многие рекоммендуют. Можно записать любым удобным способом, я предпочитаю dd
.
Записываем
1sudo dd if=CentOS-8.1.1911-x86_64-boot.iso of=/dev/sdb
Подключаем флешку и загружаемся с неё.
Выбираем язык.
Дальше попадаем в обзор установки
Настраиваем время и часовой пояс.
Настройка сети. Заходим в настройки сети и включаем интерфейс.
Выбор программ
Просто выбираю Минимальную установку(так как нам на сервере не нужна графическая оболочка) и нажимаю Готово. Нужна максимально легкая и чистая система, без лишнего софта. Всё остальное доставлю вручную.
Разбивка диска.
Выбираем диск на который будет производится установка, а также выбираем свою конфигурацию
Переключаем на Стандартный раздел, нажимаем Создать автоматически, потом кнопку Готово
В разметке диска я меняю файловую систему root раздела. C xfs на ext4. Но можно оставить и ту которую предлагает инсталятор, если знаете что делаете.
Соглашаемся с разбивкой нашего диска.
Заходим в KDUMP и отключаем его. Убираем галочку.
Нажимаем Начать установку
Во время установки задаём пароль для root пользователя. Также можем создать дополнительного юзера, если необходимо.
Настройка сервера после установки
Если в консоли вместо русского текста отображаются иероглифы, то необходимо в файле /etc/vconsole.conf изменить шрифт.
1...
2FONT="cyr-sun16"
3...
Обновляем систему
1dnf update
Для настройки CentOS часто нужен софт которого нет в стандартном репозитории. Для установки дополнительных пакетов подключим репозиторий. Самый популярный это EPEL.
1dnf install epel-release
Теперь доустанавливаем необходимые пакеты:
1dnf install mc htop vim net-tools
Отключаем SELinux (Необязательно) В файле /etc/sysconfig/selinux
...
SELINUX=disabled
...
Для управления сетевыми настройками в CentOS используем графическую утилиту nmtui.
Настройка ssh Для удалённого управления сервером донастроим ssh, немного увеличив безопасность. Открываем для редактированя файл настроек /etc/ssh/sshd_config
- Меняем порт на нестандартный, например
25111
- Запрещаем подключатся root‘ом.
- Указываем для кого можно логинится. После AllowUsers перечисляем пользователей.
Port 25111
PermitRootLogin no
AllowUsers user
Сохраняем и перезапускаем сервис
1systemctl restart sshd
Настройка firewall
Мне удобнее использовать iptables, поэтому отключаем firewalld, который используется по умолчанию. Пусть каждый использует что ему больше нравится.
1systemctl stop firewalld
2systemctl disable firewalld
Доставляем пакеты
1dnf install iptables-services
Ставим в автозапуск
1systemctl enable iptables
Создаём файл iptables.sh
1#!/bin/bash
2
3iptables -F
4iptables -X
5iptables -t nat -F
6iptables -t nat -X
7iptables -t mangle -F
8iptables -t mangle -X
9iptables -t raw -F
10iptables -t raw -X
11iptables -t security -F
12iptables -t security -X
13iptables -P INPUT ACCEPT
14iptables -P FORWARD ACCEPT
15iptables -P OUTPUT ACCEPT
16
17iptables -N open
18iptables -N interfaces
19
20iptables -A INPUT -p icmp -j ACCEPT
21iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
22iptables -A INPUT -j interfaces
23iptables -A INPUT -j open
24iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
25iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
26iptables -P INPUT DROP
27
28iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
29iptables -A INPUT -f -j DROP
30iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
31iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
32
33#--------------------- OPEN ---------------------
34iptables -A interfaces -i lo -j ACCEPT
35iptables -A open -p tcp --dport 80 -j ACCEPT # HTTP
36iptables -A open -p tcp --dport 443 -j ACCEPT # HTTPS
37iptables -A open -p tcp --dport 25111 -j ACCEPT # SSH
38
39#--------------------- SAVE ---------------------
40/sbin/iptables-save > /etc/sysconfig/iptables
Делаем файл исполняемым и запускаем его.
1chmod +x iptables.sh
2./iptables.sh
Перезагружаем сервер.
1systemctl reboot