LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: bobkey

彻底封杀sshd 的致命诱惑

[复制链接]
 楼主| 发表于 2006-12-20 17:23:21 | 显示全部楼层
Post by stanlogin
LoginGraceTime 非常重要,设置长点就很安全了。如果再加上自动屏蔽IP,暴力破解基本没威胁了。
PermitRootLogin 一定要NO,必要时用低级用户登陆然后SU ROOT

还有你说的MAC绑定


要考虑相对的“通用性”,所以不能很绝对的去限制管理员,只能从抵制恶意方面入手更佳。
回复 支持 反对

使用道具 举报

发表于 2006-12-20 18:11:53 | 显示全部楼层
以下是我使用的代码
  1. #!/bin/bash
  2. # By Kevin Zou 2005.11.23
  3. SECURE_FILE_NAME="/var/log/secure"
  4. CHKSSHIP_LOG_DIR="/var/log/chksship"
  5. IPTABES_FILE="/sbin/iptables"
  6. OUT_TIME=`date +%F-%H-%M`
  7. TEMP_FILE="/tmp/chsshtmp"
  8. ROLL_FILE_NAME="$CHKSSHIP_LOG_DIR/output"
  9. LAST_FILE_NAME="$CHKSSHIP_LOG_DIR/lastfilename"
  10. if [ ! -d $CHKSSHIP_LOG_DIR ]; then
  11.            mkdir $CHKSSHIP_LOG_DIR
  12. fi
  13. if [ -f $LAST_FILE_NAME ] && [ $(wc -l $LAST_FILE_NAME|awk '{print $1}') != 0  ]; then
  14.         for ip in `cat $LAST_FILE_NAME` ; do
  15.                     $IPTABES_FILE -D INPUT -s $ip -j DROP
  16.         done
  17. fi
  18. 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
  19. awk '{ if ( $1>4 ) print $2 }' $TEMP_FILE >$LAST_FILE_NAME
  20. echo "$OUT_TIME" >> $ROLL_FILE_NAME
  21. sort -rn  $TEMP_FILE >>$ROLL_FILE_NAME
  22. rm -rf $TEMP_FILE
  23. for ip in `cat $LAST_FILE_NAME` ; do
  24.         $IPTABES_FILE -A INPUT -s $ip -j DROP
  25. done
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-12-20 18:28:38 | 显示全部楼层
主机的防DOS设置还是有必要的,我已经进行过测试,效果还是不错---------那是你的ddos工具,太单一,效果太差,dos方法根据协议有很多,大多数在 3 4层。现在人研究出了用7层协议的漏洞,用来dos,如dns攻击,针对linux的也有很多,甚至是针对某种防火墙的。

在IPTABLES里加个MAC地址的SSH登陆限制,---------mac地址 过不了路由器 ,只能在局域网里面折腾。

前面限制密码长度一大段,时间,也必 shh2效果差很多,

总之 并没有全局考虑,架构不行,堆积起来的系统难免如此。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-21 09:43:17 | 显示全部楼层
kissingwolf 异曲同工啊。这段代码这么运行呢?也是用crond吗?如果是这样是否会造成IPTABLES链条臃肿,因为会增加重复的规则。
我是在加之前用 iptables -F 刷掉原来的。这样不是最好的方法。
最好的是比较现有的规则,存在则不增加了。
回复 支持 反对

使用道具 举报

发表于 2006-12-21 09:50:47 | 显示全部楼层
Post by bobkey
kissingwolf 异曲同工啊。这段代码这么运行呢?也是用crond吗?如果是这样是否会造成IPTABLES链条臃肿,因为会增加重复的规则。
我是在加之前用 iptables -F 刷掉原来的。这样不是最好的方法。
最好的是比较现有的规则,存在则不增加了。


是在cron里运行的,我一般会定5分钟的频率,关于臃肿的问题,我在脚本里有处理,不会有重复规则出现,并且可以保持其他预定义的规则!
如果你用iptables -F , 预定义规则也会被清除!
回复 支持 反对

使用道具 举报

发表于 2006-12-21 13:15:35 | 显示全部楼层
iptables还可以用-m recent来对付不断ssh的ip
回复 支持 反对

使用道具 举报

发表于 2007-1-31 16:52:11 | 显示全部楼层
谢谢,看了你的文章很受益
回复 支持 反对

使用道具 举报

发表于 2007-2-26 11:56:37 | 显示全部楼层
喜欢这样的安全文章并且共享出相关工具
回复 支持 反对

使用道具 举报

发表于 2007-5-15 15:35:00 | 显示全部楼层
非常精典......精华.
回复 支持 反对

使用道具 举报

发表于 2007-5-17 15:05:35 | 显示全部楼层
写的很好,努力学习!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表