Действия

Road to sysadmin: различия между версиями

Материал из lulzette's wiki

Строка 4: Строка 4:


Годно: https://www.opennet.ru/docs/RUS/iptables/
Годно: https://www.opennet.ru/docs/RUS/iptables/
Годный видик: https://youtu.be/SYM5MvV4VIk


[[Файл:Netfilter-diagram-rus.png|300px|thumb|right|netfilter dia]]
[[Файл:Netfilter-diagram-rus.png|300px|thumb|right|netfilter dia]]


== цепочки ==
== Цепочки ==
 
Input, forward, output


Есть несколько цепочек: Input, forward, output (очевидно), а также prerouting и postrouting:


* prerouting - в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
* prerouting - в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
* postrouting - сюда попадают все проходящие пакеты, которые уже прошли цепочку forward
* postrouting - сюда попадают все проходящие пакеты, которые уже прошли цепочку forward
Нагляднее будет на картинке справа. В каждой цепочке есть таблицы.
== Таблицы ==
{{#spoiler:
Над цепочками правил в iptables есть еще один уровень абстракции, и это таблицы. В системе есть несколько таблиц, и все они имеют стандартный набор цепочек input, forward и output. Таблицы предназначены для выполнения разных действий над пакетами, например для модификации или фильтрации. Сейчас это для вас не так важно и будет достаточно знать что фильтрация пакетов iptables осуществляется в таблице filter
}}
* raw - предназначена для работы с сырыми пакетами, пока они еще не прошли обработку;
* mangle - предназначена для модификации пакетов;
* nat - обеспечивает работу nat, если вы хотите использовать компьютер в качестве маршрутизатора;
* filter - основная таблица для фильтрации пакетов, используется по умолчанию.


== ПРАВИЛА И ДЕЙСТВИЯ ==
== ПРАВИЛА И ДЕЙСТВИЯ ==
Строка 22: Строка 35:
* LOG - сделать запись о пакете в лог файл;
* LOG - сделать запись о пакете в лог файл;
* QUEUE - отправить пакет пользовательскому приложению.
* QUEUE - отправить пакет пользовательскому приложению.
== ТАБЛИЦЫ IPATABLES ==
Над цепочками правил в iptables есть еще один уровень абстракции, и это таблицы. В системе есть несколько таблиц, и все они имеют стандартный набор цепочек input, forward и output. Таблицы предназначены для выполнения разных действий над пакетами, например для модификации или фильтрации. Сейчас это для вас не так важно и будет достаточно знать что фильтрация пакетов iptables осуществляется в таблице filter
* raw - предназначена для работы с сырыми пакетами, пока они еще не прошли обработку;
* mangle - предназначена для модификации пакетов;
* nat - обеспечивает работу nat, если вы хотите использовать компьютер в качестве маршрутизатора;
* filter - основная таблица для фильтрации пакетов, используется по умолчанию.


== syntax ==
== syntax ==

Версия от 03:29, 31 декабря 2020

iptables

Практически копипаст статьи: https://losst.ru/nastrojka-iptables-dlya-chajnikov

Годно: https://www.opennet.ru/docs/RUS/iptables/

Годный видик: https://youtu.be/SYM5MvV4VIk

netfilter dia

Цепочки

Есть несколько цепочек: Input, forward, output (очевидно), а также prerouting и postrouting:

  • prerouting - в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
  • postrouting - сюда попадают все проходящие пакеты, которые уже прошли цепочку forward

Нагляднее будет на картинке справа. В каждой цепочке есть таблицы.

Таблицы

  • raw - предназначена для работы с сырыми пакетами, пока они еще не прошли обработку;
  • mangle - предназначена для модификации пакетов;
  • nat - обеспечивает работу nat, если вы хотите использовать компьютер в качестве маршрутизатора;
  • filter - основная таблица для фильтрации пакетов, используется по умолчанию.

ПРАВИЛА И ДЕЙСТВИЯ

  • ACCEPT - разрешить прохождение пакета дальше по цепочке правил;
  • DROP - удалить пакет;
  • REJECT - отклонить пакет, отправителю будет отправлено сообщение, что пакет был отклонен;
  • LOG - сделать запись о пакете в лог файл;
  • QUEUE - отправить пакет пользовательскому приложению.

syntax

Осталось рассмотреть основные действия, которые позволяет выполнить iptables:

-A - добавить правило в цепочку; <code>-A, --append chain rule-specification</code>
-С - проверить все правила;
-D - удалить правило;
-I - вставить правило с нужным номером;
-L - вывести все правила в текущей цепочке;
-S - вывести все правила;
-F - очистить все правила;
-N - создать цепочку;
-X - удалить цепочку;
-P - установить действие по умолчанию.
Дополнительные опции для правил:

-p - указать протокол, один из tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp,
mh;
-s - указать ip адрес устройства-отправителя пакета;
-d - указать ip адрес получателя;
-i - входной сетевой интерфейс;
-o - исходящий сетевой интерфейс;
-j - выбрать действие, если правило подошло.

примеры

Вот так будет выглядеть команда, которая позволяет добавить правило iptables для блокировки всех входящих пакетов от 10.10.10.10:

sudo iptables -A INPUT -s 10.10.10.10 -j DROP

tcpdump

Простая штука с помощью которой можно анализировать трафик.

-n - IP вместо DNS

  • src/dst/host - хост
  • [src/dst] port - порт
  • ether broadcast - бродкасты
  • icmp - icmp

cool stuff: https://hackertarget.com/tcpdump-examples/

strace

  • strace -e *syscall* - вывести только вызовы определенного syscall