自动ban掉对web服务进行暴力扫描的ip

守护女神

自动ban掉对web服务进行暴力扫描的ip

# cat auto_block_ip.sh
#!/bin/bash

# 定义日志目录路径
LOG_DIR="/var/log/apache2"

# 获取当前时间减去10分钟的时间戳
TEN_MINUTES_AGO=(date -d "10 minutes ago" "+%d/%b/%Y:%H:%M:%S")

# 临时文件用于存储需要阻止的IP地址及其计数
TEMP_FILE=(mktemp)

# 遍历日志目录中的所有日志文件
for LOG_FILE in "LOG_DIR"/*.log; do
    # 检查文件是否存在且是普通文件
    if [[ -f "LOG_FILE" ]]; then
        # 使用awk处理日志文件,找出所有在最近10分钟内的404响应
        # 并按IP地址统计次数
        awk -v date="TEN_MINUTES_AGO" '
        BEGIN { FS=" "; OFS="\t"; }4 >= date && 9 == "404" {
            ip =1;
            count[ip]++;
        }
        END {
            for (ip in count) {
                if (count[ip] > 100) print ip, count[ip];
            }
        }' "LOG_FILE" >> "TEMP_FILE"
    fi
done

# 读取临时文件并使用ufw进行阻止
while IFS='\t' read -r ip count; do
    echo "Blocking IP:ip with count 404 responses."
    sudo ufw insert 2 deny fromip
done < "TEMP_FILE"

# 删除临时文件
rm -f "TEMP_FILE"

javascript 判断是否移动终端

 

<HTML>
<HEAD>
<TITLE> 判断是否移动终端 </TITLE>
<script type="text/javascript">
var browser={
versions:function(){
var u = navigator.userAgent, app = navigator.appVersion;
return {
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
};
}()
}

document.writeln("<br> 是否为移动终端: "+browser.versions.mobile);
document.writeln("<br> ios终端: "+browser.versions.ios);
document.writeln("<br> android终端: "+browser.versions.android);
document.writeln("<br> 是否为iPhone: "+browser.versions.iPhone);
document.writeln("<br> 是否iPad: "+browser.versions.iPad);
document.writeln("<br>"+navigator.userAgent);
</script>
</HEAD>

<BODY>
<br>
hi world !
</BODY>
</HTML>

 

 

第二种:
 

 

<HTML>
<HEAD>
<TITLE> 22222222222 </TITLE>

<script>
function uaredirect(murl){
try {
if(document.getElementById("bdmark") != null){
return;
}
var urlhash = window.location.hash;
if (!urlhash.match("fromapp")){
if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) {
location.replace(murl);
}
}
} catch(err){}
}
</script>
<script type="text/javascript">uaredirect("http://m.baidu.com");</script>
</HEAD>

<BODY>
wowo
</BODY>
</HTML>

一段测试用定时触发的用户脚本

window.setInterval(function() {
///////开始
var RunTime = '2012/11/18 09:59:57';
var d2=new Date();
var d1 = new Date(Date.parse(RunTime));
if(d1<d2)
{
//定时运行 Runing

window.setInterval(function() {
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();

var url ="http://www.google.com/index.asp";

var tempString = "param1=xxx&param2=zzz";
var queryString = encodeURI(encodeURI(tempString));
//防止乱码
xmlHttp.open("POST",url);
xmlHttp.onreadystatechange = function() { return; };
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(queryString);
}, 30); ///定时循环 毫秒

}
else
{
//Waiting
var ShowDiv = document.getElementById("halftime2");
ShowDiv.innerHTML = "Waitng:"+ Math.round((d1.getTime() - (new Date()).getTime() )/1000);
}
/////////结束
}, 1); ///定时循环 毫秒

wordpress 使用smtp插件发送邮件

1:

打开/wp-includes/class-phpmailer.php填写你的邮箱参数。

var $Mailer = ‘smtp’; //设置发现方式为smtp
var $Host = ‘smtp.qq.com’; //邮箱的SMTP服务器地址
var $Port = 465; //SMTP邮件发送端口。一般默认为25。示例是开启了ssl填的465
var $SMTPSecure = “ssl”; //是否验证 ssl或tls
var $SMTPAuth = true; //开启SMTP
var $Username = ’邮箱地址’; //你的邮箱地址
var $Password = ‘密码’; //你的邮箱登陆密码
2:
然后再修改过/wp-includes/pluggable.php
phpmailer->IsMail(); 替换为:phpmailer->IsSMTP();

 

或可直接在class-phpmailer.php把 this->Mailer = ‘mail’;改成this->Mailer = ‘smtp’;

不用这么麻烦(而且我测试还没成功!),
安装插件 WP-Mail-SMTP 配置一下,就可以了!!!