<?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>IT блог</title>
	<atom:link href="http://www.pentarh.com/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pentarh.com/wp</link>
	<description>Администрирование Linux/BSD систем</description>
	<lastBuildDate>Mon, 12 Sep 2011 19:48:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ваша OS была переустановлена</title>
		<link>http://www.pentarh.com/wp/2011/09/12/your-os-reinstalled/</link>
		<comments>http://www.pentarh.com/wp/2011/09/12/your-os-reinstalled/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 19:41:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Происшествия]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=381</guid>
		<description><![CDATA[Взял Xen VPS, поставил на нем MTA, джаббер, еще какие то приблуды. Приходит письмо через неделю от хостера Здравствуйте, было получено сообщение о недоступности Вашего ВПСа, после перезагрузки, Ваш ВПС не запустился, вынуждены были сделать релоад ОС, старый раздел был смотнирован в папку /root/hdd_old, скопируйте, пожалуйста необходимую информацию и сообщите, для того, что бы отключить [...]]]></description>
			<content:encoded><![CDATA[<p>Взял Xen VPS, поставил на нем MTA, джаббер, еще какие то приблуды. Приходит письмо через неделю от хостера</p>
<blockquote><p>Здравствуйте,</p>
<p>было получено сообщение о недоступности Вашего ВПСа, после перезагрузки, Ваш ВПС не запустился, вынуждены были сделать релоад ОС,</p>
<p>старый раздел был смотнирован в папку /root/hdd_old, скопируйте, пожалуйста необходимую информацию и сообщите, для того, что бы отключить старый раздел.
</p></blockquote>
<p>Пиздец, дорогая редакция. Ваше ядро не загрузилось, мы накатали вам новую ось.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/09/12/your-os-reinstalled/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Восстановление root в MySQL</title>
		<link>http://www.pentarh.com/wp/2011/07/05/root-mysql-recovery/</link>
		<comments>http://www.pentarh.com/wp/2011/07/05/root-mysql-recovery/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 16:28:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FixIT]]></category>
		<category><![CDATA[Базы Данных]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[восстановление]]></category>
		<category><![CDATA[пароль]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=374</guid>
		<description><![CDATA[Сам удивился почему здесь еще нет шпоры по этой теме. Если забыл пароль root в MySQL, но имеешь рута на сервер, то заменить пароль очень просто. Редактируем /etc/my.cnf (ну или где там он у вас) и вставляем в секцию [mysqld] строку: skip-grant-tables Далее, рестартуем mysqld, коннектимся: mysql -u root mysql Выполняем запрос UPDATE USER SET [...]]]></description>
			<content:encoded><![CDATA[<p>Сам удивился почему здесь еще нет шпоры по этой теме.</p>
<p>Если забыл пароль root в MySQL, но имеешь рута на сервер, то заменить пароль очень просто.</p>
<p>Редактируем /etc/my.cnf (ну или где там он у вас) и вставляем в секцию [mysqld] строку:<br />
<pre><pre>
skip-grant-tables
</pre></pre><br />
Далее, рестартуем mysqld, коннектимся:<br />
<pre><pre>
mysql -u root mysql
</pre></pre><br />
Выполняем запрос</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="sql"><pre class="de1"><span class="kw1">UPDATE</span> <span class="kw1">USER</span> <span class="kw1">SET</span> password<span class="sy0">=</span>password<span class="br0">&#40;</span><span class="st0">'NEWPASS'</span><span class="br0">&#41;</span> <span class="kw1">WHERE</span> <span class="kw1">USER</span><span class="sy0">=</span><span class="st0">'root'</span> <span class="kw1">AND</span> <span class="st0">`host`</span><span class="sy0">=</span><span class="st0">'localhost`;</span></pre></div></div></div></div></div></div></div>


<p>Убираем skip-grant-tables из my.cnf, рестартуем mysqld. </p>
<p>Теперь пароль для root@localhost будет NEWPASS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/07/05/root-mysql-recovery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VPN на своем сервере? Круто!</title>
		<link>http://www.pentarh.com/wp/2011/07/01/own-server-vpn/</link>
		<comments>http://www.pentarh.com/wp/2011/07/01/own-server-vpn/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 22:07:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[pptp]]></category>
		<category><![CDATA[vpn]]></category>
		<category><![CDATA[безопасность]]></category>
		<category><![CDATA[трафик]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=353</guid>
		<description><![CDATA[Но безопасно ли? Сейчас чуть ли не каждый &#171;средних оборотов&#187; вебмастер имеет свой выделенный сервер, или на крайний случай, VPS. VPN-сервисам доверяют не все. И ставят OpenVPN/PPTP на свой собственный сервер. Поставили VPN, соединились, все! Никто нас не отследит, СОРМ &#8211; кашляй. Однако, есть ньюансы! Во-первых, зачастую VPN ставится на дефолтный айпи сервера. Во-вторых, на [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Но безопасно ли</strong>? Сейчас чуть ли не каждый &laquo;средних оборотов&raquo; вебмастер имеет свой выделенный сервер, или на крайний случай, VPS. VPN-сервисам доверяют не все. И ставят OpenVPN/PPTP на свой собственный сервер.</p>
<p>Поставили VPN, соединились, все! Никто нас не отследит, СОРМ &#8211; кашляй. Однако, есть ньюансы!<br />
<span id="more-353"></span><br />
Во-первых, зачастую VPN ставится <strong>на дефолтный айпи сервера</strong>.</p>
<p>Во-вторых, на дефолтном айпи сервера зачастую <strong>располагаются некоторые ресурсы </strong>вебмастера. Ну там, сайты, админки, FTP, Jabber&#8230;</p>
<p>В-третьих, любой VPN-клиент первым делом <strong>создает прямую роуту</strong> на этот самый айпи, дабы не терять соединение с сервером после соединения с сервером. Бррр. Ну, понятно к чему это я?</p>
<p>К тому что <strong>весь трафик</strong> на этот айпи, на который вы коннектитесь VPN-клиентом, <strong>не шифруется</strong>.</p>
<p>Не верите? Проверьте с помощью tracert ))<br />
<pre><pre>Пуск-выполнить
tracert VPN-IP
tracert my-site-on-this-ip.com
tracert my-ftp-on-this-ip.com</pre></pre><br />
Итак, если на этом айпи вы пользуетесь какими то сервисами, например, там висит FTP сервер и вы на него коннектитесь, то и провайдер и СОРМ и все кто посредине, весело потирают ручонки и жрут попкорн, глядя на окно WireShark. А там&#8230; <strong>БЛЖДЖАТ ваши пароли</strong>&#8230;.</p>
<p>Что же делать?</p>
<p>Айпи, на который коннектиться ваш клиент VPN &#8211; не должен быть привязан к каким либо сервисам: фтп, www и т.д. Он должен быть полностью выделенным под VPN.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/07/01/own-server-vpn/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Поздоровайтесь с хаосом</title>
		<link>http://www.pentarh.com/wp/2011/06/24/random-hello/</link>
		<comments>http://www.pentarh.com/wp/2011/06/24/random-hello/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 00:37:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Очумелые ручки]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=349</guid>
		<description><![CDATA[cat /dev/urandom &#124; base64 &#124; grep -i hello]]></description>
			<content:encoded><![CDATA[

<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">cat</span> <span class="sy0">/</span>dev<span class="sy0">/</span>urandom <span class="sy0">|</span> base64 <span class="sy0">|</span> <span class="kw2">grep</span> <span class="re5">-i</span> hello</pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/06/24/random-hello/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Будильник в Linux</title>
		<link>http://www.pentarh.com/wp/2011/06/17/alarm-linux/</link>
		<comments>http://www.pentarh.com/wp/2011/06/17/alarm-linux/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 23:04:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Очумелые ручки]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mplayer]]></category>
		<category><![CDATA[будильник]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=346</guid>
		<description><![CDATA[Тут надо было в два часа ночи продержаться не засыпая еще два часика до четырех. После этого следовало обработать кое какое событие и дальше спать. Но спички в глазах уже ломались и я стал нервно шарить вокруг в поисках мобильника, дабы включить будильник. Мобильника я не нашел. Задумался&#8230; &#171;Есть ли будильник в линуксе?&#187; &#8211; спросило [...]]]></description>
			<content:encoded><![CDATA[<p>Тут надо было в два часа ночи продержаться не засыпая еще два часика до четырех. После этого следовало обработать кое какое событие и дальше спать. Но спички в глазах уже ломались и я стал нервно шарить вокруг в поисках мобильника, дабы включить будильник. Мобильника я не нашел. Задумался&#8230; &laquo;Есть ли будильник в линуксе?&raquo; &#8211; спросило само себя тухнущее сознание сисадмина. Уже автоматически стал открывать вкладку хрома, как вдруг нашло озарение. Открываю терминал, пишу&#8230;</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co0">#!/bin/bash</span>
<span class="kw1">while</span> <span class="sy0">/</span>bin<span class="sy0">/</span><span class="kw2">true</span> ; <span class="kw1">do</span>
   <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span><span class="kw2">mplayer</span> <span class="st0">&quot;/home/user/music/cf/Cradle Of Filth - Nymphetamine.mp3&quot;</span>
   <span class="kw2">sleep</span> <span class="nu0">5</span>
<span class="kw1">done</span></pre></div></div></div></div></div></div></div>


<p>Сохраняю, ставлю в крон на нужное время и спаааааать. mplayer в списке процессов я смогу покилять точно когда проснусь.</p>
<p>Да, за это я люблю Linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/06/17/alarm-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MacOS X (iATKOS v7) на Proxmox (KVM)</title>
		<link>http://www.pentarh.com/wp/2011/06/10/macos-x-iatkos-v7-o-proxmox-kvm/</link>
		<comments>http://www.pentarh.com/wp/2011/06/10/macos-x-iatkos-v7-o-proxmox-kvm/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 12:32:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Виртуализация]]></category>
		<category><![CDATA[iatkos]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[хакинтош]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=339</guid>
		<description><![CDATA[Встала задача поставить сабж на KVM. Ни один установочный образ хакинтошей не хотел даже загружаться с isoшника, не смотря на успешные отчеты на хабре и прочих злачных местах. После двух дней долбления башкой об клаву поднялся образ iATKOS v7. И на обычном KVM (intel) и на Proxmox KVM (AMD). Из особенностей подъема: Видеокарта Standard VGA [...]]]></description>
			<content:encoded><![CDATA[<p>Встала задача поставить сабж на KVM. Ни один установочный образ хакинтошей не хотел даже загружаться с isoшника, не смотря на <a href="http://habrahabr.ru/blogs/linux/68489/">успешные отчеты на хабре</a> и прочих злачных местах.</p>
<p>После двух дней долбления башкой об клаву поднялся образ iATKOS v7. И на обычном KVM (intel) и на Proxmox KVM (AMD).</p>
<p>Из особенностей подъема:</p>
<ul>
<li>Видеокарта Standard VGA</li>
<li>Опции при загрузке (нажать F8 перед загрузкой): -cpus=1 -v -x -f platform=acpi idlehalt=0</li>
</ul>
<p>По поводу последнего, я хрен знает что это значит, нашел <a href="http://www.hackint0sh.org/f181/103750.htm">на какой то буржуйской борде</a>. С этими опциями поднялось, а это главное.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/06/10/macos-x-iatkos-v7-o-proxmox-kvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Директория весом в 1Гб</title>
		<link>http://www.pentarh.com/wp/2011/05/31/folder-1gb-size/</link>
		<comments>http://www.pentarh.com/wp/2011/05/31/folder-1gb-size/#comments</comments>
		<pubDate>Mon, 30 May 2011 21:29:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Происшествия]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[df]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[inode]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[out of free space]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=332</guid>
		<description><![CDATA[Вы видели когда нибудь папочку весом 1Gb? Имеется в виду вес не содержимого низлежащих файлов, а вес самой папочки, т.е. листинг имен файлов весом 1Gb&#8230; около 13млн инод внутри&#8230; hosted-by:/&#62; stat /var/www/admin/data/mod-tmp File: `/var/www/admin/data/mod-tmp' Size: 1022976000 Blocks: 1999960 IO Block: 4096 directory Device: 802h/2050d Inode: 11403505 Links: 2 Access: (2700/drwx--S---) Uid: ( 33/www-data) Gid: ( [...]]]></description>
			<content:encoded><![CDATA[<p>Вы видели когда нибудь папочку весом 1Gb? Имеется в виду вес не содержимого низлежащих файлов, а вес самой папочки, т.е. листинг имен файлов весом 1Gb&#8230; около 13млн инод внутри&#8230;</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">hosted-by:<span class="sy0">/&gt;</span> <span class="kw2">stat</span> <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>admin<span class="sy0">/</span>data<span class="sy0">/</span>mod-tmp
  File: <span class="sy0">`/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>admin<span class="sy0">/</span>data<span class="sy0">/</span>mod-tmp<span class="st_h">'
  Size: 1022976000      Blocks: 1999960    IO Block: 4096   directory
Device: 802h/2050d      Inode: 11403505    Links: 2
Access: (2700/drwx--S---)  Uid: (   33/www-data)   Gid: (  502/   admin)
Access: 2011-05-30 23:44:44.000000000 +0300
Modify: 2011-05-30 08:36:27.000000000 +0300
Change: 2011-05-30 08:36:27.000000000 +0300</span></pre></div></div></div></div></div></div></div>


<p><span id="more-332"></span><br />
При попытке просмотра папочки, ls задумывается минут на 20, а потом выдает:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">hosted-by:<span class="sy0">/&gt;</span> <span class="kw2">ls</span> <span class="re5">-1</span> <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>admin<span class="sy0">/</span>data<span class="sy0">/</span>mod-tmp <span class="sy0">&gt;</span> <span class="sy0">/</span>tmp<span class="sy0">/</span><span class="kw2">ls</span>
ls: memory exhausted</pre></div></div></div></div></div></div></div>


<p>Поступили жалобы на &laquo;некорректную работу сервера&raquo;. Да я думаю некорректная&#8230;</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">hosted-by:<span class="sy0">/&gt;</span> <span class="kw2">df</span> <span class="re5">-i</span>
Filesystem            Inodes   IUsed   IFree IUse<span class="sy0">%</span> Mounted on
<span class="sy0">/</span>dev<span class="sy0">/</span>sda2            <span class="nu0">14884864</span> <span class="nu0">14884864</span>       <span class="nu0">0</span>  <span class="nu0">100</span><span class="sy0">%</span> <span class="sy0">/</span></pre></div></div></div></div></div></div></div>


<p>Найти потенциальных пожирателей инод смог по команде</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">find</span> <span class="sy0">/</span> <span class="re5">-type</span> d <span class="re5">-size</span> +100k <span class="re5">-print</span></pre></div></div></div></div></div></div></div>


<p>На этой папочке find заткнулся навечно, что навело на мысль.</p>
<p>Диагноз: рак. Лечение: ампутация.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="kw2">screen</span>
<span class="kw2">rm</span> <span class="re5">-rf</span> <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>admin<span class="sy0">/</span>data<span class="sy0">/</span>mod-tmp <span class="sy0">&amp;&amp;</span> <span class="kw2">mkdir</span> <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>admin<span class="sy0">/</span>data<span class="sy0">/</span>mod-tmp <span class="sy0">&amp;&amp;</span> <span class="kw2">chmod</span> <span class="nu0">777</span> <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>admin<span class="sy0">/</span>data<span class="sy0">/</span>mod-tmp</pre></div></div></div></div></div></div></div>


<p>При скорости удаления около 100 файлов в секунду, а файлов более 10 млн, можно идти спать&#8230;.</p>
<p>Дальнейшее вскрытие показало что в папочке были файлы сессий php. На Debian Lenny почему то выпиливатель старых файлов сессий выключен по дефолту:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">hosted-by:~<span class="sy0">&gt;</span> <span class="kw2">grep</span> <span class="re5">-B</span> <span class="nu0">5</span> session.gc_probability <span class="sy0">/</span>etc<span class="sy0">/</span>php5<span class="sy0">/</span>apache2<span class="sy0">/</span>php.ini
&nbsp;
; This is disabled <span class="kw1">in</span> the Debian packages, due to the strict permissions
; on <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>php5.  Instead of setting this here, see the cronjob at
; <span class="sy0">/</span>etc<span class="sy0">/</span>cron.d<span class="sy0">/</span>php5, <span class="kw2">which</span> uses the session.gc_maxlifetime setting below.
; php scripts using their own session.save_path should <span class="kw2">make</span> sure garbage
; collection is enabled by setting session.gc_probability
;session.gc_probability = <span class="nu0">0</span></pre></div></div></div></div></div></div></div>


<p>Вопиющее распиздяйство. Хотя скорей всего дело в нестандартном расположении session.save_path, который ставит ISP Manager.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/05/31/folder-1gb-size/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Отбиваем DDOS mod_evasive + firewall на CentOS</title>
		<link>http://www.pentarh.com/wp/2011/05/06/anti-ddos-mod_evasive-firewall/</link>
		<comments>http://www.pentarh.com/wp/2011/05/06/anti-ddos-mod_evasive-firewall/#comments</comments>
		<pubDate>Fri, 06 May 2011 12:45:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[Очумелые ручки]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ddos]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mod_evasive]]></category>
		<category><![CDATA[защита от ddos]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=326</guid>
		<description><![CDATA[Анализ DDoS можно производить конечно своими скриптами, парсить логи. Но лучше предоставить это апачевскому mod_evasive. Ставим mod_evasive, в конфигурации пишем DOSHashTableSize&#160;&#160;&#160;&#160;3097 DOSPageCount&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;15 DOSSiteCount&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;15 DOSPageInterval&#160;&#160;&#160;&#160; 3 DOSSiteInterval&#160;&#160;&#160;&#160; 3 DOSBlockingPeriod&#160;&#160; 300 DOSSystemCommand&#160;&#160;&#160;&#160;&#34;/usr/bin/sudo /usr/bin/fwban %s&#34; DOSPageInterval &#8211; интервал для хитов определенной страницы DOSSiteInterval &#8211; интервал для хитов определенного vhost DOSPageCount &#8211; после этого количества хитов по определенному URI [...]]]></description>
			<content:encoded><![CDATA[<p>Анализ DDoS можно производить конечно своими скриптами, парсить логи. Но лучше предоставить это апачевскому mod_evasive.</p>
<p><span id="more-326"></span>Ставим mod_evasive, в конфигурации пишем<br />
<pre><pre>DOSHashTableSize&nbsp;&nbsp;&nbsp;&nbsp;3097
DOSPageCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15
DOSSiteCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15
DOSPageInterval&nbsp;&nbsp;&nbsp;&nbsp; 3
DOSSiteInterval&nbsp;&nbsp;&nbsp;&nbsp; 3
DOSBlockingPeriod&nbsp;&nbsp; 300
DOSSystemCommand&nbsp;&nbsp;&nbsp;&nbsp;&quot;/usr/bin/sudo /usr/bin/fwban %s&quot;
</pre></pre></p>
<ul>
<li><strong>DOSPageInterval</strong> &#8211; интервал для хитов определенной страницы</li>
<li><strong>DOSSiteInterval</strong> &#8211; интервал для хитов определенного vhost</li>
<li><strong>DOSPageCount</strong> &#8211; после этого количества хитов по определенному URI в течении интервала DOSPageInterval, айпи будет забанен</li>
<li><strong>DOSSiteCount</strong> &#8211; после этого количества хитов по определенному vhost в течении интервала DOSSiteInterval, айпи будет забанен</li>
</ul>
<p>Нам понадобиться скрипт для бана на уровне файрвола &laquo;/usr/bin/fwban&raquo; (вариант для Linux):</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="co0">#!/bin/bash</span>
<span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;x$1&quot;</span> = <span class="st0">&quot;x&quot;</span> <span class="br0">&#93;</span> ; <span class="kw1">then</span>
    <span class="kw3">echo</span> <span class="st0">&quot;USAGE: $0 IPADDR&quot;</span>
    <span class="kw3">exit</span>
<span class="kw1">fi</span>
<span class="sy0">/</span>sbin<span class="sy0">/</span>iptables <span class="re5">-A</span> BAN <span class="re5">-s</span> <span class="re4">$1</span> <span class="re5">-j</span> DROP</pre></div></div></div></div></div></div></div>


<p>Ему надо поставить права 755.</p>
<p>Так же нам понадобиться утилита sudo. Она стоит практически везде. В &laquo;visudo&raquo; закомментируем опцию:<br />
<pre><pre>#Defaults&nbsp;&nbsp;&nbsp;&nbsp;requiretty
</pre></pre><br />
И добавим строку<br />
<pre><pre>apache&nbsp;&nbsp;ALL = NOPASSWD: /usr/bin/fwban
</pre></pre><br />
где <strong>apache</strong> &#8211; юзер от которого работает апач.</p>
<p>Так же нам понадобиться цепочка BAN в iptables:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">iptables <span class="re5">-N</span> BAN
iptables <span class="re5">-I</span> INPUT <span class="re5">-j</span> BAN</pre></div></div></div></div></div></div></div>


<p>Сохраним правила файрвола</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1"><span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>iptables save</pre></div></div></div></div></div></div></div>


<p>Рестартанем апач. Теперь попробуйте уложить ваш сайт (только не со своего айпи!!!):</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">ab <span class="re5">-n</span> <span class="nu0">1000</span>  <span class="re5">-c</span> <span class="nu0">20</span> http:<span class="sy0">//</span>yoursite.info<span class="sy0">/</span></pre></div></div></div></div></div></div></div>


<p>В логах &laquo;жертвы&raquo; можно увидеть:<br />
<pre><pre>May&nbsp;&nbsp;6 15:18:25 Server1 mod_evasive[26514]: Blacklisting address 1.2.3.4: possible DoS attack.
</pre></pre><br />
А в файрволе:<br />
<pre><pre># iptables-save
---многа букав---
-A BAN -s 1.2.3.4 -j DROP
---многа букав---
</pre></pre><br />
Ура! <strong>No pasaran</strong>.</p>
<p>Да. И конечно, апач лучше бы прикрыть извне nginx&#8217;ом.</p>
<p>Да. И данный метод банит айпишнеги перманентно, пока не рестартанет сервер, или не будет сброшена цепочка BAN. Вот такой брутальный метод )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/05/06/anti-ddos-mod_evasive-firewall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Почему не стоит использовать XenServer</title>
		<link>http://www.pentarh.com/wp/2011/03/28/why-donot-use-xenserver/</link>
		<comments>http://www.pentarh.com/wp/2011/03/28/why-donot-use-xenserver/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 12:26:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Виртуализация]]></category>
		<category><![CDATA[Тестовая площадка]]></category>
		<category><![CDATA[xenserver]]></category>
		<category><![CDATA[виртуализация]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=310</guid>
		<description><![CDATA[В ходе использования XenServer выявились глюки с которыми трудно мириться. Слышал что есть платная версия XenServer&#8230; Я, чес говоря, не понимаю за что там платить деньги. Теневое копирование. Это такой своеобразный аналог LVM snapshot, запиленый программистами Cytrix, который позволяет создавать копии многогигабайтных разделов на лету. Если быть точнее, создается COW раздел, куда пишутся изменения нового [...]]]></description>
			<content:encoded><![CDATA[<p>В ходе использования XenServer выявились глюки с которыми трудно мириться.</p>
<p>Слышал что есть платная версия XenServer&#8230; Я, чес говоря, не понимаю за что там платить деньги.</p>
<p><span id="more-310"></span></p>
<ol>
<li><strong>Теневое копирование</strong>. Это такой своеобразный аналог LVM snapshot, запиленый программистами Cytrix, который позволяет создавать копии многогигабайтных разделов на лету. Если быть точнее, создается COW раздел, куда пишутся изменения нового тома. Самое интересное, что этот COW раздел никогда не становится самостоятельным, <strong>если не сделать этого руками</strong>. В результате, если вы создали виртуалку из шаблона или из другой виртуалки, используя т.н. &laquo;Быстрое копирование диска&raquo; (по умолчанию), то знайте: <a href="http://forums.citrix.com/thread.jspa?threadID=249121&amp;start=0&amp;tstart=0">свободное место в хранилище рано или поздно закончится</a>. Еще более интересен факт того, что из-под такого тома место не освобождается даже когда виртуалка удалена. В версии XenServer 5.6 выпущен костыль в виде периодически стартующей задачи, которая периодически отсоединяет найденные COW клоны томов и делает их независимыми. Но я бы не назвал это полноценным решением проблемы.</li>
<li><strong>Конфликт версий в пулле</strong>. Представим ситуацию. Ваше железо, на котором установлен XenServer, издало предсмертный писк и по-тихоньку катится в историю. Вы в панике ставите рядом здоровую железяку, ставите на нее XenServer и пытаетесь ее добавить в пул, дабы на лету перетянуть виртуалки с умирающей тачки. Но вот незадача. На старой тачке стоял XenServer 5.5, а на новой вы поставили 5.6. И по этому <a href="http://forums.citrix.com/message.jspa?messageID=1512236">вам не удастся добавить новый сервер в пулл и сделать миграцию на лету</a>. Матюкаясь, вам прийдется на старом монтировать NFS, останавливать виртуалки и бекапать их на NFS, а на новом восстанавливать. Но даже при одинаковых версиях, вам придется пройти нехилый квест для понимания, из-за каких софтварных конфликтов сервак не хочет добавляться в пулл.</li>
<li><strong>Фантомные виртуалки</strong>. Вообще, я не догоняю как у наших программистов получилось это сделать не единожды. Но программисты на то и программисты, дабы делать невозможное. Вобщем смысл в том, что при каких то обстоятельствах бекапа-восстановления, на сервере появляются две идентичные виртуалки. У них одинаковая конфигурация, одинаковые MAC адреса, одинаковое имя, но разные UUID. Я думаю из-за одинаковых имен XenCenter их не отображает в списке. Вы видите в списке только одну виртуалку. А фантома вы не видите, но он есть и он запущен. Ну прям как тот суслик из ДМБ. Я думаю все догадаются какими проблемами пахнут две сетевухи в одной сети с одинаковыми MAC адресами. Фантомов можно вычислить только из командной строки &laquo;xm vm-list&raquo;. Только там можно увидеть клонов и убить их по UUID. Правда сначала надо будет разрулить ситуацию split brain, то есть определить, кто из клонов содержит в себе наиболее свежие данные.</li>
<li>А еще под XenServer не запускается FreeBSD. Точнее запускается, но не любая, не на любом железе и с большими костылями.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/03/28/why-donot-use-xenserver/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Предотвращение двойного запуска cron задач</title>
		<link>http://www.pentarh.com/wp/2011/03/19/cron-double-task-avoid/</link>
		<comments>http://www.pentarh.com/wp/2011/03/19/cron-double-task-avoid/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 15:49:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FixIT]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Утилиты]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[flock]]></category>
		<category><![CDATA[highload]]></category>

		<guid isPermaLink="false">http://www.pentarh.com/wp/?p=305</guid>
		<description><![CDATA[Администрируя высоконагруженный проект, то и дело натыкаюсь на проблему повторного запуска cron задач в то время как предыдущая задача еще не отработала. Таким образом получается, что одни и те же cron скрипты выполняют одни и те же задачи одновременно, удваивая тем самым нагрузку. При этом они начинают выполняться медленнее, и возможна лавинообразная ситуация, когда к [...]]]></description>
			<content:encoded><![CDATA[<p>Администрируя высоконагруженный проект, то и дело натыкаюсь на проблему повторного запуска cron задач в то время как предыдущая задача еще не отработала.</p>
<p>Таким образом получается, что одни и те же cron скрипты выполняют одни и те же задачи одновременно, удваивая тем самым нагрузку. При этом они начинают выполняться медленнее, и возможна лавинообразная ситуация, когда к этим двум добавится еще и третья такая же задача. Потом четвертая, а потом все упадет вообще.</p>
<p>Как с этим бороться?<br />
<span id="more-305"></span></p>
<h2>Вариант 1. Сложный.</h2>
<p>Использовать в скрипте, который запускается по cron, проверку pid:</p>
<ol>
<li>Проверяем наличие pid файла с идентификатором процесса</li>
<li>Проверяем, есть ли такой pid в памяти командой &laquo;ps -p PID&raquo;</li>
<li>Если pid запущен, прерываем работу</li>
<li>Иначе, пишем в pid файл свой pid и продолжаем</li>
</ol>
<p>Однако это требует модификации скрипта.</p>
<h2>Вариант 2. Простой.</h2>
<p>Есть замечательная утилитка в Linux, называется <a href="http://www.opennet.ru/man.shtml?topic=flock&amp;category=1&amp;russian=2" target="_blank">flock (1)</a>. В качестве параметра, утилита принимает имя файла лока и команду для исполнения. <strong>flock</strong> ставит эксклюзивный лок на указанный файл и, при успехе, запускает указанную команду. Функционал flock не ограничивается только этой возможностью &#8211; на эту тему можно покурить соответствующий man.</p>
<p>Итак, у нас есть cron задача:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="cron"><pre class="de1">* * * * *   user  /usr/bin/php /some/heavy/script.php</pre></div></div></div></div></div></div></div>


<p>С помощью небольшой модификации этой строки мы сможем предотвратить повторный запуск задачи во время выполнения предыдущей задачи:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="cron"><pre class="de1">* * * * *   user  /usr/bin/flock -xn /var/lock/script.lock -c '/usr/bin/php /some/heavy/script.php'</pre></div></div></div></div></div></div></div>


<p>Ну собсно все.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pentarh.com/wp/2011/03/19/cron-double-task-avoid/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

