Сканирование на вредоносное ПО и руткиты: rkhunter и ClamAV
Защитите Linux-сервер от вредоносного ПО и руткитов. Установка rkhunter и ClamAV, настройка сканирования, интерпретация результатов, планирование сканирований и реагирование на инциденты.
Подробное сравнение iptables и nftables, синтаксис nftables, руководство по миграции, эквиваленты распространённых правил и когда использовать какой инструмент.
Многие годы iptables был стандартным инструментом фильтрации пакетов в Linux. Однако nftables включён в ядро Linux с 2014 года и заменяет iptables в современных дистрибутивах. Это руководство сравнивает оба инструмента, объясняет синтаксис nftables и проводит вас через миграцию.
| Характеристика | iptables | nftables |
|---|---|---|
| Первый выпуск | 1998 | 2014 |
| Синтаксис | Сложный, непоследовательный | Последовательный, читаемый |
| IPv4/IPv6 | Отдельные инструменты | Единый инструмент |
| Производительность | Оценка по правилам | Оптимизированная |
| Атомарные обновления | Нет | Да |
| По умолчанию (Ubuntu 20.04+) | Нет | Да |
| По умолчанию (Debian 10+) | Нет | Да |
# Просмотр текущих правил iptables
sudo iptables -L -n -v
sudo iptables -L -n -v --line-numbers
# Базовые правила
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -P INPUT DROP
# Сохранить правила
sudo iptables-save > /etc/iptables/rules.v4
В nftables структура: таблица → цепочка → правило
# Установить nftables
sudo apt install nftables -y
sudo systemctl enable nftables
sudo systemctl start nftables
# Просмотр текущих правил
sudo nft list ruleset
sudo nano /etc/nftables.conf
#!/usr/sbin/nft -f
# Очистить существующие правила
flush ruleset
# Семейство inet охватывает IPv4 и IPv6
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# Разрешить loopback
iif lo accept
# Разрешить установленные соединения
ct state established,related accept
# ICMP (ping)
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
# SSH
tcp dport 22 accept
# HTTP/HTTPS
tcp dport { 80, 443 } accept
# Логировать и отклонять
log prefix "nftables-drop: " drop
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
# Применить конфигурацию
sudo nft -f /etc/nftables.conf
# Проверить синтаксис (без применения)
sudo nft -c -f /etc/nftables.conf
# iptables NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
# Эквивалент nftables NAT
table ip nat {
chain prerouting {
type nat hook prerouting priority -100;
tcp dport 80 dnat to 192.168.1.10:80
tcp dport 443 dnat to 192.168.1.10:443
}
chain postrouting {
type nat hook postrouting priority 100;
oif eth0 masquerade
}
}
# Ограничение скорости nftables
chain input {
tcp dport 22 limit rate 3/minute burst 5 packets accept
tcp dport 22 drop
}
# Наборы nftables (встроенные)
table inet filter {
set blocked_ips {
type ipv4_addr
elements = { 1.2.3.4, 5.6.7.8 }
}
chain input {
type filter hook input priority 0; policy drop;
ip saddr @blocked_ips drop
tcp dport 22 accept
}
}
# Установить инструмент преобразования
sudo apt install iptables-nftables-compat -y
# Преобразовать существующие правила iptables
iptables-save | iptables-restore-translate -f /etc/nftables.conf
ip6tables-save | ip6tables-restore-translate >> /etc/nftables.conf
# 1. Резервное копирование правил iptables
sudo iptables-save > /root/iptables-backup.txt
# 2. Создать конфигурацию nftables
sudo nano /etc/nftables.conf
# 3. Проверить конфигурацию
sudo nft -c -f /etc/nftables.conf
# 4. Включить nftables
sudo systemctl enable nftables
sudo nft -f /etc/nftables.conf
# 5. Отключить iptables
sudo systemctl disable iptables
sudo systemctl stop iptables
# 6. Проверить правила
sudo nft list ruleset
Начиная с Ubuntu 20.04 и Debian 10, команда iptables фактически запускает обёртку iptables-nft — то есть использует nftables под капотом. Используйте iptables-legacy для настоящего iptables.
nftables заменяет iptables в современных Linux-системах. Он предлагает более последовательный синтаксис, унифицированное управление IPv4/IPv6 и лучшую производительность. Выбирайте nftables для новых установок; планируйте миграцию для существующей инфраструктуры iptables.
Технически возможно, но не рекомендуется. Конфликтующие правила могут привести к неожиданному поведению. На современных системах команда iptables уже использует бэкенд nftables. Выберите одно и придерживайтесь его.
UFW построен поверх iptables. На системах Ubuntu 20.04+ UFW использует nftables через обёртку iptables-nft. Если вы хотите использовать nftables напрямую, отключите UFW.
Нет, если служба nftables включена и /etc/nftables.conf правильно настроен, правила постоянны. Включите службу с помощью 'sudo systemctl enable nftables'.
Да. Fail2Ban поддерживает бэкенд nftables. Установите 'banaction = nftables-multiport' в /etc/fail2ban/jail.local, чтобы Fail2Ban создавал правила nftables.
Он более последовательный и читаемый по сравнению с iptables. После понимания основных концепций (таблица, цепочка, правило) его относительно легко изучить. Команда 'nft list ruleset' показывает текущие правила в читаемом формате.
Защитите Linux-сервер от вредоносного ПО и руткитов. Установка rkhunter и ClamAV, настройка сканирования, интерпретация результатов, планирование сканирований и реагирование на инциденты.
Защитите сервер от SSH брутфорс-атак с помощью Fail2Ban. Установка, настройка jail.local, джейлы для Nginx/Apache, белый список IP, мониторинг блокировок и email-уведомления.
Настройте VPN-сервер WireGuard: генерация ключей, конфигурация сервера и клиента, IP-пересылка, правила брандмауэра и настройка клиентов Windows/Linux/Android.