Advertisement
ricod1996

IP automatisch zur Firewall hinzufügen

Jun 3rd, 2012
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.02 KB | None | 0 0
  1. ## IP-Adressen zur netcup-Firewall hinzufügen
  2. ## Veröffentlicht unter der GPL
  3. ## Geschrieben von Rico Dittrich (riditt.de)
  4. ## Als Inspiration diente mir mein guter Freund Peter Drosihn (https://rechner80.de/), der
  5. ## sich für diese Aufgabe und für iptables einen Daemon programmierte, der genauso funkt.
  6. ## Danke! :)
  7.  
  8.  
  9. #Variablen setzen
  10.  
  11. #Deine dyn-dns, no-ip, whatever-Domain
  12. #Ich empfehle no-ip.com, damit hab' ich bisher keine Probleme gehabt.
  13. domain="xxx.no-ip.org"
  14.  
  15. #Deine netcup-Daten
  16.  
  17. #Kunden-ID
  18. login="00000"
  19.  
  20. #Passwort für das VCP
  21. pwd="***"
  22.  
  23. #Server-Name
  24. name="vXXXXXXXXXXXXXXXX"
  25.  
  26. #Hier wird die IP-Version gesetzt. Du darfst sie gern ändern, ich übernehme aber keine Garantie dafür, dass v6 funktioniert.
  27. type="IPv4"
  28. version="&ipType=$type&ownip=0.0.0.0/0"
  29.  
  30. #Hier werden die IP-Adressen geholt
  31. new=$(host $domain|cut -d" " -f4)
  32.  
  33. # Zuerst einloggen...
  34. curl -b cookie.txt -c cookie.txt -d "doLogin=Login&username=$login&password=$pwd" --url https://www.vservercontrolpanel.de/Login
  35.  
  36. #Die Server-ID wird mit dem Server-Name aus der Homepage des VCP extrahiert
  37. curl -b cookie.txt -o name.txt --url https://www.vservercontrolpanel.de/Login
  38. tr -d \\012 < name.txt > id.txt
  39. id=grep -o "selectedVServerId=[0-9]\{1,10\}[^0-9]*$name" id.txt | grep -m 1 -o "Id=[0-9]*" | grep -o [0-9]*
  40.  
  41. #...dann alle IP-Regeln holen...
  42. curl -b cookie.txt -o rules.txt --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter&section=$type"
  43. #...nach dem enabler-comment suchen und die Regel-ID extrahieren...
  44. ruleid=$(cat rules.txt|grep "name=\"comment\" value=\"enabler\""|cut -d"\"" -f4|cut -d"\"" -f1|cut -d"t" -f3)
  45.  
  46. #...und schließlich die alte IP in die Variable old schreiben
  47. old=$(cat rules.txt|grep "onchange=\"fwEditRule($ruleid)\""|grep "id=\"foreignip\""|cut -d"\"" -f8)
  48.  
  49. 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"
  50. rem="deleteId=$ruleid&direction=INPUT&foreignip=$old&proto=ANY&sortINPUT=1&submit$ruleid=&target=ACCEPT&match=&$version"
  51.  
  52. #Die alte IP (vor dem IP-Wechsel) wird entfernt...
  53. curl -b cookie.txt -d "${rem}${version}" --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter&section=$type"
  54. curl -b cookie.txt -d "updateRules=updateRules" --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter&section=$type"
  55.  
  56. #...und die IP wird hier hinzugefügt
  57. curl -b cookie.txt -d "${add}${version}" --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter&section=$type"
  58. curl -b cookie.txt -d "updateRules=updateRules" --url "https://www.vservercontrolpanel.de/VServers?selectedVServerId=$id&page=filter&section=$type"
  59.  
  60. #Und schlussendlich loggen wir uns noch aus
  61. curl -b cookie.txt --url https://www.vservercontrolpanel.de/Logout
  62.  
  63. #Und nun noch die temporären Daten löschen
  64. rm id.txt tmp.txt name.txt rules.txt cookie.txt
  65.  
  66. #Fertsch
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement