Linux Labs

Сеть / Ступень 7 из 14

Разрешить нужное, сохранить запрет

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 8 · на машине · 4 мин

Таблица, цепочка, правило

Пакеты клиента отбрасывает сам сервер — его фильтр из таблиц, цепочек и правил.

Межсетевой экран пропускает или отбрасывает пакеты по правилам. В Linux правила хранит ядро, а задаёт их программа nft из набора nftables. Прочитай правила сервера:

bash
sudo ip netns exec lab-server nft list ruleset

Вывод такой, только числа в счётчиках у тебя свои:

text
table inet lab_filter {
	chain input {
		type filter hook input priority filter; policy drop;
		iif "lo" accept
		ip saddr 192.0.2.20 tcp dport 8081 counter packets 0 bytes 0 accept
		counter packets 4 bytes 264 drop
	}
}

Таблица lab_filter собирает цепочки; inet значит, что она для IPv4 и IPv6 сразу. Цепочка input — список правил для пакетов, адресованных самой машине: так её подключает строка hook input. Пакеты, которые машина отправляет сама, проходят цепочку с hook output, а пересылает дальше — с hook forward.

Без sudo nft печатает Operation not permitted (you must be root).

Проверь себя 1 вопрос

Сайт работает на самом сервере, клиент приходит к нему по сети. В какой цепочке искать правило, которое режет запросы к сайту?

  • forward — пакеты, которые машина пересылает дальше, как маршрутизатор. Запрос к сайту адресован самому серверу.

  • output — пакеты, которые сервер отправляет сам. Запрос клиента в сервер входит.

Пакеты, адресованные самой машине, проходят цепочку с hook input — у учебного сервера это input таблицы lab_filter. Пересылаемые дальше — forward, отправленные машиной — output.

Главное в шаге

  • Правила межсетевого экрана задаёт nft, читает их sudo nft list ruleset.
  • Таблица собирает цепочки, цепочка — правила; hook input — пакеты, адресованные самой машине.
Ubuntu 24.04
Загрузка…