<?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>The WebDevil &#187; featured</title>
	<atom:link href="http://dmitry.shaposhnik.name/category/featured/feed/" rel="self" type="application/rss+xml" />
	<link>http://dmitry.shaposhnik.name</link>
	<description>Enjoy development</description>
	<lastBuildDate>Mon, 24 May 2010 01:29:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Protecting SSH</title>
		<link>http://dmitry.shaposhnik.name/2008/07/02/protecting-ssh/</link>
		<comments>http://dmitry.shaposhnik.name/2008/07/02/protecting-ssh/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 19:28:29 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://dmitry.shaposhnik.name/?p=182</guid>
		<description><![CDATA[Я пытался использовать fail2ban под Linux для отстрела ботов. Но через некоторое время он у меня отказался работать. Почему &#8211; не знаю, причины я особо не искал. И вчера заменил его на другое решение &#8211; sshguard.
Первое впечатление &#8211; не слишком хорошее, потому что надо было все настраивать руками. Но немного разобравшись, быстро поставил его на [...]]]></description>
			<content:encoded><![CDATA[<p>Я <a href="http://dmitry.shaposhnik.name/2008/01/06/ssh-bruteforce-prevention/">пытался использовать fail2ban под Linux</a> для отстрела ботов. Но через некоторое время он у меня отказался работать. Почему &#8211; не знаю, причины я особо не искал. И вчера заменил его на другое решение &#8211; <a href="http://sshguard.sourceforge.net/">sshguard</a>.</p>
<p>Первое впечатление &#8211; не слишком хорошее, потому что надо было все настраивать руками. Но немного разобравшись, быстро поставил его на все свои линукс-сервера.</p>
<p>Итак, что потребуется: <a href="http://www.ubuntu.com">Ubuntu</a> вместе с <a href="https://wiki.ubuntu.com/UbuntuFirewall">UFW</a>, <a href="http://www.balabit.com/network-security/syslog-ng/">syslog-ng</a>.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> sshguard</div></div>
<p>Примечание: на данный момент у меня версия 1.0 которая в пакетах отказалась нормально парсить логи. Потому берем исходники версии 1.1, ./configure &#8211;with-firewall=iptables и после сборки стопаем syslog-ng, заменяем /usr/sbin/sshguard новым бинарником (он будет раза в 4 больше) и запускаем syslog-ng вновь.</p>
<p>и в /etc/syslog-ng/syslog-ng.conf дописать в конец примерно следующее:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">destination sshguardproc {<br />
&nbsp; &nbsp; program(&quot;/usr/sbin/sshguard&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; template(&quot;$DATE $FULLHOST $MESSAGE\n&quot;));<br />
};<br />
# filter LOG_AUTH messages which also contain &quot;ssh&quot;<br />
filter authssh { <br />
&nbsp; &nbsp; &nbsp; &nbsp; facility(auth, authpriv); <br />
};<br />
# copy filtered logs into the sshguard process<br />
log {<br />
&nbsp; &nbsp; &nbsp; &nbsp; source(s_all); <br />
&nbsp; &nbsp; &nbsp; &nbsp; filter(authssh);<br />
&nbsp; &nbsp; &nbsp; &nbsp; destination(sshguardproc);<br />
};</div></div>
<p>Это будет передавать все сообщения об аутентификации sshguard&#8217;у. Он попытается их блокировать путем создания правил iptables. Однако имея ufw пришлось несколько адаптировать указанный в документации метод.<br />
/etc/ufw/before.rules, сразу же под <tt># End required lines</tt> добавил</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">:sshguard - <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>:<span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#93;</span></div></div>
<p>и далее в списке правил</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">...<br />
<span style="color: #660033;">-A</span> ufw-before-input <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-j</span> sshguard<br />
<span style="color: #666666; font-style: italic;">#ufw-not-local</span><br />
...</div></div>
<p>Так все на порт 22 будет проходить через эту цепочку. И в ней же sshguard будет отстреливать вредителей.</p>
<p>Аналогичную процедуру делаем и для before6.rules с учетом именования цепочек там.</p>
<p>Для тех кто еще не запускал ufw следует прописать политики по умолчанию в /etc/default/ufw и выполнить</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ufw <span style="color: #7a0874; font-weight: bold;">enable</span><br />
ufw logging off</div></div>
<p>и после всего</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>syslog-ng reload</div></div>
<p>Enjoy =)</p>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2008/07/02/protecting-ssh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
