Блокировка передачи файлов через ICQ - на городском сайте Тамбова - tamboff.ru

   ПоискПоиск   ПользователиПользователи   Правила форумаПравила форума   РегистрацияРегистрация   ПрофильПрофиль   Личные сообщенияЛичные сообщения   ВходВход 

Блокировка передачи файлов через ICQ


 
Начать новую тему   Ответить на тему    Список форумов tamboff.ru -> *nix системы в Тамбове
Предыдущая тема :: Следующая тема  
Автор Сообщение
quadro
Восточный льстец


Репутация: 145    

Зарегистрирован: 31.03.2005
Сообщения: 2048


Сообщение21 Дек, Пятница, 11:17, 2007   постоянная ссылка   Заголовок сообщения: Блокировка передачи файлов через ICQ Всего отзывов: 1 Ответить с цитатой

Любезному Друку посвящается.

Однажды меня спросили, можно ли заблокировать передачу файлов через ICQ? Самоуверенно я ответил, что через прокси нельзя передавать файлы. Однако ж каково было моё удивление, когда я увидел, как мне передали по аське файл > 3M с приличной скоростью! Осмотр пакетов на интерфейсе и анализ access.log прокси ничего не принесли (не совсем так, ибо один раз я увидел в логе прокси попытку соединения на сервер ars.oscar.aol.com:5190, но тогда кроме небольших подозрений у меня это ничего не вызвало). Беглый поиск в сети на тему блокировки передачи файлов через ICQ ничего не дал.

Передать файл в ICQ можно трёмя способами:
1. Прямое соединение между пользователями. Данный способ успешно пресекается файерволом.
2. Соединение через прокси-сервер AOL. Заблокировать этот вариант на уровне файервола практически невозможно, так как расположен он в сети AOL, где и сервера ICQ и сервер имеет несколько адресов, которые неизвестно как часто могут меняться.
3. Третий вариант экзотический – передача файлов через сообщения с использованием соответствующих плагинов.

Последовательность передачи такая: сначала пытаемся установить прямое соединение между пользователями, если получилось, то передаём файл. Если нет, то меняем порты и вновь пробуем, если получилось, то передаём файл. Если нет, то устанавливаем соединение с прокси-сервером AOL (для Миранды жестко прошит в коде), и передаём файл через него. Поскольку общение с прокси-сервером происходит по тем же портам, то было решено заняться анализом пакетов на L7-уровне. Поскольку в наличии у меня имелся сервер с FreeBSD 6.2, то решение для анализа пакетов было найдено быстро – ng_bpf. Довольно подробный пример использования этой ноды нетграфа совместно с ng_ipfw привёл Антон Южанинов на своей странице, за что ему огромное спасибо.

Итак, инструмент найден, надо определиться, с тем, что мы хотим фильтровать. И вот тут-то всё не так просто, поскольку протокол Oscar AIM является проприетарным и информации на него не так много, как хотелось бы. Стоит заметить, что в силу своей распространённости в сети есть подробное описание протокола версий v7,8,9 (например тут). Однако описания в части OFT (Oscar File Transfer) protocol там нет. Скупое описание нашлось на гугле. Резать InterClientBasicMsg на 2 канале нельзя, поскольку оно используется также для сообщений. Тогда было решено резать подтверждения готовности принять/отослать файл. Из исходников icq.dll от Joe версии 3.94 мы узнаём, что:
Код:

код 0x0101 // I am going to send you this file, is that ok?
код 0x0202 // Yes, it is ok for you to send me that file
код 0x4F заголовок OFT

Нам остаётся только составить паттерн для «отлавливания» таких пакетов.
В результате у меня получилось следующее выражение для tcpdump’а:
Код:

'(tcp[20]=0x4f and tcp[26:2]=0x0101) or (tcp[20]=0x4f and tcp[26:2]=0x0202)'

