|
发表于 2006-12-20 18:11:53
|
显示全部楼层
以下是我使用的代码- #!/bin/bash
- # By Kevin Zou 2005.11.23
- SECURE_FILE_NAME="/var/log/secure"
- CHKSSHIP_LOG_DIR="/var/log/chksship"
- IPTABES_FILE="/sbin/iptables"
- OUT_TIME=`date +%F-%H-%M`
- TEMP_FILE="/tmp/chsshtmp"
- ROLL_FILE_NAME="$CHKSSHIP_LOG_DIR/output"
- LAST_FILE_NAME="$CHKSSHIP_LOG_DIR/lastfilename"
- if [ ! -d $CHKSSHIP_LOG_DIR ]; then
- mkdir $CHKSSHIP_LOG_DIR
- fi
- if [ -f $LAST_FILE_NAME ] && [ $(wc -l $LAST_FILE_NAME|awk '{print $1}') != 0 ]; then
- for ip in `cat $LAST_FILE_NAME` ; do
- $IPTABES_FILE -D INPUT -s $ip -j DROP
- done
- fi
- awk '/Failed/ {print $13}' $SECURE_FILE_NAME | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | sort -n | uniq -c >>$TEMP_FILE
- awk '{ if ( $1>4 ) print $2 }' $TEMP_FILE >$LAST_FILE_NAME
- echo "$OUT_TIME" >> $ROLL_FILE_NAME
- sort -rn $TEMP_FILE >>$ROLL_FILE_NAME
- rm -rf $TEMP_FILE
- for ip in `cat $LAST_FILE_NAME` ; do
- $IPTABES_FILE -A INPUT -s $ip -j DROP
- done
复制代码 |
|