URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 42388
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Как заблокировать через iptables пакеты отправленные из определенной ОС"

Отправлено auto_tips , 16-Июн-08 13:38 
Модуль ost был написан для использования в iptables правилах результатов пассивного определения
типа операционной системы, из которой был отправлен TCP SYN пакет.

Загружаем исходные тексты модуля или ставим из patch-o-matic:
   wget http://tservice.net.ru/~s0mbre/archive/osf/osf-2008_06_14.ta...

В Makefile через переменную IPTABLES указываем путь к заголовочным файлам iptables (iptables.h и libiptc/).

Собираем модуль ipt_osf.ko:
   make

Собираем библиотеку libipt_osf.so, после чего копируем ее в /lib/iptables или /lib64/iptables:
   make lib

Собираем утилиты  для загрузки сигнатур ОС и ведения лога (load, osfd, ucon_osf):
   make bin

Загружаем список сигнатур:
   wget http://www.openbsd.org/cgi-bin/cvsweb/src/etc/pf.os

Загружаем модуль ядра:
   insmod ./ipt_osf.ko

Загружаем сигнатуры:
   ./load ./pf.os /proc/sys/net/ipv4/osf

Пример правила для принятия пакетов с Linux машин, с занесением всех остальных в лог:
   iptables -I INPUT -j ACCEPT -p tcp -m osf --genre Linux --log 0 --ttl 2

При отправке с Windows в логе появится:
   ipt_osf: Windows [2000:SP3:Windows XP Pro SP1, 2000 SP3]: 11.22.33.55:4024 -> 11.22.33.44:139

Описание опций можно найти здесь:
   http://tservice.net.ru/~s0mbre/old/?section=projects&item=osf


URL: http://tservice.net.ru/~s0mbre/blog/devel/networking/2008_06...
Обсуждается: http://www.opennet.me/tips/info/1694.shtml


Содержание

Сообщения в этом обсуждении
"Как заблокировать через iptables пакеты отправленные из определенной ОС"
Отправлено Аноним , 16-Июн-08 13:38 
Это правило будет разрешать windows тоже, это просто для логгирования всего. Чтобы запретить windows, нужно написать что-то вроде:

iptables -j DROP -i INPUT -p tcp -m osg --genre Windows --ttl 2


"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено altavista , 18-Июн-08 16:24 
>Это правило будет разрешать windows тоже, это просто для логгирования всего. Чтобы
>запретить windows, нужно написать что-то вроде:
>
>iptables -j DROP -i INPUT -p tcp -m osg --genre Windows --ttl
>2

вообще то у всех нормальный людей последнее правило всегда
iptables -I INPUT -j REJECT
или не у всех ;)


"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено pavel_simple , 18-Июн-08 16:34 
нет -- у нормальных -P DROP

"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено Аноним , 18-Июн-08 18:43 
>вообще то у всех нормальный людей последнее правило всегда
>iptables -I INPUT -j REJECT
>или не у всех ;)

Зависит от того, чего вы хотите достичь.
Если дропать только windows машины, то придется записывать все возможные разрешенные комбинации.
Если разрешать только что-то, тогда общее последнее правило drop all будет работать лучше.


"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено altavista , 19-Июн-08 08:59 
>>вообще то у всех нормальный людей последнее правило всегда
>>iptables -I INPUT -j REJECT
>>или не у всех ;)
>
>Зависит от того, чего вы хотите достичь.
>Если дропать только windows машины, то придется записывать все возможные разрешенные комбинации.
>
>Если разрешать только что-то, тогда общее последнее правило drop all будет работать
>лучше.

Согласен, ИМХО: разрешать то что нужно, а потом drop all (делал Reject, переделал на Drop) удобнее в моем случае, т.к. очень много хостов в сети, поэтому для меня это более приемлимо


"Как заблокировать через iptables пакеты отправленные из определенной ОС"
Отправлено Дохтур , 16-Июн-08 14:09 
Евгений, огромное спасибо вам за этот модуль, как и за carp ;) Жаль, что kevent помер. Надеюсь, что судьба pohmelfs не будет столь печальной.

"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено Аноним , 16-Июн-08 14:31 
>Евгений, огромное спасибо вам за этот модуль, как и за carp ;)
>Жаль, что kevent помер. Надеюсь, что судьба pohmelfs не будет столь
>печальной.

Вместо kevent теперь есть signalfd, timerfd и что-то еще, доступное через epoll, так что все счастливы :)

А вообще разработка это в первую очередь интерес к самому процессу, а уже потом к приятным моментам кроме результата, как например включение в ядро.


"Как заблокировать через iptables пакеты отправленные из определенной О"
Отправлено гость , 16-Июн-08 14:38 
Отличная работа!

"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено Аноним , 16-Июн-08 14:58 
Ей лет 5 уж как.

"Как заблокировать через iptables пакеты отправленные из определенной ОС"
Отправлено Df_Yz , 16-Июн-08 15:19 
По-моему, действие куда лучше вынести в конец:

> iptables -I INPUT -p tcp -m osf --genre Linux --log 0 --ttl 2 -j ACCEPT

