Каждый системный администратор должен уметь быстро и точно определять версию Linux-дистрибутива. Это важно для:
В этой статье разберём все основные команды, их различия и лучшие практики использования.
Почему лучше?
Пример:
Вывод:
Operating System: Ubuntu 22.04.3 LTS Kernel: Linux 5.15.0-78-generic Architecture: x86-64
Фильтрация вывода:
hostnamectl | grep "Operating System" # Только ОС
hostnamectl | grep "Kernel" # Только ядро
Плюсы:
Пример:
lsb_release -a
Вывод:
Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy
Короткие варианты:
lsb_release -c # Кодовое имя (jammy, focal, bullseye)
Когда использовать?
Команды:
Пример (/etc/os-release):
NAME="Ubuntu" VERSION="22.04.3 LTS (Jammy Jellyfish)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 22.04.3 LTS"
Вывод:
Опции:
Установка:
Запуск:
Вывод (графический, с логотипом дистрибутива):
Команда | Лучше всего подходит для | Показывает ядро? | Требует установки? |
---|---|---|---|
hostnamectl | Любой systemd-дистр. | ✅ Да | ❌ Нет (встроен) |
lsb_release -a | Debian/Ubuntu | ❌ Нет | ❌ Нет (обычно есть) |
cat /etc/os-release | Минимальные дистры | ❌ Нет | ❌ Нет |
uname -a | Проверка ядра | ✅ Только ядро | ❌ Нет |
neofetch | Красивый вывод | ✅ Да | ✅ Да (устанавливается) |
В современной инфраструктуре безопасность сервера — критически важный аспект. Один из способов защиты — использование iptables для фильтрации сетевого трафика и Fail2Ban для автоматической блокировки подозрительных подключений. В этой статье разберём настройку этих инструментов для базовой защиты Linux-сервера.
Устанавливаем Fail2Ban из репозитория и включаем автозагрузку:
apt install fail2ban systemctl enable --now fail2ban
Основные настройки хранятся в:
Создаём или редактируем конфигурацию:
nano /etc/fail2ban/jail.d/custom.conf
Добавляем следующие параметры:
[DEFAULT] ignoreip = 127.0.0.1/8 ::1 217.25.227.207 # IP, которые не блокируются bantime = 30d # Время блокировки (30 дней) findtime = 5m # Окно анализа попыток входа maxretry = 3 # Макс. число попыток до бана banaction = iptables-multiport # Действие при бане (по портам) banaction_allports = iptables-allports # Блокировка всех портов
Проверим статус защиты для SSH:
fail2ban-client status sshd
Посмотрим правила iptables, созданные Fail2Ban:
iptables -L -n -v | grep -A 10 "f2b-sshd"
Перед применением политики DROP на INPUT разрешим необходимый трафик:
# Разрешаем ICMP (ping) iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # Разрешаем порт для Zabbix-агента iptables -A INPUT -p tcp --dport 10050 -j ACCEPT # Разрешаем SSH (порт 22) iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Разрешаем ответы на исходящие соединения iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем локальный интерфейс (loopback) iptables -A INPUT -i lo -j ACCEPT # Запрещаем весь остальной входящий трафик iptables -P INPUT DROP # Сохраняем правила iptables-save > /etc/iptables/rules.v4
Если нужно удалить правило:
iptables -L --line-numbers # Просмотр правил с номерами iptables -D INPUT 3 # Удаление правила №3 из цепочки INPUT
Комбинация Fail2Ban и iptables даёт:
✅ Автоматическую защиту от брутфорса (Fail2Ban)
✅ Гибкую фильтрацию трафика (iptables)
✅ Контроль доступа к критическим сервисам (SSH, Zabbix)
Рекомендуется:
🔹 Регулярно проверять логи Fail2Ban (journalctl -u fail2ban -f)
🔹 Обновлять список ignoreip для доверенных IP
🔹 Тестировать правила iptables перед применением в production
Такая настройка обеспечит базовый уровень безопасности сервера, минимизируя риски несанкционированного доступа.
🔐 Дополнительные меры: