Stránka 1 z 1
Problém se značením SMB protokolu
Napsal: 07 Mar 2017 16:35
od Radek.Kovacik
Mám následující pravidla v mangle pro podchycení a označení datového provozu přes SMB protokol:
Kód: Vybrat vše
add chain=postrouting action=mark-connection new-connection-mark=SMB passthrough=no connection-state=new protocol=tcp dst-port=137-139,445,3020 log=no log-prefix=""
add chain=postrouting action=mark-connection new-connection-mark=SMB passthrough=no connection-state=new protocol=udp dst-port=137-139,445,3020 log=no log-prefix=""
Problém je v tom, že když se objeví nějaký provoz na portu 137, tak toto funguje správně a označí se to, ale když se objeví něco na portu 138, tak ta pravidla nereagují a tím pádem to zůstane neoznačené. Netuším, co je tam špatně. Čím toto chování může být způsobené?
Re: Problém se značením SMB protokolu
Napsal: 07 Mar 2017 18:13
od zdenek.svarc
Nevím z hlavy, v jakém pořadí funguje navazování smb komunikace, ale tipuju, že problém by mohl být v tom, že na portu 138 už probíhá navázaná komunikace, takže podmínka connection-state=new nevyhoví.
Re: Problém se značením SMB protokolu
Napsal: 07 Mar 2017 18:37
od ludvik
Samba nemá helper, jako třeba ftp. Takže tam není nic RELATED v obdobném smyslu.
Spíš se ta konexe stane NEW v jiném chainu a v postroutingu je už ESTABLISHED.
Re: Problém se značením SMB protokolu
Napsal: 08 Mar 2017 11:15
od Radek.Kovacik
Takže co bych měl zkusit? Dát tam kromě connection-state=new ještě connection-state=established (to by pak asi bylo téměř totéž, jako když bych tu podmínku connection-state=new odstranil) nebo to raději přesunout do preroutingu?
Ještě mám dotaz na upřesnění toho, jak se vlastně ve skutečnosti chová to nastavení passthrough=no. Dle wiki by to mělo znamenat, že další podmínky v pořadí se nebudou testovat, ale platí to pro všechny procházející pakety nebo pouze pro ty, které vyhoví tomu danému pravidlu?
A pak ještě jedna věc, když toto budu mít ve vlastním chainu, nebudou se testovat další pravidla pouze v tomto chainu nebo ani v tom, ze kterého byl proveden odskok?
Re: Problém se značením SMB protokolu
Napsal: 08 Mar 2017 11:26
od zdenek.svarc
Jde o to, že v původním příspěvku není zřejmé, zda-li je třeba zachytávat veškerý SMB provoz nebo jen některý (například navazovaný z vnitřní sítě do vnější). Pokud veškerý, tak není třeba connection-state do pravidla vůbec zahrnovat.
Re: Problém se značením SMB protokolu
Napsal: 08 Mar 2017 11:40
od ludvik
Když nějaký paket nevyhoví pravidlu, tak se přeci nemůže zapojit do práce něco, co v tom pravidle máš.
Radek.Kovacik píše:Ještě mám dotaz na upřesnění toho, jak se vlastně ve skutečnosti chová to nastavení passthrough=no. Dle wiki by to mělo znamenat, že další podmínky v pořadí se nebudou testovat, ale platí to pro všechny procházející pakety nebo pouze pro ty, které vyhoví tomu danému pravidlu?
A pak ještě jedna věc, když toto budu mít ve vlastním chainu, nebudou se testovat další pravidla pouze v tomto chainu nebo ani v tom, ze kterého byl proveden odskok?
Podívej se na obrázky Packet Flow. Možná ti to pomůže.
Postrouting je chain do kterého padají pakety při odchodu z routeru. Je vlastně poslední. A když ti konexi vyvolá příchozí paket, tak ty ho tímto nezachytíš a odpověď na tento paket už prostě není NEW.
Čili je určitě lepší místo pro značkování. Je-li to router, tak třeba forward.
Re: Problém se značením SMB protokolu
Napsal: 08 Mar 2017 19:10
od Radek.Kovacik
zdenek.svarc píše:Jde o to, že v původním příspěvku není zřejmé, zda-li je třeba zachytávat veškerý SMB provoz nebo jen některý...
Ano, chtěl jsem zachytávat veškerý provoz - jedná se o prioritizaci provozu. Tu podmínku conection-state=new jsem tam měl vlastně z důvodu optimalizace - protože se jedná o značku spojení, předpokládal jsem, že je zbytečné, aby přes to chodili všechny pakety.
ludvik:Ano, je to klasický router. Díky za vysvětlení. Zase budu chytřejší...
Na ten obrázek ohledně toku dat routerem hledím každou chvíli (když něco nastavuji), ale to chování passthrough ve vlastních chainech jsem z toho nepochopil. Vztahuje se to pouze na ten daný chain, ve kterém se to vyskytuje nebo i na ten předchozí? Např. když budu mít v preroutingu odskok do vlastního chainu a tam pasthrough=no a za tím odskokem (opět v preroutingu) budou další pravidla, tak ten daný paket s nimi bude porovnáván nebo ne? Zkráceně, mě zajímá rozsah působení toho pravidla.
Re: Problém se značením SMB protokolu
Napsal: 08 Mar 2017 19:19
od ludvik
Rozsah passthrough je tabulka. Ale packet flow jsem doporučoval kvůli tomu druhmu problému.
Si to vyzkoušej ...
A jestli chceš priorizovat sambu, tak ti stačí port 445. Ty ostatní na routerech dokonce blokuji ...
Re: Problém se značením SMB protokolu
Napsal: 17 Mar 2017 20:20
od Radek.Kovacik
Tak jsem si schválně vyzkoušel, jak je to s tím nastavením passthrough=no a zjistil jsem, že rozsah působení tohoto příkazu je aktuální systémový chain. Nevím přesně, co nazýváš tabulkou, ale pokud tím myslíš kompletně celou tabulku mangle, tak to tak není (naštěstí). Já jsem skrytě předpokládal, že by to tak mělo být a bylo by logické, když by to mělo působnost právě v rámci každého chainu, ale s tou tabulkou jsi mě trohu rozhodil.