Но для ng_bpf нужен набор низкоуровневых инструкций. Поскольку пакеты в ng _bpf мы направляем из ng_ipfw, то пакеты будут приходить в формате DLT_EN10MB, а нам нужен формат DLT_RAW. Поэтому при составлении программы для ng_bpf надо либо учитывать смещение в 14 байт, либо сразу переводить в тип DLT_RAW. Я выбрал второй путь, так как это несколько удобнее (не надо учитывать смещения). Можно воспользоваться программой, которую написал Антон Южанинов, которая составляет bpf-программу в нужном нам формате:
Код:

./calc_bpf '(tcp[20]=0x4f and tcp[26:2]=0x0101) or (tcp[20]=0x4f and tcp[26:2]=0x0202)'
 bpf_prog_len=13 bpf_prog=[ { code=0 jt=0 jf=0 k=0 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=9 k=6 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=7 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=80 jt=0 jf=0 k=20 } { code=21 jt=0 jf=4 k=79 } { code=72 jt=0 jf=0 k=26 } { code=21 jt=1 jf=0 k=257 } { code=21 jt=0 jf=1 k=514 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ]

Собственно, дальше всё просто: создадим узел типа bpf и подключим его к ipfw, именуем его и конфигурируем:
Код:

#ngctl mkpeer ipfw: bpf 41 icq

#ngctl name ipfw:41 icq_filter

#ngctl msg icq_filter: setprogram { thisHook=\"icq\" ifMatch=\"\" ifNotMatch=\"icq\"
bpf_prog_len=13 bpf_prog=[ { code=0 jt=0 jf=0 k=0 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=9 k=6 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=7 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=80 jt=0 jf=0 k=20 } { code=21 jt=0 jf=4 k=79 } { code=72 jt=0 jf=0 k=26 } { code=21 jt=1 jf=0 k=257 } { code=21 jt=0 jf=1 k=514 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] }

В случае несовпадения с выражением, пакеты будут оправлены обратно в ipfw, в случае совпадения будут просто отбрасываться. Если вам необходимо совершать какие-нибудь действия с этими пакетами в файерволе, то можно воспользоваться нодой ng_tag, которая будет вешать метки на пакеты, по которым в ipfw вы уже сможете выполнять действия над ними. Пример использования этой ноды описан в справочнике на эту ноду.
Посмотреть настройку нашего хука можно командой:
Код:

#ngctl msg icq_filter: getprogram \"icq_filter\"

Следует помнить, что вывод команд будет в формате hex.
Теперь следует завернуть трафик ICQ в эту ноду нетграфа:
Код:

#ipfw add 123 netgraph 41 tcp from any to any 5190
#ipfw add 124 netgraph 41 tcp from any 5190 to any

Посмотреть статистику можно командой:
Код:

#ngctl msg icq_filter: getstats \"icq\"
Rec'd response "getstats" (3) from "[39]:":
Args:   { recvFrames=380 recvOctets=49093 recvMatchFrames=19 recvMatchOctets=4148 xmitFrames=361 xmitOctets=44945 }

Это означает, что из 380 пакетов, попавших в ноду, 19 соответствовали нашему выражению, то есть запросам на передачу файлов через OFT.
Большое спасибо автору ноды ng_tag Вадиму Гончарову за консультации по логике работы этих нод.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dronablo
Гость

   





Сообщение03 Янв, Четверг, 16:48, 2008   постоянная ссылка   Заголовок сообщения: Ответить с цитатой

Freebsd под рукой не было. В linux (iptables) юзаем
Код:
-m string --algo bm --string FileXfer
Вернуться к началу
quadro
Восточный льстец


Репутация: 145    

Зарегистрирован: 31.03.2005
Сообщения: 2048


Сообщение04 Янв, Пятница, 11:27, 2008   постоянная ссылка   Заголовок сообщения: Ответить с цитатой

Dronablo писал(а):
Freebsd под рукой не было. В linux (iptables) юзаем
Код:
-m string --algo bm --string FileXfer

Неаккуратненько. Если я правильно понял по ману iptables, то под это правило попадут все IP пакеты, содержащие
Код:
46 69 6C 65 58 66 65 72
без учёта смещений и прочего. То есть скорее всего и просто сообщение, содержащее слово "FileXfer" будет заблокировано.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dronablo
Гость

   





Сообщение07 Янв, Понедельник, 17:26, 2008   постоянная ссылка   Заголовок сообщения: Ответить с цитатой

Если отрубить в отдельную цепочку ICQ, то непередаваемость сообщений со словами FileXfer не есть такое уж большое зло. Как бы пока никто не жаловался =). За то простота реализации...
Вернуться к началу
quadro
Восточный льстец


