Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: iptables u32 фильтр dns ipv6  (Прочитано 1164 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lukinfore

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
iptables u32 фильтр dns ipv6
« : 13 Сентября 2011, 20:57:47 »
Как я себе сие представляю:
добавляем цепь
iptables -N dnsчерез  которую идет udp на 53 порт
iptables -A OUTPUT -p udp --dport 53 -j dnsи в ней уже сам u32
iptables -A dns -m u32 --u32 $filter -j DROPТеперь о фильтре. Длина пакета - 3-4 байты, нужен предпоследний байт пакета с типом запроса, т.е. (длина пакета - 2). Как реализовать "-" в одном условии - для меня загадка, ибо отрицательный оффсет -0xffff=0xffff0001 , поэтому:
0 & 0x2 = 0x2 && 0 & 0xfffd @ 0 & 0xff0000 = 0x1c0000
0 & 0x2 = 0x2 && : если 7 бит 4 байта = 1
0 & 0xfffd @ : сбрасываем его (-2) и первые 2 байта, и переходим на получившийся оффсет
0 & 0xffff0000 = 0x1c0000 : сравниваем с АААА, тип запроса ipv6 address
0 & 0x2 = 0x0 && 0 & 0xfffb @ 2 & 0xff0000 = 0x1c0000аналогично, только сначала -4 потом +2.
Все бы хорошо, но не работает.

(Нажмите, чтобы показать/скрыть)

UPD: туговато со счетом, сравнивать нужно не [-2] байт а [-4].
Итого:
iptables -N dns
iptables -A OUTPUT -p udp --dport 53 -j dns
iptables -A dns -m u32 --u32 "0 & 0x4 = 0x4 && 0 & 0xfffb @ 0 & 0xff0000 = 0x1c0000" -j DROP
iptables -A dns -m u32 --u32 "0 & 0x4 = 0x0 && 0 & 0xfff7 @ 4 & 0xff0000 = 0x1c0000" -j DROP
« Последнее редактирование: 13 Сентября 2011, 23:52:12 от lukinfore »

alexxnight

  • Гость
Re: iptables u32 фильтр dns ipv6
« Ответ #1 : 10 Ноября 2011, 23:12:45 »
...что-то мало кого интересует u32 фильтр dns ipv6...
но поговорить вообще есть о чем...
Вы создайте тему iptables u32, может кто еще подтянется к обсуждению этого модуля :)

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.