Если вы хоть немного работали с Linux, возможно, сталкивались с загадочной аббревиатурой SELinux. А может, даже пробовали его отключить, когда что-то «вдруг не работает». Давайте разберёмся, что это за механизм, почему его не стоит игнорировать — и как он помогает сделать систему намного безопаснее.
Security-Enhanced Linux (SELinux) — это система контроля доступа, встроенная прямо в ядро Linux. Её изначально разработали в NSA (Агентство национальной безопасности США) совместно с Red Hat, и главная её задача — добавить дополнительный уровень защиты поверх стандартных прав доступа.
То есть даже если у процесса есть root-доступ, SELinux всё равно может его остановить. Да, настолько серьёзно.
Обычная модель прав в Linux называется DAC (Discretionary Access Control) — это когда пользователь или админ сам решает, кто и что может делать с файлами.
А вот SELinux использует MAC (Mandatory Access Control) — модель, в которой права задаются централизованной политикой безопасности. И эта политика обязательна для всех — даже для root. Это позволяет гораздо точнее управлять поведением приложений и процессов в системе.
Каждому процессу и файлу SELinux присваивает контекст безопасности. Он включает:
тип объекта, например: httpd_sys_content_t — контент для веб-сервера;
роль и домен процесса, например: httpd_t — сам веб-сервер.
Когда процесс пытается обратиться к файлу, SELinux проверяет: разрешает ли политика такие действия с учётом их контекстов. Если нет — доступ блокируется. И неважно, что пользователь root.
Представьте, что злоумышленник получил доступ к системе. В обычной Linux-модели он может делать почти всё, если взломал пользователя с нужными правами. А SELinux не даст этому «всё» произойти, потому что процессы не смогут выйти за пределы строго определённых правил.
Это особенно критично на серверах с публичным доступом — веб-серверы, почтовики, базы данных. Там SELinux помогает изолировать процессы, минимизировать последствия уязвимостей и сдерживать вредоносные действия.
Главная отрицательная черта системы — несколько «кривая» обучения, мешающая «работать как привыкли», если не иметь понимать, как SELinux устроен. Ошибки конфигурации могут блокировать нужные процессы, а диагностика требует навыков чтения журналов (/var/log/audit/audit.log).
Enforcing — политика активна, запрещенные действия блокируются
Permissive — действия не блокируются, но журналируются:
Disabled — SELinux отключен
Проверить режим можно так:
Или через:
SELinux — мощный инструмент для усиления защиты Linux-систем. Он может показаться сложным и даже мешающим на первых порах, но на деле — это один из самых эффективных способов ограничить потенциальный ущерб от уязвимостей и ошибок конфигурации.
Если вы работаете с сервером — не спешите его отключать. Лучше понять, как он работает. А в следующих постах я расскажу, как настраивать SELinux-политики и разбирать ошибки доступа
The post SELinux — что это такое и стоит ли его выключать?! first appeared on Как настроить?.]]>Ситуации бывают разные. Например, Вам экстренно понадобилось запустить DHCP- сервер на Linux. Не спрашивайте почему вдруг возникла такая странная необходимость. Ну вот так сложились обстоятельства. Что делать? Сейчас всё покажу!
Я буду рассматривать установку DHCP-сервера на примере Ubuntu или Debian, так как они наиболее распространены. Выполните вот такую команду:
2. Вся необходимая настройка выполняется в файле dhcpd.conf. Это основной файл конфигурации DHCP-сервера, в котором нужно указать настройки: подсети, диапазоны IP-адресов, шлюзы, DNS-серверы и т. д.
3. В файле dhcpd.conf определите подсети и диапазоны IP-адресов, доступные для выдачи.
Например, для подсети 192.168.1.0/24 и диапазона IP-адресов от 192.168.1.10 до 192.168.1.100, добавляем вот такие строки в файл dhcpd.conf:
4. В файле dhcpd.conf можно так же указать и другие настройки. Например, шлюзы (routers), DNS-серверы (domain-name-servers) и другие параметры.
5. Перед запуском DHCP-сервера убедитесь, что настройки в файле dhcpd.conf указаны правильно.
Чтобы проверить конфигурационный файл — выполните команду:
6. Если проверка не выявила ошибок — запустите DHCP-сервер. В Ubuntu/Debian это делается так:
Сегодня я хочу рассказать про очень полезную консольную утилиту для сбора информации о железе в Linux — dmidecode. Чем же она хороша? Среди прочих подобных типа lshw, hwinfo или inxi, она выделяется тем, что не опрашивает оборудование напрямую, а читает таблицу DMI/SMBIOS, где уже содержится вся необходимая информация. Оттого и работает dmidecode практически мгновенно и без лишней нагрузки на систему.
Ещё один несомненный плюс — утилита частенько уже предустановлена во многих дистрибутивах Линукс, а потому устанавливать её вручную почти никогда не требуется.
Команда максимально простая. Вы можете указать тип устройства (по номеру или имени). Например, давайте выведем информацию о процессоре:
dmidecode -t 4
Либо так:
dmidecode -t processor
Вот другие, часто используемые ключи:
Тип оборудования Ключ -t
Запрашиваем конкретные параметры. Если нужно получить только конкретные поля — например, модель или частоту процессора:
dmidecode -s processor-version dmidecode -s processor-frequency
Чтобы увидеть все доступные ключи:
dmidecode -s
Полезно: Ключ -q (quiet) скрывает лишнюю техническую информацию вроде Handle и мета-описаний:
dmidecode -q -t processor
Сегодня я хочу рассказать как установить веб-сервер 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 Как настроить?.]]>