Существует ли способ найти, какое правило iptables было ответственно за отбрасывание пакета?

Это зависит от того, что Вы хотите сделать. Вы хотите выполнить оболочку или applicaiton в интерактивном режиме от терминала, подключение к другому компьютеру по последовательной линии, автоматизировать связь с устройством по последовательному порту?

Если Вы хотите двунаправленную связь затем, я предполагаю, что Вы хотите что-то взаимодействующее с человеком на терминале. Можно настроить систему для разрешения логинов от терминала по последовательному порту путем установки getty (1), сессия на последовательном порте - getty является инструментом для установки терминала и разрешения логинов на нее. Поместите запись в свой inittab (5) файл для выполнения его на соответствующем последовательном порте на a respawn основание.

Если Вы хотите соединиться с устройством, и новичок автоматизировал два пути переговоры затем, Вы видели, ожидают ли, получит Вас, что Вы хотите. Используйте stty (1) для конфигурирования порта к правильной четности, скорости в бодах и другим соответствующим настройкам.

Если Вы захотите связаться в интерактивном режиме с другим компьютером по последовательному порту затем, то Вам будет нужно программное обеспечение эмуляции терминала. Это делает довольно много - это настраивает порт, интерпретирует ANSI, или другие терминальные последовательности команды (ANSI был далек от того, чтобы быть единственным стандартом, поддерживаемым последовательными терминалами). Много эмуляторов терминала также протоколы передачи файла поддержки, такие как kermit или zmodem.

Входы и выходы последовательной передачи данных и терминала ввод-вывод довольно сложны; можно считать больше, чем Вы когда-нибудь хотели знать на предмете в последовательном практическом руководстве.

33
26.03.2011, 17:41
5 ответов

Вы могли добавить, что ТРАССИРОВКА управляет рано в цепочке для входа каждого правила, что пакет пересекает.

Я рассмотрел бы использование iptables -L -v -n | less позволять Вам искать правила. Я посмотрел бы порт; адрес; и интерфейсные правила, которые применяются. Учитывая, что у Вас есть столько правил, Вы, вероятно, выполняете главным образом закрытый брандмауэр и пропускаете правило разрешения для трафика.

Как брандмауэр создается? Может быть легче посмотреть на правила разработчика, чем созданные правила.

20
27.01.2020, 19:37
  • 1
    , который я выяснил после выяснения у этого вопроса, что правила от APF, и я смог зафиксировать это. Я люблю цель ТРАССИРОВКИ, все же. Это было бы очень эффективно. –  Shawn J. Goff 26.03.2011, 21:21
  • 2
    Пример использования цели ТРАССИРОВКИ здесь: serverfault.com/questions/122157/debugger-for-iptables / …. –  slm♦ 12.06.2015, 19:59

Выполненный iptables -L -v -n видеть пакет и байт противостоит для каждой таблицы и для каждого правила.

14
27.01.2020, 19:37
  • 1
    Это хорошо, я надеюсь на что-то лучше, так как существует 1 000 правил и 1000-е отброшенных пакетов. –  Shawn J. Goff 26.03.2011, 19:49
  • 2
    Использовать sort к виду управляет счетчиком пакетов. –  ninjalj 26.03.2011, 19:53

С тех пор iptables -L -v -n имеет счетчики, Вы могли сделать следующее.

iptables -L -v -n > Sample1
#Cause the packet that you suspect is being dropped by iptables
iptables -L -v -n > Sample2
diff Sample1 Sample2

Таким образом, Вы будете видеть только правила, которые увеличили.

13
27.01.2020, 19:37

В моей компании мы используем watch -n 2 -d iptables -nvL , он показывает изменения между запросами

{{1} }
9
27.01.2020, 19:37
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"

Имейте в виду, это покажет только данные для таблицы , фильтра .

Добавьте -t nat (или любую другую таблицу, которую вы используете помимо filter) к вашему вызову iptables, чтобы проверить там правила.

5
27.01.2020, 19:37

Теги

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