it-git.ru
  • Windows
  • Linux
  • Виртуализация
  • Скрипты
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • 📰

iptables — это гибкий и мощный инструмент для управления сетевым трафиком в Linux

Linux / Сеть и коммутация

iptables — это мощный инструмент командной строки в Linux, который используется для настройки правил межсетевого экрана (firewall). Он позволяет управлять трафиком на уровне пакетов и фильтровать входящие, исходящие и проходящие через систему сетевые пакеты. iptables работает с таблицами правил, которые определяют, как система должна обрабатывать сетевые пакеты.

Основные понятия

  1. Таблицы:

    • filter: Основная таблица для фильтрации пакетов (по умолчанию).
    • nat: Используется для изменения адресов пакетов (NAT, SNAT, DNAT).
    • mangle: Используется для модификации пакетов (например, изменение заголовков).
    • raw: Используется для маркировки пакетов, чтобы они не обрабатывались системой отслеживания состояния (connection tracking).
  2. Цепочки (chains):

    • INPUT: Обрабатывает входящие пакеты.
    • OUTPUT: Обрабатывает исходящие пакеты.
    • FORWARD: Обрабатывает пакеты, которые проходят через систему (маршрутизация).
    • PREROUTING: Используется для изменения пакетов до их маршрутизации (обычно в таблице nat).
    • POSTROUTING: Используется для изменения пакетов после их маршрутизации (обычно в таблице nat).
  3. Правила:

    • Каждое правило состоит из условий (например, IP-адрес, порт) и действия (target), которое выполняется, если пакет соответствует условиям.
    • Действия (targets): ACCEPT, DROP, REJECT, LOG, RETURN и другие.

Примеры использования iptables

1. Разрешить весь входящий трафик

iptables -A INPUT -j ACCEPT
  • -A INPUT: Добавить правило в цепочку INPUT.
  • -j ACCEPT: Разрешить пакеты.

2. Блокировать весь входящий трафик

iptables -P INPUT DROP
  • -P INPUT: Установить политику по умолчанию для цепочки INPUT.
  • DROP: Блокировать все пакеты.

3. Разрешить входящий трафик только на порт 80 (HTTP)

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  • -p tcp: Указать протокол TCP.
  • --dport 80: Указать целевой порт (80 для HTTP).
  • -j ACCEPT: Разрешить пакеты.

4. Блокировать входящий трафик с определенного IP-адреса

iptables -A INPUT -s 192.168.1.100 -j DROP
  • -s 192.168.1.100: Указать источник (IP-адрес).
  • -j DROP: Блокировать пакеты.

5. Разрешить исходящий трафик на порт 443 (HTTPS)

iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
  • -A OUTPUT: Добавить правило в цепочку OUTPUT.
  • --dport 443: Указать целевой порт (443 для HTTPS).

6. Логирование входящих пакетов

iptables -A INPUT -j LOG --log-prefix "IPTABLES_INPUT: "
  • LOG: Логировать пакеты.
  • --log-prefix: Добавить префикс к логам для удобства анализа.

7. Перенаправление трафика (Port Forwarding)

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.200:8080
  • -t nat: Использовать таблицу nat.
  • PREROUTING: Цепочка для изменения пакетов до маршрутизации.
  • DNAT: Изменить целевой адрес пакета.
  • --to-destination: Новый адрес и порт.

8. Маскарадинг (SNAT для выхода в интернет)

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  • -t nat: Использовать таблицу nat.
  • POSTROUTING: Цепочка для изменения пакетов после маршрутизации.
  • -o eth0: Интерфейс, через который выходит трафик.
  • MASQUERADE: Автоматически изменять исходящий IP-адрес на адрес интерфейса.

9. Очистить все правила

iptables -F
  • -F: Очистить все правила во всех цепочках.

10. Сохранение правил

Чтобы правила сохранялись после перезагрузки системы, их нужно сохранить. Например, в Ubuntu:

iptables-save > /etc/iptables/rules.v4

Или восстановить:

iptables-restore < /etc/iptables/rules.v4

Практический пример конфигурации

Предположим, что мы хотим настроить базовый файрвол для сервера:

  1. Разрешить SSH (порт 22).
  2. Разрешить HTTP (порт 80) и HTTPS (порт 443).
  3. Блокировать весь остальной входящий трафик.
