The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"DIR-300 IPTABLES фильтрация пакетов по IP и/или порту"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Linux iptables, ipchains)
Изначальное сообщение [ Отслеживать ]

"DIR-300 IPTABLES фильтрация пакетов по IP и/или порту"  +/
Сообщение от shurc (ok), 01-Янв-20, 15:50 
Всем доброго времени суток!

Исходные данные:
- Роутер DIR300 с установленной mini-linux dd-wrt на борту, в качестве брандмауреа используются iptables
- роутер подключен к интернет и имеет постоянный внешний IP 185.xx.xx.204 через WAN порт (интерфейс в таблицах: vlan2)
- на роутере настроен проброс портов на локальный адрес [...tcp dpt:44789 to:192.168.0.10:44789]
- к роутеру подключен DVR с камерами наблюдения (через ethernet-кабель), DVR имеет постоянный внутрисетевой IP: 192.168.0.10, доступ к камерам осуществляется через порт 44789
- вот на этом роутере я хочу фильтровать пакеты, которые поступают на порт 44789 с внешней сети

Задачи:
1. записать в журнал когда и с какого IP были попытки доступа на соответствующий порт 44789
2. чтобы не засорять журнла, нужно записывать не более 5 значений за 5 минут
3. отфильтровать пакеты. Т.е. с некоторых IP - разрешить доступ на этот порт, а с некоторых - запретить, а остальные просто наблюдать и записывать в журнал

Проблема:
1. не могу записать в журнал данные о входящих пакетах на соответствующий порт, т.к. не вижу их в таблице FILTER
2. не могу отфильтровать пакеты по IP адресу, т.к. не вижу их в таблице FILTER

ПРИМЕЧАНИЯ:
- все работает отлично - доступ к камерам имеется, захожу с любого внешнего IP и могу достучаться к DVR на порт 44789 без проблем, нареканий нет
- не могу понять на каком этапе и в какой таблице фильтруются пакеты, идущие на этот порт 44789
- в таблице FILTER->FORWARD есть какие-то пакеты (видно на скрине), но это не совсем то, т.к., когда я подключаюсь к камерам наблюдения, то трафик на самом деле 0,5Мб/сек, а в журнале FORWARD записалось каких-то 300 байт и на этом все
- но, включая системный журнал на своем роутере на вкладке Security->Firewall->Log Management
я спокойно вижу как эти все пакеты проходят и идут по назначению, а вот как их мне перехватить (в каком месте, какой командой) я не знаю

Доп. информация
- прилагаю текстовый вариант журнала (Security->Firewall->Log Management)
- прилагаю скрин настроек фаервола
- прилагаю скрин записи с iptables -t nat
- прилагаю скрин записи с iptables -t filter
https://ibb.co/pfPQgL3
https://ibb.co/vHRmt10
https://ibb.co/k6CCYj7

