公司有台服务器被坏人盯上了,通过日志可以看到一直在做暴力破解ssh。

防止服务器被暴力破解使用DenyHosts

参考链接:

  1. 防止ssh破解,Ubuntu安装denyhosts的一些问题
  2. 防止你的sshd被暴破

如何检查服务器的工具集是否被替换

浅谈Linux被入侵后,如何检查后门

参考链接
浅谈Linux被入侵后,如何检查后门

防止ssh破解,Ubuntu安装denyhosts的一些问题 (2013-04-11 10:26:46)转载▼
DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

使用root的安装,普通用户添加sudo,要不权限不够

(1)下载软件安装包
wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
(2)解压
tar -zxvf DenyHosts-2.6.tar.gz
(3)安装
cd DenyHosts-2.6
python setup.py install
(会输出一堆信息,留意一下denyhosts.py的路径,后面启动的时候或许会用上)

(4)为了能开机自动启动,在系统中做一个名为“denyhosts”的符号链接,然后添加到启动项中:
ln -s /usr/share/denyhosts/daemon-control-dist /etc/init.d/denyhosts
chkconfig –add denyhosts
(5)
到 /usr/share/denyhosts/ 目录下,将配置文件denyhosts.cfg-dist复制为一个新的配置文件
cd /usr/share/denyhosts
cp denyhosts.cfg-dist denyhosts.cfg

修改配置文件:
vim /usr/share/denyhosts/denyhosts.cfg
sshd 登录日志文件。不同系统的不一样
SECURE_LOG = /var/log/auth.log

限制主机访问的文件
HOSTS_DENY = /etc/hosts.deny

移除 HOSTS_DENY 中超过以下时间的旧条目
PURGE_DENY = 1w
ps:过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟

阻止的服务。默认是 sshd ,可以设置为其他或全部。
BLOCK_SERVICE = sshd

当该主机利用无效用户进行登录尝试失败超过以下的次数时,阻止该主机
DENY_THRESHOLD_INVALID = 3

针对有效用户的
DENY_THRESHOLD_VALID = 4

最多允许root登录失败多少次
DENY_THRESHOLD_ROOT = 3

DenyHosts 用于写数据用的。在里面可以看到 hosts,hosts-root,offset,users-hosts,users-valid,hosts-restricted,hosts-valid,suspicious-logins,users-invalid 这些记录。
WORK_DIR = /var/lib/denyhosts

邮箱设置

是否做域名反解析
HOSTNAME_LOOKUP=NO

用来接收报警信息的邮箱
ADMIN_EMAIL = xxx@163.com

smtp服务器地址,当你需要DenyHosts发邮件给你报警的时候,要设置这个参数
SMTP_HOST = smtp.163.com

smtp服务器端口
SMTP_PORT = 25

登录邮箱帐户的用户名
SMTP_USERNAME=usr

登录邮箱帐户的密码
SMTP_PASSWORD=pas

邮件中的发件人信息
SMTP_FROM = DenyHosts

报警邮件的标题
SMTP_SUBJECT = DenyHosts Report

其他的基本上不用改了

(6)启动服务

/etc/init.d/denyhosts start

(从输出的信息来看,这种启动方法实际上是调用了如下的命令:

/usr/bin/denyhosts.py –daemon –config=/usr/share/denyhosts/denyhosts.cfg

可见,它使用的配置文件是/usr/share/denyhosts/denyhosts.cfg ,这也是为什么我们在上面的步骤中要把默认的配置文件复制为一个新的配置文件“denyhosts.cfg”的原因了。)

启动时若显示:python: can't open file '/usr/bin/denyhosts.py': [Errno 2] No such file or directory

解决方法:拷贝/usr/local/bin/denyhosts.py 到/usr/bin下

cp /usr/local/bin/denyhosts.py /usr/bin

或许修改启动文件 /usr/share/denyhosts/daemon-control-dist 的DENYHOSTS_BIN值

DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"

(7)测试:

从另一台服务器上,以一个不存在的用户名和密码来ssh登录部署了的DenyHosts服务器,如果你在DenyHosts的配置文件中设置的是错误地尝试一次就被block,那么你就会发现你这台登录的客户端服务器被block了。并且,在部署了DenyHosts的服务器上,查看文件/etc/hosts.deny 的内容,会发现多了一条记录,正是屏蔽了登录者的那一条记录,这就说明生效了

(8)备注:

如果一台服务器被误block了,可以在部署DenyHosts的服务器上,将文件 /etc/hosts.deny 中相应的条目删掉,再重启DenyHosts服务(/etc/init.d/denyhosts restart),就可以解除block了

