Быстро, доступно, безопасно!
Магазин готовых сайтов

Установка и настройка сервера на AlmaLinux 8.8

Основные этапы установки и настройки основных служб (sshd, httpd, bind, selinux, firewalld и др.) сервера на ОС AlmaLinux версии 8.8 для безопасной работы интернет-сервера.

Почему AlmaLinux?

Потому, что поддержка операционной системы CentOS, на которой работало множество хостингов, заканчивается 30 июня 2024 года. Разработчики ПО, такие как cPanel и крупные хостеры переходят именно на AlmaLinux 8, основанную на RedHat и полностью с ней совместимую, хотя существуют и намного более эффективные ОС для этих целей, такие, как FreeBSD.

Установка AlmaLinux 8.8

Про типовую настройку всё хорошо и подробно написано на сайте разработчика ПО. Читайте там, повторяться нет смысла. А вот при настройке сервера есть множество нюансов, о которых, если не знаешь, ничего не найдешь на поверхности.


Главное - безопасность, поэтому начинаем с SSH

Что такое SSH.


Web сервер - httpd

Как правильно настроить вебсервер Apache 2.4 на AlmaLinux 8.8. Особенности настройки протокола HTTPS и взаимодействие с Cloudflare.


Установка SSL сертификата

SSL (Secure Sockets Layer) - это протокол, гарантирующий безопасную передачу данных по сети. Он комбинирует криптографическую систему с открытым ключом и блочное шифрование данных. Данные, передаваемые между веб-браузером и веб-сервером шифруются.

Установка SSL сертификата для IP адреса

Получение SSL сертификата для IP адреса возможно - читайте как это сделать.


Установка дополнительного ПО

Для эффективной работы веб-сервера требуется множество дополнительных программ и модулей. Подробная информация об их установке.


Настройка FTP сервера

Проверить работает ли FTP сервер: service vsftpd status

По умолчанию доступ к FTP серверу закрыт брандмауэром. Чтобы его открыть надо выполнить команду: firewall-cmd --zone=public --add-service=ftp --permanentи перезагрузить его: firewall-cmd --reload

Установить OpenSSH: dnf install openssh-server openssh-clients

Отредактировать конфигурацию FTP: vim /etc/vsftpd/vsftpd.conf

Разрешить доступ: firewall-cmd --zone=public --add-service=ftp --permanentи перезагрузить брэндмауэр: firewall-cmd --reload

Перезагрузить сервер: systemctl restart vsftpd

Создаем пользователя и его домашний каталог (ключ -m): useradd -m tester и устанавливаем ему пароль passwd tester

Устанавливаем ftp-клиента для командной строки: dnf install ftp

Тестируем подключение: ftp 127.0.0.1

OpenSSH у нас уже установлен и запущен, осталось добавить в конец конфигурационного файла: vim /etc/ssh/sshd_config дополнительные строки: Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp


Настройка bind (DNS)

Как правильно настроить Primary DNS сервер.


Настройка SELinux

Проверить статус SELinux и используемую политику SELinux:sestatus

Чтобы получить список логических значений, узнать их роль, а также включены они или нет, запустите команду: semanage boolean -l

Разрешаем httpd сетевые подключения: setsebool -P httpd_can_network_connect 1

Разрешаем Сетевые Информационные Службы - nis (Network Information Services): setsebool -P nis_enabled 1

Разрешаем вебсерверу Apache отправлять почту: setsebool -P httpd_can_sendmail=1


Установка и настройка почты

Для работы почты нужно запустить MTA. MTA - это аббревиатура от английского Mail Transfer Agent. Системная программа для пересылки электронных почтовых отправлений. Для того, чтобы она работала и мы могли отправлять и получать почту из внешних сетей необходимо разрешить это в брэндмауэре открыв для доступа SMTP, POP3 (POP3S) в режиме Permanent.

Также для корректной работы почты необходимо, чтобы провайдер IP-адреса сделал на своем сервере PTR запись. Эта запись в DNS, позволяет получить имя узла по его IP-адресу. Проверка PTR-записи используется при фильтрации входящей почты от нежелательных почтовых сообщений.

Проверить PTR запись можно следующими командами: dig -x 10.10.10.10nslookup -type=PTR 10.10.10.10dig ptr 10.10.10.10.in-addr.arpa

Postfix

Узнать статус службы: systemctl status postfix

При редактировании файла конфигурации рекомендуется изменять не более 2-3 параметров за раз, проверяя после этого, работает ли Postfix.

Необходимо указать имя хоста - myhostname и домена - mydomain: vim /etc/postfix/main.cf

После внесения изменений перезагрузить службу: postfix reload

При возникновении ошибки "SMTPUTF8 is required, but was not offered by host" выполнить команду: postconf smtputf8_enable=no
postfix reload

В процессе настройки службы может образоваться очередь из сообщений, которые по разным причинам не могут быть доставлены. Удалить все сообщения в очереди можно командой: postsuper -d ALL

Чтобы Postfix автоматически запускался при загрузке системы надо выполнить команду: systemctl enable postfix.service

Проверить статусы служб: systemctl list-unit-files

Вывод конфигурации Postfix в удобном для чтения формате: postconf -f

Журнал почты: /var/log/maillog

Exim

Данный MTA используется почти на 60% серверов в интернете.

