BanScript in Python

  • Hi :)

    Weil ich grad nicht wirklich weiss wo hin damit, post ichs hier mal rein.
    Das Script ist wie der Name schon sagt ein kleines Script was in Python realisiert und auf Linux ausgeführt einen "IP-Ban" tätigt.

    Das ganze ist recht einfach aufgebaut:
    - Iptables flushen um mehrfachadds zu verhindern
    - verbindung zu MySQL-Datenbank aufbauen
    - Die zu bannenden IPs holen
    - einen IPtables-Eintrag hinzufügen, der eine Weiterverarbeitung der ankommenden Pakete der IP verhindert

    Vorrausetzungen:
    - MySQL
    - Python
    - Iptables
    - Python-MySQL Library

    Die DB-Structure

    Code
    CREATE TABLE `BanList` (
      `IP` text NOT NULL,
      PRIMARY KEY  (`IP`(30))
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    Das Script

    Selbstverständlich kann man das Script auch auf mehreren Computern ausführen und dabei eine einzige DB auf einem Zentralroot haben.
    Spart arbeit, denn nun kann man Zentral auf eine DB zu greifen und muss nicht auf jeden root die Iptables seperat setzen.

    LG GiR-Blunti

    PS: Es hilft bei Synfloods nicht, aber die Jungs mit ihren kleinen Scantools für Apache, Console, usw kann man so schön sauber rauswerfen.
    Es werden halt von allen IPs die in dem Table sind die eingehenden Pakete verworfen.

    Dazu passend gleich noch ein kleines PythonScript um die IPs per Console in die DB eintragen zu können:

    writeip.py

    Die Benutzung ist recht easy:
    $writeip.py 127.0.0.1

    Das ganze kann man dazu verwenden um mit Fail2Ban die gesperrten IPs per CustomAction in die DB zu verfrachten um den anderen Roots eventuelle "angiffe" zu ersparen.

    So ein Fail2Ban-Acion kann so aussehen:

    /etc/fail2ban/action.d/write-to-mysql.conf

    Viel Spaß damit.

    LG GiR-Blunti

  • [FONT="Arial"][COLOR="SlateGray"][SIZE="2"]Ah das gute alte Python :)
    Hab mich selbst damit weniger befasst aber ich mag's trotzdem ;)[/SIZE][/COLOR][/FONT]

  • Sieht ja nice aus, auch wenn ich Python nicht kann ;-)
    Die IPs kannst du auch besser speichern. Schau dir mal das an.
    Finde ich persönlich super ;D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!