shadowsocks自动Ban掉尝试暴力的IP
本文最后更新于 2699 天前,其中的信息可能已经有所发展或是发生改变。

只说python版的 , 环境centos6.5 , 现在有一部分人 , 专门暴力破解shadowsocks , 所以不得不防 .

wget https://raw.githubusercontent.com/shadowsocks/shadowsocks/master/utils/autoban.py
\cp autoban.py ~/

## 复制到家目录 , 可以更改 , 那下面路径相应得也需要更改

easy_install argparse

## 安装Python库 因为有些Python版本比较低 , 如 : 2.6.6就没有这个库

vim /etc/supervisord.conf

## 编辑这个文件加入下面三行

log_stdout=true                                   ## 开启标准输出到log功能
log_stderr=true                                   ## 开启错误输出到log功能
logfile=/var/log/shadowsocks.log                  ## log存放路径

vim /etc/rc.local

## 编辑这个文件加入下面两行 实现开机自启

python ~/autoban.py < /var/log/shadowsocks.log         ## 读取/var/shadowsocks.log
nohup tail -F /var/log/shadowsocks.log | python ~/autoban.py 1>/dev/null 2>&1 &                                                               ## 实时检查日志

整个过程是这样 : 当有人试图连接shadowsocks 如果出现错误 , /var/log/shadowsocks.log 就会记录下来 , 错误如果超过 3 次 autoban.py 脚本就会利用 iptables 防火墙把这个IP DROP掉 , 所以这个日志非常重要 , 一定要日志输出 , 在日志中主要匹配的是这一句关键词 : can not parse header when

当然 , 还可以加一点额外得功能 , 比如在自动Ban掉某个IP的同时 , 自动发邮件通知自己 , 本来想写一个shell脚本的 , 后来发现还是太麻烦了 , 仔细一看python脚本 , 利用了os.system函数执行了iptables命令来DROP掉IP , 那么干脆直接在后面加上几句 , 发现邮件的命令的命令就行了.后来测试了一下 , 完全没问题 .

具体的步骤是 , centos 6.5 默认就是mail 命令 ,虽然不知道这个命令属于哪个包 , 不需要搭建邮件服务器 , 没有必要而且太麻烦 , 在终端输入which mail 看一下有没有这个命令 . 如果有那就OK , 没有的话就去搭建吧 . 去Google

vim vim /etc/mail.rc

## 编辑这个文件 ,  加入下面4行

set [email protected]                               ## 用户名
set smtp=smtp://smtp.163.com:25                     ## SMTP邮件服务器
set [email protected]                     ## 用户名
set smtp-auth-password=password                     ## 密码

然后可以在终端输入 : mail -s “zhuti” 123456.com <mail.log  来测试一下能不能收 , 163的发送 , QQ收 测试正常 , 其它邮箱未测试

vim ~/autoban.py

## 编辑这个文件并做如下修改

Code :

cmd = 'iptables -A INPUT -s %s -j DROP' % ip     ## 这个是原有的代码 , 把新增加的代码加入到后面
cmd1 = 'echo "Dear Xiao : " >>./tmp.log'       ## cmd1到cmd5都是新增加的 , 主要功能就是创建一个tmp.log的文件 , 作为发送邮件的内容 , 自定义 , 还有接受邮件的邮箱号
cmd2 = 'echo "" &amp;&amp; echo " Unknown ip is trying to brute force your shadowsocks" >>./tmp.log'
cmd3 = 'echo "" &amp;&amp; echo " IP is rejected : %s" >>./tmp.log' % ip
cmd4 = 'echo "" &amp;&amp; echo " Time is rejected : `date`" >>./tmp.log'
cmd5 = 'mail -s "Please note that the warning from the vps" [email protected] <./tmp.log'
print(cmd, file=sys.stderr)
os.system(cmd)
os.system(cmd1)                                   ## 下面也要增加cmd1到cmd5
os.system(cmd2)
os.system(cmd3)
os.system(cmd4)
os.system(cmd5)

此方法只适用于python版的shadowsocks ,  当然以上的python代码可以写得更加优雅一点 , 但是关键我不会啊 , 本来还想多家点功能 , 暂时这样吧

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