免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4952 | 回复: 10
打印 上一主题 下一主题

在find下/ var/ log /messages出现三次以上ssh faild 就自动关闭端口 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-22 09:08 |只看该作者 |倒序浏览
10可用积分
如题,小弟不太懂shell,但是我们服务器每天都被人连接,所以想办法尽力避免危险,谢谢高手帮忙,顺便问下,如果想做到有人想连接我其他的端口和测试密码,我应该怎么写才可以拒绝 也是出现3次以上的连接后自动关闭端口拒绝,谢谢各位大虾

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2007-11-22 09:14 |只看该作者
meybe iptables(8) can help you.

论坛徽章:
0
3 [报告]
发表于 2007-11-22 09:17 |只看该作者
原帖由 MMMIX 于 2007-11-22 09:14 发表
meybe iptables( can help you.

版主的意思是用iptables帮助?

论坛徽章:
0
4 [报告]
发表于 2007-11-22 09:20 |只看该作者
原帖由 MMMIX 于 2007-11-22 09:14 发表
meybe iptables( can help you.

版主的意思是让我用iptables写么。。回答下啦~

论坛徽章:
0
5 [报告]
发表于 2007-11-22 16:30 |只看该作者
用firewall吧!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2007-11-23 09:07 |只看该作者

回复 #4 tingfengmanbu 的帖子

iptables 也许会有用。已经很久没有接触过这个了。

论坛徽章:
0
7 [报告]
发表于 2007-11-23 10:55 |只看该作者

论坛徽章:
0
8 [报告]
发表于 2007-11-23 22:31 |只看该作者
倒是以前写过这样的脚本,我发上来吧,你看下,但是效率比较底,不过,你要实施的时候最好给自己留条后路,否则。。。。


  1. #!/bin/bash

  2. ######################################################################
  3. #This scripts is for check the sshd server ,version 0.1 Bate
  4. #write by finddream
  5. #if you have some advise,you can give me a mail:finddream863@163.com
  6. ######################################################################

  7. #setup the local language is english

  8. export LANG=en

  9. #setup the around file path

  10. SSHD_LOG=/var/log/secure
  11. SSHD_FAILED_FILE=/root/ssh_faild.txt
  12. FAILED_WORDS="Failed password"
  13. IPTABLES_RULE=/etc/sysconfig/iptables

  14. #setup the around command path

  15. CAT=/bin/cat
  16. GREP=/bin/grep
  17. AWK=/bin/awk
  18. UNIQ=/usr/bin/uniq
  19. IPTABLES=/sbin/iptables
  20. ECHO=/bin/echo
  21. SLEEP=/bin/sleep
  22. TOUCH=/bin/touch
  23. SORT=/bin/sort
  24. SERVICE=/sbin/service

  25. #setup the ssh failed count

  26. SSH_FAILED_COUNT=3
  27. SSHD_PORT=22
  28. DATE_MONTH=`date +%b`
  29. DATE_DAY=`date +%d`

  30. #check the sshd log

  31. if [ -e $SSHD_LOG ]
  32. then
  33.         $ECHO "The sshd log is exits!"
  34. else
  35.         $ECHO "The sshd log is not exits,please check you OS!"
  36.         exit 1
  37. fi

  38. #check the sshd failed file

  39. if [ -e $SSHD_FAILED_FILE ]
  40. then
  41.         $ECHO "The sshd failed file is exits!"
  42. else
  43.         $ECHO "The sshd failed file is not exits,OS will touch it............"
  44.         $SLEEP 3
  45.         $TOUCH $SSHD_FAILED_FILE
  46. fi

  47. #check the sshd failed IP

  48. $CAT $SSHD_LOG |$GREP "$FAILED_WORDS"|$GREP "\<$DATE_MONTH\>"|$GREP "\<$DATE_DAY\>" |$AWK -F " " '{print $11}' |$AWK -F ":" '{print $4}' |$SORT|$UNIQ -c > $SSHD_FAILED_FILE

  49. #if the ssh failed beyond the sshd_failed_count,OS will DROP it

  50. while read COUNT IP
  51. do
  52.         if [ $COUNT -ge $SSH_FAILED_COUNT ]
  53.         then
  54.                 $GREP "\-A\ INPUT\ \-s\ $IP\ \-p\ tcp \-m\ tcp\ \-\-dport\ SSHD_PORT\ \-j\ DROP" $IPTABLES_RULE
  55.                 if [ $? -ne 0 ]
  56.                 then
  57.                         $IPTABLES -t filter -A INPUT -s $IP -p tcp -m tcp --dport $SSHD_PORT -j DROP
  58.                         $SERVICE iptables save
  59.                 else
  60.                         $ECHO "the rule is exits!"
  61.                 fi
  62.         else
  63.                 echo "   "
  64.         fi
  65. done < $SSHD_FAILED_FILE

  66. exit 0
复制代码

论坛徽章:
0
9 [报告]
发表于 2007-11-26 13:09 |只看该作者
看呆啦
楼上的大哥能不能告诉小弟一下
SSH_FAILED_COUNT=3
只要将这一行的数字改了就可以实现限制N次SSH吗?

论坛徽章:
0
10 [报告]
发表于 2007-11-26 15:10 |只看该作者
其实没必要用脚本来限制,最好是建立一个用来远程登录的用户,然后配置只允许该用户远程登录。这个你搜索下,方法很多的。

一般的限制方法,如果是只限制root用户登录,直接在sshd.conf配置就可以了。
但是这样的话,还会来猜测你的常用用户名,如果你直接就配置指定的用户名才可以登录,就需要猜对你的用户名和密码,基本上很难进行穷举攻击了。这个需要使用pam模块,网上相关的文档很多,你留心找下就好了。

从理论上来说,这样还是不足够安全的,因为可以实行中间人攻击。但是如果采用密钥登录的方式来避免中间人攻击,又会给管理带来不方便。而且中间人攻击的实施也不是很容易的,所以如何取舍就看你们的数据重要性,公司的规范化程度了。

或许是有通过使用脚本来限制的情况的,不过正如8楼所说的。效率不高,因为一般的安全日志是很长的。读文件会一定程度上影响效率。

给楼主建议:
使用密钥方式登录 or  限制连接ip  or  限制连接用户
(意思就是第一个不行就第二个,第二个不行就第三个)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP