|
|
(не показано 26 промежуточных версий этого же участника) |
Строка 1: |
Строка 1: |
| | Что надо знать? |
| | |
| = iptables = | | = iptables = |
|
| |
|
| Практически копипаст статьи: https://losst.ru/nastrojka-iptables-dlya-chajnikov
| | [[Iptables]] |
| | |
| Годно: https://www.opennet.ru/docs/RUS/iptables/
| |
| | |
| Годный видик: https://youtu.be/SYM5MvV4VIk
| |
| | |
| [[Файл:Netfilter-diagram-rus.png|300px|thumb|right|netfilter dia]] | |
| | |
| == Цепочки ==
| |
| | |
| Есть несколько цепочек: Input, forward, output (очевидно), а также prerouting и postrouting:
| |
| | |
| * prerouting - в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
| |
| * postrouting - сюда попадают все проходящие пакеты, которые уже прошли цепочку forward
| |
| | |
| Нагляднее будет на картинке справа. В каждой цепочке есть таблицы.
| |
| | |
| == Таблицы ==
| |
| {{#spoiler:
| |
| Над цепочками правил в iptables есть еще один уровень абстракции, и это таблицы. В системе есть несколько таблиц, и все они имеют стандартный набор цепочек input, forward и output. Таблицы предназначены для выполнения разных действий над пакетами, например для модификации или фильтрации. Сейчас это для вас не так важно и будет достаточно знать что фильтрация пакетов iptables осуществляется в таблице filter
| |
| }}
| |
| | |
| * raw - предназначена для работы с сырыми пакетами, пока они еще не прошли обработку;
| |
| * mangle - предназначена для модификации пакетов;
| |
| * nat - обеспечивает работу nat, если вы хотите использовать компьютер в качестве маршрутизатора;
| |
| * filter - основная таблица для фильтрации пакетов, используется по умолчанию.
| |
|
| |
|
| == ПРАВИЛА И ДЕЙСТВИЯ == | | = ip = |
| | [[IP utility (Linux)]] |
|
| |
|
| * ACCEPT - разрешить прохождение пакета дальше по цепочке правил;
| | = сети = |
| * DROP - удалить пакет;
| |
| * REJECT - отклонить пакет, отправителю будет отправлено сообщение, что пакет был отклонен;
| |
| * LOG - сделать запись о пакете в лог файл;
| |
| * QUEUE - отправить пакет пользовательскому приложению.
| |
|
| |
|
| == syntax ==
| | [[сети]] |
| | |
| Осталось рассмотреть основные действия, которые позволяет выполнить iptables:
| |
| <source>
| |
| -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 - выбрать действие, если правило подошло.
| |
| </source>
| |
| | |
| == примеры ==
| |
| | |
| Вот так будет выглядеть команда, которая позволяет добавить правило iptables для блокировки всех входящих пакетов от 10.10.10.10:
| |
| | |
| <code>sudo iptables -A INPUT -s 10.10.10.10 -j DROP</code>
| |
|
| |
|
| = tcpdump = | | = tcpdump = |
|
| |
|
| Простая штука с помощью которой можно анализировать трафик.
| | [[Tcpdump (Linux)]] |
|
| |
|
| <code>-n</code> - IP вместо DNS
| | = strace = |
| | |
| * src/dst/host - хост
| |
| * [src/dst] port - порт
| |
| * ether broadcast - бродкасты
| |
| * icmp - icmp
| |
|
| |
|
| cool stuff: https://hackertarget.com/tcpdump-examples/
| | [[Strace (Linux)]] |
|
| |
|
| = strace = | | = SQL = |
|
| |
|
| * <code>strace -e *syscall*</code> - вывести только вызовы определенного syscall
| | [[SQL]] |