Как использовать iptables на Ubuntu?

Вопрос или проблема

Я смотрю вывод

sudo iptables -L --line-numbers

Я получил

Chain ufw-before-forward (1 references)
num  target     prot opt source               destination         
1    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
2    ACCEPT     icmp --  anywhere             anywhere             icmp destination-unreachable
3    ACCEPT     icmp --  anywhere             anywhere             icmp time-exceeded
4    ACCEPT     icmp --  anywhere             anywhere             icmp parameter-problem
5    ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
6    ufw-user-forward  all  --  anywhere             anywhere            

Chain ufw-before-input (1 references)
num  target     prot opt source               destination         
1    ACCEPT     all  --  anywhere             anywhere            
2    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
3    ufw-logging-deny  all  --  anywhere             anywhere             ctstate INVALID
4    DROP       all  --  anywhere             anywhere             ctstate INVALID
5    ACCEPT     icmp --  anywhere             anywhere             icmp destination-unreachable
6    ACCEPT     icmp --  anywhere             anywhere             icmp time-exceeded
7    ACCEPT     icmp --  anywhere             anywhere             icmp parameter-problem
8    ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
9    ACCEPT     udp  --  anywhere             anywhere             udp spt:bootps dpt:bootpc
10   ufw-not-local  all  --  anywhere             anywhere            
11   ACCEPT     udp  --  anywhere             mdns.mcast.net       udp dpt:mdns
12   ACCEPT     udp  --  anywhere             239.255.255.250      udp dpt:1900
13   ufw-user-input  all  --  anywhere             anywhere

Ufw

sudo ufw status numbered
[sudo] password for centa: 
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] Anywhere                   DENY IN     192.168.0.13

Это лишь часть вывода, но я не могу его расшифровать. Хорошо, я понимаю протокол, но anywhere означает, что всё открыто?
Где можно прочитать больше?

Ответ или решение

Использование iptables на Ubuntu может быть сложным для начинающих, особенно если вы видите длинный список правил и не совсем понимаете, что они обозначают. Докладное объяснение с привлечением теории, примеров и практического применения поможет вам глубже понять, как эти инструменты работают.

Теория

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

Каждое правило в цепочке говорит iptables, что делать с пакетом, который попадает под соответствие этому правилу. Возможные действия включают в себя ACCEPT (принять), DROP (отклонить) и REJECT (отказать и уведомить отправителя). Директива anywhere в выводе локальных правил означает, что правило применимо ко всем адресам — то есть конечной точкой пакета может быть как любой внешний, так и внутренний IP-адрес.

Пример

Рассмотрим ваш вывод команд:

sudo iptables -L --line-numbers

и:

sudo ufw status numbered

Они дают представление о текущих правилах фильтрации. Например, в цепочке ufw-before-input вы видите множество правил типа ACCEPT для различных типов ICMP-трафика (например, для сообщений об ошибках, контроля параметров и запросов эхо-сигналов). Такие правила необходимы для корректной работы сетевых приложений, так как они разрешают необходимый трафик для диагностики и связи.

Далее можно отметить правило ufw-not-local, которое часто используется для обработки трафика, не относящегося к локальным адресам. Общая цель наличия таких правил заключается в фильтрации пакетов, которых можно не обрабатывать местным или специфическим только для устройства образом.

Применение

Теперь, когда мы знаем, что такое iptables, давайте посмотрим, как это может быть применено на практике.

  1. Мониторинг текущего состояния:
    Чтобы просто ознакомиться с тем, какие правила уже настроены на вашем устройстве, используйте команды, представленные в вашем выводе. Эти команды помогут понять, как ваше устройство в настоящее время обрабатывает сетевой трафик.

  2. Создание собственных правил:

    • Чтобы добавить правило, можно использовать команду iptables следующим образом:
      sudo iptables -A INPUT -s 192.168.1.1 -j DROP

      Это правило откажет во всем входящем трафике от IP-адреса 192.168.1.1.

  3. Использование UFW:

    • Чтобы использовать ufw, вы можете ввести:
      sudo ufw deny from 192.168.1.1

      Это правило аналогично предыдущему и концептуально облегчит работу с настройкой firewall.

  4. Понимание вывода:

    • Цепочка ufw-before-input, например, отвечает за фильтрацию входящих пакетов до того, как те дойдут до конечного пользователя. Пакеты сначала проходят через правила этой цепочки.
    • Ваши ACCEPT правила позволяют передачи определенных типов трафика, а DROP и REJECT блокируют.

Дополнительная литература и ресурсы для углубления знаний

  • Документация iptables: это первоисточник, который следует изучать для углубленного понимания работы и возможности тонкой настройки.
  • Официальное управление Firewall на Ubuntu: ufw (Uncomplicated Firewall) является идеальным местом для старта, если iptables кажется слишком сложным.
  • Книги и курсы по обеспечению сетевой безопасности: из них можно почерпнуть как основы, так и продвинутые техники настройки правил.

Вся эта информация должна помочь вам лучше понимать работу сетевых фильтров на вашем устройстве и начать с уверенности применять собственные правила для управления трафиком.

Оцените материал
Добавить комментарий

Капча загружается...