<?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>Персональный блог Валерия Леонтьева &#187; security</title>
	<atom:link href="http://valera.ws/tag/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://valera.ws</link>
	<description>Блог для публикации интересных личных заметок о работе, жизни, событиях... Digital lifestyle, веб-программирование, администрирование серверов и другое</description>
	<lastBuildDate>Sat, 31 Dec 2011 11:52:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SSL-авторизация на сайте</title>
		<link>http://valera.ws/2011.02.05~ssl-auth/</link>
		<comments>http://valera.ws/2011.02.05~ssl-auth/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 20:24:03 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[байнет]]></category>
		<category><![CDATA[браузеры]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=546</guid>
		<description><![CDATA[Возникла задача: дать пользователю возможность авторизации на сайте в защищенном режиме. Т.е. так, чтобы его пароль не могли перехватить через канал связи. Какие есть варианты решения задачи, как решают эту задачу другие? Об этом чуть подробнее. Полностью защитить протокол общения &#8230; <a href="http://valera.ws/2011.02.05~ssl-auth/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-547" title="https-background" src="http://valera.ws/wp-content/uploads/2011/02/https-background-150x150.jpg" alt="" width="150" height="150" />Возникла задача: дать пользователю возможность авторизации на сайте в защищенном режиме. Т.е. так, чтобы его пароль не могли перехватить через канал связи. Какие есть варианты решения задачи, как решают эту задачу другие? Об этом чуть подробнее.</p>
<p><span id="more-546"></span>Полностью защитить протокол общения пользователя с сервером можно только одним способом — шифрование трафика. Экзотические способы шифрования, а также создание различного вида тоннелей мы не рассматриваем. Только обычное SSL-шифрование протокола HTTP, которое поддерживает любой современный браузер — HTTPS.</p>
<p>Причем, работает нормально HTTPS только в том случае, если для пользователя не произошло незаметной подмены сертификата (как это делает софт на подобии <a href="http://falcongaze.ru" target="_blank">SecureTower</a>). В случае, если сертификат подменяется незаметно или пользователя в открытую заставляют принять невалидный сертификат (т.к. иначе ничего не будет вообще) HTTPS работать перестает.</p>
<p>И вот, учитывая это, возникает вопрос: если полностью защитить трафик мы не можем, то можем ли мы защитить хотябы самое важное? Например, пароль. В принципе, можем, но тоже не на 100%. Пароль можно хэшировать до передачи на сервер JavaScript-ом. Тогда перехватчик получить хэш. Он сможет по нему авторизоваться, но сам пароль не увидит. Правда, его можно подобрать брутфорсом. С шифрованием самого пароля (вместо хэширования) картина примерно та же, только реализация гораздо сложнее.</p>
<p>Давать возможность пользователю работать с сайтом по HTTPS можно, но заставлять нужно только тогда, когда шифрование реально необходимо: например, в интернет-банкинге. Дело в том, что у некоторых компаний могут быть закрыты исходящие соединения на 443-й порт, либо запрещен бинарный трафик.</p>
<p>HTTPS-трафик создает дополнительную нагрузку на сервер, прежде всего на процессор, а так же замедляет передачу информации пользователю. Этот еще два камня в его огород. Вывод: если нет острой необходимости, не нужно заставлять и, возможно, даже рекомендовать пользователю пользоваться HTTPS.</p>
<p>Как вариант, можно проводить по защищенному протоколу только авторизацию. Обычно пользователю дают возможность выбрать способ авторизации: защищенный или обычный. Тот, кому важна безопасноть, выберет защищенный способ при условии, что он для него технически доступен.</p>
<p>Но в этом случае большинству пользователей эта защита может оказаться непонятной и ненужной. Если мы хотим им помочь, то следует определить, доступен ли клиенту HTTPS автоматически и, в зависимости от результата, установить обычную авторизацию, либо защищенную. Только пользовалею надо сообщить о том, какой способ выбран (можно графически).</p>
<p>Именно так поступили в Яндексе. У них я подсмотрел способ определения доступности HTTPS. Подгружается JS с https://, который устанавливает флаг в DOM-модели страницы. Форма авторизации ведет себя по разному в зависимости от этого флага.</p>
<p>Хэшировать ли пароль? Это может иметь значение только в одном случае: если у пользователя один пароль на несколько сервисов. Тогда перехватчик не увидит пароля в открытом виде, чтобы использовать его на других сервисах. Но подобрать брутфорсом пароль все равно возможно. Только это уже не так тривиально, как подсмотреть в открытом виде. Так что если вы на стороне пользователя, постарайтесь пароль хэшировать до передачи.</p>
<p><strong>А как делают другие?</strong></p>
<p>Про Яндекс я уже рассказал. Добавлю, что пароль он передает в открытом виде и не пускает на главную страницу портала по HTTPS.</p>
<p>Mail.ru ведет себя как Яндекс, только их способа определения поддержки HTTPS я не нашел (хотя и не глубоко искал).</p>
<p><a href="http://valera.ws/tag/google/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Google">Google</a> работает по HTTPS нормально. Пароль передает в открытом виде. Авторизацию по умолчанию предлагает защищенную. Способов определения, поддерживает  ли клиент HTTPS, я не нашел.</p>
<p>Facebook, как и Google, прекрассно работает по HTTPS. Авторизация по умолчанию защищенная. Пароль в открытом виде.</p>
<p>Вконтакте, Одноклассники, TUT.BY и Onliner.by по HTTPS не отвечают, защищенную авторизацию не предлагают, пароль идет в открытом виде.</p>
<p>oz.by по HTTPS предлагает принять самоподписанный сертификат, чтобы потом произвести редирект на HTTP. Пароль в открытом виде.</p>
<p>Вот такая статистика. Западные ресурсы и пользователи давно освоили основы безопасности в сети. Ведущие российские ресурсы защищают хотябы авторизацию пользователя. Ведущие белорусские ресурсы безопасность пользователей игнорируют полностью.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.02.05~ssl-auth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian Lenny, wifi и Broadcom</title>
		<link>http://valera.ws/2009.02.15~debian-lenny-wifi-i-broadcom/</link>
		<comments>http://valera.ws/2009.02.15~debian-lenny-wifi-i-broadcom/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 21:14:21 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=293</guid>
		<description><![CDATA[В своей недавней записи я рассказал как настроить работу Wi-fi на базе карточки от Broadcom в Debian Linux Etch. Сегодня вышла новая версия Debian — 5.0 Lenny, в которой обвновлена версия ядра Linux сразу до версии 2.6.26 (с 2.6.18). В &#8230; <a href="http://valera.ws/2009.02.15~debian-lenny-wifi-i-broadcom/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>В своей <a href="http://valera.ws/2008.11.24~nastrojka-wi-fi-debian/" target="_blank">недавней записи</a> я рассказал как настроить работу Wi-fi на базе карточки от Broadcom в <a href="http://valera.ws/tag/debian/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Debian">Debian</a> <a href="http://valera.ws/tag/linux/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Linux">Linux</a> Etch. Сегодня вышла новая версия <a href="http://valera.ws/tag/debian/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Debian">Debian</a> — 5.0 Lenny, в которой обвновлена версия ядра Linux сразу до версии 2.6.26 (с 2.6.18). В связи с этим перестал работать старый Бродкомовский драйвер, и потребовалась установка нового. <span id="more-293"></span> Благо, что установить новый драйвер очень просто, так как мы имеем свежее ядро Linux, под которое есть нормальные Бродкомовские дрова. Всю необходимую информацию о драйверах и установке можно получить на сайте <a href="http://linuxwireless.org/en/users/Drivers/b43" target="_blank">http://linuxwireless.org/en/users/Drivers/b43</a>.</p>
<p>В прошлый раз я писал, что у меня ноутбук HP Compaq nx7300 с сетевой Broadcom BCM4311 802.11b/g WLAN (rev 01). Эта карточка числится в списке поддерживаемых драйвером bc43 при условии свежести ядра (2.6.24 или старше). Чтобы проверить, какая карта у вас, выполните команды:</p>
<p>update-pciids<br />
lspci -nn</p>
<p>В выводе последней команды в конце у меня есть следующая строка:<br />
10:00.0 Network controller [0280]: Broadcom Cor poration BCM4311 802.11b/g WLAN [14e4:4311] (rev 01)</p>
<p>Это и ест ь мой сетевой адаптер  Broadcom  BCM4311.</p>
<p>Поддерживаются карты:</p>
<ul>
<li>bcm4303 (802.11b-only chips, uses b43legacy)</li>
<li>bcm4306 (Rev. 2 uses b43legacy, Rev. 3 uses b43)</li>
<li>bcm4309 (only the 2.4GHz part)</li>
<li>bcm4311 rev 1 / bcm4312</li>
<li>bcm4311 rev 2 / bcm4312 (needs patches for 2.6.24)</li>
<li>bcm4312 (only the 2.4GHz part)</li>
<li>bcm4318</li>
</ul>
<p>Для карты BCM4306 Rev 2 или для работы с лишь 802.11b режимом используется дрвйвер b43legacy. Во всех других случаях используется b43. Об установке b43 и поговорим :)</p>
<p>Для ядер 2.6.25 и выше надо выполнить лишь 2 следующие пачки команд, и все:</p>
<p>wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2<br />
tar xjf b43-fwcutter-011.tar.bz2<br />
cd b43-fwcutter-011<br />
make<br />
cd ..</p>
<p>export FIRMWARE_INSTALL_DIR=&raquo;/lib/firmware&raquo;<br />
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2<br />
tar xjf broadcom-wl-4.150.10.5.tar.bz2<br />
cd broadcom-wl-4.150.10.5/driver<br />
sudo ../../b43-fwcutter-011/b43-fwcutter -w &laquo;$FIRMWARE_INSTALL_DIR&raquo; wl_apsta_mimo.o</p>
<p>Тем самым мы скачали и собрали b43-fwcutter, которому затем подсунули скачанный драйвер. Он его &laquo;вставил&raquo; в систему. Все, сетевая работает.</p>
<p>Про настройку сетевой читайте в <a href="http://valera.ws/2008.11.24~nastrojka-wi-fi-debian/" target="_self">старом посте</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2009.02.15~debian-lenny-wifi-i-broadcom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Локальная офисная версия сайта</title>
		<link>http://valera.ws/2008.12.06~office-website/</link>
		<comments>http://valera.ws/2008.12.06~office-website/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 14:05:24 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Все рубрики]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[сайты]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=213</guid>
		<description><![CDATA[Часто в компаниях есть штатные редакторы, которые работают с некими сайтами этой, принадлежащими ей — наполняют их контентом, модерируют и т.д. Обычно редакторы вместе с обычными пользователями пользуются одной версией сайта, которая располагается на хостинге в сети. Но это не &#8230; <a href="http://valera.ws/2008.12.06~office-website/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Часто в компаниях есть штатные редакторы, которые работают с некими сайтами этой, принадлежащими ей — наполняют их контентом, модерируют и т.д. Обычно редакторы вместе с обычными пользователями пользуются одной версией сайта, которая располагается на хостинге в сети. Но это не оптимально, так как лишний трафик (прежде всего HTML-код страниц, рисунки, css) гуляет с сервера на офис, занимая внешний канал компании и тратя трафик веб-сервера. При мдленном внешнем канале тратится так же и время редакторов.</p>
<p><span id="more-213"></span>В идеале, в данном случае передавать необходимо только добавляемые и получаемые данные, так как весь антураж может быть сохранен и доступен в пределах офиса локально.</p>
<p>Для решения этой задачи можно использовать общую базу данных, которая будет  располагаться на хостинге. На сервере в локальной сети поднять сайт, указать для  подключения к СУБД параметры доступа к база на удаленном сервере. Таким образом, у вас будут 2 одинаковых сайта, параллельно работающих с одним источником данных.</p>
<p>В принципе это обычная схема для балансировки нагрузки на фронтэнд (web-сервер). Практику много фронтэндов — один бэкэнд (база) применяют довольно часто, а следующий этап разделения нагрузки (когда уже СУБД не выдерживает напора) — кластеризация серверов баз данных. Но это лирическое отступление.</p>
<p>Следуюет учесть три нюанса. Во-первых, так как сервера у нас теперь два, время на них может быть разное. Следовательно при записи в базу временные показатели будут для серверов расходиться и может возникнуть путаница. Чтобы этого избежать, проще всего брать время из СУБД. Делать это надо естественно 1 раз за запрос (кэшировать), а не при каждой необходимости (при условии, что запрос выполняется не более 1 секунды; если больше, значит ваша система нуждается в оптимизации). Таким образом время на всех серверах будет синхронизировано по времени на сервере с СУБД.</p>
<p>Второй нюанс заключается в том, что по сети информация между сервером на офисе и базой у провайдера будет ходить в открытом виде, что потенциально опасно. Так же опасно создавать пользователя, которому будет разрешено удаленно подключаться к сети с любого хоста, так как получив ваш пароль злоумышленник легко завладеет базой и сайтом (если IP статичский, второй аспект не актуален).</p>
<p>Решить эту проблему можно через подключение к СУБД по защищенному SSL-протоколу. Популярные СУБД поддерживают SSL (MySQL, PgSQL). Подключение клиента к серверу через SSL поддерживают родные C API этих СУБД, и <a href="http://valera.ws/tag/php/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">PHP</a> MySQL/PgSQL API тоже. Но SSL не поддерживается PDO (во всяком случае я не нашел информацию о поддержке), который в настоящее время очень популярен и который следует использовать. По этому вариант подключения к базе через SSL отпадает.</p>
<p>Остается другой, довольно простой для использования и сложный для настройки вариант — перегон трафика между офисом и хостингом через VPN. Сам <a href="http://valera.ws/2008.11.21~traffic-security/">VPN я уже описывал</a> в своем блоге. После поднятия VPN-тоннеля необходимо прописать роут на IP вашего сервера (того сервера, где находится СУБД) через виртуальный интерфейс VPN-соединения. Таким образом весь трафик между PHP и СУБД будет ходить по безопасному зашифрованному каналу.</p>
<p>Третий нюанс заключается в кэшировании. Часто кэш некоторых элементов заводят пожизненно (или на долгое время), а сбрасывается он только при изменении данных редактором. В этом случае, при внесении изменений на одном из серверов, кэш не сбросится на втором и на неопределенный срок там останется неактуальная информация. Эта проблема решается через изменение стратегии кэширования, либо использование общего сервера кэширования и выходит за рамки данной статьи. Если именно этот вопрос для вас остается актуальным, ищите информацию в гугле, т.к. та же самая проблема существует при  балансировке нагрузки путем &laquo;размножения&raquo; фронэндов.</p>
<p>Когда все проблемы решены, все что остается делать — это следить за тем, чтобы версии скриптов на серверах в сети и на офисе были одинаковыми, чтобы не повредить базу.</p>
<p>Теперь редакторы сайта смогут пользоваться более быстрой локальной версией сайта, но все изменения будут отображаться в том числе и на сайте в сети.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2008.12.06~office-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка беспроводной сети (wi-fi) в Debian</title>
		<link>http://valera.ws/2008.11.24~nastrojka-wi-fi-debian/</link>
		<comments>http://valera.ws/2008.11.24~nastrojka-wi-fi-debian/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 21:02:55 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Все рубрики]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=170</guid>
		<description><![CDATA[Известный факт, что настройка беспроводных сетей в линуксе — не самая простая задача. Проблемы возникают из-за отсутствия в дистрибутивах драйверов к адаптерам wi-fi и bluetooth. Ко многим адаптерам драйвера существуют только под Windows. В своем блоге я опишу результат собственных &#8230; <a href="http://valera.ws/2008.11.24~nastrojka-wi-fi-debian/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://valera.ws/wp-content/uploads/2008/11/debian.png"><img class="alignleft size-full wp-image-196" title="Debian Linux" src="http://valera.ws/wp-content/uploads/2008/11/debian.png" alt="" width="133" height="72" /></a>Известный факт, что настройка беспроводных сетей в линуксе — не самая простая задача. Проблемы возникают из-за отсутствия  в дистрибутивах драйверов к адаптерам wi-fi и bluetooth. Ко многим адаптерам драйвера существуют только под Windows.</p>
<p class="P1">В своем блоге я опишу результат собственных изысканий по подъему wi-fi адаптера на ноутбуке HP Compac nx 7300 для дистрибутива <a href="http://valera.ws/tag/debian/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Debian">Debian</a> (etch). Стоит упомянуть, что вся информация актуальна на момент ноября 2008 года, и что все описанное ниже не претендует на «руководство», это лишь описание моих действий и результатов.</p>
<p class="P1"><span id="more-170"></span></p>
<p class="P1"><span style="color: #ff0000;"><strong>UPD: Внимание!</strong> В связи с выходом Debian 5.0 Lenny сначала <a href="http://valera.ws/2009.02.15~debian-lenny-wifi-i-broadcom/" target="_blank">прочитайте эту запись</a>!</span></p>
<p class="P1">Гуглинг  на тему моего wi-fi в Debian привел к <a href="http://wiki.debian.org/bcm43xx"> замечательному описанию-руководству</a> по поднятию беспроводной сети. В этом мануале рассказывается про установку драйверов для беспроводных адаптеров на базе чипсетов Broadcom 43xx и 1390. Вот как раз 4311 и установлен в ноутбук HP Compac  nx7300.</p>
<p class="P1">Драйвера от Broadcom есть и под <a href="http://valera.ws/tag/linux/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Linux">Linux</a>, и под Windows. Для линукса есть даже 2 разных версии:</p>
<ul>
<li class="P1">Linux b43 / bcm43xx driver (начиная с ядра 2.6.24 его просто переименовали),</li>
<li>Linux b43_legacy driver (<a href="http://wireless.kernel.org/en/users/Driv ers/b43#b43andb43legacy">отделен</a> в ядре 2.6.24 для совместимости со старыми чипсетами).</li>
</ul>
<p>Виндовый драйвер так же может работать в линуксе через известную программу <a href="http://sourceforge.net/projects/ndisw rapper/">NDISWrapper</a>. Причем, забегая вперед, скажу, что именно с ним и пришлось работать.</p>
<p class="Standard">Сначала требуется определить, какой сетевой адаптер используется. Как это сделать, написано в отдельном <a href="http://wi ki.debian.org/HowToIdentifyADevice/PCI">руководстве</a>. Самый простой вариант —  выполнить следующие команды:</p>
<pre>update-pciids</pre>
<pre>lspci -nn</pre>
<p class="P1">В выводе последней команды в конце у меня есть следующая строка:</p>
<pre>10:00.0 Network controller [0280]: Broadcom Cor poration BCM4311 802.11b/g WLAN [14e4:4311] (rev 01)</pre>
<p class="P1">Это и ест ь мой сетевой адаптер  Broadcom  BCM4311. Теперь пробуем заставить его работать.  Стоит отметить, что до установки дров сетевой интерфейс wlan0 просто не существует, а диод на ноуте не горит и не включается кнопкой.</p>
<p class="P1">Установкой я занимался по порядку, описанному в <a href="http://wiki.debian.org/bcm43xx">статье</a>. Принцип там такой: попробуйте сделать это, если не поможет, попробуйте это, если не поможет, попробуйте это и т.д.</p>
<p class="P1">Сразу отмечу, что ядро у меня 2.6.18 (т.е. меньше) 2.6.24, а значит b43_legacy и Native b43 driver рассматривать смысла нет вообще. Cтавим Native bcm43xx driver.</p>
<p class="P1">Руководство по установке этого драйвера начинается с <a href="http://wiki.d ebian.org/bcm43xx#bcm43xx">этого места</a>. Подзаголовки (option 1, 2, 3, 4, 5) — это этапные варианты установки драйвера. Последним пунктом идет установка Ndiswrapper&#8217;а. Я прошел все эти 6 уровней, адаптер заработал у меня только после установки  Ndiswrapper&#8217;а. Если у вас не адаптер BCM4311 в связке с linux kernel 2.6 .18, рекомендую попробовать все варианты по порядку (пройти этот увлекательный к вест :), иначе можете сразу приступать к <a href="http://wiki.debian.org/bcm43xx #head-008d3c9860c55e5707a54612125803ac3b2ad0c8">установке  Ndiswrapper&#8217;а</a>.</p>
<p class="P1">Если в конце концов у вас таки появилось устройство wlan0, поздравляю, драйвер установлен!</p>
<p class="P1">Но установить драйвер естественно мало. Надо еще настроить интерфейс. Так как я бродил несколькими обходными путями и произвел достаточно много действий при изучении этого вопроса, точно сейчас сказать сложно, какие из действий являются минимально-необходимыми. Но факт в том,  что в файле /etc/networks/interfaces у меня сейчас следующие строки:</p>
<pre>allow-hotplug wlan0</pre>
<pre>iface wlan0 inet static</pre>
<pre>wireless-essid ZyXEL</pre>
<pre>address 192.168.0.30</pre>
<pre>netmask 255.255.255.0</pre>
<pre>gateway 192.168.0.1</pre>
<p>ZyXEL — точка доступа, IP понятны, вторая строка обозначает, что IP пр описаны статически, а не по DHCP. Так же есть файл /home/feedbee/wlan следующего  содержания:</p>
<pre>echo "Loading ndiswrapper..."</pre>
<pre>modprobe ndiswrapper</pre>
<pre>echo "Setting mode Managed..."</pre>
<pre>iwconfig wlan0 mode Managed</pre>
<pre>echo " -- Setting ESSID"</pre>
<pre>iwconfig wlan0 essid ZyXEL</pre>
<pre>echo " --Setting to channel 6..."</pre>
<pre>iwconfig wlan0 channel 6</pre>
<pre>echo " --Turning on managed mode..."</pre>
<pre>iwconfig wlan0 mode Managed</pre>
<pre>echo " --Setting encryption key"</pre>
<pre>iwconfig wlan0 key restricted E3374866EE</pre>
<pre>echo "Bringing up interface wlan0..."</pre>
<pre>ifconfig wlan0 up</pre>
<pre>echo "Disable interface eth0 to kill its routes. .."</pre>
<pre>ifconfig eth0 down</pre>
<pre>echo "--Setting routing..."</pre>
<pre>route add default wlan0</pre>
<pre>route add -net 81.25.32.0 netmask 255.255.255.0 gw 192.168.0.1 wlan0</pre>
<p>Этот файл включает сетевой адаптер. Но до запуска файла адаптер дол жен быть включен физически, т.е. должен гореть синий диод на ноутбуке.</p>
<p>В этом файле все должно быть понятно, отмечу только следующие моменты. Последняя строка строго индивидуальна, она прописывает нужный для работы роут на  провайдера. Вообще, после поднятия интерфейса wlan0 остаются старые роуты на eth0 и к ним добавляются новые на wlan0. В этом случае роутиговая система ядра пытается слать пакеты через eth0 даже в том случае, если сетевой кабель не подключен. Именно по этой причине в файле wlan гасится интерфейс eth0 (при этом роуты на  него автоматически удаляются). Дефалтные роуты на wlan0 прописываются автоматически.</p>
<p class="P1">Строка <span class="T1">iwconfig wlan0 key restricted E3 374866EE</span> в файле обозначает, что используется WEP-шифрование.  E3374866EE  — это ключ, который введен на точке (в HEX-формате). Для WEP-64 это 10 шестнадцатеричных цифр, для WEP-128 — 26. Если шифрование не используется, эту строчку можно просто убрать.</p>
<p class="P1">Если интерфейс wlan0 и соединение с точкой доступа поднялись, но пакеты на сеть не ходят (хосты не пингуются), разбирайтесь с роутами.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2008.11.24~nastrojka-wi-fi-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Безопасность (шифрование) трафика</title>
		<link>http://valera.ws/2008.11.21~traffic-security/</link>
		<comments>http://valera.ws/2008.11.21~traffic-security/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 21:11:08 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Все рубрики]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=161</guid>
		<description><![CDATA[Параллельно с развитием технологий защиты интернет-трафика от несанкционированного доступа развиваются и технологии перехвата защищенного трафика. Перехватить и изучить незашифрованный трафик пользователя уже давно не составляет труда даже для рядового юзера. Практически каждому известно слово &#171;сниффер&#187;. Теоретически, защищенные SSL/TSL-соединения перехватить обычными &#8230; <a href="http://valera.ws/2008.11.21~traffic-security/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://valera.ws/wp-content/uploads/2008/11/ssl.png"><img class="alignleft size-full wp-image-195" title="SSL" src="http://valera.ws/wp-content/uploads/2008/11/ssl.png" alt="" width="96" height="70" /></a>Параллельно с развитием технологий защиты интернет-трафика от несанкционированного доступа развиваются и технологии перехвата защищенного трафика. Перехватить и изучить незашифрованный трафик пользователя уже давно не составляет труда даже для рядового юзера. Практически каждому известно слово &laquo;сниффер&raquo;. Теоретически, защищенные <a href="http://ru.wikipedia.org/wiki/SSL" target="_blank">SSL</a>/<a href="http://ru.wikipedia.org/wiki/TLS" target="_blank">TSL</a>-соединения перехватить обычными средствами невозможно. Но так ли это?</p>
<p><span id="more-161"></span></p>
<p>На самом деле — не совсем так. Да, зашифрованный трафик теоретически невозможно расшифровать, хотя опять таки теоретически при очень большой необходимости и желании, и такой трафик можно расшифровать, подобрав ключ. Однако для этого нужны такие затраты ресурсов, что актуальность взлома сохраняется только, наверное, на правительственном или военном уровне :)</p>
<p>При работе по защищенному соединению (самый просто пример — <a href="http://habrahabr.ru/blogs/infosecurity/44818/" target="_blank">HTTPS</a>) весь трафик между взаимодействующими точками в сети шифруется на стороне отправителя и дешифруется на стороне получателя. Шифруется трафик, идущий в обоих направлениях. Для того, чтобы его зашифровать и расшифровать нужна пара ключей (ассиметричное шифрование).  Публичный ключ служит для зашифрования и передается получателю данных, а приватный — для дешифрования, он остается у  отправителя. Таким образом, узлы, между которыми устанавливается SSL-соединение, обмениваются публичными ключами. Далее, для повышения производительности формируется единый ключ, который пересылается уже в зашифрованном виде и используется как для шифрации, так и для дешифрации на обеих сторонах (симметричное шифрование).</p>
<p>А как они это делают? Обычно — по тому же каналу, по которому далее будет идти защищенный трафик. Причем обмен ключами происходит в открытом режиме. В случае HTTPS ключ сервера связан с сертификатом, который пользователю предлагается просмотреть и принять. И вот этот сертификат как раз и может перехватить любой промежуточный сервер, на пути которого идет сертификат в открытом виде (прокси, роутер).</p>
<p>Чтобы далее &laquo;читать&raquo; весь трафик пользователя, промежуточный сервер подменяет сертификат на свой. Т.е. он просто сам подключается к клиенту со своим сертификатом, и в то же время подключается к удаленному серверу. Клиенту приходит &laquo;левый&raquo; сертификат от сервера-злоумышленника, а браузер сообщает пользователю об опасности (такие сертификаты всегда не подписаны). У пользователя остается выбор: принять сертификат и работать с сайтом, либо отказаться его принимать, но и работать с сайтом тогда уже не получится. Иногда пользователи вообще игнорируют содержимое сертификатов и машинально принимают любые переданные им.</p>
<p>Если пользователь принимает сертификат-подделку, то трафик будет идти по следующей схеме:</p>
<p><em>клиент &lt;= SSL-соединение =&gt; сервер-прослушка &lt;= SSL-соединение =&gt; сервер назначения</em></p>
<p>Т.е. промежуточный сервер будет получать весь ваш &laquo;защищенный&raquo; трафик в открытом виде. Стоит также заметить, что передача сертификата происходит в начале каждой сессии HTTPS.</p>
<p>В случае защищенного SSH при первом соединении с сервером на клиенте сохраняется ключ сервера, а на сервере — ключ клиента. Эти ключи передаются между данными клиентом-сервером только один раз, при первом подключении. Если в этом случае SSH-трафик попытаются перехватить, то и клиент, и сервер откажут в соединении из-за несоответствия ключей. Так как ключи можно перенести между клиентом и сервером обходным путем (по защищенному каналу или на внешнем носителе), этот способ соединения является относительно безопасным. Его могут лишь заблокировать, заставив пользователя работать в открытую.</p>
<p>Стоит отметить, что уже давно продаются так называемые &laquo;решения по информационной безопасности предприятия&raquo;, которые перехватывают весь трафик, проходящий через офисный прокси-сервер, и &laquo;читают&raquo; его. Программы ищут наличие определенных фраз или информации определенного вида в потоке данных от браузеров, почтовых программ, ftp-клиентов, мессенджеров сотрудников офиса. Причем, эти программы умеют различать и обрабатывать правильно самые разные виды информационного взаимодействия с серверами. В том числе, они проверяют и защищенный SSL-трафик путем подмены сертификатов. С разработкой одной из таких систем я сталкивался почти непосредственно.</p>
<p>Но пути спасения от тотальной слежки есть. Через установленное SSH-соединение можно направлять любой нужный трафик, который с SSH-сервера будет уже в открытом виде идти на конечную точку. Этот способ называется SSH-туннелинг (tunneling). Так можно обезопасить прохождение трафика по незащищенному каналу, но имеет смысл такой подход только при наличии доверенного сервера с поднятым и настроенным на туннелинг SSH-демоном. Причем организовать это достаточно просто. SSH-клиент подключается к серверу, настраивается на прослушку любого данного порта на локальной машине. Этот клиент будет предоставлять услугу SOCKS5-прокси, т.е. его использование можно настроить в любом браузере, почтовых программах, IM-ах и т.д. Через SSH-туннель пакеты попадают на сервер, а с него уходят на целевой сервер. Схема получается следующая:</p>
<p><em>[localhost: клиент &lt;=&gt; proxy] &lt;== SSH-соединение ==&gt; сервер &lt;=&gt; целевой сервер</em></p>
<p>Другой способ защиты трафика — <a href="http://ru.wikipedia.org/wiki/VPN" target="_blank">VPN</a>-канал. В использовании он проще и удобнее SSH-туннелинга, но в первичной установке и настройке сложнее. Основное удобство этого способа в том, что в программах не нужно прописывать прокси. А некоторый софт и вовсе прокси не поддерживает, следовательно только VPN и подойдет.</p>
<p>На практике есть два варианта работы. Первый — покупка VPN-акканута, который продается специально для этих целей (шифрование трафика по небезопасному каналу). В этом случае продаются обычно аккаунты, соединяться с которыми надо по протоколам PPTP (обычный VPN, который реализован, например, в Windows) или L2TP. Купить такой аккаунт можно, например,  на <a href="http://russianproxy.ru/" target="_blank">russianproxy.ru</a>.</p>
<p>Второй вариант — покупка VDS-сервера (виртуальный выделенный сервер) с любым дистрибутивом линукса на борту и поднятие на нем VPN-сервера. Один из самых популярных российских провайдеров — <a href="http://firstvds.ru/ru/home/index.html?from=10834">firstvds.ru</a>. Его главное преимущество — низкие цены (акцентирую внимание на то, что серверы в России; если подойдет американский сервер, есть, например, <a href="http://vpsland.com" target="_blank">vpsland.com</a>, только не забывайте про заокеанские пинги). На VDS ставят <a href="http://ru.wikipedia.org/wiki/OpenVPN" target="_blank">OpenVPN</a>-сервер, а на компьютере поднимается OpenVPN-клиент. Для Windows есть даже <a href="http://openvpn.se/" target="_blank">гуишная версия клиента</a>.</p>
<p>Если вы решите использовать вариант с OpenVPN, то есть <a href="http://elwood.su/?p=8" target="_blank">простая пошаговая инструкция</a> по поднятию сервера, как раз для firstVDS с <a href="http://valera.ws/tag/debian/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Debian">Debian</a> на борту. Установить клиента еще проще, особенно под Windows. Отметить стоит только один нюанс. Если весь трафик требуется пустить по созданному VPN-соединению, то требуется прописать default gateway на шлюз VPN (параметр redirect-gateway в конфиге клиента), а если только часть трафика (на определенные хосты), то можно прописать обычные статические маршруты на данные хосты (по IP; например, route add -p 81.25.32.25 10.7.0.1).</p>
<p>Для соединения OpenVPN обмен ключами происходит в ручном режиме, т.е. транспортировать их от сервера на клиент можно абсолютно безопасно.</p>
<p>Таким образом, SSH- и VPN-соединения могут практически полностью гарантировать безопасность вашего трафика при перемещении по незащищенному каналу. Единственная проблема, которая может возникнуть в этом случае, — это запрет на SSL-трафик на корпоративном файрволе. Если SSL-трафик разрешен хотябы на один любой порт (обычно дефолтный 443), то вы уже потенциально можете поднять и SSH-тонель, и VPN-соединение, настроив соответствующего демона на вашем VDS на этот порт.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2008.11.21~traffic-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

