Hallöle liebe Mitkunden und liebes netcup-Team.
Ich oute mich gleich mal als Neuling im Forum und hoffe einfach mal, dass das im richtigen Bereich ist.
Und zwar gibt es ja in der VCP-Firewall die Option, alle Verbindungen automatich zu sperren. Alles gut und schön, aber es macht doch relativ viel Arbeit, die eigene IP bei einer Änderung immer wieder hinzuzufügen.
Deshalb dieser Thread.
Voraussetzungen:
-no-ip.com-, dyn-dns- oder was auch immer Domain
-Server?! (:D)
Kurz und knapp: Das Skript pingt die oben genannte Domain an und fügt die IP, auf welche die Domain zeigt, anschließend zur Firewall hinzu. Vorher werden mögliche andere IP-Adressen, die das Skript hinzugefügt haben könnte, entfernt.
Hier geht's zum Skript:
[Bash] IP automatisch zur Firewall hinzufügen - Pastebin.com
(darf noch keine Links posten)
Bitte daran denken, die Variablen entsprechend selbst zu editieren.
Bei größerem Interesse werde ich das Skript so erweitern, dass mehrere IPs automatisch hinzugefügt werden können.
Tipp: Das ganze per Cron-Job öfter mal laufen lassen.
Und hier nochmal direkt als Code:
## IP-Adressen zur netcup-Firewall hinzufügen
## Veröffentlicht unter der GPL
## Geschrieben von Rico Dittrich (riditt.de)
## Als Instpiration diente mir mein guter Freund Peter Drosihn (https://rechner80.de/), der
## sich für diese Aufgabe und für iptables einen Daemon programmierte, der genauso funkt.
## Danke! :)
#Variablen setzen
#Deine dyn-dns, no-ip, whatever-Domain
#Ich empfehle no-ip.com, damit hab' ich bisher keine Probleme gehabt.
domain="xxx.no-ip.org"
#Deine netcup-Daten
#Kunden-ID
login="00000"
#Passwort für das VCP
pwd="***"
#Server-Name
name="vXXXXXXXXXXXXXXXX"
#Hier wird die IP-Version gesetzt. Du darfst sie gern ändern, ich übernehme aber keine Garantie dafür, dass v6 funktioniert.
type="IPv4"
version="&ipType=$type&ownip=0.0.0.0/0"
#Hier werden die IP-Adressen geholt
new=$(host $domain|cut -d" " -f4)
# Zuerst einloggen...
curl -b cookie.txt -c cookie.txt -d "doLogin=Login&username=$login&password=$pwd" --url https://www.vservercontrolpanel.de/Login
#Die Server-ID wird mit dem Server-Name aus der Homepage des VCP extrahiert
curl -b cookie.txt -o name.txt --url https://www.vservercontrolpanel.de/Login
tr -d \\012 < name.txt > id.txt
id=grep -o "selectedVServerId=[0-9]\{1,10\}[^0-9]*$name" id.txt | grep -m 1 -o "Id=[0-9]*" | grep -o [0-9]*
#...dann alle IP-Regeln holen...
curl -b cookie.txt -o rules.txt --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter§ion=$type"
#...nach dem enabler-comment suchen und die Regel-ID extrahieren...
ruleid=$(cat rules.txt|grep "name=\"comment\" value=\"enabler\""|cut -d"\"" -f4|cut -d"\"" -f1|cut -d"t" -f3)
#...und schließlich die alte IP in die Variable old schreiben
old=$(cat rules.txt|grep "onchange=\"fwEditRule($ruleid)\""|grep "id=\"foreignip\""|cut -d"\"" -f8)
add="addRule=addRule&addRuleSubmit=hinzuf%C3%BCgen&direction=INPUT&foreignip=$new&match=STATE&NEW=NEW&RELATED=RELATED&ESTABLISHED=ESTABLISHED&proto=ANY&sortINPUT=1&sortOUTPUT=1&target=ACCEPT&comment=enabler&$version"
rem="deleteId=$ruleid&direction=INPUT&foreignip=$old&proto=ANY&sortINPUT=1&submit$ruleid=&target=ACCEPT&match=&$version"
#Die alte IP (vor dem IP-Wechsel) wird entfernt...
curl -b cookie.txt -d "${rem}${version}" --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter§ion=$type"
curl -b cookie.txt -d "updateRules=updateRules" --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter§ion=$type"
#...und die IP wird hier hinzugefügt
curl -b cookie.txt -d "${add}${version}" --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter§ion=$type"
curl -b cookie.txt -d "updateRules=updateRules" --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter§ion=$type"
#Und schlussendlich loggen wir uns noch aus
curl -b cookie.txt --url https://www.vservercontrolpanel.de/Logout
#Und nun noch die temporären Daten löschen
rm id.txt tmp.txt name.txt rules.txt cookie.txt
#Fertsch
Alles anzeigen
Ich wünsche euch viel Spaß und gutes Gelingen
Ditti