防止服务器被暴力破解使用DenyHosts的更多相关文章

  1. 使用 fail2ban 防御 SSH 服务器的暴力破解攻击

    对于SSH服务的常见的攻击就是暴力破解攻击——远程攻击者通过不同的密码来无限次地进行登录尝试.当然SSH可以设置使用非密码验证验证方式来对抗这种攻击,例如公钥验证或者双重验证.将不同的验证方法的优劣处 ...

  2. 入门系列之使用fail2ban防御SSH服务器的暴力破解攻击

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由SQL GM发表于云+社区专栏 介绍 对于SSH服务的常见的攻击就是暴力破解攻击--远程攻击者通过不同的密码来无限次地进行登录尝试.当 ...

  3. 【Linux笔记】阿里云服务器被暴力破解

    一.关于暴力破解 前几天新购进了一台阿里云服务器,使用过程中时常会收到“主机被暴力破解”的警告,警告信息如下: 云盾用户您好!您的主机:... 正在被暴力破解,系统已自动启动破解保护.详情请登录htt ...

  4. fail2ban[防止linux服务器被暴力破解]

    一 介绍fail2ban fail2ban 可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH. SMTP.FTP密 ...

  5. Linux 利用hosts.deny 防止暴力破解ssh

    一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7 ...

  6. 暴力破解FTP服务器技术探讨与防范措施

    暴力破解FTP服务器技术探讨与防范措施 随着Internet的发展出现了由于大量傻瓜化黑客工具任何一种黑客攻击手段的门槛都降低了很多但是暴力破解法的工具制作都已经非常容易大家通常会认为暴力破解攻击只是 ...

  7. Linux应急响应(一):SSH暴力破解

    0x00 前言 ​ SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全.SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包 ...

  8. 13.DoS防御----BeEF浏览器渗透----暴力破解之美杜莎---DNS指南

    DoS防御 启用ICMP,UDP,TCP泛洪过滤 登录路由器管理后台 高级-安全部分 BeEF浏览器渗透 用kali进行客户端攻击 钓鱼攻击 打开beef 浏览器打开beef cd /usr/shar ...

  9. sshd服务器搭建管理和防止暴力破解

    1.1 Linux服务前期环境准备,搭建一个RHEL7环境 1.2 sshd服务安装-ssh命令使用方法 1.3 sshd服务配置和管理 1.4 防止SSHD服务暴力破解的几种方式 1.1 Linux ...

随机推荐

  1. 如何利用PhoneGap制作地图APP

    摘要:百度地图API是一套由javascript编写的地图程序接口,按说它应该运行在浏览器上.现在,只要利用PhoneGap,我们就能开发出移动平台上能使用的APP了! --------------- ...

  2. TP复习8

    ## ThinkPHP 3.1.2 视图#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组 ...

  3. Java对证书的操作

    1 Java程序从证书文件读取证书 import java.io.*; import java.security.cert.*; public class PrintCert{ public stat ...

  4. 在Android上使用ZXing识别条形码/二维码

    越来越多的手机具备自动对焦的拍摄功能,这也意味着这些手机可以具备条码扫描的功能.......手机具备条码扫描的功能,可以优化购物流程,快速存储电子名片(二维码)等. 本文使用ZXing 1.6实现条码 ...

  5. Viewport解决分辨率适配问题

    Viewport :   字面意思为视图窗口,在移动 web 开发中使用.表示将设备浏览器宽度虚拟成一个特定的值(或计算得出),这样利于移动 web 站点跨设备显示效果基本一致.   基本写法: &l ...

  6. 锁大全与 GDB调试

    1.innodb_lock_monitor:打开锁信息的方式 mysql> create table innodb_lock_monitor(id int) engine=InnoDB; Que ...

  7. iOS抗锯齿的方式

    iOS开发中,有时候展示图片等内容的时候,会出现锯齿.比如笔者最近使用 iCarousel 控件的Cover flow效果来展示几幅图片时,两侧的图片出现了较为严重的锯齿,着实不好看.这里列出两个方式 ...

  8. 代码片段 - Golang 创建 .tar.gz 压缩包

    Golang创建 .tar.gz 压缩包 tar 包实现了文件的打包功能,可以将多个文件或目录存储到单一的 .tar 文件中,tar 本身不具有压缩功能,只能打包文件或目录: import " ...

  9. mysql分表研究

    分表是分散数据库压力的好方法. 分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库. 当然,首先要知道什么情况下,才需要分表.个人觉得单表记录条数达到百万到千万 ...

  10. 向linux内核版本号添加字符/为何有时会自动添加“+”号

    转载:http://blog.csdn.net/adaptiver/article/details/7225980 1.   引子 编译2.6.35.7 kernel版本的时候发现,“2.6.35.7 ...