Сегодня я хочу рассказать как установить веб-сервер Angie на хост под управлением разных версий Linux, в том числе и Ubuntu. Последнее время Энжи всё активнее и активнее используется веб-мастерами и, думаю, эта тенденция будет расти в сторону увеличения.
Веб-сервер Angie появился в 2022 году после ухода из России компании F5, главного разработчика Nginx. Была создана компания ООО «Веб-сервер», которая приступила к разработке форка Nginx. В итоге, в октябре 2022 года появился Angie OSS (Open Source), а немного позже — коммерческая версия Angie PRO. С первого релиза Angie принёс большое количество новых возможностей, часть из которых повторяли фичи Nginx Plus, но уже в открытом продукте.
В случае, если ранее Вы активно использовали Nginx Plus и желаете переехать на Angie, то стоит рассмотреть Angie PRO, где реализовано большинство фич коммерческого Nginx Plus. Основные отличия платной и бесплатной версий находятся в области балансировки и проксирования.
Обновим систему и установим зависимости:
sudo apt update sudo apt install -y ca-certificates curl
Добавим ключ и репозиторий Angie:
sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg https://angie.software/keys/angie-signing.gpg echo "deb https://download.angie.software/angie/$(. /etc/os-release && echo "$ID/$VERSION_ID $VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null sudo apt update
Ставим сам веб-сервер:
sudo apt install -y angie
А заодно модули, если нужно сжатие и ускорение:
sudo apt install -y angie-module-zstd angie-module-brotli
Создаём репо-файл:
sudo nano /etc/yum.repos.d/angie.repo
Вставляем:
[angie] name=Angie repo baseurl=https://download.angie.software/angie/almalinux/$releasever/ gpgcheck=1 enabled=1 gpgkey=https://angie.software/keys/angie-signing.gpg.asc
Теперь установка:
sudo yum install -y angie angie-module-zstd angie-module-brotli sudo systemctl start angie sudo systemctl enable angie
если хотим прямо максимум:
У вас лицензия? Тогда нужно в приватное репо. Команда установки:
sudo apt install -y angie-pro angie-pro-module-zstd angie-pro-module-brotli
Проверить можно так:
angie -V
Или:
ps afx | grep angieThe post Установка веб-сервера Angie на разные версии Linux first appeared on Как настроить?.]]>
Защита SSH (Secure Shell) от взлома — это критически важная задача, особенно если сервер доступен из интернета или используется в локальной сети с потенциальными уязвимостями. SSH предоставляет удалённый доступ к серверу, и если злоумышленник получит доступ к вашему SSH, он сможет полностью контролировать систему, что может привести к серьёзным последствиям. Давайте разберём, почему это так важно и какие риски возникают при отсутствии защиты.
SSH — это «входная дверь» в ваш сервер
SSH часто используется для управления серверами, особенно в Linux/Unix-системах. Если злоумышленник взломает SSH, он получит полный доступ к серверу, включая возможность:
Популярность атак на SSH
SSH-серверы — одна из самых частых целей для автоматизированных атак. Боты постоянно сканируют интернет в поисках открытых портов SSH (по умолчанию это порт 22) и пытаются подобрать пароли методом перебора (brute-force). Например:
Риск утечки данных
Если злоумышленник получит доступ через SSH, он сможет скачать все данные, хранящиеся на сервере. Это особенно опасно, если сервер содержит:
Компрометация всей сети
Если сервер находится в локальной сети, взлом SSH может стать точкой входа для атаки на другие устройства в сети. Злоумышленник может:
Репутационные и финансовые потери
Если ваш сервер взломают, это может привести к:
1️⃣ Отключаем root-доступ. Вход под пользователем root — это частая цель атак. Запретите его в /etc/ssh/sshd_config:
PermitRootLogin no
2️⃣ Меняем стандартный порт.
Port 10022
3️⃣ Используем SSH-ключи вместо паролей! Аутентификация по ключам гораздо безопаснее, чем по паролю. Отключите вход по паролю в /etc/ssh/sshd_config:
PasswordAuthentication no PubkeyAuthentication yes
После этого сгенерируйте пару ключей:
ssh-keygen -t rsa -b 4096
И скопируйте публичный ключ на сервер:
ssh-copy-id user@server
Всё, теперь можно «заряжать» ключ в ssh-клиент и пользоваться!
4️⃣ Ограничиваем доступ по IP. Тут можно просто ограничить вход только с доверенных IP через AllowUsers или AllowGroups:
AllowUsers [email protected]
А можно настроить соответствующее правило в фаерволе. Вот пример для ufw:
sudo ufw allow from 192.168.1.0/24 to any port 10022 sudo ufw deny 10022
5️⃣ Включаем защиту от brute-force атак. В этом нам поможет утилита fail2ban, которая блокируют IP-адреса после нескольких неудачных попыток входа. Установка fail2ban:
apt install fail2ban # Debian/Ubuntu yum install fail2ban # CentOS/RHEL
Прописываем настройки в файле: /etc/fail2ban/jail.local:
[sshd] enabled = true maxretry = 3 findtime = 10m bantime = 1h
6️⃣ Отключаем X11 Forwarding и пустые пароли
X11Forwarding no PermitEmptyPasswords no
После сохранения изменений в файле sshd_config, не забывайте перезапускать службу sshd, чтобы изменения вступили в силу.
$: sudo systemctl restart sshd
P.S.:
Защита SSH — это не просто рекомендация, а необходимость, особенно для серверов, доступных из интернета. Взлом SSH может привести к катастрофическим последствиям: от утечки данных до полной компрометации инфраструктуры. Внедрение базовых мер безопасности, таких как смена порта, использование ключей, настройка файрвола и мониторинг, значительно снижает риски. Однако важно помнить, что безопасность — это непрерывный процесс, и нужно регулярно обновлять настройки и следить за новыми угрозами.
The post Базовая защита SSH — обязательный минимум конфигурации first appeared on Как настроить?.]]>Firewalld — это отличная альтернатива iptables. Её используют сейчас в большинстве дистрибутивов Linux: RHEL, CentOS, Fedora. Firewalld предоставляет простой, удобный и значительно более гибкий способ управления правилами файрволла, нежели привычный многим iptables, который уже значительно устарел. Да, для простейших случаев настройка iptables — дело вроде бы несложное. Но вот если брать более сложные сети и большое количеством правил, то тут уже может серьёзно поплохеть. Иногда, чтобы изучить все настройки и понять, как это работает, нужно потратить значительно количество время. Давайте посмотрим в чем firewalld отличается iptables и как его настроить.
Плюсы firewalld
Минусы firewalld
Примеры настройки firewalld
1⃣ Открываем порт. Открываем порт 80 для HTTP:
sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload
2⃣ Закрываем порт. Закрываем порт 22 (SSH):
sudo firewall-cmd --permanent --remove-port=22/tcp sudo firewall-cmd --reload
3⃣ Добавляем сервис. Firewalld поддерживает предопределённые сервисы. Например, открываем SSH:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
Посмотреть список доступных сервисов можно так:
firewall-cmd --get-services
4⃣ Используем зоны безопасности. Firewalld использует зоны для управления трафиком. Например, перемещаем интерфейс eth0 в зону «public»:
sudo firewall-cmd --permanent --zone=public --change-interface=eth0 sudo firewall-cmd --reload
Посмотреть текущую зону интерфейса:
firewall-cmd —get-active-zones
5⃣ Создаём кастомное правило. Блокируем весь трафик с IP 192.168.1.100:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" drop' sudo firewall-cmd --reload
6⃣ Временные правила. Можно временно открыть порт (например, на 5 минут):
sudo firewall-cmd --add-port=8080/tcp --timeout=300
После истечения времени правило удалится автоматически.
Конвертация iptables в firewalld. Если у вас уже настроен iptables, можно конвертировать его правила в формат firewalld:
iptables-save > rules.v4 iptables-restore < rules.v4
Затем вручную перенести правила в firewalld, используя firewall-cmd.
The post Используем firewalld вместо iptables — реальный пример настройки first appeared on Как настроить?.]]>Руткиты — rootkits — это специализированные вредоносные программы, которые маскируют своё присутствие в системе с целью выполнения в дальнейшем каких-либо скрытых действий. Они могут скрывать файлы, процессы и даже сетевые соединения, а так же подменять команды пользователя. Многие их них способны обходить антивирусные проверки. Я хочу поделиться с Вами своим опытом борьбы с руткитами. Возможно что-то из этого Вы возьмёте себе на вооружение.
1. Подмена системных вызовов (syscalls). Rootkits перехватывают вызовы типа getdents(), readdir(), ps, top и т.п., скрывая нужные процессы.
2. Изменение ядра (Kernel Mode Rootkits). В этом случае руткиты загружаются как модули ядра (.ko-файлы) и модифицируют функции ядра, скрывая свою активность.
3. Хук системы /proc. Rootkits подменяют содержимое /proc/[PID], маскируя процесс от стандартных утилит.
4. Использование LD_PRELOAD. Библиотеки динамической загрузки подменяют поведение системных команд даже без изменения ядра.
1️⃣ Проверка /proc вручную:
ls -al /proc | grep -vE "^[d-]r--r--r--"
Если процесс не виден стандартными командами типа ps aux или top, но есть его директория в /proc — это уже должно Вас насторожить.
2️⃣ Сравнение выводов разных утилит:
ps aux | wc -l && ls /proc | grep -E '^[0-9]+$' | wc -l
Числа при сравнении должны совпадать. Если в /proc будет больше процессов, чем показывает вывод команды ps, то вполне возможно, что система заражена.
3️⃣ Использование утилиты chkrootkit:
chkrootkit | grep INFECTED
Простая проверка на наиболее распространённые и известные rootkits.
4️⃣ Использование rkhunter:
rkhunter --check
Утилита проверяет системные файлы на различные несанкционированные изменения.
5️⃣ Анализ ядра и загруженных модулей:
lsmod | grep -i rootkit
Некоторые руткиты могут маскироваться, но подозрительные модули можно выявить через lsmod.
В некоторых случаях требуется установить срок действия учетной записи пользователя в ОС Linux для того, чтобы она автоматически отключалась после определенного времени действия. Это крайне необходимо для временных учетных записей или обеспечения безопасности. Сейчас я подробно расскажу как можно установить срок действия учетной записи с помощью командной консоли Линукс.
Команды useradd, usermod и chage в консоли Linux позволяют гибко настраивать учетные записи , обеспечивая необходимый уровень контроля и защиты.
При создании нового пользователя командой useradd, Вы можете сразу установить срок действия учетной записи.
1️⃣ Создание пользователя с ограниченным сроком действия:
sudo useradd -e <YYYY-MM-DD> <имя_пользователя>
Например:
sudo useradd -e 2025-02-01 tempuser
2️⃣ Когда учётка уже создана, изменить срок действия пользователя можно командой usermod:
sudo usermod -e <YYYY-MM-DD> <имя_пользователя>
Команда chage позволяет управлять сроком действия пароля и учетной записи пользователя.
1️⃣ Просмотр текущих настроек учетной записи:
Чтобы узнать текущие параметры учетной записи, используйте следующую команду:
chage -l <имя_пользователя>
Эта команда выведет информацию о дате последнего изменения пароля, сроке действия и других параметрах.
2️⃣ Установка срока действия учетной записи:
Чтобы установить дату, после которой учетная запись будет отключена, используйте команду:
sudo chage -E <YYYY-MM-DD> <имя_пользователя>
Например, чтобы отключить учетную запись пользователя testuser 1 февраля 2025 года, выполните:
sudo chage -E 2025-02-01 testuser
3️⃣ Удаление срока действия учетной записи:
Если необходимо снять ограничение по сроку действия учетной записи, используйте:
sudo chage -E -1 <имя_пользователя>
Это отключит автоматическое отключение учетной записи.
The post Как установить срок действия учетной записи в Linux first appeared on Как настроить?.]]>