<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>force &#8211; 编码无悔 /  Intent &amp; Focused</title>
	<atom:link href="https://www.codelast.com/tag/force/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.codelast.com</link>
	<description>最优化之路</description>
	<lastBuildDate>Sun, 03 May 2020 13:04:33 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[原创] 防范ssh暴力破解攻击（ssh brute force attack）</title>
		<link>https://www.codelast.com/%e5%8e%9f%e5%88%9b%e9%98%b2%e8%8c%83ssh%e6%9a%b4%e5%8a%9b%e7%a0%b4%e8%a7%a3%e6%94%bb%e5%87%bb%ef%bc%88ssh-brute-force-attack%ef%bc%89/</link>
					<comments>https://www.codelast.com/%e5%8e%9f%e5%88%9b%e9%98%b2%e8%8c%83ssh%e6%9a%b4%e5%8a%9b%e7%a0%b4%e8%a7%a3%e6%94%bb%e5%87%bb%ef%bc%88ssh-brute-force-attack%ef%bc%89/#respond</comments>
		
		<dc:creator><![CDATA[learnhard]]></dc:creator>
		<pubDate>Sun, 19 Sep 2010 09:15:36 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[attack]]></category>
		<category><![CDATA[brute]]></category>
		<category><![CDATA[DenyHosts]]></category>
		<category><![CDATA[force]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[攻击]]></category>
		<guid isPermaLink="false">http://www.codelast.com/?p=406</guid>

					<description><![CDATA[<p>
	<span style="font-size: 14px;">暴露在网络上的主机都是有风险的，其中一种风险就是ssh暴力破解攻击（ssh brute force attack）。</span></p>
<p>
	<span style="font-size:14px;">请先看看你的Linux主机的 /var/log/secure 文件的内容，如果你发现里面记录有无数条用各种甚至在你的系统中都不存在的用户名来尝试登录你的系统的日志，那么你就要当心了，这很有可能是别人在用工具不断尝试破解你的登录帐号。</span></p>
<p>
	<span style="font-size:14px;">如果你的密码不够复杂，那么很可能你会遭殃。防范的方法有很多种，这里介绍一种用第三方软件来实现防御的方法。</span></p>
<p>
	<span style="font-size:14px;">据网上的资源介绍，有下面几个防御软件：</span></p>
<p>
<span id="more-406"></span></p>
<p>
	<span style="font-size:14px;">sshfilter <a href="http://www.csc.liv.ac.uk/~greg/sshdfilter/" rel="noopener noreferrer" target="_blank">http://www.csc.liv.ac.uk/~greg/sshdfilter/</a></span></p>
<p>
	<span style="font-size:14px;">Fail2Ban &#160;<a href="http://fail2ban.sourceforge.net/" rel="noopener noreferrer" target="_blank">http://fail2ban.sourceforge.net/</a></span></p>
<p>
	<span style="font-size:14px;">DenyHosts <a href="http://denyhosts.sourceforge.net/" rel="noopener noreferrer" target="_blank">http://denyhosts.sourceforge.net/</a></span></p>
<p>
	&#160;</p>
<p>
	<span style="font-size:14px;">这几个软件我没有全部接触过，仅用了DenyHosts。下面就说一下DenyHosts的安装和使用。</span></p>
<p>
	&#160;</p>
<p>
	&#160;</p>
<p>
	<span style="font-size:14px;">到这里去下载：http://sourceforge.net/projects/denyhosts/files/</span></p>
<p>
	<span style="font-size:14px;">下载.tar.gz的安装包就可以了，安装很方便。</span></p>
<p>
	<span style="font-size:14px;">写本文的时候，其版本为2.6（DenyHosts-2.6.tar.gz）。</span></p>
<p>
	&#160;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（1）解压安装包：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">tar zxf DenyHosts-2.6.tar.gz</span></span></p>
<p>
	&#160;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（2）进入解压出来的目录下，然后再安装：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">cd DenyHosts-2.6/</span></span></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">python setup.py install</span></span></p>
<p>
	<span style="font-size:14px;">（会输出一堆信息，不用理会它）</span></p>
<p>
	&#160;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（3）为了能开机自动启动，在系统中做一个名为&#8220;denyhosts&#8221;的符号链接，然后添加到启动项中：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">ln -s /usr/share/denyhosts/daemon-control-dist /etc/init.d/denyhosts</span></span>&#8230; <a href="https://www.codelast.com/%e5%8e%9f%e5%88%9b%e9%98%b2%e8%8c%83ssh%e6%9a%b4%e5%8a%9b%e7%a0%b4%e8%a7%a3%e6%94%bb%e5%87%bb%ef%bc%88ssh-brute-force-attack%ef%bc%89/" class="read-more">Read More </a></p>]]></description>
										<content:encoded><![CDATA[<p>
	<span style="font-size: 14px;">暴露在网络上的主机都是有风险的，其中一种风险就是ssh暴力破解攻击（ssh brute force attack）。</span></p>
<p>
	<span style="font-size:14px;">请先看看你的Linux主机的 /var/log/secure 文件的内容，如果你发现里面记录有无数条用各种甚至在你的系统中都不存在的用户名来尝试登录你的系统的日志，那么你就要当心了，这很有可能是别人在用工具不断尝试破解你的登录帐号。</span></p>
<p>
	<span style="font-size:14px;">如果你的密码不够复杂，那么很可能你会遭殃。防范的方法有很多种，这里介绍一种用第三方软件来实现防御的方法。</span></p>
<p>
	<span style="font-size:14px;">据网上的资源介绍，有下面几个防御软件：</span></p>
<p>
<span id="more-406"></span></p>
<p>
	<span style="font-size:14px;">sshfilter <a href="http://www.csc.liv.ac.uk/~greg/sshdfilter/" rel="noopener noreferrer" target="_blank">http://www.csc.liv.ac.uk/~greg/sshdfilter/</a></span></p>
<p>
	<span style="font-size:14px;">Fail2Ban &nbsp;<a href="http://fail2ban.sourceforge.net/" rel="noopener noreferrer" target="_blank">http://fail2ban.sourceforge.net/</a></span></p>
<p>
	<span style="font-size:14px;">DenyHosts <a href="http://denyhosts.sourceforge.net/" rel="noopener noreferrer" target="_blank">http://denyhosts.sourceforge.net/</a></span></p>
<p>
	&nbsp;</p>
<p>
	<span style="font-size:14px;">这几个软件我没有全部接触过，仅用了DenyHosts。下面就说一下DenyHosts的安装和使用。</span></p>
<p>
	&nbsp;</p>
<p>
	&nbsp;</p>
<p>
	<span style="font-size:14px;">到这里去下载：http://sourceforge.net/projects/denyhosts/files/</span></p>
<p>
	<span style="font-size:14px;">下载.tar.gz的安装包就可以了，安装很方便。</span></p>
<p>
	<span style="font-size:14px;">写本文的时候，其版本为2.6（DenyHosts-2.6.tar.gz）。</span></p>
<p>
	&nbsp;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（1）解压安装包：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">tar zxf DenyHosts-2.6.tar.gz</span></span></p>
<p>
	&nbsp;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（2）进入解压出来的目录下，然后再安装：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">cd DenyHosts-2.6/</span></span></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">python setup.py install</span></span></p>
<p>
	<span style="font-size:14px;">（会输出一堆信息，不用理会它）</span></p>
<p>
	&nbsp;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（3）为了能开机自动启动，在系统中做一个名为&ldquo;denyhosts&rdquo;的符号链接，然后添加到启动项中：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">ln -s /usr/share/denyhosts/daemon-control-dist /etc/init.d/denyhosts</span></span></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">chkconfig --add denyhosts</span></span></p>
<p>
	&nbsp;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（5）到 /usr/share/denyhosts/ 目录下，将配置文件denyhosts.cfg-dist复制为一个新的配置文件&mdash;&mdash;后面会说为什么要这样做：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">cd /usr/share/denyhosts</span></span></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">cp denyhosts.cfg-dist denyhosts.cfg</span></span></p>
<p>
	&nbsp;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（6）修改配置文件：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">vi denyhosts.cfg</span></span></p>
<p>
	<span style="font-size:14px;">配置文件的内容很长，但是我们没有必要修改所有的参数，很多都只要使用默认就够了，但是有一些是必须要改的，部分说明如下：</span></p>
<p>
	&nbsp;</p>
<blockquote>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># ssh日志文件，对RedHat来说，就是这个文件。对其他系统来说，可能不是该文件，请参考详细的说明</span></span></strong></p>
<p>
		SECURE_LOG = /var/log/secure</p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 描述禁止登录的文件</span></span></strong></p>
<p>
		<span style="font-size:14px;">HOSTS_DENY = /etc/hosts.deny</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 当DenyHosts以--purge参数调用时，比这个参数设置的值久的时间的HOSTS_DENY记录将被删除（该参数留空的话，表示从不会清除任何HOSTS_DENY记录）</span></span></strong></p>
<p>
		<span style="font-size:14px;">PURGE_DENY =&nbsp;</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="font-size:14px;"><span style="color:#008000;"># 发生block的情况时，需要block的服务名</span></span></strong></p>
<p>
		<span style="font-size:14px;">BLOCK_SERVICE &nbsp;= sshd</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 最多允许系统中不存在的用户登录失败多少次</span></span></strong></p>
<p>
		<span style="font-size:14px;">DENY_THRESHOLD_INVALID = 2</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 最多允许有效用户登录失败多少次</span></span></strong></p>
<p>
		<span style="font-size:14px;">DENY_THRESHOLD_VALID = 3</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 最多允许root登录失败多少次</span></span></strong></p>
<p>
		<span style="font-size:14px;">DENY_THRESHOLD_ROOT = 3</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 是否做域名反解析</span></span></strong></p>
<p>
		<span style="font-size:14px;">HOSTNAME_LOOKUP=NO</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 用来接收报警信息的邮箱</span></span></strong></p>
<p>
		<span style="font-size:14px;">ADMIN_EMAIL = xxx@163.com</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># smtp服务器地址，当你需要DenyHosts发邮件给你报警的时候，要设置这个参数</span></span></strong></p>
<p>
		<span style="font-size:14px;">SMTP_HOST = smtp.163.com</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># smtp服务器端口</span></span></strong></p>
<p>
		<span style="font-size:14px;">SMTP_PORT = 25</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 登录邮箱帐户的用户名</span></span></strong></p>
<p>
		<span style="font-size:14px;">SMTP_USERNAME=usr</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 登录邮箱帐户的密码</span></span></strong></p>
<p>
		<span style="font-size:14px;">SMTP_PASSWORD=pas</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 邮件中的发件人信息</span></span></strong></p>
<p>
		<span style="font-size:14px;">SMTP_FROM = DenyHosts &lt;xxx@163.com&gt;</span></p>
<p>
		&nbsp;</p>
<p>
		<strong><span style="color:#008000;"><span style="font-size:14px;"># 报警邮件的标题</span></span></strong></p>
<p>
		<span style="font-size:14px;">SMTP_SUBJECT = DenyHosts Report</span></p>
</blockquote>
<p>
	&nbsp;</p>
<p>
	<span style="font-size:14px;">其他的基本上不用改了。</span></p>
<p>
	<span style="color:#fff;"><span style="font-size:14px;">文章来源：http://www.codelast.com/ </span></span></p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（7）启动服务：</span></span></strong></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">/etc/init.d/denyhosts start</span></span></p>
<p>
	<span style="font-size:14px;">（从输出的信息来看，这种启动方法实际上是调用了如下的命令：</span></p>
<p>
	<span style="font-size:14px;"><span style="color:#00f;">/usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg</span></span></p>
<p>
	<span style="font-size:14px;">可见，它使用的配置文件是/usr/share/denyhosts/denyhosts.cfg ，这也是为什么我们在上面的步骤中要把默认的配置文件复制为一个新的配置文件&ldquo;denyhosts.cfg&rdquo;的原因了。）</span></p>
<p>
	&nbsp;</p>
<p>
	<strong><span style="color:#a52a2a;"><span style="font-size:14px;">（8）测试：</span></span></strong></p>
<p>
	<span style="font-size:14px;">从另一台服务器上，以一个不存在的用户名和密码来ssh登录部署了的DenyHosts服务器，如果你在DenyHosts的配置文件中设置的是错误地尝试一次就被block，那么你就会发现你这台登录的客户端服务器被block了。并且，在部署了DenyHosts的服务器上，查看文件 <span style="color:#f00;">/etc/hosts.deny</span> 的内容，会发现多了一条记录，正是屏蔽了登录者的那一条记录，这就说明生效了。</span></p>
<p>
	&nbsp;</p>
<p>
	<span style="color:#fff;"><span style="font-size:14px;">文章来源：http://www.codelast.com/ </span></span></p>
<p>
	<span style="font-size:14px;">备注：</span></p>
<p>
	<span style="font-size:14px;">如果一台服务器被误block了，可以在部署DenyHosts的服务器上，将文件 <span style="color:#f00;">/etc/hosts.deny</span> 中相应的条目删掉，再重启DenyHosts服务（<span style="color:#00f;">/etc/init.d/denyhosts restart</span>），就可以解除block了。</span></p>
<p>
	&nbsp;</p>
<p>
	&nbsp;</p>
<p>
	<span style="font-size:14px;">最后，防范此类攻击有多种方法，可参考类似于下面的文章：</span></p>
<p>
	<span style="font-size:14px;"><a href="http://coolerfeng.blog.51cto.com/133059/50947">http://coolerfeng.blog.51cto.com/133059/50947</a></span></p>
<p>	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
	<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;版权声明&nbsp;<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;<br />
	转载需注明出处：<u><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><em><span style="color: rgb(0, 0, 255);"><strong style="font-size: 16px;"><span style="font-family: arial, helvetica, sans-serif;">codelast.com</span></strong></span></em></a></u>&nbsp;<br />
	感谢关注我的微信公众号（微信扫一扫）：</p>
<p style="border: 0px; font-size: 13px; margin: 0px 0px 9px; outline: 0px; padding: 0px; color: rgb(77, 77, 77);">
	<img decoding="async" alt="wechat qrcode of codelast" src="https://www.codelast.com/codelast_wechat_qr_code.jpg" style="width: 200px; height: 200px;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.codelast.com/%e5%8e%9f%e5%88%9b%e9%98%b2%e8%8c%83ssh%e6%9a%b4%e5%8a%9b%e7%a0%b4%e8%a7%a3%e6%94%bb%e5%87%bb%ef%bc%88ssh-brute-force-attack%ef%bc%89/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
