Ma reggel meghalt a PowerDNS névszerverem. A jelenség: nem old fel semmilyen nevet. A másodlagos névszerver - az is pdns - szintén.
A naplóban semmilyen érdemi információ nincs:
systemd[1]: pdns.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: pdns.service: Unit entered failed state.
systemd[1]: pdns.service: Failed with result 'exit-code'.
Gyakorlatilag ennyi, és semmi más hibaüzenet. Próbálja magát újraindítani, de mindig csak erre jut.
Mint kiderült, "etikus hackerek" teszteltek egy domaint, aminek csak a névszervere van a gépen. (Többet egyelőre nem tudok a tesztelés mikéntjéről.) Leállították a tesztet, azóta békesség, minden megy, mint békeidőben.
A legfőbb kérdésem: hogyan tudnám elkerülni, hogy a PowerDNS-t ilyen könnyen le tudják ölni? 8 magból maximum 4 volt terhelés alatt, disk és RAM is volt bőven, mégis kifeküdt.
Másodszor az is zavar, hogy gyakorlatilag semmilyen értelmes infót nem tudtam kinyerni a PowerDNS logjaiból, sem a webes monitor felületéből. Ha bárkinek van értelmes ötlete, hogy mit kellene/kellett volna használnom hogy kritikus esetben több információt láthassak a DNS folyamatról, azt is megköszönném.
- 611 megtekintés
Hozzászólások
frissítve van a powerdns? https://doc.powerdns.com/authoritative/security-advisories/index.html ha én tesztelném, innen az elsőt tuti kipróbálnám :D
- A hozzászóláshoz be kell jelentkezni
^ Ez pont egy kéréssel kifekteti :).
Amúgy dnsdist-et elé és logold ha szükséges.
- A hozzászóláshoz be kell jelentkezni
Köszönöm, megnéztem. Nem ismertem a dnsdist-et.
- A hozzászóláshoz be kell jelentkezni
dnsdist amúgy mire való? Tudom, gugli, de 1-2 mondatban leírnád milyen esetekben ezt érdemes használni (real world use case)?
Közben láttam alul írtad: ez vmi redukált tudású cache-only frontend dns a valódi autoritativ backend dns szerverek elé golyófogónak?
- A hozzászóláshoz be kell jelentkezni
itt a sales bemutatkozó szöveg:
dnsdist is a highly DNS-, DoS- and abuse-aware loadbalancer. Its goal in life is to route traffic to the best server, delivering top performance to legitimate users while shunting or blocking abusive traffic.
dnsdist is dynamic, its configuration language is Lua and it can be changed at runtime, and its statistics can be queried from a console-like interface or an HTTP API.
Ha egyszer powerdns-t használsz amúgyis, mivel ők fejleszitk valószínűleg nem a kompatibilitás lesz a legnagyobb problémád :).
Akkor futottam bele először mikor kivették az authoritive serverből a recursort..
- A hozzászóláshoz be kell jelentkezni
Köszönet!
- A hozzászóláshoz be kell jelentkezni
A legfrissebb, amit az apt ad.
- A hozzászóláshoz be kell jelentkezni
Konkrétan ez esetleg?
https://doc.powerdns.com/authoritative/security-advisories/powerdns-adv…
- A hozzászóláshoz be kell jelentkezni
PowerDNS Authoritative Server 4.0.3
- A hozzászóláshoz be kell jelentkezni
az EOL
https://doc.powerdns.com/authoritative/appendices/EOL.html
nem írtad milyen disztró, de nekem ubi + ispconfiggal van pdns 4.4-em gond nélkül megy (pdns repoból)
- A hozzászóláshoz be kell jelentkezni
Debian 9. De jól gondolom, hogy a distrók szokták patchelni az ilyen sérülékenységeket akkor is, ha alacsonyabb a náluk elérhető verzió? Ez a legfrissebb csomag volt a tárolóban. (apt upgrade megvolt.)
- A hozzászóláshoz be kell jelentkezni
alapvetően így kell(ene) lennie, de első körben ki kell deríteni mi a gond a mostanival(sérülékeny és crash-el?)
tesztelni mondjuk az újabb verziót...
- A hozzászóláshoz be kell jelentkezni
Most az zajlik, hogy megpróbálom elérni az "etikus hacker"-t, és megtudni, hogy konkrétan mivel is "tesztelt".
Amúgy az rém fura számomra, hogy hogyan ölhet le bármi úgy egy DNS szervert, hogy a másodlagos DNS szerver is lehaljon, és a cache névszerverekből is eltűnjenek az adatok. Most arra tippelek, hogy nem csak leölte a névszervert, hanem a névszerver azt a választ adta vissza, egy valid választ adott vissza, mégpedig azt, hogy nincs meg az adott domain, s ez az információ terjedt tovább a másodlagos névszerverbe, valamint a cache szerverekbe.
Azért eddig azt hittem, hogy a DNS struktúra elég hibatűrő. Ilyen jelenséggel eddig nem találkoztam még.
- A hozzászóláshoz be kell jelentkezni
"Amúgy az rém fura számomra, hogy hogyan ölhet le bármi úgy egy DNS szervert, hogy a másodlagos DNS szerver is lehaljon, és a cache névszerverekből is eltűnjenek az adatok"
Mi ezen a meglepő? Ahogy írtad, mind a két névszerver PowerDNS, ugyanazzal a sebezhetőséggel mind a kettő ledönthető, a cache szerverekből, meg a TTL lejárta után eltűnnek a rekordok...
- A hozzászóláshoz be kell jelentkezni
Amúgy azt könnyű kideríteni, h. milyen dns szerver fut? Egy dig -v szerű query kiadta olvashatóan a szerver részletes verziószámát?
- A hozzászóláshoz be kell jelentkezni
Nem úgy van, hogy TTL idő lejárta után kell újra lekérdezni a rekordot, de ha nem kap választ, akkor Expire ideig meg kell őrizni az utoljára megkapott adatot?
- A hozzászóláshoz be kell jelentkezni
amit még megtehetsz, meg kellene nézni, hogy coredump jön e létre, illetve beállítani hogy létre tudjon jönni, abból azért lehet látni, hol crashel a bináris
- A hozzászóláshoz be kell jelentkezni
en az elotet query logot kapcsolnam be elsonek :). trivialisan dnsdist-el
- A hozzászóláshoz be kell jelentkezni
Ez már oldoldstable, LTS állapotban. Viszont itt (LTS/Using - Debian Wiki) azt írják, hogy az LTS-ben nincs minden csomaghoz security update. Érdemes megnézni, hogy a powerdns-hez van-e.
- A hozzászóláshoz be kell jelentkezni
pontosan milyen verziód van?
- A hozzászóláshoz be kell jelentkezni
PDNS configban quiet = no, és többet logol.
- A hozzászóláshoz be kell jelentkezni
A loglevel-t 9-re felnyomtam, az nem segített. A jelenlegi configban nincs quiet, de utánaolvasok, köszönöm.
- A hozzászóláshoz be kell jelentkezni
Javaslat:
- A hozzászóláshoz be kell jelentkezni
Köszönöm!
- A hozzászóláshoz be kell jelentkezni
Hogyan folytatódott a történet? :)
- A hozzászóláshoz be kell jelentkezni
Egyelőre ott tartunk, hogy az "etikus hacker" szerint ez csak "egy vizsgálati elem nem várt velejárója" volt, és a "használt és bekonfigurált tool beragadt egy taskba". A vizsgálat pedig "brute-force jellegű feltárás volt", tehát nem sérülékenységet használt ki.
A naplókban sokszor a következő sor szerepelt a hibaüzenetek előtt: "5019 questions waiting for database attention. Limit is 5000, respawning" (Az első szám persze más és más) Fura mód ez rendes futás alatt is megjelenő üzenet, azaz máskor is előfordul, persze sokkal ritkábban. Van, hogy pár nap telik el két ilyen bejegyzés között, de van hogy akár hetek is.
Egyelőre még nem tudom, ezt a limitet hogyan lehetne emelni, de mintha ennek valami köze lenne a lehaláshoz.
Kiderült még az is, hogy a névszerver domain-jének a TTL ideje alacsony volt egy módosítási folyamat miatt. Gyanítom, ez okozhatta azt, hogy a cache névszerverek hamar eldobták a névszerver domainnevét.
Amit azonban még mindig nem értek, hogy a kiszolgált domainek TTL ideje a RIPE ajánlata szerinti 3600 volt, mégis azonnal kiestek a cache névszerverekből azok is. Amikor pedig a túlterhelés közben ideiglenesen vissza tudtuk állítani a névkiszolgálásukat, majd újra kiestek, megint azonnal kikerültek a cache névszerverekből, nem voltak ott egy órán keresztül elérhetőek, ahogy szerintem kellett volna lenniük.
- A hozzászóláshoz be kell jelentkezni
"5019 questions waiting for database attention. Limit is 5000, respawning"
Az authoritive ns(ek) elé (a sima kliensek irányából) mindenképp tennék cache-t, ne legyen triviális nekik szolgáltatás megtagadást elérniük..
**
Nem tudom mennyire bonyolult a felállás nálatok, de a helyedben mindenképp beraknék dnsdist-et a pdns példányok elé, több nagyon hasznos funkciót is el tud látni: loadbalance, logolás, packet cache és nem utolsó sorban
https://dnsdist.org/rules-actions.html#MaxQPSIPRule
..és még sok mást is..
Ahhoz képest "alig kér enni"..
:)
- A hozzászóláshoz be kell jelentkezni