iptables - это инструмент для управления сетевой безопасностью в Linux. Он позволяет фильтровать входящий, исходящий и проходящий трафик, обеспечивая гибкость и контроль над сетью. Разберём несколько ключевых моментов и тонкостей его использования.
Основные цепочки iptables
INPUT — фильтрует входящий трафик.
FORWARD — фильтрует трафик, проходящий через сервер.
OUTPUT — фильтрует исходящий трафик.
Примеры использования
1. Блокировка IP-адреса. Чтобы заблокировать доступ с конкретного IP-адреса:
iptables -A INPUT -s 192.168.1.100 -j DROP
-A INPUT - добавляем правило в цепочку INPUT.
-s - указывает источник (source).
-j DROP - блокирует трафик.
2. Разрешение доступа по порту. Разрешить входящий трафик на порт 22 (SSH):
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-p tcp - указывает, что правило применимо к протоколу TCP.
--dport 22 - указывает порт назначения.
3. Ограничение количества подключений. Ограничение количества новых подключений с одного IP-адреса:
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT
-m connlimit - модуль для ограничения количества соединений.
--connlimit-above 10 - ограничивает до 10 соединений с одного IP.
❗️ Тонкости и советы
1. Логирование заблокированного трафика. Для диагностики полезно логировать заблокированные пакеты:
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: "
--log-prefix добавляет префикс к каждому сообщению журнала.
2. Сохранение правил. После настройки важно сохранить правила, чтобы они не сбросились после перезагрузки:
iptables-save > /etc/iptables/rules.v4
iptables-save сохраняет текущие правила в файл.
3. Использование пользовательских цепочек. Создание пользовательской цепочки для упрощения управления правилами:
iptables -N my_custom_chain
iptables -A INPUT -j my_custom_chain
iptables -A my_custom_chain -s 192.168.1.100 -j DROP
-N создаёт новую цепочку. Это позволяет централизовать управление специфическими правилами.
Динамическое изменение правил
Для обеспечения гибкости iptables позволяет добавлять и удалять правила на лету. Например, временное блокирование IP:
iptables -I INPUT -s 192.168.1.101 -j DROP
sleep 300
iptables -D INPUT -s 192.168.1.101 -j DROP
Этот скрипт блокирует IP на 5 минут.
---
iptables предоставляет широкий спектр возможностей для фильтрации и контроля сетевого трафика. Понимание тонкостей и правильное применение правил помогут защитить серверы и сети от угроз, обеспечив безопасную и стабильную работу.BashTex 📱 #linux #networks