Dec 31 19:43:22 DD-WRT kern.warn kernel: ACCEPT IN=vlan2 OUT=br0 MAC=00:00:11:22:33:44:55:66:77:88:99:00:08:00:45:00:00:3c SRC=46.211.104.95 DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=55 ID=46808 DF PROTO=TCP SPT=26573 DPT=44789 SEQ=325854005 ACK=0 WINDOW=12330 RES
Dec 31 19:44:35 DD-WRT kern.warn kernel: ACCEPT IN=vlan2 OUT=br0 MAC=00:00:11:22:33:44:55:66:77:88:99:00:08:00:45:00:00:3c SRC=46.211.104.95 DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=55 ID=14803 DF PROTO=TCP SPT=26608 DPT=44789 SEQ=2304214882 ACK=0 WINDOW=12330 RE
Dec 31 19:44:37 DD-WRT kern.warn kernel: ACCEPT IN=vlan2 OUT=br0 MAC=00:00:11:22:33:44:55:66:77:88:99:00:08:00:45:00:00:3c SRC=46.211.104.95 DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=56 ID=5039 DF PROTO=TCP SPT=26392 DPT=44789 SEQ=2309467354 ACK=0 WINDOW=12330 RES
Dec 31 19:44:37 DD-WRT kern.warn kernel: ACCEPT IN=vlan2 OUT=br0 MAC=00:00:11:22:33:44:55:66:77:88:99:00:08:00:45:00:00:3c SRC=46.211.104.95 DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=55 ID=28136 DF PROTO=TCP SPT=26540 DPT=44789 SEQ=113758866 ACK=0 WINDOW=12330 RES
Dec 31 19:44:37 DD-WRT kern.warn kernel: ACCEPT IN=vlan2 OUT=br0 MAC=00:00:11:22:33:44:55:66:77:88:99:00:08:00:45:00:00:3c SRC=46.211.104.95 DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=56 ID=38542 DF PROTO=TCP SPT=26532 DPT=44789 SEQ=3616876810 ACK=0 WINDOW=12330 RE
Dec 31 19:44:37 DD-WRT kern.warn kernel: ACCEPT IN=vlan2 OUT=br0 MAC=00:00:11:22:33:44:55:66:77:88:99:00:08:00:45:00:00:3c SRC=46.211.104.95 DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=55 ID=35479 DF PROTO=TCP SPT=26584 DPT=44789 SEQ=3456775451 ACK=0 WINDOW=12330 RE

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "DIR-300 IPTABLES фильтрация пакетов по IP и/или порту"  +/
Сообщение от Аноним (1), 01-Янв-20, 20:40 
> - в таблице FILTER->FORWARD есть какие-то пакеты (видно на скрине), но это не совсем то, т.к., когда я подключаюсь к камерам наблюдения, то трафик на самом деле 0,5Мб/сек, а в журнале FORWARD записалось каких-то 300 байт и на этом все

Потому что остальные пакеты попали под -m state --state ESTABLISHED,RELATED и были ACCEPT'нуты ранее, а остались только запросы на установку соединения (TCP SYN). ACCEPT означает прекращение обработки пакета в данной цепочке и передачу его далее.

> - но, включая системный журнал на своем роутере на вкладке Security->Firewall->Log Management

я спокойно вижу как эти все пакеты проходят и идут по назначению, а вот как их мне перехватить (в каком месте, какой командой) я не знаю
Если там логируются вообще все пакеты, рекомендую это отключить, а логировать только нужное (нарисовать правило iptables с -j LOG).

Для записи — logread -f и awk с обработкой вывода в помощь. Не рекомендую организовывать периодическую запись на встроенную флешку роутера, она от этого быстро сдохнет.

Ответить | Правка | Наверх | Cообщить модератору

2. "DIR-300 IPTABLES фильтрация пакетов по IP и/или порту"  +/
Сообщение от shurc (ok), 04-Янв-20, 00:06 
Спасибо большое!
Учел рекомендации. Вставил правила перед правилом с "-state ESTABLISHED,RELATED" и все считается и логируется!

> Для записи — logread -f и awk с обработкой вывода в помощь.

Можете написать хотя бы один пример, как с помощью awk мне вывести команду в отдельный файл?

p.s.
Пока что решил собирать лог удаленно https://papertrailapp.com/, а то в роутере флешки никакой нет

Ну и еще можно ln -s /tmp/var/log/messages /tmp/www/log.html
и потом конекчусь к модему каждые N минут с удаленного сервака и забираю лог на текущий момент

Ответить | Правка | Наверх | Cообщить модератору

3. "DIR-300 IPTABLES фильтрация пакетов по IP и/или порту"  +/
Сообщение от Аноним (1), 04-Янв-20, 08:22 
> Вставил правила перед правилом с "-state ESTABLISHED,RELATED" и все считается и логируется!

А соответствующие ему пакеты точно представляют интерес? Чтобы выяснить, кто и когда заходил на TCP-сервер, достаточно SYN-пакетов. Остальные нужны только если надо знать сколько он висел и сколько данных передал.

> Можете написать хотя бы один пример, как с помощью awk мне вывести
> команду в отдельный файл?

Команду в файл лучше выводить не awk'ом, а с помощью шелла:
exec команда > файл
Шелл при этом свяжет дескриптор вывода с файлом и завершится, передав управление команде. Чтобы шелл не завершался, убрать "exec". Awk понадобится для парсинга вывода по полям и его обработки программой (на нём можно реализовать алгоритм лимитирования вывода, как — не подскажу).

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру