All pastes #610673 Raw Edit

Stuff

public shellscript v1 · immutable
·published 2007-07-09 16:08 UTC
rendered paste body
#!/bin/bash#  LOGFILES  #LOGFILE="/var/log/auth.log"BANFILE="/etc/banlist"MYLAN="192.168.1"IPT=/sbin/iptablesif [[ $UID !=if [[ $UID != 0 ]]	then echo "you must become root to continue"	exit 0;fi 0 ]]	then echo "you must become root to continue"	exit 0;fiif [[ ! -f "/etc/banlist" ]]	then echo -e "There is no ban list file..\nShall i make one? y|n"	read Answer	case "$Answer" in 		y|Y)		echo "" > $BANFILE		sed -i '/^ *$/d' $BANFILE		echo "Made /etc/banlist"		;;		n|N)		echo "ok Exiting.. "		exit 0;		;;		*)		echo "Wrong input.. rerun script and give right input please. "		;;	esacfiwhile :do sleep 6#bad users. sort them out..Busr=`grep sshd  $LOGFILE |grep "Failed password for invalid user" |awk '{print $13}' |grep -v "127.0.0.1" |grep -v $MYLAN |sort -u`for (( i = 1 ; i <= `echo $Busr |tr ' ' '\n' |wc -l` ; i++ ))do var[$i]=$(echo $Busr |tr ' ' '\n' |sed -n ""$i"p")   ATTEMPTS=`grep "Failed password for invalid user" $LOGFILE  |grep -c ${var[$i]}`	if [[ $ATTEMPTS -ge "2" ]]		then echo "${var[$i]}" >> $BANFILE 		sort -u -o $BANFILE $BANFILE 	fi  done### NOW LETS MAKE IPTABLES DROP ALL THIS IPS THAT TRYED TO BRUTE FORCE ON MY SSHfor (( x = 1 ; x <= `wc -l $BANFILE |awk '{print $1}'` ; x++ ))	do ips[$x]=$(echo `sed -n ""$x"p" $BANFILE`)	IPTIPS=$(echo `$IPT -L -n |grep DROP | awk '{print $4}' | grep -v "0.0.0.0" |sort -u -n | grep -v DROP |sed -n ''$x'p'` )	if [[ "${ips[$x]}" == "$IPTIPS" ]]		then echo "address" `sed -n ""$x"p" $BANFILE` "already added to iptables" > /dev/null		else echo "droped ip" `sed -n ""$x"p" $BANFILE` "with iptables:: $(date)" 		gxmessage --center "droped ip" `sed -n ""$x"p" $BANFILE` "with iptables:: $(date)"  &		## THIS ADDS THE IP'S RO BE DROPED		$IPT -I INPUT -s ${ips[$x]} -j DROP &	fidonedone