Правила iptables не работают

Вы не можете перенаправить текст в переменную, вам нужно его захватить. Но вы хотите сохранить текст stderr, а не stdout:

if error=$( tar -xf "$1" -C "$2/$dir_name" 2>&1 1>/dev/null ); then...

ifбудет действовать на статус выхода tar.

Избавьтесь от привычки использовать ВСЕ _ЗАГЛАВНЫЕ _ВАРИАНТЫ.

3
14.12.2019, 02:43
1 ответ

Сетевой стек состоит из разных частей. Когда прибывает пакет, он шаг за шагом проходит эти части, следуя последовательным уровням сети. tcpdump просто одним из первых на этом пути видит входящие пакеты и одним из последних видит исходящие пакеты.

Вы можете увидеть эту схему Поток пакетов в Netfilter и General Networking , чтобы получить представление (щелкните, чтобы получить полный размер):

Packet flow in Netfilter and General Networking

tcpdump захват по умолчанию происходит довольно рано в AF _PACKET, в то время как правило DROP находится в filter/INPUT.

Это означает, что даже если tcpdump захватил пакет, iptables все равно отбрасывал его после, но до того, как какой-либо процесс смог его получить.

Вы можете убедиться в этом, выполнив, например, iptables-save -cи проверив, что для каждого пакета, обнаруженного в tcpdump , вы получаете приращение счетчика (, как дополнительное[1:39])перед правилом DROP.

Теперь для захвата пакетов, отброшенных iptables , вы можете использовать правило ведения журнала NFLOG прямо перед правилом DROP с точно таким же фильтром (, с помощью которого вы можете использовать цепочку пользователей для избегайте дублирования, но это всего лишь пример ). Вы можете вставить это правило перед правилом DROP:

iptables -I INPUT -i eth0 -j NFLOG --nflog-group 10

И захватить то, что он получил:

tcpdump -n -e -i nflog:10

Здесь nflog :10 является псевдоинтерфейсом -, доступным для tcpdump для извлечения этих журналов (в выбранной группе 10.Все возможные интерфейсы можно найти с помощью tcpdump -D). Поскольку это не Ethernet, а IPv4, несмотря на -e, не будет доступной информации Ethernet, такой как MAC-адрес. Вы можете выбрать другие значения--nflog -group , если хотите легко разделить несколько захватов (, но вы также можете использовать для этого собственные фильтры tcpdump ).

1
27.01.2020, 21:29

Теги

Похожие вопросы