- Registriert
- 7. Februar 2008
- Beiträge
- 2.975
- Reaktionspunkte
- 2.416
- Punkte
- 373
Die Installation ist ganz einfach und schnell durchzuführen:Was ist fail2ban?
fail2ban ist ein kleines Tool, welches unter Linux Logs durchsucht und bei bestimmten Inhalten entsprechende Aktionen ausführen kann. Es kann z.B. Spambots und Vulnerability Scanner dynamisch erkennen und aussperren. Das bringt einige Vorteile mit sich:
* Logs können daran gehindert werden, durch Attacken Speicherplatz zu fressen bis keiner mehr da ist (denn dann wird es erst richtig lustig)
* ScriptKidis können sich schön herrlich die Milchzähne an dem Server ausbeißen
* Bots, die nach bekannten Sicherheitslücken suchen können leicht gesperrt werden.
* Brutefoce-Attacken können leicht und automatisch geblockt werden.
Was ist fail2ban nicht?
Es ist kein Sicherheitstool! fail2ban ist ein kleines Teil im Puzzle und kann gewisse Grauzonen abdecken. Jedoch nie für Sicherheit in dem Sinne sorgen.
apt-get install fail2ban -y
[cccam_sigfail]
enabled = true
port = 12000
filter = cccam-signature
logpath = /var/log/syslog
bantime = 1800
maxretry = 10
[cccam_badcmd]
enabled = true
port = 12000
filter = cccam-command
logpath = /var/log/syslog
bantime = 1800
maxretry = 10
[cccam_2login]
enabled = true
port = 12000
filter = cccam-login
logpath = /var/log/syslog
bantime = 1800
maxretry = 10
[cccam_illegal]
enabled = true
port = 12000
filter = cccam-illegal
logpath = /var/log/syslog
bantime = 1800
maxretry = 10
[Definition]
failregex = CCcam: kick <HOST>, signature failed
ignoreregex =
[Definition]
failregex = CCcam: double login .*, .* \(<HOST>\)
ignoreregex =
[Definition]
failregex = CCcam: kick <HOST>.*, bad command
ignoreregex =
[Definition]
failregex = CCcam: illegal user .* from <HOST>
ignoreregex =
/etc/init.d/fail2ban restart
touch /usr/local/etc/blacklist.txt
touch /etc/init.d/firewall
chmod +x /etc/init.d/firewall
nano /etc/init.d/firewall
#!/bin/sh
#needed modules
modprobe ip_conntrack_ftp
BLACKLIST=/usr/local/etc/blacklist.txt
#trigger for your ports
IN_ALLOWED_TCP="21 22 25 53 80"
OUT_ALLOWED_TCP="21 22 25 53 80"
IN_ALLOWED_UDP="53 7878"
OUT_ALLOWED_UDP="53"
IN_ALLOWED_ICMP=" "
OUT_ALLOWED_IMCP=" "
case "$1" in
start)
# Stopping IP trap
/etc/init.d/fail2ban stop
echo "Stopping fail2ban IP trap ..."
# Clear iptables
iptables -F
#Defaults
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# loopback communication
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# persist on connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Ban blacklisted IPs
for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do
echo "Blocking $x..."
iptables -A INPUT -t filter -s $x -j DROP
done
# TCP rules in
for port in $IN_ALLOWED_TCP; do
echo "Accepting TCP port $port"
iptables -A INPUT -t filter -p tcp --dport $port -j ACCEPT
done
# TCP rules out
for port in $OUT_ALLOWED_TCP; do
echo "Allowing sending over TCP port $port"
iptables -A OUTPUT -t filter -p tcp --dport $port -j ACCEPT
done
# UDP rules in
for port in $IN_ALLOWED_UDP; do
echo "Accepting UDP port $port"
iptables -A INPUT -t filter -p udp --dport $port -j ACCEPT
done
# UDP rules out
for port in $OUT_ALLOWED_UDP; do
echo "Allowing sending over UDP port $port"
iptables -A OUTPUT -t filter -p udp --dport $port -j ACCEPT
done
# ICMP rules in
for port in $IN_ALLOWED_ICMP; do
echo "Accepting ICMP port $port"
iptables -A INPUT -t filter -p icmp --dport $port -j ACCEPT
done
# ICMP rules out
for port in $OUT_ALLOWED_ICMP; do
echo "Allowing sending over ICMP port $port"
iptables -A OUTPUT -t filter -p icmp --dport $port -j ACCEPT
done
# Dropping startup requests
iptables -A INPUT -t filter -p tcp --syn -j DROP
# Restarting IP trap
/etc/init.d/fail2ban start
echo "Fire up IP trap again ..."
;;
stop)
/etc/init.d/fail2ban stop
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "Warning! Firewall is stopped, server is unprotected now!"
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage $0 {start|stop|restart}"
;;
esac
#trigger for your ports
IN_ALLOWED_TCP="12000" -------------> hier den eigenen server listen port angeben bzw. ports die für uns von aussen erreichbar sein sollen
OUT_ALLOWED_TCP="xx xxxxx xxxxx" ----> hier die ports unser sharepartner eigeben, sonst kommt nix an ;=D
IN_ALLOWED_UDP="53 7878"
OUT_ALLOWED_UDP="53"
IN_ALLOWED_ICMP=" "
OUT_ALLOWED_IMCP=" "
cd /etc/init.d
update-rc.d firewall defaults
/etc/init.d/firewall restart
EM aber da werden doch auch nicht die illegal Users geblockt oder spinne ich?die idee hatte ich auch schon mal gepostet :dance3:
KLICK KLACK
Hätte jemand einen passenden Filter für die "CCcam-illegal_users.log" ich würde gern die Leute zu mindest temp. aussperren, die meine line nicht löschen.
Des Weiteren hätte ich noch eine Frage zu der deamon.log, die existirt bei mir unter var/log nicht. hab ich irgendwas übersehen/vergessen?
Installiert habe ich damals alles über ipc 9.54
stimmt aber jede config ist ja auch erweiterbarEM aber da werden doch auch nicht die illegal Users geblockt oder spinne ich?
Ich bin jetzt so weit dass ich fail2ban am laufen habe, benötigt man nun noch die Firewall (2.Posting) oder blockt fail2ban schon von Haus aus???
Ich finde es etwas unsinnig Ports direkt zu blockieren, das ist ja ein riesen Aufwand alle Client Ports da einzutragen, da ja jeder was anderes hat.
Mein Server soll alle Ports benutzen können. Der Router sorgt doch dafür dass nur 12000 von aussen an den Server weitergeleitet wird. Also wieso noch Ports explizit am Server blockieren??
Wie würde die Config dann aussehen, läßt man das dann leer oder Stern * ?
2010-07-27 14:37:01,155 fail2ban.jail : INFO Creating new jail 'cccam'
2010-07-27 14:37:01,155 fail2ban.jail : INFO Jail 'cccam' uses poller
2010-07-27 14:37:01,183 fail2ban.filter : INFO Added logfile = /var/log/syslog
2010-07-27 14:37:01,185 fail2ban.filter : INFO Set maxRetry = 10
2010-07-27 14:37:01,188 fail2ban.filter : INFO Set findtime = 600
2010-07-27 14:37:01,190 fail2ban.actions: INFO Set banTime = 6000
2010-07-27 14:37:01,214 fail2ban.jail : INFO Creating new jail 'ssh-ddos'
2010-07-27 14:37:01,214 fail2ban.jail : INFO Jail 'ssh-ddos' uses poller
2010-07-27 14:37:01,216 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2010-07-27 14:37:01,218 fail2ban.filter : INFO Set maxRetry = 6
2010-07-27 14:37:01,221 fail2ban.filter : INFO Set findtime = 600
2010-07-27 14:37:01,223 fail2ban.actions: INFO Set banTime = 6000
2010-07-27 14:37:01,241 fail2ban.jail : INFO Creating new jail 'ssh'
2010-07-27 14:37:01,241 fail2ban.jail : INFO Jail 'ssh' uses poller
2010-07-27 14:37:01,244 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2010-07-27 14:37:01,246 fail2ban.filter : INFO Set maxRetry = 6
2010-07-27 14:37:01,249 fail2ban.filter : INFO Set findtime = 600
2010-07-27 14:37:01,251 fail2ban.actions: INFO Set banTime = 6000
2010-07-27 14:37:01,508 fail2ban.jail : INFO Jail 'cccam' started
2010-07-27 14:37:01,511 fail2ban.jail : INFO Jail 'ssh-ddos' started
2010-07-27 14:37:01,541 fail2ban.jail : INFO Jail 'ssh' started
# Fail2Ban configuration file
#
# Author: Cyril Jaquier
#
# $Revision: 510 $
#
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>\S+)
# Values: TEXT
#
failregex = xxx CCcam: kick <HOST>, signature failed$
xxx CCcam: kick <HOST>.*, bad command$
xxx CCcam: double login .*, .* \(<HOST>\)$
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
Jul 27 15:06:03 SRV-CS CCcam: illegal user xxr from 80.xx.43.xxJul 27 15:06:03 SRV-CS CCcam: deleting client xx.90.43.xx, signature failed
Jul 27 15:06:03 SRV-CS CCcam: remote ecm -> xx:3439 0x1810(0x4001)
Jul 27 15:06:03 SRV-CS CCcam: remote ecm <- xx:3439 failure from cache (took 0.0000 seconds)
Jul 27 15:06:03 SRV-CS CCcam: client xx ecm request for handler 0x1bdc0 0x1810(0x4001) sid 0x756a failed (took 0.0003 seconds)
Jul 27 15:06:03 SRV-CS CCcam: remote ecm -> xx:12000 0x1810(0x4001)
Jul 27 15:06:03 SRV-CS CCcam: remote ecm <- xxxx.org:12000 failure from cache (took 0.0000 seconds)
Jul 27 15:06:03 SRV-CS CCcam: client xxx ecm request for handler 0x1bfad 0x1810(0x4001) sid 0x756a failed (took 0.0004 seconds)
Jul 27 15:06:03 SRV-CS CCcam: remote ecm -> xxx:12000 0x1810(0x000)
Jul 27 15:06:03 SRV-CS CCcam: remote ecm <- xx:12000 failure from cache (took 0.0000 seconds)
Jul 27 15:06:03 SRV-CS CCcam: client xxx ecm request for handler 0x1cf8a 0x1810(0x0) sid 0x756a failed (took 0.0003 seconds)
Jul 27 15:06:03 SRV-CS CCcam: new tcp client from 83.xx.70.xx
Jul 27 15:06:04 SRV-CS CCcam: illegal user xx from 83.xx.70.xx
Jul 27 15:06:04 SRV-CS CCcam: deleting client 83.135.70.84, signature failed
failregex = xxx CCcam: kick <HOST>, signature failed$
xxx CCcam: kick <HOST>.*, bad command$
xxx CCcam: double login .*, .* \(<HOST>\)$
failregex = CCcam: double login .*, .* \(<HOST>\)
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?