Вопрос или проблема
Я смотрю вывод
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
, давайте посмотрим, как это может быть применено на практике.
-
Мониторинг текущего состояния:
Чтобы просто ознакомиться с тем, какие правила уже настроены на вашем устройстве, используйте команды, представленные в вашем выводе. Эти команды помогут понять, как ваше устройство в настоящее время обрабатывает сетевой трафик. -
Создание собственных правил:
- Чтобы добавить правило, можно использовать команду
iptables
следующим образом:sudo iptables -A INPUT -s 192.168.1.1 -j DROP
Это правило откажет во всем входящем трафике от IP-адреса 192.168.1.1.
- Чтобы добавить правило, можно использовать команду
-
Использование UFW:
- Чтобы использовать
ufw
, вы можете ввести:sudo ufw deny from 192.168.1.1
Это правило аналогично предыдущему и концептуально облегчит работу с настройкой firewall.
- Чтобы использовать
-
Понимание вывода:
- Цепочка
ufw-before-input
, например, отвечает за фильтрацию входящих пакетов до того, как те дойдут до конечного пользователя. Пакеты сначала проходят через правила этой цепочки. - Ваши
ACCEPT
правила позволяют передачи определенных типов трафика, аDROP
иREJECT
блокируют.
- Цепочка
Дополнительная литература и ресурсы для углубления знаний
- Документация
iptables
: это первоисточник, который следует изучать для углубленного понимания работы и возможности тонкой настройки. - Официальное управление Firewall на Ubuntu:
ufw
(Uncomplicated Firewall) является идеальным местом для старта, еслиiptables
кажется слишком сложным. - Книги и курсы по обеспечению сетевой безопасности: из них можно почерпнуть как основы, так и продвинутые техники настройки правил.
Вся эта информация должна помочь вам лучше понимать работу сетевых фильтров на вашем устройстве и начать с уверенности применять собственные правила для управления трафиком.