GNU/Linux >> Znalost Linux >  >> Linux

Soubor velké zóny pro Bind9:Blokování reklam?

Úspěšně jsem používal malý (20 000 záznamů) soubor zóny s bind9 server, ale dnes můj poskytovatel dat odeslal aktualizaci, která způsobila, že soubor zóny se zvětšil na 300 000+ záznamů (30 Mb+).

Problém je v tom, že server se nespustí s tímto souborem zóny. named-checkconf nehlásí žádné chyby. Nejsou k dispozici žádné zprávy protokolu (nebo jsem je nemohl správně zaznamenat).

Chtěl bych vědět, jestli bind9 je schopen zpracovávat velké konfigurační soubory a pokud ano, jak to mohu opravit. Pokud ne, rád bych věděl, zda existují nějaká řešení tohoto problému. Možná je možné ukládat záznamy do databáze?

Soubor zóny, který se pokouším použít, lze stáhnout zde.

Aktualizace:

service bind9 status ukázal některé informace, které mohou být relevantní:

adjusted limit on open files from 4096 to 1048576
found 1 CPU, using 1 worker thread
using 1 UDP listener per interface
using up to 4096 sockets
loading configuration from '/etc/bind/named.conf'

Nejsem si úplně jistý, jak interpretovat nebo používat tyto informace... Máte nějaké nápady?
Také jsem nebyl schopen najít, kde bind9 logy jsou umístěny:/var/log/ nemá žádné bind9 záznamy. Může mi někdo říct, kde se na Debianu Jessie nacházejí?

Přijatá odpověď:

Viděl jsem váš soubor zóny:zdá se, že je to seznam více než 350 000 domén, kde je definován jako hlavní server místní BIND. Domény mají následující formát:

zone "xxxx.com" { type master; notify no; file "null.zone.file"; };

Pokud jde o požadavky na paměť, řekl bych jako orientační údaj, že byste k tomu mohli potřebovat přibližně 40 MB až 80 MB volné paměti RAM, protože tabulky domén jsou načteny v paměti. (i když bych se cítil pohodlněji s alespoň 200 MB)

Pokud server není vážně omezen v RAM, zdá se to trochu nepravděpodobné, ale může se to stát.

Také jsem si všiml, že v názvech několika domén jsou podtržítka („_“). Podtržítka v DNS RR poruší několik RFC (RFC 952 a RFC 1123) a do sekce BIND options musíte přidat direktivu:

check-names master ignore;

Co se týče formátu a metody používané pro blacklisting domén. Od verze 9.8 podporuje BIND to, co je známé jako zóny zásad odezvy (RPZ), které byly vytvořeny speciálně pro domény na černé listině.

Několik (komerčních) poskytovatelů černé listiny se v současnosti řídí tímto formátem. (Sám používám RPZ v práci i doma).

Používání RPZ by mělo dávat větší smysl a také znamená lehčí zátěž, a proto bych vám v případě, že službu platíte, doporučoval kontaktovat vašeho dodavatele, abyste věděli, jak ji používat. Formát RPZ také do určité míry podporuje zástupné znaky, což by znamenalo mnohem menší soubor černé listiny.

Alternativou je také zpracovat soubor pomocí skriptu, který jej změní na formát RPZ.

Související:Co způsobuje odesílání různých signálů?

Nechám zde relevantní odkazy o RPZ a oficiálních poskytovatelích RPZ:

https://dnsrpz.info

a návod, jak nakonfigurovat RPZ:

http://www.zytrax.com/books/dns/ch9/rpz.html

Jak jste si možná všimli, s aktuální konfigurací budete mít také spoustu otevřených souborů; proto doporučuji znovu použít RPZ.

Pro práci s více otevřenými soubory na velkých e-mailových serverech, serverech DNS nebo HTTP je často nutné zvýšit limity.

Situace není tak špatná jako u starších jader, ale přesto doporučuji zvýšit limity.

Upravte /etc/sysctl.conf a upravit/přidat direktivu fs.file-max pro globální limit otevřených souborů:

fs.file-max=500000

Chcete-li použít nový limit souborů bez restartování, musíte spustit:

sudo sysctl -p

A pro limity souborů na proces upravte, /etc/security/limits.conf :

* - nofile 400000

Chcete-li použít omezení souborů na proces, buď se odhlaste a přihlaste se, nebo spusťte:

sudo ulimit -n 400000

Po zvýšení těchto dvou limitů musíte restartovat BIND:

sudo service bind9 restart

Chcete-li převést soubor do formátu RPZ, spusťte:

cat bind | tr -d "  | awk ' { print $2" CNAME ." } ' > /etc/bind/rpz.db

Skript převede položky do následujícího formátu:

zeus.developershed.com CNAME .
zeusclicks.com CNAME .
zintext.com CNAME .

Přidejte do části možností s názvem:

response-policy { zone "rpz"; };

Vytvořte prohlášení zóny RPZ:

zone "rpz" {
  type master;
  file "/etc/bind/rpz.db";
};

Přidat na začátek /etc/bind/rpz.db soubor:

$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL

@       IN      NS      your_dns_fqdn.

Zrušte konfiguraci svého souboru DNS a restartujte server BIND. Soubor RPZ lze evidentně optimalizovat pomocí zástupných znaků a výrazně zkrátit, ale i bez této optimalizace nyní nebudete potřebovat tolik otevřených souborů.

Pokud jde o prohlížení protokolů BIND/DNS, jsou spolu se systémovými protokoly v /var/log/syslog se značkou named . Můžete použít příkaz:

sudo grep named /var/log/syslog

Linux
  1. Příkaz wc pro Linux vysvětlený pro začátečníky (6 příkladů)

  2. Shell skript pro přesun nejstarších souborů?

  3. K čemu jsou Inody dobré?

  1. K čemu slouží soubor .la libtool?

  2. Počítejte řádky ve velkých souborech

  3. Použití nc pro přenos velkých souborů

  1. 10 praktických aliasů Bash pro Linux

  2. Existuje jedna vložka ke kontrole souboru?

  3. K čemu je Linux test – příkazový test?