Denyhosts是一个Linux系统下阻止暴力破解SSH密码的软件,它的原理与DDoS Deflate类似,可以自动拒绝过多次数尝试SSH登录的IP地址,防止互联网上某些机器常年破解密码的行为,也可以防止黑客对SSH密码进行穷举。
众所周知,暴露在互联网上的计算机是非常危险的。并不要因为网站小,关注的人少或不惹眼就掉以轻心:互联网中的大多数攻击都是没有目的性的,黑客们通过大范围IP端口扫描探测到可能存在漏洞的主机,然后通过自动扫描工具进行穷举破解。笔者的某台服务器在修改SSH 22号端口之前,平均每天接受近百个来自不同IP的连接尝试。而DenyHosts正是这样一款工具。下文将对该工具的安装与使用方法进行介绍。
DenyHosts阻止攻击原理
DenyHosts会自动分析 /var/log/secure 等安全日志文件,当发现异常的连接请求后,会自动将其IP加入到 /etc/hosts.deny 文件中,从而达到阻止此IP继续暴力破解的可能。同时,Denyhosts还能自动在一定时间后对已经屏蔽的IP地址进行解封,非常智能。
官方网站
Denyhosts的官方网站为: (杜绝Putty后门事件,谨记安全软件官网)
安装方法
1、下载DenyHosts源码并解压(目前最新版为2.6)
1 [root@www ~]# wget
2 [root@www ~]# tar zxvf DenyHosts-2.6.tar.gz
3 [root@www ~]# cd DenyHosts-2.6
2、安装部署
1 [root@www DenyHosts-2.6]# yum install python -y
2 [root@www DenyHosts-2.6]# python setup.py install
3、准备好默认的配置文件
1 [root@www DenyHosts-2.6]# cd /usr/share/denyhosts/
2 [root@www denyhosts]# cp denyhosts.cfg-dist denyhosts.cfg
3 [root@www denyhosts]# cp daemon-control-dist daemon-control
4、编辑配置文件denyhosts.cfg
1 [root@www denyhosts]# vi denyhosts.cfg
该配置文件结构比较简单,简要说明主要参数如下:
PURGE_DENY:当一个IP被阻止以后,过多长时间被自动解禁。可选如3m(三分钟)、5h(5小时)、2d(两天)、8w(8周)、1y(一年);
PURGE_THRESHOLD:定义了某一IP最多被解封多少次。即某一IP由于暴力破解SSH密码被阻止/解封达到了PURGE_THRESHOLD次,则会被永久禁止;
BLOCK_SERVICE:需要阻止的服务名;
DENY_THRESHOLD_INVALID:某一无效用户名(不存在的用户)尝试多少次登录后被阻止;
DENY_THRESHOLD_VALID:某一有效用户名尝试多少次登陆后被阻止(比如账号正确但密码错误),root除外;
DENY_THRESHOLD_ROOT:root用户尝试登录多少次后被阻止;
HOSTNAME_LOOKUP:是否尝试解析源IP的域名;
大家可以根据上面的解释,浏览一遍此配置文件,然后根据自己的需要稍微修改即可。
5、启动Denyhosts
1 [root@www denyhosts]# ./daemon-control start
如果需要让DenyHosts每次重启后自动启动,还需要:
6、设置自动启动
设置自动启动可以通过两种方法进行。
第一种是将DenyHosts作为类似apache、mysql一样的服务,这种方法可以通过 /etc/init.d/denyhosts 命令来控制其状态。方法如下:
1 [root@www denyhosts]# cd /etc/init.d
2 [root@www init.d]# ln -s /usr/share/denyhosts/daemon-control denyhosts
3 [root@www init.d]# chkconfig --add denyhosts
4 [root@www init.d]# chkconfig -level 2345 denyhosts on
第二种是将Denyhosts直接加入rc.local中自动启动(类似于Windows中的“启动文件夹”):
1 [root@www denyhosts]# echo '/usr/share/denyhosts/daemon-control start' /etc/rc.local
如果想查看已经被阻止的IP,打开/etc/hosts.deny 文件即可。
1、获取口令2、放置特洛伊木马程序3、WWW的欺骗技术4、电子邮件攻击 5、通过一个节点来攻击其他节点6、网络监听7、寻找系统漏洞8、利用帐号进行攻击9、偷取特权
可以禁止root远程登录,然后新建个账户(不常用的账户名),然后用该用户su切换到root。
可以用证书来认证
MindTerm、socat 还有 VNC,哦,天哪!虽然能够远程工作一直都是系统程序员和管理员最喜欢的 Linux 优点之一,但设置远程访问却不是一件简单的事情。 选择合适的远程服务 紧接着的第二个话题便是本篇专栏文章的主题:安全性。 您的服务器在物理上应当是被隔离的,应当禁用所有不必要的联网访问,并且只能通过 ssh 或更好的方式访问服务器。特别值得一提的是,尽可能少使用实时的 telnet 、 ftp 、 rlogin 和 rsh 以及相关服务;它们实在是太危险了。 首先,您当然应该尝试一番。程序员和管理员本可以在正常的上班时间里在自己比较安静的工作场所工作,但是他们却喜欢强迫自己突击完成这些工作,这可是出了名的。您可别让自己成为这种行为的牺牲品!确信您进行的连接具有合法的业务目的,并非违规行为。 但是,如果您过去有这些组织问题,那么连接问题的答案便是使用 ssh。即使您原则上更依赖于虚拟专用网(VPN)而非 ssh,我还是认为出现紧急情况时,如若不能使用常规方法,那么设置 ssh 访问会比较谨慎些。VPN 仍然有些难以处理,并且需要依靠特别的硬件配置。如果您是通过客户机的网络(多半是使用普通桌面机器)呼叫主机的,则您可以进行的选择是极其有限的。 ssh 满足需要 好消息是 ssh 在这些限制的夹缝之中通常还能满足需要。即使您外出办事,但在公共接入点(比如网吧),您还是可能有足够的资源使 ssh 工作。 您或许不能依赖于自己的设备。说得严重些,带着任何比手持设备大的设备到处走,是另一个安全性风险;更糟的是,许多地方不准插入外来的硬件。您通常必须使用提供给您的硬件。 但是下载 puTTY、ssh 或 MindTerm 客户机一般都很快。而且我也喜欢那样做。任何具有足够的网络栈、可以连接到您的服务器室的主机,都可能有准许进行下载的 Web 浏览器。使用已经安装好的客户机要小心;对于某些人而言,将客户机替换成经过修改的、能捕获击键信息(或更糟的情况)的客户机实在是太容易了。 另一种方式是构造嵌入了 MindTerm 客户机作为 applet 的 Web 页面,这表面上看起来挺吸引人的。而我的经验告诉自己这种方法没什么用处。大多数地方都禁用 Java、或提供只具有旧的 Java 运行时引擎(JRE)的浏览器,或者采用别的方式来降低 applet 的便利性。如果我要使用 MindTerm,则只想下载和安装该客户机以及兼容的 JRE。对于构造针对最终用户的应用程序,applet 通常是一种好技术。applet 还适合进行只读配置。但是,我发现这种用法非常少。因此,为使自己的工作具有效率,不值得花时间去解决 applet 环境中可能存在的难题。我一直觉得,找到一个兆字节的空闲大容量存储器并在上面安装 ssh 客户机会更加方便。 您坐下一会后就应当安装新的 ssh 客户机并启动它。但是,这可能还不够。某些地方防火墙关闭了大多数端口,或者至少关闭了包括 ssh 的标准端口 22 在内的许多端口。 这里有另一种准备提供帮助的方法。在我的至少一台主机上,我希望让 sshd(ssh 守护程序)在通常被指派给常见因特网服务(比如 ftp、http、smtp 或 pop3)的端口上运行。即使是最严密的防火墙也要打开端口 21、8080、25 和 110 中的一个。将您的一台机器设置为捕获这样的通信,您就可以使它穿过大多数的防火墙。 这听起来是否象是非法闯入者在说话呀?我 不赞成滥用网络。经常有其它公司的雇员 邀请我使用他们的网络,虽然他们也知道,用敏感的方式(比如临时打开端口 22)更改他们的防火墙就公司制度而言是不可行的。我逐渐接受了这种认识:准备采用旁门左道也是当前专业实践的一部分,但我需要确保自己只以一种负责任的方式完成这个工作。 这样就启动了我的工作会话,然后:我下载引用 ssh 客户机,快速安装并启动它们,然后用 SSL 保护的密码往回验证我留在服务器室中运行的某个 sshd。 请注意,我仍然容易受到篡改过的主机的攻击。一个经过充分修改的桌面机器或一个警惕的窥视狂可以在击键信息到达 SSL 库之前将其记入日志。 这种情况的解决方案就是使用一次性密码(OTP)系统。到目前为止,在我看来 OTP 带来的麻烦多于安全性。OTP 给您自己带来的代价和收益肯定至少会略微有所不同。无论如何,回到日常的工作场所可能是更新密码的好时机。 使用标准部件 我希望 服务器诊所每个月都显示工作代码。在本文中,很难添加任何代码。我推荐的配置很简单,在标准的参考资料中都作了充分的记录。例如,要在第二个端口上添加 ssh 服务,只要将如下行:Port 8080 添加到现有的 /etc/ssh/sshd_config,然后重新启动 sshd。另一个方法是使用网络代理程序或端口转发器(比如 netcat 或 socat),将它指回本地主机(localhost)的标准 ssh 端口,这个方法在运行试验和调优日志记录或额外安全性方面很有用。 代理程序这里的上下文中的代理程序是一个小型转换程序,它只是让网络流量通过。如果我在端口 22 上设置了 sshd 服务器,并且希望在端口 110 上设置另一台 sshd 服务器,那么实现这个想法的一个方法是安装网络代理程序。这样的代理程序在端口 110 上用作服务器,接收来自外界的流量。它通过在端口 22 上充当客户机来处理这些分组。基本 sshd 服务器完成所有的实际工作;代理程序的作用只是从一个端口转换到另一个端口(可能在另一台主机上)。 这篇特别的专栏文章的真正价值并不在于深奥的代码,而只是在于传达了一个清晰的概念,您应该以此为目标来启用自己的远程服务。我已经尝试过许多方法。利用这些经验,尤其要了解 不要做什么,至少要了解在您首次设置服务器室时不要做什么:禁止 Telnet,不要让不用的服务一直开着,不用担心 applet(尤其不要担心 applet 签名),以及如若感到不对劲就不要进行远程登录。 另一方面,一定要使用标准部件。我已经尝试过许多聪明的想法,用于调整 ssh 协议或自己的防火墙,以阻止黑帽黑客(指专门利用网络技巧入侵网络进行破坏的人,译者注)。与这些想法所提供的安全性方面的小小增强相比,它们的维护比较困难,因此有些得不偿失。除非我编制一个明确的安全性项目的预算,并具有明确的长期目标,否则最好将时间花在使用 ssh 上,而不是花时间设法改进它。 采用以上步骤,您将拥有一个服务器室,它的安全性要比您只使用标准的 Linux 服务器安装时要好得多。您还能够从全球可以找到几乎所有的同步连接上远程管理它。
深入了解ssh协议与sshd服务程序的理论知识,掌握对Linux系统的远程管理方法以及对Linux系统中服务程序的配置方法,实践操作基于密钥验证的sshd服务程序远程验证登陆,并学习使用screen服务程序实现远程管理Linux系统的不间断会话等技术,基本完全拥有了对Linux系统的配置管理能力。
配置网卡服务:配置网卡参数(需要使用vim编辑器来将网卡配置文件中的ONBOOT参数修改成yes就可以保证网卡会在系统重启后依然生效了。Linux系统中的服务配置文件修改过后并不会对服务程序立即产生效果,要想让服务程序获取到最新的配置文件内容,咱们还需要手动的重启一下相应的服务)-创建网络会话(使用类似nmcli的命令来管理NetworkManager服务。nmcli是一款基于命令行终端的网卡网络配置工具,它不仅能够让咱们轻松的查看网卡信息或网络状态,还可以管理网卡会话功能,更能够查看到网卡设备的具体详细信息。nmcli命令配置过的网卡会话和参数会直接写入到配置文件中永久生效)-绑定两块网卡(mode0平衡负载模式:平时两块网卡均工作,且自动备援,采用交换机设备支援;mode1自动备援模式:平时只有一块网卡工作,故障后自动替换为另外的网卡;mode6平衡负载模式:平时两块网卡均工作,且自动备援,无须交换机设备支援。);
远程控制服务:配置sshd服务(SSH(Secure Shell)是一种能够提供安全远程登录会话的协议,也是目前远程管理Linux系统最首选的方式,因为传统的ftp或telnet服务是不安全的,它们会将帐号口令和数据资料等数据在网络中以明文的形式进行传送,这种数据传输方式很容易受到黑客“中间人”的嗅探攻击,轻则篡改了传输的数据信息,重则直接抓取到了服务器的帐号密码。想要通过SSH协议来管理远程的Linux服务器系统,咱们需要来部署配置sshd服务程序,sshd是基于SSH协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法——基于口令的安全验证,指的就是咱们一般使用帐号和密码验证登陆,基于密钥的安全验证,则是需要在本地生成密钥对,然后将公钥传送至服务端主机进行的公共密钥比较的验证方式,相比较来说更加的安全。因为在Linux系统中的一切都是文件,因此要想在Linux系统中修改服务程序的运行参数,实际上也是在修改程序配置文件的过程,sshd服务的配置信息保存在/etc/ssh/sshd_config文件中,运维人员一般会把保存着最主要配置信息的文件称为主配置文件,而配置文件中有许多#(井号)开头的注释行,要想让这些配置参数能够生效,咱们需要修改参数后再去掉前面的井号才行。在红帽RHEL7系统中sshd服务程序已经默认安装好并启动了,咱们可以使用ssh命令来进行远程连接,格式为“ssh [参数] 主机IP地址”,退出登陆则可执行exit命令)-安全密钥验证(加密算法是对信息进行编码和解码的技术,它能够将原本可直接阅读的明文信息通过一定的加密算法译成密文形式,密钥即是密文的钥匙,包括有私钥和公钥之分,在日常工作中如果担心传送的数据被他人监听截获到,就可以在传送前先使用公钥进行加密处理,然后再进行数据传送,这样只有掌握私钥的用户才能解密这段数据,除此之外其他人即便截获了数据内容一般也很难再破译成明文信息。总结来说,日常生产环境中使用密码进行口令验证终归存在着被骇客暴力破解或嗅探截获的风险,如果正确的配置密钥验证方式,那么一定会让您的sshd服务程序更加的安全。第1步:在客户端主机中生成“密钥对”并将公钥传送到远程服务器中:第2步:把客户端主机中生成好的公钥文件传送至远程主机:第3步:设置服务器主机只允许密钥验证,拒绝传统口令验证方式,记得修改配置文件后保存并重启sshd服务程序。第4步:在客户端主机尝试登陆到服务端主机,此时无需输入密码口令也可直接验证登陆成功。详细的图文介绍可参考linuxprobe.com/chapter-09.html)-远程传输命令-不间断会话服务-管理远程会话-会话共享。需要仔细研究操作步骤,一步一个脚印操作。
剧情吧工夫 : 二0 一 六-0 一- 二0 0 九: 五 五:00 长帅第 一散剧情先容 小教良肇事 多多 弛做霖狠口学训 长帅弛教良兵马 平生 ,活了一百明年 ,早年正在美国夏威夷渡过 。当他远望 着这一马平川的年夜 海时,恍如看到了本身 从一个小毛孩成少为长帅的行程。 弛教...
// 检测MySQL办事 function getMysqlVersion(){if (extension_loaded( 三 九;PDO_MYSQL 三 九;)) {try {$dbh = new PDO( 三 九;mysql:host= 一 九 二. 一 六 八. 二. 一0 三;port= 三...
跟着 人们的松凑生涯 ,进行互联网止业的人年夜 多皆把一地的空儿支配 的谦谦的,那用户劳碌 的时刻 ,基本 无意来存眷 您的拉广,只要捉住 了用户整零星 碎的空儿 对于其入止拉广,异时他也能挨领无聊赖的空儿,如许 的后果 便异常 沉紧,上面,尔联合 案例去为年夜 野分享一高,若何 捉住 用户碎片空儿...
Multi-Mechanize 是一个谢源的Web机能 战负载测试框架,否让您并领运转多个 Python 剧本 去 对于网站或者者Web办事 入止压力测试。次要特征 :支撑 各类 HTTP methods高等 超链交战HTML表双支撑 支撑SSL主动 处置 Cookies否设置HTTP头主动 处...
一、带去流质网站的流质。二、否以提下原站的无名度。三、提下各年夜 搜刮 引擎 对于原站的权重。以上 三点是胜利 的友情链交否以到达 的后果 。作甚 胜利 ,作甚 掉 败呢?1、链交的网站取原站内容出有所有接洽 ,起到感化 也便没有年夜 。2、链交的网站未被搜刮 引擎增除了,则 对于原站会有很年夜 的...
正在盘算 开辟 一个网站时,抉择甚么说话 ,是起首 须要 面临 的答题。今朝 支流的WEB开辟 说话 有ASP.NET、PHP、JSP; 做为MS上世纪宿将 ASP,便没有再说起 ,假如 是由于 保护 圆里的缘故原由 而必需 运用,否斟酌 进级 到ASP.NET,而做为新开辟 一个说话 ,其实 找没...