# Сбросить все правила
iptables -F

# Разрешить локальный трафик (loopback)
iptables -A INPUT -i lo -j ACCEPT

# Разрешить уже установленные соединения
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Разрешить SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Разрешить HTTP и HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Блокировать весь остальной трафик
iptables -P INPUT DROP



  • 21.03.2025
  • 128
  • 0
Настройка условной пересылки DNS-запросов в Mikrotik RouterOS
Настройка условной пересылки DNS-запросов в Mikrotik RouterOS
3-06-2019, 10:28, Сеть и коммутация
Пакетные менеджеры linux: APT, YUM, DNF, Pacman — обзор базовых функции по управлению пакетами
Пакетные менеджеры linux: APT, YUM, DNF, Pacman — обзор базовых функции по управлению пакетами
22-01-2025, 20:41, Linux
pip install - Установка менеджера пакетов Python
pip install - Установка менеджера пакетов Python
23-01-2025, 09:56, Программное обеспечение
Полезности Mikrotik
Полезности Mikrotik
30-05-2019, 08:31, Сеть и коммутация
iptables, firewall, трафик, безопасность
  • Windows
  • Linux
  • Виртуализация
  • Скрипты
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • Active Directory
  • ▒ IT Новости
AD astra cisco cmd debian Docker Exchange firewall hp interface linux LXC Mail mikrotik network ovirt ProxMox PVE radius raid route router RouterOS s3 vpn windows Россия база данных безопасность виртуализация данные диск защита копирование массив надежность настройка программный райд скрипт файл
Показать все теги

Что такое IT-GIT?

«IT» — это не просто технологии, а целый мир инноваций и решений, направленных на преодоление сложностей. Мы представляем экспертность в области информационных технологий и широкой технологической экосистемы, стремясь к постоянному развитию и совершенствованию.

«Git» — это отсылка к одной из самых популярных систем контроля версий, которая обеспечивает эффективное сотрудничество, быструю итерацию и надежное управление сложными проектами. Мы стремимся объединить и поделиться опытом и идеями специалистов в сфере технологий, создавая пространство для обмена знаниями.

Инновационные технологии + совместный опыт экспертов в области технологий = путь к успеху!


  • ◆ Полезное
  • ▻ Заметки по докеру
  • ▻ Процесс расширения LVM на примере виртуальной машины
  • ▻ Расширение раздела на HDD/SSD
  • ▻ Ремонт файловой системы linux
  • ▻ Коды символов Юникода в UTF-8
  • ▻ Загрузка CHR RouterOS
  • ▻ #mikrotik
  • ▻ #zfs

  • ★ TOP 20
  • ☆ Шпаргалка по ZFS
  • ☆ Robocopy — описание и примеры использования
  • ☆ Настройка сети через командную строку и BAT файл
  • ☆ Для чего нужен протокол STP/RSTP на примере Mikrotik
  • ☆ Мигрируем на Exchange с почты для домена (yandex, mail, google и др.)
  • ☆ Как подключить сетевой диск всем пользователям с использованием AD
  • ☆ НP ProCurve. наиболее часто используемые команды консоли.
  • ☆ Сброс пароля Windows 10 с помощью встроенной учетной записи Администратора
  • ☆ Настройка условной пересылки DNS-запросов в Mikrotik RouterOS
  • ☆ Как создать программный RAID 1 массив (зеркало) средствами Windows 10, 8.1, 8, 7, Vista
  • ☆ Проверить, запущена ли программа
  • ☆ Не работает fetch в netwatch Mikrotik (ROS 7.13)
  • ☆ Как создать RAID 1 из уже заполненного диска на Windows 10, 8.1, 8, 7, Vista
  • ☆ Mikrotik (vpn server) + Windows server 2008r2 (ad, radius server)
  • ☆ Отечественная виртуализация - на чем построена, обзор, сравнение.
  • ☆ Ремонт файловой системы linux
  • ☆ Сравнение решений WireGuard
  • ☆ Увеличение zfs диска (ISCSI FreeNAS)
  • ☆ Mikrotik, 3 провайдера, переключение и разделение трафик
  • ☆ Полезности Mikrotik
Monitorus. Мониторинг сайтов и серверов.
 
  Top.Mail.Ru      © 2019-2025.    www.IT-GIT.ru    ✉ info@it-git.ru