IT-MÜCKE

Plesk: viele IP-Adressen in Firewall importieren

Beitragsdatum 12.04.2019
Letzte Aktualisierung -
Betrifft mysql, mariadb, Plesk versch. Versionen

Problem

  • Plesk unterstützt zur Zeit (Version 17.8.11) nicht den Import von IP-Listen in das Firewall-Modul
  • Möchte man nun ganze Listen importieren, bleibt nur der Weg über die Manipulation der Plesk-Datenbank
  • Denn: ändert man die iptables-Skripte auf dem Dateisystem, so werden diese spätestens bei einem neuen Aufruf des Firewall-Moduls in der Plesk-Oberfläche wieder überschrieben

Aufbau der Plesk-Datenbank bzgl. Firewallregeln

Datenbank und Tabelle

Datenbank psa
Tabelle module_firewall_rules

Aufbau der Regeln

  • Der Inhalt der jeweiligen Zelle in der Datenbank beginnt wie folgt:
    a:8:{s:4:"type";s:6:"custom";s:5:"class";s:6:"custom";s:4:"name";s:14:"diverse IPs 01";s:9:"direction";s:5:"input";s:5:"ports";a:0:{}s:4:"from";a:1:
  • Die 1 am Ende gibt die Anzahl der nun folgenden Elemente an (ein Element entspricht einer gesperrten IP-Adresse)
  • Nun folgen die IP-Adressen (in diesem Beispiel eine einzige):
    {i:0;s:13:"000.99.27.192";}
Feld Bedeutung
i:0; ID des Elements beginnend mit Null
s:13: Anzahl der Zeichen zwischen den „ (Anführungszeichen)
„000.99.27.192“; Eine IP-Adresse in Hochkommas eingeschlossen (die 000 dient der Anonymisierung hier im Blog)
  • Mehrere IP-Adressen werden einfach genauso aneinander gereiht inklusive der i- und s-Felder:
    {i:0;s:14:"000.170.57.198";i:1;s:15:"000.226.161.237";}
  • Den Abschluss macht der folgende Text:
    s:6:"action";s:4:"deny";s:10:"originalId";s:2:"72";}

Lösung

  • Im folgenden Text beschreibe ich die Schritte, die notwendig sind, um eine Liste von IP-Adressen direkt in die Datenbank von Plesk auzunehmen
    1. Plesk-Datenbank sichern:
      1. per ssh auf dem Server anmelden
      2. Datenbank-Dump erstellen:
        mysqldump --create-options -h localhost -u admin -p$(cat /etc/psa/.psa.shadow) psa > psa-backup.sql
    2. In Plesk selbst im Firewall-Modul eine Regel erstellen:
      1. „Plesk Firewallregeln modifizieren“ → „Benutzerdefinierte Regel hinzufügen“
      2. Namen vergeben
      3. „Richtungsübereinstimmung“ eingehend aktivieren
      4. „Aktion“ verweigern aktivieren
      5. Bei „Quellen“ eine beliebige IP (achtung - sperren Sie sich nicht selbst aus ;) ) eintragen und auf „Hinzufügen“ klicken
      6. „OK“ klicken
      7. Auf „Änderungen übernehmen“ klicken
      8. Dann auf „Aktivieren“ klicken
    3. IP-Liste umwandeln in benötigtes Format:
      1. Der Aufbau der Firewall-Regeln in der Plesk-Datenbank erfolgt nach einem bestimmten Format und wurde bereits weiter oben besprochen
      2. Daher muss eine IP-Adress-Liste in dieses Format umgewandelt werden
      3. Ich habe dazu Excel benutzt und in eine Spalte die IP-Adressen eingetragen
      4. In einer weiteren Spalte werden die IP-Adressen vorsichthalber geglättet (Leerzeichen entfernen: “=GLÄTTEN(…)„)
      5. Eine weitere Spalte enthält eine Formel zur Längenbestimmung der IP-Adresse (“=LÄNGE(…)„)
      6. Und eine Spalte enthält die ID, die bei Null beginnt und hochgezählt wird
      7. Anschließend wird eine Formel gebaut, die Texte verknüpft (“=VERKETTEN(…)„)
      8. So könnte das aussehen:
        Import in Excel
      9. Die Liste (Spalte „Verkettung“) kopieren und auf einem neuen Tabellenblatt über „Inhalte einfügen“ → „Werte“ und „Transponieren“ einfügen:
        Einfügen
      10. Nun kann dieser Teil in einen Texteditor kopiert werden
      11. In diesem müssen ggf. über Suchen und Ersetzen die Tab-Stopps entfernt werden
      12. Jetzt kann der gesamte Zelleninhalt gebaut werden:
        1. Anfang (s.o.) vorne dran kopieren und die Anzahl der Elemente im „a:“ anpassen (vor der geschweiften Klammer mit den IP-Adressen)
        2. Ende anfügen
      13. Tabelleninhalt modifizieren:
        1. In Datenbank anmelden:
          plesk db
        2. Datenbank auswählen:
          use psa;>/code>
                  - Eintrag suchen:<code>select * from module_firewall_rule;
        3. Da muss als ein relativ letzter Eintrag der vorhin getätigte Dummy-Eintrag zu finden sein:
          | 147 |                1 |         0 |       23 | a:8:{s:4:"type";s:6:"custom";s:5:"class";s:6:"custom";s:4:"name";s:8:"IP-Liste";s:9:"direction";s:5:"input";s:5:"ports";a:0:{}s:4:"from";a:1:{i:0;s:13:"000.99.27.192";}s:6:"action";s:4:"deny";s:10:"originalId";s:3:"123";}
        4. Die ID des Eintrags merken (147)
        5. Anpassen (richtige ID nehmen! Aus dem Texteditor die neue Regel einsetzen.):
          update module_firewall_rules set object='a:8:{s:4:"type";s:6:"custom";s:5:"class";s:6:"custom";s:4:"name";s:14:"diverse IPs 01";s:9:"direction";s:5:"input";s:5:"ports";a:0:{}s:4:"from";a:2:{i:0;s:14:"000.170.57.198";i:1;s:15:"000.226.161.237";}s:6:"action";s:4:"deny";s:10:"originalId";s:2:"72";}' where id=147;
      14. Plesk Firewall in GUI aufrufen und schauen, ob die IPs richtig angezeigt werden

Ähnliche Themen im blog:
plesk, firewall


zurück

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information