Несколько вопросов по firewall в mikrotik, необходимо наставить на путь истинный
Ситуация такая, роутер микротик ( rb493g v6.7) если сразу абстрагироваться то используются к пример 3 порта wan1, eth1, eth2 на остальных портах сидят другие клиенты, но их тут можно опустить. wan1 - местная локальная сеть за NAT (без выхода в интернет) eth1 - сервер с выходом в интернет eth2 - клиент(т.е. компьютер) - ip 192.168.10.100 правила на фильтре
0 chain=forward action=drop dst-address=94.100.181.218
1 chain=forward action=drop src-address=!192.168.10.100 out-interface=eth1
других правил фильтрации нет.
Вопрос 1: правило 0 должно блокировать все пакеты на ип 94.100.181.218, тут вроде при изначальной установке оно работало корректно, перезагрузил микротик и оказалось что оно перестало блочить его, пакеты свободно бегали, потом опять прекратили. Но потом, посчитав нужным в интерфейсах изменил с enabled на arp-proxy для интерфейсов мастер-портов. После ребута проблем не было.
Складывается вопрос, оно так и должно быть? Т.е. оно было отправлено на другом уровне, где оно не попало под правило, т.к. не было совпадения. Про arp-proxy я прочитал, просто с некоторыми прорехами в знаниях, уловить сложно некоторые моменты.
Вопрос 2:Разобрался, закинул правило в mangle выставил логирование и понял суть проходящего трафика. Опять таки от нехватки знаний и опыта, правило фильтра #2 если явно не указывать интерфейс eth1, через который будет проходить трафик, то блокируется доступ на wan1 вообще. Для клиента на eth2 с ип 192.168.10.100. (еще немного протестировал и понял что ошибся и это правило как таковое не работает)
Зачем нужно? Хотелось бы сделать правило, что по команде(применению правила) блокировался доступ у всех остальных клиентов, кроме .100 до интернета (eth1), но оставался доступ до wan1.
Тут сначало думал, что сделал заглушку, но оказывается это на первый взгляд было. Хотелось обойтись малой кровью. Т.к. по моим догадкам все было гладко.
Если ip не 192.168.10.100 и выходящий интерфейс eth1 то заблокировать.
По логике тут все корректно выходит, а на деле не так, пробовал сделать другой вариант, добавить второе отрицание если интерфейс не wan1 то блокировать, но тут тоже не помогло.
Может я не там ловить его стал или како то нюанс есть, в общем просто запутался и зашел в тупик. upd1: причина неработающего в некоторых случаях указания интрефейса вот в этом
Трафик между клиентом и сервером с выходом в инет считается с интерфейса bridge1
20:10:10 firewall,info forward: in:bridge1 out:bridge1, src-mac c8:60:00:de:f0:45,
proto TCP (ACK,PSH), 192.168.10.100:51553->95.108.194.209:5222, len 88
Вопрос 3: Это информация по "открытым соединениям"
ip firewall connection print
# PR.. SRC-ADDRESS DST-ADDRESS TCP-STATE TIMEOUT
1 tcp 192.168.10.100:44304 12.54.9.8:80 established 23h59m40s
к примеру, просто меня настраивает такая ситуация, что некоторые соединения в состоянии established висят до последнего, даже если клиент уже как пару часов был отключен, если был торрент клиент то там пару тысяч конектов может быть. С моей точки зрения это неправильно - расход ресурсов. Хоть домашний полигон для получения опыта и знаний, дома этой железки сверх достаточно, но хочется чтобы был "порядок".
С таким сумбурным, скомканным и непоследовательным повествованием Вы, к сожалению, долго будете дожидаться ответов. Mikrotik packet flow - рекомендую читать до посинения.
Если какие-либо интерфейсы в бриджах, то поведение микротика не всегда "очевидно". Читайте ссылку.
По вопросу 3 - Почитайте о том, что такое вообще TCP/IP. Тогда все встанет на свои места.
Но тут ситуация такая, 1 из сторон уже нету как таковой, соединение висит до таймаута. вот это нормально? что остаются якобы открытые сокеты. которые по дефолту висят 24часа.
Конечно соединение висит до таймаута, это же суть протокола. Есть вот такая штука: /ip firewall connection tracking. Она как раз и занимается отслеживанием открытых соединений. Можно ее отключить полностью, либо уменьшить параметр tcp-established-timeout, который по умолчанию равен 1d, т.е. те самые сутки. Однако имейте ввиду, что при полном отключении многие разделы firewall вообще перестанут работать: mangle, например и многие правила фильтра.
с правилами своими я разобрался, согласен что немного неправильно повествовал проблему.
отработав по манглу с логированием пакетов попадающих под правила.
и что все eth1-9 идут как bridge1, в фаерволе.
первое правило разрешает входящий трафик с wan1
второе блокирует всех кто не .100 ip и посылает пакеты не на wan1
1 chain=forward action=accept in-interface=wan1
2 chain=forward action=drop src-address=!192.168.10.100 out-interface=!wan1
Два правила, одно из которых с отрицанием - излишни!
/ip firewall filter add chain=forward in-inteface=wan1 out-interface=eth1 action=drop
решает поставленную задачу полностью. Включив это правило, вы будете блокировать все пакеты, пришедшие из интерфейса локальной сети и направляющиеся в интернет. Проверять любые другие условия не нужно, если я правильно понял суть проблемы.