Так, имхо, правила более читабельны.


"А как оно работает?"
Отправлено Аноним , 17-Июн-08 06:40 
А как оно работает?

"А как оно работает?"
Отправлено Аноним , 21-Июн-08 21:00 
>А как оно работает?

Загружается набор сигнатур различных операционных систем, и затем каждый пакет с syn битом проверяется на совпадение. Сейчас набор сигнатур включает даже раздичные наладонники и игровые приставки. Данные параметры не так просто изменить (некоторые легко, но никто не делает, некоторые вообще нельзя), поэтому проверка достаточно точна.


"Как заблокировать через iptables пакеты отправленные из определенной ОС"
Отправлено Logo , 20-Июн-08 17:46 
Хорошая штука, а по ID процессора или еще какому-то индивидуальному коду машины, можно подобное зделать?

"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено chesnok , 21-Июн-08 01:31 
>Хорошая штука, а по ID процессора или еще какому-то индивидуальному коду машины,
>можно подобное зделать?

можно еще испрользуя pom  -m string --string 'p(a|0)ntal(o|0)n' -j DROP
тем самым избавя свою систему от паразитного трафика...


"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено Аноним , 21-Июн-08 21:02 
>Хорошая штука, а по ID процессора или еще какому-то индивидуальному коду машины,
>можно подобное зделать?

Не понял, о чем идет речь?
Если что-то передается по сети, всегда можно найти или написать модуль, который будет по этому параметру фильтровать пакеты.


"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено Logo , 23-Июн-08 17:04 
>>Хорошая штука, а по ID процессора или еще какому-то индивидуальному коду машины,
>>можно подобное зделать?
>
>Не понял, о чем идет речь?
>Если что-то передается по сети, всегда можно найти или написать модуль, который
>будет по этому параметру фильтровать пакеты.

Да речь на счет мечты о полном контроле пользователей в сети :) Интересует технология для индивидуального контроля машин. Если пакеты пошли от чужой - блокировать. (В принципе на всякий клин есть другой клин). Например, появилась в сети машина, которая вызвала подозрение. Внешне трафик похож. ОС совпадает, имена, АйПи, мак, все вроде то, что и от родной. Вот и по чем тогда идентефицировать и фильтровать?



"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено pavel_simple , 23-Июн-08 17:05 
vpn


"Как заблокировать через iptables пакеты отправленные из определенной ОС"
Отправлено ruslan , 26-Фев-09 07:49 
выложите на  альтернативном сервере а то не работает ссылка
хочу устроить протест против windows в сети
чтоб мало не показалось

"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено ruslan , 26-Фев-09 09:02 
>выложите на  альтернативном сервере а то не работает ссылка
>хочу устроить протест против windows в сети
>чтоб мало не показалось

ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-...

вот там все POM



"Как заблокировать через iptables пакеты отправленные из определенной ОС"
Отправлено pavlinux , 27-Мрт-09 21:37 
# make lib
make: *** No rule to make target `ipt_osf.h', needed by `lib'.  Stop.

# make bin
gcc -DIPTABLES_VERSION=\"1.3.8\" -I/lib/modules/2.6.29/build/include -W -Wall -g nfnl_osf.c -o nfnl_osf -lnfnetlink
nfnl_osf.c:45:39: error: libnfnetlink/libnfnetlink.h: No such file or directory
nfnl_osf.c: In function 'osf_load_line':
nfnl_osf.c:276: error: 'NFNL_HEADER_LEN' undeclared (first use in this function)
nfnl_osf.c:276: error: (Each undeclared identifier is reported only once
nfnl_osf.c:276: error: for each function it appears in.)
nfnl_osf.c:379: warning: implicit declaration of function 'nfnl_fill_hdr'
nfnl_osf.c:380: warning: implicit declaration of function 'nfnl_addattr_l'
nfnl_osf.c:382: warning: implicit declaration of function 'nfnl_talk'
nfnl_osf.c:276: warning: unused variable 'buf'
nfnl_osf.c: In function 'main':
nfnl_osf.c:447: warning: implicit declaration of function 'nfnl_open'
nfnl_osf.c:447: warning: assignment makes pointer from integer without a cast
nfnl_osf.c:458: warning: implicit declaration of function 'nfnl_subsys_open'
nfnl_osf.c:458: warning: assignment makes pointer from integer without a cast
nfnl_osf.c:469: warning: implicit declaration of function 'nfnl_subsys_close'
nfnl_osf.c:470: warning: implicit declaration of function 'nfnl_close'
make: *** [bin] Error 1


"Как заблокировать через iptables пакеты отправленные из опре..."
Отправлено аноним , 28-Мрт-09 17:47 
>nfnl_osf.c:45:39: error: libnfnetlink/libnfnetlink.h: No such file or directory

чего непонятного?


"Как заблокировать через iptables пакеты отправленные из определенной ОС"
Отправлено Farmaleon , 29-Янв-17 10:09 
не работает
показатели счетчиков пакетов и байт в созданном правиле в цепочке INPUT почему-то на нуле, соответственно и логирование не происходит.