Як зрозуміти, чому пакет iptables вважався пакетом INVALID?


11

Я встановив деякі iptablesправила, щоб він реєстрував і скидав пакети, які є INVALID ( --state INVALID). Читаючи журнали, як я можу зрозуміти, чому пакет вважався недійсним? Наприклад, наступне:

Nov 29 22:59:13 htpc-router kernel: [6550193.790402] ::IPT::DROP:: IN=ppp0 OUT= MAC= SRC=31.13.72.7 DST=136.169.151.82 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=5104 DF PROTO=TCP SPT=80 DPT=61597 WINDOW=0 RES=0x00 ACK RST URGP=0

Відповіді:


25

Пакети можуть бути в різних станах при використанні стану перевірки пакетів.

  • Нове : пакет не є частиною відомого потоку чи сокета, а у TCP-прапорах включений біт SYN.
  • Встановлено : пакет відповідає потоку або сокету, відстежуваним CONNTRACKі має будь-які прапорці TCP. Після завершення початкового рукостискання TCP біт SYN повинен бути вимкнено, щоб пакет перебував у стані.
  • Пов’язано : Пакет не відповідає жодному відомому потоку чи сокету, але пакет очікується, оскільки існує існуючий сокет, який його предикує (приклади цього - дані про порт 20, коли є існуючий сеанс FTP на порт 21, або дані UDP для існуючого SIP-з'єднання на порту TCP 5060). Для цього потрібен асоційований ALG.
  • Недійсне : якщо жодне з попередніх станів не застосовується, пакет знаходиться в стані INVALID. Це може бути спричинено різними типами зондувальних мереж, або це може означати, що у вас не вистачає CONNTRACKзаписів (які ви також повинні бачити, зазначені у своїх журналах). Або просто може бути цілком доброякісним.

У вашому випадку пакет, який ви цитуєте, показує, що TCP прапорці ACKта RST, і що вихідний порт є 80. Це означає, що веб-сервер за адресою 31.13.72.7(що трапляється у Facebook) надіслав вам пакет скидання. Повністю неможливо сказати, чому не бачивши пакетів, що надійшли до цього (якщо такі є). Але, швидше за все, він надсилає вам скидання з тієї ж причини, через яку ваш комп'ютер вважає його недійсним.


Тож немає ніякого способу попросити ядро ​​(або iptables) додати якийсь "підпис" до пакету, який би вважав причиною його недійсності?
mbaitoff

2
За визначенням, ні. Недійсний означає, що він не відповідає жодному з відомих станів. Іншими словами, це ядро, яке говорить: "Я не знаю, чому я отримав цей пакет".
bahamat

Для налагодження конкретних пакетів INVALID, перегляд їх у Wireshark з дампа може працювати ... Я бачив пакети з полями SACK (насправді, брандмауер змінює звичайні порядкові номери, а ті, що в опції SACK, не призводять до того, що SACK значення недійсні), що було зламано, коли брандмауер був скинутий як недійсний ...
Gert van den Berg
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.