手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:uis2000

转:如何封杀尝试Raspberry Pi SSH密码的来源IP

标题是标题,但其实讲的内容当然是不一定只是在树梅的设备上用的。不要太纠结于表面,我不改标题是为了尊重原作者

原文来自于hugo zhu的网站:http://hugozhu.myalert.info/2013/03/08/block_failed_ssh_attempts_with_iptable.html,看了他的名字,你也可以猜出他的微博定就是http://weibo.com/hugozhu。OK,不扯蛋,上原文:

Raspberry Pi整天开着,如果用缺省SSH端口对外开放,就会经常遇到扫描SSH密码的肉鸡。虽然密码不是很简单,但还是感觉很不安全的。

系统的ssh登录日志文件在:/var/log/auth.log,登录失败时会记录以下格式的日志:

  1. Mar 7 10:31:51 raspberrypi sshd[24510]: Failed password for root from 221.8.19.129 port 4066 ssh2
  2. Mar 7 10:31:55 raspberrypi sshd[24514]: Failed password for root from 221.8.19.129 port 4079 ssh2
  3. Mar 7 10:31:56 raspberrypi sshd[24518]: Failed password for sshd from 221.8.19.129 port 4080 ssh2
  4. Mar 7 10:32:26 raspberrypi sshd[24522]: Failed password for sshd from 221.8.19.129 port 4149 ssh2

用最简单的Shell脚本来解决这个问题:

guard.sh

  1. #!/bin/bash
  2.  
  3. last_ip=""
  4. tail -f /var/log/auth | while read LINE; do
  5. {
  6. if [[ "${LINE}" =~ "Failed" ]]; then
  7. ip="$(echo ${LINE} | awk '{print $(NF-3)}')"
  8. if [[ "$last_ip" == "$ip" ]]; then
  9. echo "block $ip"
  10. #curl -s --data-ascii "uuid=<my iphone's uuid>" --data "body=${LINE}" http://raspberrypi/pushme
  11. iptables -A INPUT -s "$ip" -j DROP
  12. fi
  13. last_ip=$ip
  14. echo $LINE
  15. fi
  16. }
  17. done

用root用户执行以下命令,也可以放到启动脚本里:/etc/rc.local

  1. nohup /root/bin/guard.sh > /var/logs/guard.log 2>&1 &

如果连续两次输错密码,那ip就会被封,我另外加了一个报警,会通知到我的手机,这下感觉安全了些。

登录Pi用iptables -L可以看到被封杀的IP列表,如果需要解封这些IP,可以用命令iptables -F,也可以用crontjob每天定时运行一次iptables -F来清除

脚本还很简单,还可以有不少改进,可以在评论里讨论。

---EOF---

越来越发现,sablog需要改版了。再不改。alexa排名下降不说,最关键的是,代码的显示不爽了。只是想到改版后有几千篇的文字需要一一调整就痛苦。

针对品鉴网的一些URL路由设置

这篇文章又能当成开发文档,也能当成软文,所以,你们就将就着看吧。

yii框架中很早就支持路由功能了。所以,从那时候开始,很多人就开始将项目路由化,举例说明:
http://user.pinjian.net,访问用户中心
http://admin.pinjian.net 访问后台
http://xxxx.pinjian.net 访问Xxx
表面上这是一大堆 网站,其实很有可能是什么?只是一个控制器或者一个module罢了。
http://user.pinjian.net可能对应了什么?http://pinjian.net/user/index,很有可能就这样而已。
而对于yii来说,这个太简单了
在main.php(环境 变量设置中),针对urlManager的rules加入:

PHP代码
  1. 'urlManager' => array(  
  2.     'urlFormat' => 'path',  
  3.     'showScriptName'=>false,  
  4.     'rules' => array(  
  5.         'http://photo.pinjian.net/<action:\w+>'=>'image/<action>',  
  6.         '<controller:\w+>/<id:\d+>' => '<controller>/view',  
  7.         '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',  
  8.         '<controller:\w+>/<action:\w+>' => '<controller>/<action>',  
  9.     ),  
  10. ),  

看看高亮的那一行,是不是很简单?
之前,有一篇博客介绍过的:http://www.neatstudio.com/show-1550-1.shtml,还篇比较详细

Tags: yii