Справочный портал в мире информационных технологий - linuxgik.ru
rsync
Должна быть установлена на всех машинах.
В rsync всегда сначала указываем источник, а потом место назначения,
т.е. сначала что копируем, а потом куда копируем.
Всегда используйте параметр -nv перед прогоном. rsync может натворить огромную
головную боль, если что-то не так сделать.
Завершающий слеш "/"
Источник без завершающего слеша скопирует сам каталог/path/dir
в удаленный каталог /dest_dir: ~]$ rsync -a /path/dir user@host:dest_dir
Путь к каталогу источнику с косой чертой в конце скопирует не сам каталог/path/dir, а все содержимое в удаленный каталог /dest_dir: ~]$ rsync -a /path/dir/ user@host:dest_dir
Небольшая инструкция по синхронизации
Синхронизируем локальный каталог с удаленным сервером: ~]$ rsync -a -e "ssh -p 7967" html/ user@host:html/
Примечание: -e "ssh -p 7967" указывает коннектиться по определенному порту.
На удаленной машине синхронизируем каталоги: ~]$ rsync -a html/ /var/www/html/
3.1 Генерация ключа и копирование открытого ключа на сервер
~]$ ssh-keygen — создаём пару ключей на станции.
~]$ ssh-copy-id user@host — отправляем публичный ключ на удалённый сервер.
Если ssh-copy-id недоступен, скопируйте ~/.ssh/id_rsa.pub в ~/.ssh/authorized_keys на сервере.
Внимание: перед отключением паролей проверьте подключение по ключу в новой сессии.
3.2 Настройка файла /etc/ssh/sshd_config
Откройте файл конфигурации и внесите изменения:
~]# nano /etc/ssh/sshd_config
Отключить авторизацию по паролю — PasswordAuthentication no
Запретить вход по root — PermitRootLogin no
Сменить порт — Port 2222
⚠️ Для того чтобы изменения вступили в силу, необходимо перезагрузить SSH-сервер. Команда перезагрузки приведена в пункте 3.6 — её следует выполнять только после завершения всех предыдущих настроек. Если применить перезагрузку до открытия нового порта в firewall и MAC, вы потеряете доступ к серверу.
3.3 Разрешить системе обязательного доступа (SELinux / AppArmor) использовать нестандартный порт
SELinux (CentOS/RHEL) и AppArmor (Debian/Ubuntu) — системы обязательного контроля доступа (MAC — Mandatory Access Control). Они ограничивают процессы, в том числе могут блокировать использование нестандартных портов.
CentOS / RHEL (SELinux)
Проверить статус SELinux — ~]$ sestatus. Если SELinux отключен, переходим к следующему шагу, чтобы открыть порт в брандмауэре.
Установить утилиты управления — ~]# dnf install policycoreutils-python-utils
Разрешить нестандартный порт — ~]# semanage port -a -t ssh_port_t -p tcp 2222
Проверить — ~]# semanage port -l | grep ssh
Debian / Ubuntu (AppArmor)
AppArmor по умолчанию не ограничивает привязку sshd к нестандартным портам — дополнительных действий не требуется.
3.4 Открытие порта в межсетевом экране (firewall)
CentOS / RHEL (firewalld)
~]# firewall-cmd --add-port=2222/tcp
~]# firewall-cmd --runtime-to-permanent
Или сразу добавить порт в постоянную конфигурацию — ~]# firewall-cmd --permanent --add-port=2222/tcp, затем ~]# firewall-cmd --reload
Подключиться по новому порту — ~]$ ssh -p 2222 user@host (вместо ip-адреса можно указывать доменное имя, если домен уже подключен).
💡 Не закрывайте текущую SSH-сессию, пока не убедитесь, что подключение по новому порту работает. Если что-то пойдёт не так, вы сможете исправить ошибку в открытой сессии.
Базовая настройка SSH завершена.
4. Установка и запуск веб-сервера
Выберите веб-сервер для установки: Apache или Nginx.
~]# systemctl enable httpd --now — включает Apache и добавляет его в автозапуск.
4.2 Установка Nginx
~]# dnf module list nginx — вывести список модулей, которые содержит Nginx. Прим.: поток по умолчанию обозначен "[d]".
~]# dnf install nginx — устанавливает Nginx.
~]# systemctl enable nginx --now — включает Nginx и добавляет его в автозапуск.
~]$ systemctl status nginx.service — проверяем статус службы.
4.3 Открытие портов в firewall
Для работы веб-сервера откройте порты 80 (HTTP) и 443 (HTTPS):
~]# firewall-cmd --list-all — убеждаемся, что по умолчанию отсутствует разрешение на доступ по 80 порту.
~]# firewall-cmd --zone=public --add-service=http --permanent — добавляем 80-й порт в виде сервиса http.
Порт 80 ассоциирован с сервисом http в firewalld. Подробней читай в официальной документации firewalld: Open a Port or Service
~]# firewall-cmd --zone=public --add-service=https --permanent — открывает порт 443 (HTTPS).
~]# firewall-cmd --reload — применяет изменения в firewall.
~]# firewall-cmd --list-all — проверяем, что порт открыт.
Примечание: в системе AlmaLinux 8, при установке веб-сервера Apache, порты автоматически добавились в открытые. Добавлять ничего не надо, нужно только проверить конфигурацию зоны, чтобы убедиться, что порты открыты.
Готово. Проверьте работу сервера, введя в браузере IP-адрес или доменное имя.
Проверить доступность:
~]$ curl -I http://YOUR_SERVER_IP
4.4 Конфигурация по умолчанию
Конфигурационный файл — /etc/nginx/nginx.conf. В нём веб-сервер настроен на работу на 80 порту, и нацелен на каталог контента в /usr/share/nginx/html/
5. Получение и настройка SSL-сертификата Let's Encrypt
Certbot — это официальный клиент для получения и управления сертификатами Let's Encrypt.
Установите EPEL-репозиторий и Certbot:
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginx # для Nginx
# или
sudo dnf install -y certbot python3-certbot-apache # для Apache
5.2 Автоматическая настройка для Apache
Делаем бекап. Переименовываем конфиг /etc/httpd/conf.d/ssl.conf —
этот файл конфигурации создается автоматически в AlmaLinux 8, при установке httpd.
В нём подключается сертификат /etc/pki/tls/certs/localhost.crt для локальной разработки.