Репутация: 145    

Зарегистрирован: 31.03.2005
Сообщения: 2048


Сообщение08 Янв, Вторник, 12:20, 2008   постоянная ссылка   Заголовок сообщения: Ответить с цитатой

Dronablo писал(а):
Если отрубить в отдельную цепочку ICQ, то непередаваемость сообщений со словами FileXfer не есть такое уж большое зло. Как бы пока никто не жаловался =). За то простота реализации...

А почему именно FileXfer? Логичнее было бы использовать OFT2, а ещё лучше совместно с FileXfer.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FrankJScott
От 200 и выше...


Предупреждения: 1 (Бан)
Репутация: -51    

Зарегистрирован: 02.02.2022
Сообщения: 217
Откуда: Minimum Viable Product

Сообщение22 Фев, Вторник, 06:28, 2022   постоянная ссылка   Заголовок сообщения: Ответить с цитатой

Untuk pria bertanya tentang situs judi bola resmi 2021, game slot online terbaik dan terpercaya, agen slot gacor malam ini, Saya sangat merekomendasikan ini peringkat tertinggi slot online domain or situs judi online24jam, deposit pulsa slot, slot online gacor , link slot gacor deposit pulsa tanpa potongan, slot online deposit, situs slot deposit pulsa 5rb, casino online no deposit bonus codes, bersama semua ini hebat judi slot situs di atas ini situs slot gacor malam ini, situs slot online terbaik 2021 deposit dana, slot online gacor, situs judi terpercaya 2021, agen judi slot online terbaik, slot pulsa 365, daftar situs slot online judi terbaik 2020, di atas ini peringkat tertinggi situs slot halaman which is also great. Also have a look at this luar biasa agen slot situs dan juga ini slot terbaik dan terpercaya 2020, slot land bonus no deposit, situs agen judi slot online terpercaya, slot online uk, slot pulsa smartfren tanpa potongan, slot pulsa tanpa potongan bet kecil, slot gacor terbaru 2021, bersama semua ini baru slot deposit situs bersama semua ini slot gacor deposit via pulsa tanpa potongan, slot gacor deposit pulsa indosat, situs judi server luar negeri, online slot free spins, slot via pulsa 3, agen judi indonesia, no deposit limit slots, bersama semua ini luar biasa deposit pulsa situs yang juga layak untuk dilihat. Saya juga menyarankan ini luar biasa deposit pulsa forum bersama semua ini online slot bonus hunt, deposit pulsa tanpa potongan 4d, slot online gacor terpercaya, situs judi slot terbaik, slot online terbaik hari ini, situs judi slot online terpercaya 2022, agen slot terbaik, bersama semua ini terbaik slot terpercaya url belum lagi ini online slot winners uk, casino online no deposit bonus codes 2020, situs slot terbaru 2019 bonus 100, san quentin slot bonus buy demo, situs slot gacor 2021 terbaru, sv slot online casino, situs judi slot online deposit bri 24 jam, dan jangan lupa ini luar biasa slot bonus url yang juga hebat. Akhirnya, lihat ini luar biasa slot online url and slot online terpercaya deposit via dana, situs judi terbaik dunia, agen slot gacor malam ini, untuk memastikan ekstra. Lihat lainnya Berguna Agen Judi Blog 92554b2
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора AIM Address
Партнеры tamboff.ru



Добавить свой логотип!
 
Все новости тамбовских компаний

Новости tmb.news
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов tamboff.ru -> *nix системы в Тамбове Часовой пояс: GMT + 3


Страница 1 из 1

 
Перейти: