❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Problém se značením SMB protokolu

Místo, kde žádná otázka není hloupá.
Radek.Kovacik
Příspěvky: 162
Registrován: 12 years ago

Problém se značením SMB protokolu

Příspěvekod Radek.Kovacik » 8 years ago

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é?
0 x

Uživatelský avatar
zdenek.svarc
Administrator
Příspěvky: 1635
Registrován: 20 years ago
antispam: Ano

Příspěvekod zdenek.svarc » 8 years ago

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í.
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 8 years ago

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.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

Radek.Kovacik
Příspěvky: 162
Registrován: 12 years ago

Příspěvekod Radek.Kovacik » 8 years ago

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?
0 x

Uživatelský avatar
zdenek.svarc
Administrator
Příspěvky: 1635
Registrován: 20 years ago
antispam: Ano

Příspěvekod zdenek.svarc » 8 years ago

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.
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 8 years ago

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.
1 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

Radek.Kovacik
Příspěvky: 162
Registrován: 12 years ago

Příspěvekod Radek.Kovacik » 8 years ago

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.
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 8 years ago

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 ...
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

Radek.Kovacik
Příspěvky: 162
Registrován: 12 years ago

Příspěvekod Radek.Kovacik » 8 years ago

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.
0 x