dnsmasq Blacklists mit PHP aktualisieren

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich habe mir zu Hause einen dnsmasq Server aufgesetzt, der den Part des DNS Servers für die Clients in meinem LAN macht. dnsmasq bietet die Möglichkeit DNS Informationen via HOSTS Datei oder dnsmasq-DNS Record einzulesen.
Dies bietet die Möglichkeit Listen von bekannten Malware- resp Werbedomains im DNS zu hinterlegen und damit den Zugriff darauf zu unterbinden. Testweise habe ich mal den Virenscanner ausgeschaltet und eine Virenseite angesurft (natürlich mit dem IE). Der JS Loader wurde zwar geladen, aber als der Loader den Payload runterladen wollte, konnte der DNS Name der Ressource nicht aufgelöst werden.
Das Konzept funzt also sogar als primitiver Virenschutz, obwohl es keinen Virenscanner ersetzen kann!!!
Das schöne daran ist aber auch, dass damit Werbung im Internet Geschichte ist :D

HOST
Eine HOSTS Datei ist eine simple Textdatei mit einer IP-Host-Zuordnung pro Zeile. Dabei steht links die IP Adresse und rechts der zugehörige Host/Domainname. Getrennt werden IP und Name normalerweise mit einem TAB.
Kommentare in HOSTS Dateien sind mittels # als erstes Zeichen einer Zeile möglich
Code:
# Ich bin ein Kommentar
127.0.0.1    DOMAIN.TLD
127.0.0.1    OTHER-DOMAIN.TLD
Obige Einträge sorgen dafür, dass DNS Anfragen nach den beiden Namen mit der ungültigen IP für localhost beantwortet werden d.h. diese beiden Domains sind nicht mehr erreichbar.

Diese Einträge kann man direkt in /etc/hosts vornehmen. Zusätzlich bietet dnsmasq in seiner conf (/opt/etc/dnsmasq.conf) die Möglichkeit über die Variable
Code:
addn-hosts=/PATH/TO/FILE
ein alternatives HOSTS Files festzulegen, welches zusätzlich zum default File (/etc/hosts) verarbeitet wird. Mehrere Files können angegeben werden, indem man die Variable mehrfach setzt

dnsmasq Records
Neben dem HOSTS Format versteht dnsmasq auch Einträge in seinem eigenen nativen DNS Format. Diese sind folgendermassen aufgebaut
Code:
# Ich bin auch ein Kommentar
address="/DOMAIN.TLD/127.0.0.1"
address="/OTHER-DOMAIN.TLD/127.0.0.1"
Die Einträge können in einer beliebigen Datei erstellt und dann via Variable (/opt/etc/dnsmasq.conf)
Code:
conf-file=/PATH/TO/FILE
gesetzt werden. Mehrere Files können angegeben werden, indem man die Variable mehrfach setzt.

Um diese Listen automatisiert zu erstellen, habe ich ein PHP Script geschrieben welches bei mir regelmässig via cron aufgerufen wird und die Listen aktualisiert.
Bitte lest die Kommentare im Code bevor ihr damit loslegt


Hier also der Code für das PHP Script. Leider ist der Code zu lang, um ihn direkt hier in den Post einzufügen...
Um das Script regelmässig auszuführen habe ich einen cronjob dafür angelegt. Ein kleines Shell Script wird von cron aufgerufen und dieses ruft das PHP Script via Konsole (also via ipkg-php) auf. Das Shellscript brauche ich, damit ich die neu erstellten Files in den dnsmasq laden und diesen auch gleich neustarten kann (braucht root Rechte)
Code:
#!/opt/bin/bash
/opt/bin/php /volume1/web/www/main/test.php >> /dev/null
cp -f /volume1/web/www/main/dns* /opt/etc/ >> /dev/null
sh /opt/etc/init.d/S56dnsmasq start >> /dev/null
exit
 

Anhänge

  • blacklists.zip
    3,3 KB · Aufrufe: 4
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!