Проверить версию exim: exim -bV если exim не установлен AlmaLinux предложит его установить: bash: exim: command not found...
Install package 'exim' to provide command 'exim'? [N/y]
При нажатии "y" установка происходит автоматически.

Настройка DMARC, SPF и DKIM

После установки MTA необходимо внести дополнительные записи в файл зоны DNS: DMARC, SPF, DKIM.

  • DMARC (Domain-based Message Authentication, Reporting, and Conformance) – сообщает принимающим почтовым серверам, что делать с полученными от сервера письмами, которые не прошли проверку SPF или DKIM.
  • SPF (Sender Policy Framework) – определяет почтовые серверы и домены, которым разрешено отправлять электронную почту от имени вашего сервера.
  • DKIM (DomainKeys Identified Mail) – добавляет к каждому отправляемому письму цифровую подпись, с помощью которой принимающие серверы могут проверить, не было ли письмо подделано или изменено при доставке.

Пример DMARC записи: _dmarc.example.com. 14400 IN TXT "v=DMARC1; p=reject; sp=reject;"

Пример SPF записи, где "10.10.10.10" - это IP адрес вашего сервера: example.com. 14400 IN TXT "v=spf1 a mx ip4:10.10.10.10 ~all"

Устанавливаем и настраиваем DKIM: yum search dkim
yum install opendkim.x86_64

Редактируем конфигурационный файл: vim /etc/opendkim.confи устанавливаем режим подписи и проверки: Mode sv убираем комментарии из строк с переменными, особое внимание следует обратить на пути к конфигурационным файлам, т.к. в различных документациях они могут отличаться: Socket inet:8891@127.0.0.1
Domain example.com
Keyfile /etc/opendkim/keys/example.com/default.private
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts

Редактируем файл: vim /etc/opendkim/KeyTable и дописываем туда (внимание на пути!): default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private

Редактируем файл: vim /etc/opendkim/SigningTable и дописываем туда: *@example.com default._domainkey.example.com

Редактируем файл: vim /etc/opendkim/TrustedHosts и добавляем туда: *.example.com

Создаем каталог для нашего домена: mkdir /etc/opendkim/keys/example.com и генерируем ключи:

  • -b - указывает размер создаваемого ключа в битах;
  • -d - домен;
  • -D - каталог;
  • -s - селектор (по умолчанию - default)
opendkim-genkey -b 1024 -d example.com -D /etc/opendkim/keys/example.com -s default -v

Делаем владельцем opendkim: chown opendkim:opendkim /etc/opendkim/keys -R

Добавляем созданный публичный ключ в файл зоны DNS. Выглядит это примерно так: default._domainkey 14400 IN TXT "v=DKIM1; k=rsa; p=[здесь длинная строка из 216 символов без квадратных скобок]" и перезагружаем named.

Подключаем Postfix к OpenDKIM: vim /etc/postfix/main.cf добавляя в конец файла следующие строки: smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

Перезагружаем OpenDKIM и Postfix: systemctl restart opendkim
systemctl restart postfix

Проверяем, что всё работает правильно: systemctl status opendkim
systemctl status postfix

Dovecot

Dovecot - это POP3/IMAP сервер предустановленный на AlmaLinux. Он необходим для доставки почты от сервера к клиентам.

Проверить статус службы: systemctl status dovecot

Редактировать конфигурацию: vim /etc/dovecot/dovecot.conf


Firewall

Полезные команды для работы с Firewall.

Перезагрузить Firewall: systemctl restart firewalld установить графический интерфейс для firewall: yum install firewall-config


Устранение ошибок и диагностика

Если при настройке каких то служб возникли неполадки и они не работают как надо, поможет диагностика.

При сбоях в работе DKIM надо проверить, слушает ли служба соответствующий порт: netstat -nap | grep 8891
tcp 0 0 127.0.0.1:8891 0.0.0.0:* LISTEN 676534/opendkim

Модель процессора: lscpuсписок оборудования: lshwсписок всех устройств PCI: lspciсписок всех групп: cat /etc/groupсписок всех групп, включая входящих в них пользователей: getent groupсписок всех групп, в которые входит пользователь "username": groups username

Работа с файлами

Определить тип файла: file example.pngформат и характеристики файлов изображений: identify example.png


Настройка OpenVPN

Как настроить частную виртуальную сеть на базе ПО с открытым кодом - OpenVPN.

Обновляем менеджер пакетов: dnf updateустанавливаем OpenVPN: dnf install openvpn


Другие настройки и команды

Полезные настройки.

Установить для пользователя в качестве редактора по умолчанию vim: export EDITOR="/usr/bin/vim"

Выключение компьютера. Прямо сейчас: shutdown -h now через 10 минут: shutdown -h +10 Позволяет графически предупредить пользователей о выключении и обеспечивает более плавное завершение работы системы, сохраняя данные и закрывая программы.


Резервное копирование

Различные варианты и схемы резервного копирования.


Метки: almalinux; selinux; bind; httpd; dns; sshd; ssl; ftp

Опрос

В каком году был сделан ваш сайт? (голосов: 24)

  • до 2015 года - 23 (96%)
  • в 2015 - 0 (0%)
  • в 2016 - 0 (0%)
  • в 2017 - 0 (0%)
  • в 2018 - 1 (4%)
  • в 2019 - 0 (0%)