Stránka 1 z 1

vypnout logování konkrétních domén v dnsmasq

Odeslat příspěvekNapsal: 28. 8. 2024 13:41
od Da Gony
V dnsmasq bych potřeboval, aby nelogoval dotazy na určité domény. Nejde to řešit triviálně umlčením, protože pochází z víc počítačů v síti a nebo konkrétní počítač má 90% dotazů(unikátních) v pořádku

(běží s parametre --log-queries)
Protože jinak mám zaflákany log řádkami typu

query A from 10.1.1.4 *****.microsoft.com
config *****.microsoft.com 0.0.0.0
reply 10.,,,, ***** is 0.0.0.0
kažých x sekund

zkoušel jsem změnit i odpověď 0.0.0.0 za NXDOMAIN. a ne vždy to pomáhá (ono těch domén je víc jako odposlech.tcl.com nebo cmoud.huacdn.cn) - na každou zabírá něco jiného, ale i tak půlka je takových, na kterou nic nezabírá a log je z 90% plný tohoto svinsta. Bohužel ne všechna zařízení jsou "převychovatelná". Slušná zařízení se ptají jen na příčetné domény.

Jde to nějak řešit v rámci instance jednoho dnsmasq démona?

Re: vypnout logování konkrétních domén v dnsmasq

Odeslat příspěvekNapsal: 28. 8. 2024 13:54
od Wikan
AI:

V `dnsmasq` bohužel neexistuje přímo vestavěná možnost filtrovat logování dotazů na konkrétní domény. Nicméně existují způsoby, jak toho dosáhnout pomocí úprav konfigurace nebo přesměrování logu do externího skriptu, který tyto nežádoucí řádky odstraní před jejich uložením do souboru.

Možná řešení

1. Filtrování logu pomocí `syslog` nebo externího skriptu:
Můžete přesměrovat logování `dnsmasq` do souboru a následně použít skript (např. pomocí `grep` nebo `awk`), který z logu odstraňuje řádky obsahující nežádoucí domény. Například můžete upravit `/etc/dnsmasq.conf` nebo parametr spuštění `dnsmasq` tak, aby logoval do specifického souboru:
Kód: Vybrat vše
dnsmasq --log-queries --log-facility=/var/log/dnsmasq.log

Poté můžete použít skript jako tento ke zpracování logu:
Kód: Vybrat vše
tail -f /var/log/dnsmasq.log | grep -vE 'microsoft.com|odposlech.tcl.com|cmoud.huacdn.cn' > /var/log/dnsmasq_filtered.log

Tento skript vyfiltruje záznamy, které obsahují nežádoucí domény, a uloží výsledek do jiného logu.

2. Použití `rsyslog` pro filtrování:
Pokud `dnsmasq` loguje přes `syslog`, můžete upravit `/etc/rsyslog.conf` nebo `/etc/rsyslog.d/` a vytvořit pravidlo pro filtrování. Například:
Kód: Vybrat vše
if $msg contains "microsoft.com" then stop

Toto pravidlo zastaví logování zpráv obsahujících doménu `microsoft.com`. Další nežádoucí domény můžete přidat stejným způsobem.

3. Modifikace odpovědi pomocí `dnsmasq.conf`:
Už jste zmiňoval, že jste zkoušel odpovědi změnit na `NXDOMAIN`. Možná by stálo za to se podívat na specifická nastavení, jako například použití `server=/doména/#` k filtrování nebo přesměrování dotazů na lokální adresu, což by mohlo snížit frekvenci dotazů:
Kód: Vybrat vše
address=/odposlech.tcl.com/#
address=/cmoud.huacdn.cn/#

Zkuste různé varianty, abyste zjistil, co funguje nejlépe na specifické dotazy.

4. Vyřazení dotazů pomocí `ipset`:
Pokročilejší variantou je nasazení `ipset` pro blokování dotazů na určité domény, což může částečně snížit počet logovaných řádků. Např.:
Kód: Vybrat vše
ipset create blocklist hash:ip
iptables -I INPUT -m set --match-set blocklist src -j DROP

Poté přidáte IP adresy nebo domény do této sady.

Závěr

Nejelegantnějším řešením je použití filtrace logů pomocí `rsyslog` nebo skriptu, protože vám to poskytuje nejvíce flexibility při správě logů a nevyžaduje to zásahy do samotné funkce `dnsmasq`.

Re: vypnout logování konkrétních domén v dnsmasq

Odeslat příspěvekNapsal: 28. 8. 2024 14:27
od Da Gony
Odstraněna duplicita

Re: vypnout logování konkrétních domén v dnsmasq

Odeslat příspěvekNapsal: 28. 8. 2024 14:30
od Da Gony
Co to zase je za halucinace? Já chci, aby ty logové záznamy nevznikaly nikde. k čemu je mi rada 4 iptables, když dns dotazy jdou od fixních ip adres zařízení v síti na fixní adresy dns resolveru. Ledaže by ipbtables dokázalo rozlišit hodnotu query (nějakou nepřehlednou prasečinou skenování bajtů na offesetu)

A nefunkčnost rady 3 jsem popsal ,že mi je to k ničemu, mohu zkoušet jak chci, ale jedno vím jistě - že pořád mám smetí v journalu. Takže to je fajn, že AI, píše, že jsem zmiňoval, ale kašle na to. A její rada Zjistěte co funguje nejlépe je taky naprd- nefunguje z sekce 3 Modifikace nic. (nebo spíš tak, že jak opice u každého dns jména bych musel sledovat co na něj zabírá, aby se nepropisovalo do logu)

Neloguju do souboru, loguju systémového journalu.

Inteligentní řešení by bylo to řešit přímo tam, kde mám konfiguraci, takže v případě blokovaných domén to rovnou přilepím k existujícímu záznamu, ale to pitommou AI asi nenapadne. (že by to neexistovalo?)

address=/watson.microsoft.com/0.0.0.0,no-log
address=/vporadku.domena/,no-log (koliduje s NXDOMAIN )

To jsem nenapsal, ale jsou 2 skupiny domén, které chci vyřaditz logu :
1. - ty blokované (nebo s manuální IP)
2. - ty co blokované nejsou


A nebo tam dát aspoň rate limit a nebo ideálně - pozdržení logu, že to daný řádek (bohužel trojici query-cached-reply) zapamatuje v bufferu po nějakou dobu a pak to do logu vyplivne s prefixem 999x repetions: ...


... ale to chci asi moc