Seite 1 von 1

fail2ban alternative für Receiver

Verfasst: Do 1. Dez 2011, 11:46
von feissmaik
Stammt von einem anderen Forum aber selber bisher UNGETESTET!
(wurde von mir aber auch schon leicht überarbeitet)


Für alle die einen Receiver als CS-Server nutzen aber sich sowas wie fail2ban nicht installieren können, gibt es evtl. auch noch die Möglichkeit eine Alternative zu nutzen um trotzdem "illegal user" aussperren zu können...

Allerdings hat das ganze den Nachteil das man sich die Ausgabe von zb CCcam direkt in ein eigenes Logfile schreiben lassen muss und dieses Logfile kann mit der Zeit ziemlich gross werden und leider hat CCcam kein logrotation so wie OScam :(


Also wir brauchen 2 Scripts: eins zum überwachen des Prozesses und über das wird dann auf das 2. illegal-users.sh zugegriffen...

cccam-watchdog.sh:

Code: Alles auswählen

#!/bin/bash

CCcamBIN="CCcam_2.2.1"
CCcamPATH="/usr/bin"
CCcamLog="/tmp/cccam.debug.txt"
illegalscript="/usr/bin/illegal-users.sh"

while true; do
	if ps | grep -v grep | grep -c $CCcamBIN >/dev/null
	then
		$illegalscript &
	else
		date=`date +"%d.%m.%Y %H:%M:S"`
		echo "$date: ***** CCcam re-start *****" >>/tmp/cccam.restart.log
		sleep 1
		echo "$date: ***** CCcam re-start *****"
		$CCcamPATH/$CCcamBIN -dv >>$CCcamLog &
	fi
	strHour="23"; strMin="58"; DateSTR=`date +%H%M%S`
	if [ "$DateSTR" -ge "$strHour$strMin"00 ] && [ "$DateSTR" -le "$strHour$strMin"10 ]; then
		rm -rf /tmp/cccam.*.log
	fi
done

exit 0

illegal-users.sh

Code: Alles auswählen

#!/bin/bash
########################################
## ATTACK IP BAN SCRIPT FOR DREAMBOX  ##
## BY CEREMY                          ##
## Thanks to Unlocker-AL              ##
########################################

RouteBIN="/sbin/route"
CCcamLog="/tmp/cccam.debug.txt"

cat $CCcamLog | grep illegal >/tmp/cccam.illegaluser.log
grep 'illegal' /tmp/cccam.illegaluser.log | awk -F " " '{print $7}' | grep '^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' >/tmp/cccam.badIP.out
awk '
{s[$0]++}
END {
for(i in s) {
if(s[i]>1) {
print i
}
}
}' /tmp/cccam.badIP.out >/tmp/cccam.badIP.block

while IFS= read -r EachLine; do
	$RouteBIN add -host $EachLine reject
	echo " $EachLine : ***** IP BANNED! ***** " >> /tmp/cccam.ban.log
done </tmp/cccam.badIP.block
rm -f /tmp/cccam.badIP.*
> /tmp/cccam.debug.txt

exit 0
Dann wird nurnoch das cccam-watchdog.sh Script in die /etc/rc.local eingetragen:

Code: Alles auswählen

#!/bin/sh -e
#
# rc.local

#CCcam watchdog (start)
/usr/bin/cccam-watchdog.sh &

exit 0