Statische Routen unter Ubuntu automatisieren

Hallo zusammen,

ich musste für einen Kunden ein VPN auf seinen Webserver einrichten und dies durch ein eigenes Gateway schleusen. Da der Server jedoch eine öffentliche IP mit eigenem Default Gateway hat, auf diesem jedoch nicht das VPN eingerichtet wurde. Musste nun ein weg zum VPN Router gefunden werden… Weiterlesen

Plesk secondary DNS eventscript

Ich habe mir mal ein kleines Script gebastelt um mir die Einrichtung von Domains unter Plesk etwas zu vereinfachen. Ich betreibe mehrere Server in Rechenzentren und habe auch ein paar Pleskinstallationen am laufen. Ich selber finde Plesksysteme für die schnelle Verwaltung von Websitehostings nicht schlecht. Jedoch habe ich eigene DNS Server die ich für meine Dienste nutzen will. Diese laufen auch auf dem bekannten ISC Server Bind9…

Unter Plesk kann man zwar DNS Server angeben die als Slave anerkannt werden, jedoch werden diese nicht automatisch eingerichtet. Allerdings hat Plesk eine sehr nette Funktion, die Eventscripts. Dies sind Scripte die ich an verschiedene Aktionen von Plesk anhängen kann. Diesen Umstand nutzt mein DNS Script. Im Grunde ist es sehr einfach. Das Script wird bei jeglichen Aktionen die Domains bzw. DNS betreffen ausgeführt und fragt die Plesk Domains aus einer Datenbank ab und transferiert die Daten an einen zweiten Linux Server mit Bind.

Hier mal der Weg für die Installation:

cd /tmp
wget http://www.networkmonkey.de/scripts/dns_sync

Nun bearbeitet ihr das Script mit eurem Lieblingseditor ich nehme gerne nano für solche Aufgaben…

nano dns_sync
# Server IP from Master DNS Server of the Domain
MASTER_DNS_SERVER=“1.1.1.1;“
# Masterserver config dir
MASTER_DNS_CONFIG_DIR=“/var/named/run-root/etc/“
# Which Server should notify allow?
NOTIFY_DNS_SERVER=“first_ip_here; second_ip_here;“
# Servernames of the secondary DNS Servers for SSH connect
DNS_SLAVE_SERVERS=(ns1.yourdomain.de x.x.x.x)
# Store for secondary domain data
SLAVE_DNS_DATA_DIR=“/etc/bind/slave/“
# Configdir for secondary slave server
SLAVE_DNS_CONFIG_DIR=“/etc/bind/“
# User that can edit SLAVE_DNS_CONFIG an get shell access throug SSH
SLAVE_DNS_SSH_USER=“dnsadmin“
# Configfile of secondary DNS Server
SLAVE_DNS_BIND_CONFIG=“named.conf“

Die Variablen sollten sich selbst erklären. Die Datei danach speichern und in an einen Ort kopieren wo es ausgeführt werden kann… z.B.

mv /tmp/dns_sync /usr/sbin/dns_sync

Nun brauchen wir einen SSH key für unseren ssh Benutzer… Diesen erstellen wir uns kopieren ihn gleich auf den Server wo er benötigt wird. Bitte beim kopieren des ganzen darauf achten, die gleichen Daten wie im Script angegeben zu verwenden… Auch muss dieser Schlüssel auf alle Server die unter DNS_SLAVE_SERVERS angegeben sind. Beim erstellen des Keys darauf achten KEIN Passwort einzugeben und einfach Enter drücken!!!

ssh-keygen
ssh-copy-id user@servername

Wichtig ist das der Benutzer auf dem SlaveServer auch schreibrechte in dem Bind directory hat und das Programm rndc ausführen darf. Am besten fügt man den SSH Benutzer der Gruppe bind hinzu. Zumindest unter Debian und Ubuntu klappt das ohne Probleme. Jetzt können wir das Script testen in dem wir es einfach ausführen. Es sollte keine Passwortabfrage erscheinen und die Daten sollten kopiert werden. Nun sollte auch auf dem Slaveservern eine neue Datei im Bindkonfigverzeichniss erscheinen welche den Hostnamen eures Masterservers hat mit der Endung .slave. Diese Konfig sollte nun durch die named.conf am ende eingebunden werden!!! Wenn dies geklappt hat läuft alles einwandfrei. Und wir können die Events hinzufügen.

Die Eventkonfiguration könnt ihr hier finden.

Plesk 10

Tools und Einstellungen -> Ereignissmanager

Plesk 9.5

Start -> Eventmanager

Dort fügt ihr ein neues Event hinzu. Ich habe für jeden Domainevent ein Ereignis erstellt. Unter Plesk 10 heissen die Domainevents übrigens StandardDomain. Als Priorität könnt ihr geringste einstellen und als Benutzer solltet ihr root angeben. Dies ist der Benutzer unter welchem das Script ausgeführt wird. Dieses könnt ihr natürlich auch anpassen. Als Befehlt gebt ihr nur den Pfad zu dem Script an ohne irgendwelche Parameter und schon wird das Script jedes mal bei eines dieser Events ausgelöst.

Ich hoffe dieses Script macht euch das leben auch etwas einfacher wie mir ^^

 

Mailgraph und Postscreen

Moin,

ich habe heute meinen Spamfilter mit Postscreen ausgestattet, was ich sehr empfehlen kann, und habe mich gewundert das mein Mailgraph mir so geringe Werte anzeigte. Kurz geschaut und meine Mailgraph Version kannte die regexe für Postscreen noch nicht. Daher muss man so in Zeile 636 nach:

elsif($prog eq 'cleanup') {
  if($text =~ /^[0-9A-Z]+: (?:reject|discard): /) {
    event($time, 'rejected');
  }
}

folgendes einfügen:

 elsif($prog eq 'postscreen') {
   if($text =~ /NOQUEUE: reject:/) {
     event($time, 'spam');
   }
   elsif($text =~ /DISCONNECT/) {
     event($time, 'spam');
   }
 }

Mit diesen Zeilen werden die Mail die Postscreen rejectet oder die Verbindung nicht zulässt als SPAM erkannt. Tauscht man

'spam'

durch

'rejected'

so werden die Mails als reject unter Mailgraph angezeigt. Jeder so wie er es lieber mag 😉