<?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>Всякие интересные штучки для WEB-разработчика &#187; Soft/Tools</title>
	<atom:link href="http://iphp.com.ua/archives/category/softtools/feed" rel="self" type="application/rss+xml" />
	<link>http://iphp.com.ua</link>
	<description>блог о технологиях web-разработки // all your base are belong to us</description>
	<lastBuildDate>Thu, 17 Nov 2011 08:49:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Конвертируем все php-файлы проекта в UTF-8</title>
		<link>http://iphp.com.ua/archives/600</link>
		<comments>http://iphp.com.ua/archives/600#comments</comments>
		<pubDate>Fri, 29 Jul 2011 03:04:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=600</guid>
		<description><![CDATA[Проблема с кодировками является достаточно распространенной. Часто при создании проекта требуется использовать всем одну кодировку например UTF-8, но порой просто не уследишь за всеми добавленными в проект файлами. Конечно можно потратить много времени и сил перекодируя все текстовым редакторе, но если точно знаем из какой кодировки в какую надо конвертить то просто выполняем в консоли [...]]]></description>
			<content:encoded><![CDATA[<p>Проблема с кодировками является достаточно распространенной. Часто при создании проекта требуется использовать всем одну кодировку например UTF-8, но порой просто не уследишь за всеми добавленными в проект файлами. Конечно можно потратить много времени и сил перекодируя все текстовым редакторе, но если точно знаем из какой кодировки в какую надо конвертить то просто выполняем в консоли команду </p>
<pre class="brush: bash; title: ; notranslate">
find . -name '*.php' | while read i; do iconv -f WINDOWS-1251 -t UTF-8 &quot;$i&quot; &gt;tmp; mv tmp &quot;$i&quot;; done
</pre>
<p>и все файлы *.php в этой папке перекодируются в UTF-8.<br />
Список доступных кодировок можно вывести командой <strong>iconv -l</strong> </p>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/600/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting SSL-certificates from CRT format to PEM</title>
		<link>http://iphp.com.ua/archives/580</link>
		<comments>http://iphp.com.ua/archives/580#comments</comments>
		<pubDate>Tue, 28 Dec 2010 08:28:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=580</guid>
		<description><![CDATA[Dovecot, for example, seems to expect pem-files, while RapidSSL only issues crt-files. The solution? Use OpenSSL to convert (via the DER-format) to pem: openssl x509 -in input.crt -out input.der -outform DER then openssl x509 -in input.der -inform DER -out output.pem -outform PEM]]></description>
			<content:encoded><![CDATA[<p>Dovecot, for example, seems to expect pem-files, while RapidSSL only issues crt-files. The solution? Use OpenSSL to convert (via the DER-format) to pem:</p>
<p><strong>openssl x509 -in input.crt -out input.der -outform DER</strong></p>
<p>then</p>
<p><strong>openssl x509 -in input.der -inform DER -out output.pem -outform PEM</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/580/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL beautifier</title>
		<link>http://iphp.com.ua/archives/526</link>
		<comments>http://iphp.com.ua/archives/526#comments</comments>
		<pubDate>Wed, 17 Mar 2010 03:19:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/archives/526</guid>
		<description><![CDATA[Наиболее популярный SQLinForm. Единственный минус этого решения является требование Java Runtime. Менее «фичастый» и более удобный для работы Instant SQL Formatter. Пример работы можно посмотреть здесь.]]></description>
			<content:encoded><![CDATA[<div>Наиболее популярный <a rel="nofollow" href="http://iphp.com.ua/goto/http://www.sqlinform.com/" >SQLinForm</a>.  Единственный минус этого решения является требование Java Runtime.</p>
<p>Менее «фичастый» и более удобный для работы <a rel="nofollow" href="http://iphp.com.ua/goto/http://www.dpriver.com/pp/sqlformat.htm" >Instant SQL Formatter</a>.  Пример работы можно посмотреть <a rel="nofollow" href="http://iphp.com.ua/goto/http://www.dpriver.com/products/sqlpp/sqlexamples.php" >здесь</a>.</div>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/526/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is Synergy+?</title>
		<link>http://iphp.com.ua/archives/522</link>
		<comments>http://iphp.com.ua/archives/522#comments</comments>
		<pubDate>Tue, 16 Mar 2010 20:55:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=522</guid>
		<description><![CDATA[Synergy+ (synergy-plus) lets you easily share a single mouse and keyboard between multiple computers with different operating systems, without special hardware. All you need is a LAN connection. It&#8217;s intended for users with multiple computers, where each system uses its own display. It&#8217;s a little like having a 2nd or a 3rd desktop&#8230; http://code.google.com/p/synergy-plus/]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://iphp.com.ua/wp-content/uploads/2010/03/splash.jpg" ><img class="aligncenter size-full wp-image-567" title="Synergy+" src="http://iphp.com.ua/wp-content/uploads/2010/03/splash.jpg" alt="" width="648" height="300" /></a></p>
<p>Synergy+ (synergy-plus) lets you easily share a single mouse and keyboard between multiple computers with different operating systems, without special hardware. All you need is a LAN connection. It&#8217;s intended for users with multiple computers, where each system uses its own display. It&#8217;s a little like having a 2nd or a 3rd desktop&#8230;</p>
<p><a rel="nofollow" href="http://iphp.com.ua/goto/http://code.google.com/p/synergy-plus/" >http://code.google.com/p/synergy-plus/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/522/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Работает ли Daemon Tools под Windows 7?</title>
		<link>http://iphp.com.ua/archives/506</link>
		<comments>http://iphp.com.ua/archives/506#comments</comments>
		<pubDate>Wed, 20 Jan 2010 00:45:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=506</guid>
		<description><![CDATA[Получили при установке сообщение вроде: &#171;This program require at least Windows 2000 with SPTD 1.60 or higher. Kernel debugger must be deactivated&#187; ? Решение: Откройте редактор реестра, найдите ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servic es\SPTD и измените значение Start на 4. Теперь перезагрузите компьютер и вернитесь к этому же ключу. Смените права доступа к ключу &#8212; нажмите правой кнопкой [...]]]></description>
			<content:encoded><![CDATA[<p>Получили при установке сообщение вроде: &#171;This program require at least Windows 2000 with SPTD 1.60 or higher. Kernel debugger must be deactivated&#187; ?</p>
<p>Решение:</p>
<p>Откройте редактор реестра, найдите ключ</p>
<p>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servic es\SPTD</p>
<p>и измените значение Start на 4.</p>
<p>Теперь перезагрузите компьютер и вернитесь к этому же ключу. Смените права доступа к ключу &#8212; нажмите правой кнопкой на ключе, &#171;Разрешения&#8230;&#187; и выставьте &#171;Полный доступ&#187; для всех.</p>
<p>Удалите этот ключ, перезагрузите компьютер и установите Daemon Tools еще раз.</p>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/506/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH-туннелинг или замена VPN</title>
		<link>http://iphp.com.ua/archives/482</link>
		<comments>http://iphp.com.ua/archives/482#comments</comments>
		<pubDate>Wed, 21 Oct 2009 19:31:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD/Linux]]></category>
		<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=482</guid>
		<description><![CDATA[В последнее время довольно большое распространение получила технология VPN (Virtual Private Networks). В большинстве случаев ее используют люди для шифрования передаваемой информации через локальную сеть (защита от снифанья трафика, что довольно легко осуществить в сети, даже на свичах) и/или последующей передачи информации через Интернет (тут уже целями будет скрытие своего IP-адреса, защита от глобального снифа [...]]]></description>
			<content:encoded><![CDATA[<p>В последнее время довольно большое распространение получила технология VPN (Virtual Private Networks). В большинстве случаев ее используют люди для шифрования передаваемой информации через локальную сеть (защита от снифанья трафика, что довольно легко осуществить в сети, даже на свичах) и/или последующей передачи информации через Интернет (тут уже целями будет скрытие своего IP-адреса, защита от глобального снифа трафика всей страны (aka СОРМ, он же нынешний СОРМ2) и.д.). Многие уже давно используют данную технологию VPN, но не многие знают об ее более дешевой и мобильной альтернативе. А называется это &#8212; SSH-туннелинг.</p>
<p>Принцип данной реализации следующий. Весь сетевой софт на компе (ну или не весь) форвардится на назначенный порт (вашего локалхоста), на котором висит сервис, соединенный по SSH с сервером (а как мы знаем, соединение по SSH протоколу шифруется) и туннелирующий все запросы; далее, весь ваш трафик (уже не в зашифрованном виде) может форвардится с нашего сервера на прокси (поддерживающий туннерирование) или сокс, который передают весь трафик к необходимым адресам. Наличие прокси или сокса не обязательно, но если нам нужна полнейшая конспирация, то мы можем организовать данный сервис (proxy/socks) на другом сервере (данная схема нужна для создания цепочки адресов), но об этом позже.</p>
<p>Теперь давайте разберемся с минимальным набором инструментов и сервисов необходимых для организации данного процесса. В первую очередь нам нужна программа для организации туннеля по SSH-протоколу. Для этой задачи мы можем применить VanDyke Entunnel (http://www.vandyke.com/products/entunnel/) или Putty (http://www.web-hack.ru/download/info.php?go=35) (вкладка Connection\SSH\Tunnels). В наших примерах я буду использовать оба клиента. Далее мы можем вручную прописывать в каждой программе работу через прокси или использовать специализированную программу для перенаправления запросов, такую как ProxyCap (http://proxylabs.netwu.com), SocksCap (http://www.socks.nec.com), FreeCap (http://www.freecap.ru) и т.п. В нашем примере будет использоваться ProxyCap, как наиболее удобная софтина (кстати, через ProxyCap мы сможем сделать туннерирование даже WebMoney, которая известна защитой от такого вида софта, для скрытия IP). Так же нам понадобится SSH-аккаунт (на сервере желательно расположенном за пределами вашей страны =), который можно без проблем достать (например, я покупаю VPS-хостинг для этого) и socks`ы.</p>
<p>Первым делом создаем SSH-аккаунт. Далее, я предлагаю вам использовать socks-сервер, а не proxy, т.к. не все прокси поддерживают туннелирование. Также может оказаться, что сегодня прокси анонимный, а завтра уже и не нет (если, конечно, не вы сами отвечаете за него). Кстати, проверить свою анонимность можно здесь (http://ip.xss.ru). Как я уж говорил, мы можем использовать сокс на удаленной машине (для большей безопасности). Для примера я покажу, как установить сокс-демон. Наиболее популярные и продвинутые демоны под никсы это socks5 от Permeo/NEC (http://freeware.sgi.com/source/socks5/), Dante (http://www.inet.no/dante/) и отечественный продукт 3proxy (http://www.security.nnov.ru/soft/3proxy/). Для примера я выбрал классический демон на FreeBSD &#8212; socks5.</p>
<p>Для тестирования использовалась FreeBSD 5-ой ветки. Я устанавливал socks5 из портов (/usr/ports/net/socks5/), но и из сорцов под фряхой тоже все хорошо собирается и ставится:</p>
<pre class="brush: php; title: ; notranslate">
cd /usr/ports/net/socks5/
make install clean
rehash
</pre>
<p>Для нормальной работы демона необходим конфиг к демону socks5.conf и файл паролей socks5.passwd (если необходима аутификация к сокс-серверу по паролю):</p>
<pre class="brush: php; title: ; notranslate">
touch /usr/local/etc/socks5.conf
touch /usr/local/etc/socks5.passwd
</pre>
<p>Далее добавляем в конфиг следующие строчки:</p>
<pre class="brush: php; title: ; notranslate">
auth - - u
permit u - - - - -
SET SOCKS5_BINDINTFC 1.2.3.4:8080
SET SOCKS5_CONFFILE /usr/local/etc/socks5.conf
SET SOCKS5_PWDFILE /usr/local/etc/socks5.passwd
SET SOCKS5_MAXCHILD 128
SET SOCKS5_NOIDENT
SET SOCKS5_NOREVERSEMAP
SET SOCKS5_NOSERVICENAME
SET SOCKS5_V4SUPPORT
SET SOCKS5_ENCRYPT
SET SOCKS5_FORCE_ENCRYPT
SET SOCKS5_UDPPORTRANGE 1023-5000
</pre>
<p>Первые две строчки указывают, что необходима аутификация по логин/пароль. SOCKS5_BINDINTFC указывает на какой IP (если у сервера несколько алиасов) и порт повесить демон. SOCKS5_MAXCHILD по умолчанию 64, я советую увеличить до 128, чтобы всем юзерам (если их много) хватило потоков. Далее, идут строчки для ускорения работы демона. SOCKS5_V4SUPPORT &#8212; поддержка 4-ой версии протокола. SOCKS5_ENCRYPT и SOCKS5_FORCE_ENCRYPT поддержка шифрования, если клиент это поддерживает. За более подробной информацией по установка обращайтесь к файлам README и INSTALL, а за информацией по настройке к манам socks5(1) и socks5.conf(5).</p>
<p>Далее, заполняем файл паролей. Он имеет обычный текстовый формат и login/password разделяются в нем пробелами:</p>
<pre class="brush: php; title: ; notranslate">
user password
root toor
</pre>
<p>Теперь можно запускать демон и приступить к настройке клиентского софта:</p>
<pre class="brush: php; title: ; notranslate">
/usr/local/bin/socks5
</pre>
<p>Запускам ProxyCap (http://forum.web-hack.ru/index.php?showtopic=29262), кликаем правой кнопкой мыши на значке в трее, Preferences. На вкладке &#171;Proxies&#187; вписываем 127.0.0.1:8080 и устанавливаем в &#171;Require Authorization&#187; наш login/password на сокс. На вкладке &#171;Rules&#187; добавляем сначала правило для Entunnel, указав в &#171;Rule Type&#187; &#8212; Force direct connetion. Далее, создаем правило, для всего остального софта, трафик от которого будет шифроваться и туннелироваться через сокс. В правиле указываем &#171;All Programs&#187;, &#171;Tunnel through proxy&#187; и в выпадающем меню наш сокс. Так же можно создать правило не для всего софта, а только выборочный софт пускать через туннель или наоборот, создать правило для всего софта, но для некоторого софта сделать прямой доступ в инет (Force direct connetion). В качестве дополнения могу сказать, что если ваша сетевая программа поддерживает работу через сокс/прокси (и нет необходимости пускать сразу весь сетевой софт через туннель), то в качестве настроек прокси вы можете указать забинденный Entunnel`ем адрес и порт &#8212; 127.0.0.1:8080.</p>
<p>Запускаем Entunnel и создаем в нем новое соединение по SSH. Далее, в свойствах соединения (Port Forwarding) добавляем наш сокс. В категории &#171;Local&#187; вписываем 127.0.0.1:8080, а в категории &#171;Remote&#187; вписываем IP и порт нашего сокс-сервера. Настройка закончена! Если что-то не работает, то еще раз перечитайте все пункты настройки.</p>
<p>В случае, если вы хотите использовать SSH-аккаунт, как конечную точку (т.е. не юзать соксы или прокси), то ваши настройки должны быть следующие (на примере для Putty): на вкладке Connection\SSH\Tunnels в строке &#171;Source port&#187; указываем порт, на который Putty забиндится на локалхосте (например, 8080), далее ставим влажок на &#171;Dynamic&#187; и идем на вкладку &#171;Session&#187; прописывать адрес и порт сервера с SSH. Коннектимся&#8230;</p>
<p>Какие плюсы данной системы:</p>
<p>1. Для организации данной схемы не нужно устанавливать серверный софт (т.к. SSH-аккаунт и сокс можно без проблем достать в инете);<br />
2. Т.к. при SSH-соединении трафик шифруется и сжимается, то мы получаем небольшой прирост скорости работы в инете (это верно, когда сокс-демон находится на том же сервере);<br />
3. В случае, когда сокс-сервер находится на другом хосте, то мы получаем дополнительную цепочку серверов, которые повышают нам безопасность и анонимность;</p>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/482/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка безпарольной аутентификации по ssh</title>
		<link>http://iphp.com.ua/archives/466</link>
		<comments>http://iphp.com.ua/archives/466#comments</comments>
		<pubDate>Tue, 18 Aug 2009 14:35:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD/Linux]]></category>
		<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=466</guid>
		<description><![CDATA[Допустим, вам необходимо настроить безпарольный вход по ssh (scp и sftp тоже) на удаленный сервер remote.org.ua под пользователем user. Если ваш имя вашего локального пользователя совпадает с удаленным, то user@ везде можно опустить. 1) создаем открытый и закрытый ключ нашей локальной системы $ ssh-keygen -t rsa жмем энтер отказываясь от ключевой фразы 2) если в [...]]]></description>
			<content:encoded><![CDATA[<p>Допустим, вам необходимо настроить безпарольный вход по ssh (scp и sftp тоже) на удаленный сервер remote.org.ua под пользователем user.<br />
Если ваш имя вашего локального пользователя совпадает с удаленным, то user@ везде можно опустить.</p>
<p>1) создаем открытый и закрытый ключ нашей локальной системы<br />
$ ssh-keygen -t rsa<br />
жмем энтер отказываясь от ключевой фразы</p>
<p>2) если в системе есть программа ssh-copy-id, то настраиваем удаленную систему на то, что бы оно авторизировало ssh по открытому ключу<br />
$ ssh-copy-id -i ~/.ssh/id_rsa user@remote.org.ua<br />
переходим к шагу 4)</p>
<p>3) если ssh-copy-id нет то можно сделать это ручками. вот последовательность действий с объяснениями</p>
<p>3.1) копируем открытый ключ на удаленную систему<br />
$ scp ~/.ssh/id_rsa.pub user@remote.org.ua:~ незабываем ввести пароль. ведь мы еще не настроили беспарольный вход Ж:-)</p>
<p>3.2) логинимся на удаленный сервер<br />
$ ssh user@remoute.org.ua</p>
<p>3.3) заносим открытый ключ нашей локальный системы в авторизированые ключи удаленной системы, устанавливаем правильные права и убираем за собой мусор:<br />
remote$ [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 711 ~/.ssh) # создадим ~/.ssh директорию если ее нет и дадим нужные права<br />
remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # добавляем открытый ключ к авторизированым ключам<br />
remote$ chmod 600 ~/.ssh/authorized_keys # и делаем правильные права(иначе ssh откажется брать отсюда ключи)<br />
remote$ rm ~/id_rsa.pub # удаляем ненужное</p>
<p>4) проверяем что все работает. запускаем на локальном хосту<br />
$ ssh user@remoute.org.ua<br />
или например<br />
$ scp .zshrc user@remoute.org.ua:~<br />
должно сработать без пароля.</p>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/466/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Конвертация php-скриптов в статику</title>
		<link>http://iphp.com.ua/archives/462</link>
		<comments>http://iphp.com.ua/archives/462#comments</comments>
		<pubDate>Tue, 18 Aug 2009 14:14:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=462</guid>
		<description><![CDATA[Предположим, у Вас есть сайт, созданный при помощи php-скриптов и базы данных MySQL. В определенное время сервер перестает нормально работать, так как перегружен посетителями &#8212; слишком много запросов. Как быть? Искусственно ограничить запросы &#8212; это значит отбросить посетителей. Наращивать мощности сервера накладно. Оптимизировать скрипты нет времени. Именно в таком случае поможет тотальная конвертация всего сайта [...]]]></description>
			<content:encoded><![CDATA[<p>Предположим, у Вас есть сайт, созданный при помощи php-скриптов и базы данных MySQL. В определенное время сервер перестает нормально работать, так как перегружен посетителями &#8212; слишком много запросов.<br />
Как быть? Искусственно ограничить запросы &#8212; это значит отбросить посетителей. Наращивать мощности сервера накладно. Оптимизировать скрипты нет времени.<br />
Именно в таком случае поможет тотальная конвертация всего сайта в статический HTML код и отдача его при помощи nginx.</p>
<p>Прежде всего необходимо определить дискретность, с которой происходит обновление информации (допустим, раз в час) и выполнять зеркалирование сайта при помощи команды wget:</p>
<p>wget -m -q -k http://мой.домен/</p>
<p>После этого полученное зеркало синхронизируем с директорией, откуда файлы обрабатывает nginx (предположим, что это /usr/local/html):</p>
<p>rsync -tgu &#8212;delete &#8212;force мой.домен /usr/local/html</p>
<p>После чего осталось синхронизировать те файлы, которые wget не отзеркалит, например, *.js &#8212; java скрипты:</p>
<p>rsync -a &#8212;include &#8216;*/&#8217; &#8212;include &#8216;*.js&#8217; &#8212;exclude &#8216;*&#8217; /путь/к/файлам/сайта/ /usr/local/html/</p>
<p>Это все. Теперь осталось запускать этот код каждый час (или реже) и всю нагрузку возьмет на себя nginx.<br />
Для того, чтобы сохранить доступ к админке CMS, необходимо повесить какой-то поддомен сайта на реальный IP и обращаться к нему. </p>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/462/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройки SSH авторизации по ключу с помощю PuTTY</title>
		<link>http://iphp.com.ua/archives/458</link>
		<comments>http://iphp.com.ua/archives/458#comments</comments>
		<pubDate>Tue, 18 Aug 2009 07:18:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=458</guid>
		<description><![CDATA[Если Вы, для работы с сервером, часто используете SSH, то Вам наверняка понравится идея не вводить каждый раз пароль, а автоматически попадать на SSH-сервер используя авторизацию по ключам. Ниже приведен пример настройки такой авторизации. С помощью PuttyGen генерируем приватный и публичный ssh-ключи &#8212; кнопка &#171;Generate&#187;. В настройках можно указать тип ключа и его размер. После [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Если Вы, для работы с сервером, часто используете SSH,  то Вам<br />
наверняка понравится идея не вводить каждый раз  пароль, а автоматически<br />
попадать на SSH-сервер используя  авторизацию по ключам. Ниже приведен<br />
пример настройки  такой авторизации.</p>
<ol>
<li>С помощью PuttyGen генерируем  приватный и публичный ssh-ключи &#8212; кнопка &#171;Generate&#187;. В настройках можно  указать тип ключа и его размер.</li>
<li>После этого сохраняем  приватный ключ в файл с помощью кнопки &#171;Save private key&#187;, например  private.key. Публичный ключ отображается в  верхнем поле &#171;Key&#187; и имеет  вид:<br />
&#171;ssh-rsa AAAAB3NzaC1yc*что-то*uJQ==  rsa-key-20020104&#8243;.</li>
<li>Копируем содержимое поля &#171;Public key for  pasting into OpenSSH authorized_keys file&#187; в оперативную память и  закрываем PuttyGen.</li>
<li>Запускаем ssh-клиент Putty и производим  коннект к серверу.</li>
<li>Попав на сервер, создаем папку ~/.ssh</li>
<li>Создаем  файл ~/.ssh/authorized_keys с содержимым поля &#171;Public key for pasting  into OpenSSH authorized_keys file&#187; утилиты PuttyGen (то что копировалось  в оперативную память).<br />
<span>ВАЖНО!</span> ключ в файле должен быть записан в одной строке без переносов.</li>
<li>Меняем  права доступа к файлу командой chmod 600 ~/.ssh/authorized_keys</li>
<li>Закрываем  Putty</li>
<li>Запускаем Putty. В настройках вашего соединения указываем  путь к приватному ключу:  Connection-&gt;SSH-&gt;Auth-&gt;Private_key_for_Authentification-&gt;private.key</li>
<li>Сохраняем  настройки соединения и производим коннект к серверу. SSH-сервер  запросит имя пользователя под которым вы хотите прологиниться &#8212; укажите  свой логин. Далее авторизация пройдет с использованием приватного и  публичного ssh-ключей.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/458/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Архитектура Skype</title>
		<link>http://iphp.com.ua/archives/338</link>
		<comments>http://iphp.com.ua/archives/338#comments</comments>
		<pubDate>Fri, 16 Jan 2009 00:38:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soft/Tools]]></category>

		<guid isPermaLink="false">http://iphp.com.ua/?p=338</guid>
		<description><![CDATA[Skype &#8212; известная система интернет-телефонии, которой пользуется очень много народу по всему миру. Разберемся как оно работает. Skype для работы использует P2P соединения, а не клиент-серверную модель. Что неудивительно, если вспомнить, что авторы Skype &#8212; те же люди, что работали над Kazaa. Однако совсем от клиент-серверной архитектуры им отойти не удалось. У них есть логин-серверы [...]]]></description>
			<content:encoded><![CDATA[<p>Skype &#8212; известная система интернет-телефонии, которой пользуется очень много народу по всему миру. Разберемся как оно работает.</p>
<p>Skype для работы использует P2P соединения, а не клиент-серверную модель. Что неудивительно, если вспомнить, что <a rel="nofollow" href="http://iphp.com.ua/goto/http://news.bbc.co.uk/2/hi/programmes/click_online/4102692.stm" >авторы Skype &#8212; те же люди, что работали над Kazaa</a>. Однако совсем от клиент-серверной архитектуры им отойти не удалось. У них есть логин-серверы &#8212; это единственной централизованный компонент Скайпа (список серверов, к которым надо коннектиться запрятан в исходники Скайповского клиента). И <a rel="nofollow" href="http://iphp.com.ua/goto/http://highscalability.com/skype-failed-boot-scalability-test-p2p-fundamentally-flawed" >этот единственный централизованный компонент их как-то раз подвел</a>. В 2007 году пользователи Скайпа не могли с ним работать в течение двух дней. Причиной было то, что был выпущен Виндовый патч, который вызвал ребут всех пользовательских машин. Машины ребутнулись и стали дружно логиниться. Сервера Skype были погребены под огромный количеством одновременных логинов.</p>
<p>P2P соединения &#8212; это, конечно, хорошо. Однако как быть, если два пользователя, которые хотят сконнектиться, сидят за фаирволлами? Skype борется с симметричными <a rel="nofollow" href="http://iphp.com.ua/goto/http://en.wikipedia.org/wiki/Network_address_translation" >NAT</a>ами и фаирволлами следующим образом &#8212; гонит трафик через тех пользователей, кто не сидит за фаирволлом. Вообще в скайповской сети машины подразделяются на ноды &#8212; обычные машины, суперноды &#8212; которые разруливают трафик нодов, ну и на их собственные логин-серверы. Так вот, если у вас публичный IP адрес, достаточная мощность CPU, много памяти и пропускная способность сети не подкачала, то вы &#8212; супернод! И через вас пойдет чужой трафик. <img src='http://iphp.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>В качестве базы данных для работы Skype использует PostgreSQL. Но им пришлось PostgreSQL под себя затачивать. Результаты заточки распространяются под BSD лицензией. Лежат <a rel="nofollow" href="http://iphp.com.ua/goto/https://developer.skype.com/SkypeGarage/DbProjects/" >тут</a>. <a rel="nofollow" href="http://iphp.com.ua/goto/http://highscalability.com/skype-plans-postgresql-scale-1-billion-users" >Недавно поставили себе амбициозную цель: PostgreSQL должен масштабироваться до одного миллиарда пользователей</a>.</p>
<p>Исходники Скайпа закрыты, протокол тоже закрыт. Есть, правда, <a rel="nofollow" href="http://iphp.com.ua/goto/https://developer.skype.com/Docs/ApiDoc/Overview_of_the_Skype_API" >Skype API</a>, который позволяет расширять пользовательский интерфейс. Однако пытливые умы ковыряются в скайповском протоколе и находят интересные вещи. Есть очень известный доклад Vanilla Skype, в котором подробно рассказывается об особенностях работы Скайпа и о потенциальных его уязвимостях.</p>
<p>Еще парочка фактов: Для передачи звука они используют Global IP Sound (GIPS). Железо &#8212; dual или  quad Opteron&#8217;ы со SCSI RAID.</p>
<p>Ссылки по теме:<br />
Доклад Vanilla Skype <a rel="nofollow" href="http://iphp.com.ua/goto/http://recon.cx/en/f/vskype-part1.pdf" >part1[.pdf]</a> и <a rel="nofollow" href="http://iphp.com.ua/goto/http://www.recon.cx/en/f/vskype-part2.pdf" >part2[.pdf]</a>. Можно посмотреть <a rel="nofollow" href="http://iphp.com.ua/goto/http://www.archive.org/details/Fabrice_Desclaux_and_Kostya_Kortchinsky_Vanilla_Skype" >видеозапись этого доклада</a>. Осторожно, английский с сильным французским акцентом.<br />
<a rel="nofollow" href="http://iphp.com.ua/goto/http://en.wikipedia.org/wiki/Skype_Protocol" >Skype Protocol</a> &#8212; статья в Википедии<br />
<a rel="nofollow" href="http://iphp.com.ua/goto/http://mnet.cs.nthu.edu.tw/paper/Chance/041125.pdf" >An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol</a> &#8212; довольно старые слайды<br />
<a rel="nofollow" href="http://iphp.com.ua/goto/http://iz.moikrug.ru/" >Иван Золотухин</a> в своем <a rel="nofollow" href="http://iphp.com.ua/goto/http://rutube.ru/tracks/125763.html?v=c5880ff2f60badce01b70fe6db654a9c" >докладе на РИТ2007</a> немного говорил о скайповском PostgreSQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://iphp.com.ua/archives/338/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

