LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1365|回复: 2

HOWTO Protect SSHD with Swatch(如何使用swatch来保护你的sshd之实现步骤)

[复制链接]
发表于 2006-6-2 08:00:11 | 显示全部楼层 |阅读模式
我的解决办法是使用swatch和iptables结合.

到网上找一找swatch有很多相关文章.

注意,安装swatch时需要很多类如
Time::HiRes
Date::Calc
Date::Format
File::Tail
Date:arse
之类的东东,

这些都是Perl的可选模块,请用以下方法安装(有些模块在yum里面找不到)
perl -MCPAN -e "shell"
install Some::Module

这些必要的模块安装好了以后再到

rpm.phone.net上找与你的OS对应的swatch安装程序(RPM格式)

安装时加-nodeps参数,

安装好以后再进行设置,设置中发现有人恶意登陆还可以给自己发邮件呢.

我现在的设置是当用户通过ssh登陆一次不成功就立即添加到防火墙,所以以后自己登陆时要小心.!

以下是我的设置:



  1. # Global swatch filter file

  2. # To ignore a IP-range
  3. # ignore /216\.239\.37\./

  4. # Invalid SSH Login Attempts
  5. watchfor /(: [iI]nvalid [uU]ser )(.*)( from ::ffff:)(.*)$/
  6.         throttle threshold=3,delay=0:1:0,key=$4
  7.         mail addresses=xxx\@vip.sina.com,subject="SSH:\ Invalid\ User\ Rule1\ $4"
  8.         exec "/sbin/iptables -A swatch_rejects -s $4 -j DROP"

  9. # Failed SSH Login Attempts
  10. watchfor /(: [fF]ailed password for )(.*)( from ::ffff:)(.*)( port )(.*)$/
  11.         throttle threshold=3,delay=0:1:0,key=$4
  12.         mail addresses=xxxx\@vip.sina.com,subject="SSH:\ Invalid\ User\ Rule2\ $4"
  13.         exec "/sbin/iptables -A swatch_rejects -s $4 -j DROP"

  14. # Invalid SSH Login Attempts. Another one - just formed differently
  15. # watchfor /([aA]uthentication [fF]ailure; logname)(.*)(rhost=)(\d+\.\d+\.\d+\.\d+)(.*)$/
  16. #        throttle threshold=3,delay=0:1:0,key=$4
  17. #        mail addresses=xxxx\@vip.sina.com,subject="SSH:\ Invalid\ User\ Rule3\ $4"
  18. #        exec "/sbin/iptables -A swatch_rejects -s $4 -j DROP"

复制代码



然后在/etc/rc.d/rc.sysinit中添加
# /usr/bin/swatch --tail-file=/var/log/messages --tail-args='--follow=name --lines=1' --config-file=/etc/swatch/ssh-swatch.conf --pid-file=/var/run/swatch.pid --daemon
或者使用下面的服务启动:


  1. #!/bin/bash
  2. #
  3. # swatch           This shell script enables the automatic use of YUM
  4. #
  5. # Author:       Seth Vidal <skvidal@phy.duke.edu>
  6. #
  7. # chkconfig:    2345 11 91
  8. #
  9. # description:  Enable daily run of yum, a program updater.
  10. # processname:  swatch
  11. # config: /etc/swatch/ssh-swatch.conf

  12. pid=`/bin/ps -e -o cmd,pid | /bin/grep ^swatch | /bin/awk '{print $2}'`

  13. case "$1" in
  14. 'start')
  15. # start the swatch process

  16. if [ "$pid" != "" ];
  17. then
  18. echo 'Swatch System is already initialized.'
  19. exit 0
  20. fi
  21. if [ -f /usr/bin/swatch -a -f /etc/swatch/ssh-swatch.conf ];
  22. then /usr/bin/swatch --config-file=/etc/swatch/ssh-swatch.conf --tail-file=/var/log/messages --tail-args='--follow=name --lines=1' --pid-file=/var/run/swatch.pid --daemon &
  23. exit
  24. fi
  25. echo 'Swatch System startup complete.' ;;
  26. 'stop')

  27. #stop all swatch processes
  28. if [ "$pid" != "" ];
  29. then kill -TERM $pid
  30. ##/usr/bin/killall tail
  31. echo 'Swatch System shutdown complete.'
  32. else
  33. echo 'No Swatch System initialized.'
  34. fi ;;
  35. *)
  36. echo "Usage: /etc/init.d/swatch { start | stop }" ;;
  37. esac

复制代码



你就大功告成啦............................



参考网址:
http://gentoo-wiki.com/HOWTO_Protect_SSHD_with_Swatch

http://www.trustix.org/wiki/index.php/Swatch



预祝你的LINUX愉快之旅!!!
 楼主| 发表于 2006-6-2 08:12:45 | 显示全部楼层

另外,还可以给自己发邮件的还有一个地方

/etc/log.d/logwatch.conf中的Mailto:

改成自己的外网邮箱,就可以每天收到系统日志,不用登陆服务器也可以掌握服务器的运行情况啦.

我的机器还运行了jboss,在$JBOSS_HOME/server/all/conf/log4j.xml中更改以下参数

  1.    <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
  2.      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
  3.      <param name="Threshold" value="ERROR"/>
  4.      <param name="To" value="xxx@vip.sina.com"/>
  5.      <param name="From" value="root@xxx.cn"/>
  6.      <param name="Subject" value="JBoss Sever Errors"/>
  7.      <param name="SMTPHost" value="localhost"/>
  8.      <param name="BufferSize" value="10"/>
  9.      <layout class="org.apache.log4j.PatternLayout">
  10.        <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
  11.      </layout>
  12.    </appender>
复制代码


当JBOSS有错误时也会给自己发邮件啦.

另外在这里发个广告:
我的服务器提供虚拟主机服务,想要服务器空间的请联系,服务器情况如下:

位置:北京
操作系统CentOS4.3
运行apache+jboss4.0.3+ejb3+jsf+mysql4

不考虑运行其他任何框架及技术,合作者的应用必需是成熟的,无错的.

合作的前一个月如果出现10次错误则中止使用.

可能有不合理之处,有意者请与我联系:

MSN:caigao at hotmail dot com
maiL: yicry at 21cn dot com
回复 支持 反对

使用道具 举报

发表于 2006-6-2 10:20:58 | 显示全部楼层
不错,谢谢!

我一直懒得去想 swatch 的那些条件怎么写。现在有现成的抄了。。。

PS. 你说的 EJB3,是指标准吧,具体的 App Server 还是 JBoss。
回复 支持 反对

使用道具 举报

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

本版积分规则

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