kannst du mir bitte kurz erklären wie du das mit dem script gemacht hast?
vServer fail2ban Alternative
- mikkeg
- Erledigt
-
-
was meinst Du?
-
also du hast fail2ban installiert, das script auf den server runter geladen, aber wie bekomme ich fail2ban dazu dieses script zu nutzten?
-
du legst eine action in /action.d fest. entweder schreibst du eine neue conf oder passt eine vorhandene an. Ich bin faul ich hab eine angepasst. Dort legst du bei actionban fest was passieren soll ( deinscripname <ip> add ) und bei unban das gleich nur mit delete.
in der jail.conf legst du den Verweis auf deine action.conf fest
dann sollte es eigentlich schon funktionieren -
hallo,
irgendwie bekomme ich das mit der config & der syncronisation mit openvcp nicht wirklich gebacken. aber der reihe nach. ich habe das modifizierte script von seite 3 von dem thread als sync.sh in /etc/fail2ban/action.d geworfen, angepasst und rechte gesetzt. & eine neue sync.conf angelegt. diese sieht dann so aus:
PHP
Alles anzeigen# Fail2Ban configuration file # # Author: Cyril Jaquier # # $Revision: 661 $ # # [Definition] # Option: actionstart # Notes.: command executed once at the start of Fail2Ban. # Values: CMD # actionstart = # Option: actionstop # Notes.: command executed once at the end of Fail2Ban # Values: CMD # actionstop = # Option: actioncheck # Notes.: command executed once before each actionban command # Values: CMD # actioncheck = # Option: actionban # Notes.: command executed when banning an IP. Take care that the # command is executed with Fail2Ban user rights. # Tags: <ip> IP address # <failures> number of failures # <time> unix timestamp of the ban time # Values: CMD # actionban = sync <ip> add # Option: actionunban # Notes.: command executed when unbanning an IP. Take care that the # command is executed with Fail2Ban user rights. # Tags: <ip> IP address # <failures> number of failures # <time> unix timestamp of the ban time # Values: CMD # actionunban = sync <ip> del
danach noch schnell die jail.config angepasst:
PHP
Alles anzeigen[DEFAULT] # "ignoreip" can be an IP address, a CIDR mask or a DNS host ignoreip = 127.0.0.1 bantime = 600 maxretry = 3 # "backend" specifies the backend used to get files modification. Available # options are "gamin", "polling" and "auto". # yoh: For some reason Debian shipped python-gamin didn't work as expected # This issue left ToDo, so polling is default backend for now backend = polling # # Destination email address used solely for the interpolations in # jail.{conf,local} configuration files. destemail = root@localhost # Default action to take: ban only action = sync [ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 [apache] enabled = true port = http filter = apache-auth logpath = /var/log/apache*/*error.log maxretry = 5 [apache-noscript] enabled = false port = http filter = apache-noscript logpath = /var/log/apache*/*error.log maxretry = 5 [vsftpd] enabled = false port = ftp filter = vsftpd logpath = /var/log/auth.log maxretry = 5 [proftpd] enabled = true port = ftp filter = proftpd logpath = /var/log/proftpd/proftpd.log maxretry = 3 [wuftpd] enabled = false port = ftp filter = wuftpd logpath = /var/log/auth.log maxretry = 5 [postfix] enabled = false port = smtp filter = postfix logpath = /var/log/mail.log maxretry = 5 [courierpop3] enabled = true port = pop3 filter = courierlogin logpath = /var/log/mail.log maxretry = 5 [courierimap] enabled = true port = imap2 filter = courierlogin logpath = /var/log/mail.log maxretry = 5 [sasl] enabled = true port = smtp filter = sasl logpath = /var/log/mail.log maxretry = 5 # DNS Servers # These jails block attacks against named (bind9). By default, logging is off # with bind9 installation. You will need something like this: # # logging { # channel security_file { # file "/var/log/named/security.log" versions 3 size 30m; # severity dynamic; # print-time yes; # }; # category security { # security_file; # }; # } # # in your named.conf to provide proper logging # Word of Caution: # Given filter can lead to DoS attack against your DNS server # since there is no way to assure that UDP packets come from the # real source IP [named-refused-udp] enabled = true port = domain,953 protocol = udp filter = named-refused logpath = /var/log/named/security.log [named-refused-tcp] enabled = true port = domain,953 protocol = tcp filter = named-refused logpath = /var/log/named/security.log
soweit so gut! leider passiert gar nichts! wenn ich testweise 10x nen falsches proftpd pw eingebe schreibt der das zwar brav in die log datei, aber es werden keine einstellungen in der openvcp-fw übernommen.
kann mir jemand nen tipp geben, was ich falsch gemacht habe bzw. wie das script zum laufen zu bewegen ist??
danke & mfg
jkn -
hallo,
ok ... habs gefunden... problem war wohl der fehlende pfad! fuer alle die auch etwas unerfahren am rumprobieren mit fail2ban sind, die hoffentlich richtige neue config, muss dann so aussehen:
PHP
Alles anzeigen# Fail2Ban configuration file # # Author: Cyril Jaquier # # $Revision: 661 $ # # [Definition] # Option: actionstart # Notes.: command executed once at the start of Fail2Ban. # Values: CMD # actionstart = # Option: actionstop # Notes.: command executed once at the end of Fail2Ban # Values: CMD # actionstop = # Option: actioncheck # Notes.: command executed once before each actionban command # Values: CMD # actioncheck = # Option: actionban # Notes.: command executed when banning an IP. Take care that the # command is executed with Fail2Ban user rights. # Tags: <ip> IP address # <failures> number of failures # <time> unix timestamp of the ban time # Values: CMD # actionban = /etc/fail2ban/action.d/sync.sh <ip> add # Option: actionunban # Notes.: command executed when unbanning an IP. Take care that the # command is executed with Fail2Ban user rights. # Tags: <ip> IP address # <failures> number of failures # <time> unix timestamp of the ban time # Values: CMD # actionunban = /etc/fail2ban/action.d/sync.sh <ip> del
-
Mein Script liegt unter /usr/bin/, dann kannst Du auf den Pfadnamen verzichten. Ich habe im Teil des Scriptes, der die Regel wieder löscht, noch eine Anpassung vornehmen müssen, wie ist das bei Dir?
Grüße, Oldsnap
-
hmm... soweit war ich zu dem zeitpunkt noch nicht mit der überprüfung. aber du hast recht, mit dem standartscript werden die firewalleinträge bei unban durch fail2ban nicht gelöscht.
was musstest du anpassen, damit der spass funktioniert hat?
danke
jkn -
Probier es mal so:
[PHP]#regeln löschen
curl -b openvcpcookie.txt -o openvcpfirewall.txt --url https://www.vservercontrolpanel.de/index.php/user/firewall/$servername
grep -C "1" -e "$1" openvcpfirewall.txt | grep -o -e "value\=\"[[:digit:]]*\"" | grep -o -e "[[:digit:]][[:digit:]][[:digit:]]*" | while read; do
ID="$REPLY"
curl -b openvcpcookie.txt -d "rule[$ID]=$ID&delete=$delrule" --url https://www.vservercontrolpanel.de/index.php/user/firewall/$servername/submit
done
rm openvcpfirewall.txt
fi[/PHP]
Die grep-Funktion tut sich mit den Rückgabewerten etwas schwer. Probier's mal aus.Oldsnap
-
hmmm... nein! funktioniert leider nicht! :confused:
-
hab grad mal nachgeschaut, es liegt an den neuen Firewallregel-Auswahlfeldern. Durch die Options kann die Grep-Funktion den Regel-Index nicht mehr finden. Hab ich noch gar nicht gemerkt. Werd mich die Tage mal ransetzen.
-
danke! das wäre super!
wenn man schon auf den vservern keine vernuenftige komplettloesung wie CSF (ConfigServer Security & Firewall) auf iptables basis installieren kann, waere sowas generell eine gute ergänzung zum netcup angebot.
mfg
jkn -
Nur falls es einer wissen will, ich hab die Anpassungen schon lange gemacht:D
Ich hab auch noch hinzugefügt das das Script Aktionen nacheinander ausführt, sonnst kann es vorkommen das bei viel Aktivität 10 oder mehr Instanzen gleichzeitig an der Firewall rumfummeln und ich weiß nicht ob es denn noch richtig funktioniert.Edit: Neue Version hier.
-
Hallo Stachi,
danke ! Ich hab aber noch eine Frage dazu. Bei lief das Script zum löschen nicht. Nach einigem herumprobieren (nachdem ich mir die -grep-Ergebnisse angesehen hatte) bin ich auf folgende Lösung gekommen:
PHP#regeln löschen curl -b openvcpcookie.txt -o openvcpfirewall.txt --url https://www.vservercontrolpanel.de/index.php/user/firewall/$servername grep -C "1" -e "$1" openvcpfirewall.txt | grep -o -e "rule\[[[:digit:]]*\]" | grep -o -e "[[:digit:]][[:digit:]][[:digit:]]*" | while read; do ID="$REPLY" curl -b openvcpcookie.txt -d "rule[$ID]=$ID&submit=$delrule" --url https://www.vservercontrolpanel.de/index.php/user/firewall/$servername/submit done fi
Woran kann es liegen, dass das Originalscript bei mir nicht läuft ?
Oldsnap
-
hallo ihr beiden,
also das angepasste script von stachi läuft bei mir super aufm testserver.nu bin ich nur noch bissel am rumprobieren um den ganzen w00-kram etc. in die badhosts aufzunehmen & draussen zu halten.
bis später
jkn -
Zitat von Oldsnap;11304
Hallo Stachi,
danke ! Ich hab aber noch eine Frage dazu. Bei lief das Script zum löschen nicht. Nach einigem herumprobieren (nachdem ich mir die -grep-Ergebnisse angesehen hatte) bin ich auf folgende Lösung gekommen:
PHP#regeln löschen curl -b openvcpcookie.txt -o openvcpfirewall.txt --url https://www.vservercontrolpanel.de/index.php/user/firewall/$servername grep -C "1" -e "$1" openvcpfirewall.txt | grep -o -e "rule\[[[:digit:]]*\]" | grep -o -e "[[:digit:]][[:digit:]][[:digit:]]*" | while read; do ID="$REPLY" curl -b openvcpcookie.txt -d "rule[$ID]=$ID&submit=$delrule" --url https://www.vservercontrolpanel.de/index.php/user/firewall/$servername/submit done fi
Woran kann es liegen, dass das Originalscript bei mir nicht läuft ?
Oldsnap
Ich hab keine Ahnung warum es nur so bei dir geht. Mein Script sucht nach einer beliebig langen Zahl. Deins sieht so aus als würde es nach mindestens einer 2 Stelligen Zahl suchen was bei neu eingerichtet Firewalls Probleme macht, denn die fangen mit 1 an zu Zählen.
Zitat von jknhallo ihr beiden,
also das angepasste script von stachi läuft bei mir super aufm testserver.nu bin ich nur noch bissel am rumprobieren um den ganzen w00-kram etc. in die badhosts aufzunehmen & draussen zu halten.
bis später
jknGuck mal hier.
-
ich hab mal noch ne andere frage zu dem script: und zwar wollte ich von http://www.countryipblocks.net…ry-blocks/select-formats/ gleich paar länder komplett aussperren, egal ob die nun auf port 80 oder was auch immer zugreifen wollen. die auf der seite generierte liste ist ja nicht gerade kurz. gibts da auch noch irgend einen weg ne standard blacklist-datei mit deny.hosts bzw. gleich mit dem openvcp-fw zu syncronisieren bzw. aktuell zu halten???
danke & mfg
jkn -
nur nochmal kurz zur erläuterung: ich habe quasi ne lange liste von ip-adressen, die ich bei zugriff einfach ne zeit lang pauschal blocken will. die sieht dann in ungefaehr so aus:
## Country: CONGO, THE DEMOCRATIC REPUBLIC OF THE
# ISO Code: CD
# Total Networks: 9
# Total Subnets: 15,872
41.79.232.0/22
41.189.192.0/19
41.190.80.0/22
41.215.252.0/22
41.222.196.0/22
41.222.216.0/22
41.223.104.0/22
193.110.104.0/23
196.22.8.0/22nun soll das gute fail2ban einfach diese liste mit den access-logs vergleichen und wenn die ip auf der liste ist, diese an die openvcp-fw übergeben und blocken. fuer iptables gibts da ja ganz gute scripte um solche blacklists zu pflegen. nur leider haben wir diese möglichkeit ja nicht auf den vservern!
danke fuer eure tipps & by
jkn -
tolles script
wobei ich lieber eine definierbare zeit eintragen würde, nachdem die ban's wieder gelöscht werden, vor allem um das ganze in einen täglichen cronjob laufen zu lassen.
wäre das nicht optimal?
-
hallo,
kann es sein, dass netcup was am openvcp-firewall geändert hat & nun von fail2ban keine regeln mehr geschrieben werden koennen??? :confused: jedenfalls is das bei mir seit ein paar tagen der fall! wie sieht das bei euch aus & was muesste an dem script angepasst werden, damit es wieder funktioniert??thx
jkn