<?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://freeschool.altlinux.ru/?feed=rss2&#038;tag=%D0%BA%D1%83%D1%80%D1%8F%D1%87%D0%B8%D0%B9" rel="self" type="application/rss+xml" />
	<link>http://freeschool.altlinux.ru</link>
	<description>Команда ALT Linux рассказывает о внедрении свободного программного обеспечения в школах России</description>
	<lastBuildDate>Fri, 03 Feb 2017 13:54:35 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Всероссийский съезд учителей информатики в МГУ</title>
		<link>http://freeschool.altlinux.ru/?p=4159</link>
		<comments>http://freeschool.altlinux.ru/?p=4159#comments</comments>
		<pubDate>Tue, 15 Mar 2011 16:39:26 +0000</pubDate>
		<dc:creator><![CDATA[Владимир Черный]]></dc:creator>
				<category><![CDATA[Конференции, семинары и выставки]]></category>
		<category><![CDATA[Курячий]]></category>
		<category><![CDATA[МГУ]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=4159</guid>
		<description><![CDATA[24-26 марта 2011 года в МГУ состоится Всероссийский съезд учителей информатики, на котором пройдет широкое обсуждение состояния и перспектив развития школьного образования в области информатики и информационно-коммуникационных технологий в контексте основных принципов Национальной образовательной инициативы «Наша новая школа». На Съезд приглашаются: учителя информатики и ИКТ общеобразовательных школ; специалисты по педагогике и методике преподавания информатики и [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>24-26 марта 2011 года в МГУ состоится Всероссийский съезд учителей информатики, на котором пройдет широкое обсуждение состояния и перспектив развития школьного образования в области информатики и информационно-коммуникационных технологий в контексте основных принципов Национальной образовательной инициативы «Наша новая школа».<br />
<span id="more-4159"></span><br />
На Съезд приглашаются:</p>
<ul>
<li>учителя информатики и ИКТ общеобразовательных школ;</li>
<li>специалисты по педагогике и методике преподавания информатики и ИКТ;</li>
<li>руководители образовательных учреждений;</li>
<li>представители органов управления образованием;</li>
<li>учителя математики, физики и других дисциплин;</li>
<li>преподаватели высших учебных заведений.</li>
</ul>
<p>Работа Съезда будет организована в виде тематических секций и круглых столов, посвященных различным аспектам современного образования в области информатики и ИКТ.</p>
<p>На съезде в качестве докладчика будет выступать Георгий Курячий (ALT Linux).</p>
<p>Подробности <a href="http://it.teacher.msu.ru/">о Съезде тут</a></p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=4159</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Free Pascal и DOS графика в Linux</title>
		<link>http://freeschool.altlinux.ru/?p=3884</link>
		<comments>http://freeschool.altlinux.ru/?p=3884#comments</comments>
		<pubDate>Tue, 25 Jan 2011 10:24:52 +0000</pubDate>
		<dc:creator><![CDATA[Владимир Черный]]></dc:creator>
				<category><![CDATA[Методические материалы]]></category>
		<category><![CDATA[Free Pascal]]></category>
		<category><![CDATA[Курячий]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=3884</guid>
		<description><![CDATA[Совсем недавно ALT Linux анонсировал новую электронную версию Альт Линукс 5.0.2 Школьный. В этой статье я хочу обратить внимание на одну весьма полезную возможность, добавленную в эту сборку. А именно, теперь любую программу на Паскале написанную для DOS с использованием egavga.bgi можно легко и просто (чуть поправив, конечно) запустить под Linux. Автор дальнейшего текста Георгий [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Совсем недавно ALT Linux анонсировал новую электронную версию <a href="http://freeschool.altlinux.ru/?p=3856">Альт Линукс 5.0.2 Школьный</a>. В этой статье я хочу обратить внимание на одну весьма полезную возможность, добавленную в эту сборку. А именно, теперь любую программу на Паскале написанную для DOS с использованием egavga.bgi можно легко и просто (чуть поправив, конечно) запустить под Linux.<br />
<span id="more-3884"></span><br />
Автор дальнейшего текста Георгий Курячий.<br />
В Сизифе (в p5 — начиная с 5.0.2) есть модуль для <strong>FreePascal</strong>, позволяющий использовать графические примитивы в стиле <strong>Turbo Pascal BGI</strong>. Пакет с модулями называется <a href="http://sisyphus.ru/ru/srpm/Sisyphus/fpc-units-ptcpas"><strong>fpc-units-ptcpas</strong></a>, соответствующий модуль — <strong>PTCGraph</strong>.</p>
<h2>Адаптация BGI-графики для FreePascal</h2>
<ol>
<li>Установить пакет <strong>fpc-units-ptcpas-demos</strong>. Он должен вытянуть все нужные зависимости; кроме того, примеры оттуда можно запустить и/или пересобрать путём копирования всего каталога и запуска в нём команд <strong>make clean</strong> и <strong>make</strong>.</li>
<li>Поменять в исходном тексте программы названия модулей <strong>Graph</strong> и <strong>Crt</strong> на <strong>PTCGraph</strong> и <strong>PTCCrt</strong> соответственно. Не стоит забывать, что названия модулей могут применяться не только в операторе <strong>Uses</strong>, но и при обращении к содержимому модуля. Использование модуля <strong>Crt</strong> или стандартного ввода (например, <strong>ReadLn;</strong>) приведёт к тому, что ввод и вывод будет происходить из окна терминала (или вообще неизвестно откуда, если запускать программу не из терминала), а не из окна с графикой.</li>
<li>Модифицировать исходные тексты так, чтобы в них не использовались определённые значения переменных <strong>GraphDriver</strong> и <strong>GraphMode</strong>. Привязка к BGI-каталогу или BGI-файлу PTCGraph-ом игнорируется.</li>
<li>Проверить, насколько приемлемо используются в исходниках цвета и размеры экрана.</li>
</ol>
<h3>Примеры (Turbo Pascal 7.1)</h3>
<p>В файле <strong>EXAMPLES/BGI/BGIDEMO.PAS</strong><br />
Достаточно заменить<br />
<code>uses<br />
   Crt, Dos, Graph;</code><br />
на<br />
<code>uses<br />
   PTCCrt, Dos, PTCGraph;</code></p>
<p>В файле <strong>EXAMPLES/BGI/ARTY.PAS</strong><br />
Сверх того надо заменить<br />
<code>Graph.Line(x1,y1,x2,y2);</code><br />
на<br />
<code>PTCGraph.Line(x1,y1,x2,y2);</code><br />
и в оператор<br />
<code>case GraphDriver of</code><br />
добавить перед закрывающим его <code>end;</code> задание по умолчанию переменной <code>MaxDelta</code>:<br />
<code>else MaxDelta := 16;</code></p>
<p><strong>В примерах из помощи (например, по процедуре Circle)</strong></p>
<p>По умолчанию графика рисуется синим, а не белым цветом, причём в левом верхнем углу (см. замечание 4), а окончание ввода по ReadLn; ожидается в терминале (см. замечание 3). Рекомендуется вместо автоопределения драйвера<br />
<code>Gd:=Detect;<br />
InitGraph(Gd, Gm, ' ');</code><br />
использовать явное задание VGA-совместимого оконного режима<br />
<code>Gd:=VGA;<br />
InitGraph(Gd, Gm, ' ');</code><br />
а вместо использования<br />
<code>. . .<br />
ReadLn;</code><br />
для задержки ввода пользоваться<br />
<code>Uses PTCCrt<br />
. . .</p>
<p>ReadKey;</code></p>
<p>Посмотрите на картинки &#8212; вы их узнаете?! Да, это bgidemo <img src="http://freeschool.altlinux.ru/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo-150x150.png" alt="" title="bgidemo" width="150" height="150" class="aligncenter size-thumbnail wp-image-3887" /></a><a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo1.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo1-150x150.png" alt="" title="bgidemo1" width="150" height="150" class="aligncenter size-thumbnail wp-image-3888" /></a><a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo2.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo2-150x150.png" alt="" title="bgidemo2" width="150" height="150" class="aligncenter size-thumbnail wp-image-3889" /></a><br />
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo3.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo3-150x150.png" alt="" title="bgidemo3" width="150" height="150" class="aligncenter size-thumbnail wp-image-3891" /></a><a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo4.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo4-150x150.png" alt="" title="bgidemo4" width="150" height="150" class="aligncenter size-thumbnail wp-image-3892" /></a><a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo7.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo7-150x150.png" alt="" title="bgidemo7" width="150" height="150" class="aligncenter size-thumbnail wp-image-3893" /></a><br />
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo8.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo8-150x150.png" alt="" title="bgidemo8" width="150" height="150" class="aligncenter size-thumbnail wp-image-3894" /></a><a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo9.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo9-150x150.png" alt="" title="bgidemo9" width="150" height="150" class="aligncenter size-thumbnail wp-image-3895" /></a><a href="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo10.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2011/01/bgidemo10-150x150.png" alt="" title="bgidemo10" width="150" height="150" class="aligncenter size-thumbnail wp-image-3896" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=3884</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Прямая интернет-трансляция семинара ALT Linux в МИЭМ</title>
		<link>http://freeschool.altlinux.ru/?p=3559</link>
		<comments>http://freeschool.altlinux.ru/?p=3559#comments</comments>
		<pubDate>Tue, 30 Nov 2010 12:02:37 +0000</pubDate>
		<dc:creator><![CDATA[ALT Linux]]></dc:creator>
				<category><![CDATA[ALT Linux]]></category>
		<category><![CDATA[Конференции, семинары и выставки]]></category>
		<category><![CDATA[Курячий]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=3559</guid>
		<description><![CDATA[Сегодня, 30 ноября, в актовом зале главного здания Московского государственного института электроники и математики (МИЭМ) пройдет семинар российской компании ALT Linux. Для выступления приглашен эксперт ALT Linux Георгий Курячий («FrBrGeorge»). Основная часть мероприятия будет посвящена дискуссии с аудиторией. Среди тем, с которых ведущий начнет обсуждение: история успеха ALT Linux и планы на будущее; дистрибутив Simply [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Сегодня, 30 ноября, в актовом зале главного здания Московского государственного института электроники и математики (МИЭМ) пройдет семинар российской компании ALT Linux.<br />
Для выступления приглашен эксперт ALT Linux Георгий Курячий («FrBrGeorge»). Основная часть мероприятия будет посвящена дискуссии с аудиторией. Среди тем, с которых ведущий начнет обсуждение:<br />
история успеха ALT Linux и планы на будущее;<br />
дистрибутив Simply Linux;<br />
внедрение свободного ПО в государственные структуры;<br />
российская национальная операционная система;<br />
юридические сложности использования СПО в российских реалиях;<br />
перспективы развития СПО в России.<br />
Прямая интернет-трансляция мероприятия начнется в 16:30 по московскому времени и будет доступна для просмотра на сайте <a href="http://live.miem.tv/">live.miem.tv</a></p>
<p>По материалам <a href="http://www.miem.edu.ru/news/30-%D0%BD%D0%BE%D1%8F%D0%B1%D1%80%D1%8F-%D0%B2-%D0%9C%D0%98%D0%AD%D0%9C-%D0%BF%D1%80%D0%BE%D0%B9%D0%B4%D0%B5%D1%82-%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80-%D0%BA%D0%BB%D0%B0%D1%81%D1%81-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8-ALT-Linux.html">МИЭМ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=3559</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Начались занятия в Летней школе</title>
		<link>http://freeschool.altlinux.ru/?p=3173</link>
		<comments>http://freeschool.altlinux.ru/?p=3173#comments</comments>
		<pubDate>Wed, 21 Jul 2010 14:07:15 +0000</pubDate>
		<dc:creator><![CDATA[ALT Linux]]></dc:creator>
				<category><![CDATA[Школа Linux]]></category>
		<category><![CDATA[Карпунина]]></category>
		<category><![CDATA[Курячий]]></category>
		<category><![CDATA[Саломатин]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=3173</guid>
		<description><![CDATA[Сегодня в Университете города Переславля начала работу &#171;Летняя Школа Linux для специалистов — 2010&#8243;. Школу, по теме «Внедрение ПСПО в учебном заведении», проводит Георгий Курячий, автор книги &#171;Операционная система Linux. Курс лекций.&#187;. На Школу подобрался достаточно сильный состав: почти все участники школы имеют опыт работы в Linux. Один из участников, Сергей Гриценко из Липецка, уже [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Сегодня в <a href="http://u.pereslavl.ru/">Университете города Переславля</a> начала работу  <a href="http://www.altlinux.ru/news/item/592/">&#171;Летняя Школа Linux для специалистов — 2010&#8243;</a>. Школу, по теме «Внедрение ПСПО в учебном заведении», проводит Георгий Курячий, автор книги <a href="http://shop.altlinux.ru/index.php?productID=727">&#171;Операционная система Linux. Курс лекций.&#187;</a>.<br />
<span id="more-3173"></span><br />
На Школу подобрался достаточно сильный состав: почти все участники школы имеют опыт работы в Linux. Один из участников, Сергей Гриценко из Липецка, уже успел получить диплом <a href="http://www.altlinux.ru/partners/specialist-edu/">&#171;Специалист по внедрению ПСПО в системе образования&#187;</a>, другой &#8212; Владимир Саломатин  из Челябинска &#8212; автор <a href="http://videodisc.altlinux.ru/html/index.html">цикла видеоуроков</a>. Елена Карпунина, преподаватель информатики из Королева (моск. область) &#8212; тоже успела внести свой вклад в СПО &#8212; читайте ее <a href="http://moodle.altlinux.ru/course/view.php?id=24">уроки по GIMP</a> в нашей системе дистанционного обучения.<br />
Также интересна и география участников &#8212; от Вологды до Читы.<br />
Пожелаем участникам школы успешных занятий, несмотря на жару. </p>
<p><a href="http://freeschool.altlinux.ru/wp-content/uploads/2010/07/George.jpg"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2010/07/George-150x150.jpg" alt="" title="Г. Курячий открывает Школу" width="150" height="150" class="alignleft size-thumbnail wp-image-3174" /></a><a href="http://freeschool.altlinux.ru/wp-content/uploads/2010/07/public.jpg"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2010/07/public-150x150.jpg" alt="" title="Участники школы" width="150" height="150" class="alignleft size-thumbnail wp-image-3175" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=3173</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Завершилась зимняя Школа Linux</title>
		<link>http://freeschool.altlinux.ru/?p=2649</link>
		<comments>http://freeschool.altlinux.ru/?p=2649#comments</comments>
		<pubDate>Mon, 01 Feb 2010 17:08:32 +0000</pubDate>
		<dc:creator><![CDATA[ALT Linux]]></dc:creator>
				<category><![CDATA[ALT Linux]]></category>
		<category><![CDATA[Школа Linux]]></category>
		<category><![CDATA[Курячий]]></category>
		<category><![CDATA[Школа для преподавателей]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=2649</guid>
		<description><![CDATA[29 января успешно завершилась зимняя Школа Linux для преподавателей по теме &#171;Специалист по свободному ПО в учебном заведении&#187;. На школе присутствовали слушатели из Томска, Самары, Кемеровской области, Ярославля и студенты университета г. Переславля. На удивление, уровень слушателей оказался примерно одинаковым и достаточно высоким, что дало возможность лектору (Г. Курячий) излагать материал на высоком научном уровне [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>29 января успешно завершилась зимняя Школа Linux для преподавателей по теме &#171;Специалист по свободному ПО в учебном заведении&#187;. На школе присутствовали слушатели из Томска, Самары, Кемеровской области, Ярославля и студенты университета г. Переславля.<br />
<span id="more-2649"></span><br />
На удивление, уровень слушателей оказался примерно одинаковым и достаточно высоким, что дало возможность лектору (Г. Курячий) излагать материал на высоком научном уровне не делая скидки на &#171;отстающих&#187;. Те, кто сам преподает, знают, насколько это важно!<br />
Класс был развернут на базе <a href="http://freeschool.altlinux.ru/?p=2232">нового школьного комплекта (на базе Пятой Платформы)</a>, у преподавателя Школьный сервер, а на компьютерах слушателей Школьный мастер. Изложение велось на основе курса лектора <a href="http://shop.altlinux.ru/index.php?productID=727">&#171;Операционная система Linux&#187;</a>. По окончании школы эта книга была вручена всем слушателям с автографом автора.<br />
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2010/02/winter_school1.JPG"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2010/02/winter_school1-300x225.jpg" alt="Георгий Курячий подписывает книги для вручения слушателям" title="Георгий Курячий подписывает книги для вручения слушателям" width="300" height="225" class="aligncenter size-medium wp-image-2650" /></a><br />
Благодарные слушатели не остались в долгу и подарили лектору (художественную) книгу.<br />
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2010/02/winter_school4.JPG"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2010/02/winter_school4-300x225.jpg" alt="Олег из Кемерово дарит Георгию книгу" title="Олег из Кемерово дарит Георгию книгу" width="300" height="225" class="aligncenter size-medium wp-image-2651" /></a><br />
Суровая, почти сибирская зима не оставила своим вниманием университет города Переславля &#8212; в классе было довольно прохладно и приходилось сидеть в верхней одежде, но на работоспособности это не сказывалось, тем более, что устроители регулярно поили всех горячим чаем.<br />
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2010/02/winter_school3.JPG"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2010/02/winter_school3-300x225.jpg" alt="&quot;Боевые&quot; условия зимней школы" title="&quot;Боевые&quot; условия зимней школы" width="300" height="225" class="aligncenter size-medium wp-image-2653" /></a><br />
По завершении курса слушателям были вручены свидетельства.<br />
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2010/02/winter_school2.JPG"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2010/02/winter_school2-300x225.jpg" alt="Г. Курячий вручает диплом, книгу и диск с Symply А. Ерофееву из Самары " title="Г. Курячий вручает диплом, книгу и диск с Simply А. Ерофееву из Самары " width="300" height="225" class="aligncenter size-medium wp-image-2654" /></a><br />
P.S. В понедельник, 1 февраля два слушателя школы (Ерофеев А.А и Немчанинова Ю. П.) сдали экзамен на статус &#171;Сертифицированного преподавателя ALT Linux&#187;. Поздравляем!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=2649</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Г. Курячий. Сетевая установка и сетевая загрузка</title>
		<link>http://freeschool.altlinux.ru/?p=2490</link>
		<comments>http://freeschool.altlinux.ru/?p=2490#comments</comments>
		<pubDate>Mon, 21 Dec 2009 11:01:51 +0000</pubDate>
		<dc:creator><![CDATA[ALT Linux]]></dc:creator>
				<category><![CDATA[Книги]]></category>
		<category><![CDATA[Методические материалы]]></category>
		<category><![CDATA[Опыт работы с ПСПО]]></category>
		<category><![CDATA[Курячий]]></category>
		<category><![CDATA[Пятая Платформа]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=2490</guid>
		<description><![CDATA[Предлагаем вашему вниманию вторую статью Георгия Курячего по использованию решений на базе Пятой Платформы. Предыдущая статья Предварительное замечание. В тексте используются термины «Альт Линукс Ковчег 5.0 Сервер» и «Альт Линукс Ковчег 5.0 Рабочая Станция», их можно безболезненно заменить на «Альт Линукс 5.0 Школьный Сервер» и «Альт Линукс 5.0 Школьный Юниор/Мастер». Сетевая установка и сетевая загрузка [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Предлагаем вашему вниманию вторую статью Георгия Курячего по использованию решений на базе Пятой Платформы. <a href="http://freeschool.altlinux.ru/?p=2390">Предыдущая статья</a></p>
<p><strong>Предварительное замечание.</strong> В тексте используются термины «Альт Линукс Ковчег 5.0 Сервер» и «Альт Линукс Ковчег 5.0 Рабочая Станция», их можно безболезненно заменить на «Альт Линукс 5.0 Школьный Сервер» и «Альт Линукс 5.0 Школьный Юниор/Мастер».<br />
<span id="more-2490"></span><br />
<lj-cut><br />
<strong>Сетевая установка и сетевая загрузка</strong></p>
<p><strong>Харе Кришна</strong></p>
<p>Рабочий полдень застал Системного Администратора в глубоких, но слегка неплодотворных раздумьях. Дело заключалось в следующем. По слухам, у боговоплощённого Кришны было шестнадцать тысяч сто восемь жён (из них сто восемь главных, из них — восемь главнейших, из них — одна наиглавнейшая). Обладая божественной способностью пребывать со всеми жёнами одновременно, Кришна творил с ними лилы, танцевал и играл на флейте. Древние фрески изображают, как Кришна танцует с флейтой у губ перед каждой из своих жён. </p>
<p>Вот эта-то флейта сейчас и занимает Системного Администратора более всего. Во-первых, она здоровенная, и должна петь басовито и гулко; хорошо бы поиграть на такой. А во-вторых, она, очевидно, переняла у Кришны способность пребывать со всеми жёнами одновременно! </p>
<p>Дело за малым: перенять эту способность — если не у Кришны, так хотя бы у флейты — и распространить на загрузочный DVD «Альт Линукс Ковчег 5.0 Рабочая Станция». Другими словами, Системному Администратору хочется пребывать со всеми рабочими станциями локальной сети одновременно и творить с ними процесс установки. Желание особенно обостряется при мысли, что через неделю (и через две, и через три) ситуация повторится. Однако эффект одновременного пребывания если и наблюдался, то пять с небольшим тысяч лет назад, и с той поры никто его не воспроизводил. </p>
<p>Порция утреннего кофе направляет мысли Системного Администратора в более рациональное русло. </p>
<p>В подведомственной ему локальной сети неожиданно образовалась текучка рабочих станций. Каждую неделю появляется с дюжину ранее не тронутых машин, и примерно такое же число (с установленной системой) убывает в филиалы. На новых компьютерах следует, не щадя их содержимого, устанавливать «Альт Линукс Ковчег 5.0 Рабочая Станция», это если он устанавливается. Если по какой-то причине дистрибутив установить нельзя, желательно (но не обязательно) содержимое жёсткого диска сохранить. </p>
<p>Загрузочный DVD «Альт Линукс Ковчег 5.0 Рабочая Станция» позволяет работать в т. н. режиме «Live CD», при котором система загружается с этого DVD, вообще не затрагивая жёсткого диска. Если LiveCD загрузился, то и установка системы с него пройдёт нормально. </p>
<p>Сюжет новой фрески: Системный Администратор танцует с диском в руках перед каждой их своих рабочих станций одновременно. </p>
<p><strong>Постановка задачи</strong><br />
Ещё одна порция кофе заставляет Системного Администратора понять, что он чуть было не перепутал <em>задачу</em> и один из <em>способов её решения</em> (к тому же трудно реализуемый). </p>
<p><strong>Дано</strong> </p>
<ul>
<li>Одноранговая локальная сеть, в которой появляются всё новые компьютеры </li>
<li>Сеть обслуживается сервером на базе дистрибутива «Альт Линукс Ковчег 5.0 Сервер» </li>
</ul>
<p><strong>Требуется</strong> </p>
<ul>
<li>Обеспечить по возможности быструю и простую проверку работоспособности дистрибутива «Альт Линукс Ковчег 5.0 Рабочая Станция» на новых компьютерах (без модификации содержимого жёстких дисков) </li>
<li>Обеспечить по возможности быструю и простую установку дистрибутива «Альт Линукс Ковчег 5.0 Рабочая Станция» на новые компьютеры </li>
</ul>
<p><strong>Условия</strong> </p>
<ul>
<li>Все новые компьютеры подключаются к локальной сети </li>
<li>Сетевые карты этих компьютеров поддерживают т. н. «сетевую загрузку» (по протоколу PXE) </li>
</ul>
<p><strong>Решение</strong></p>
<p><strong>На сервере</strong></p>
<p>Самый очевидный — и, по-видимому, правильный — путь решения состоит в том, чтобы заставить рабочую станцию загружать и устанавливать операционную систему с сервера посредством локальной сети, а не с отдельного носителя. Более точно: надо изыскать способ загрузить по сети <em>установщик</em> «Альт Линукс Ковчег 5.0 Рабочая Станция» и указать ему <em>хранилище пакетов</em> для «чистой» установки пакетов. </p>
<p>Здесь нас подстерегает тщательно подготовленная удача: именно такая возможность встроена в дистрибутивы Пятой платформы! В конфигураторе сервера </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall-300x225.png" alt="Ковчег. Пожалуйста, зарегистрируйтесь" title="Ковчег. Пожалуйста, зарегистрируйтесь" width="300" height="225" class="size-medium wp-image-2494" /></a></td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Ковчег. Пожалуйста, зарегистрируйтесь</STRONG></td>
</tr>
</tbody>
</table>
<p>есть отдельный модуль «Сервер сетевых установок»: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall1-300x225.png" alt="Волшебный горшочек?" title="Волшебный горшочек?" width="300" height="225" class="aligncenter size-medium wp-image-2497" /></a></td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Волшебный горшочек?</STRONG></td>
</tr>
</tbody>
</table>
<p>Всё, что от нас требуется, — это вставить DVD с дистрибутивом «Альт Линукс Ковчег 5.0 Рабочая Станция» в привод сервера, </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall2.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall2-300x225.png" alt="Добавим диск &laquo;Альт Линукс Ковчег 5.0 Рабочая Станция&raquo;" title="Добавим диск &laquo;Альт Линукс Ковчег 5.0 Рабочая Станция&raquo;" width="300" height="225" class="aligncenter size-medium wp-image-2499" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Добавим диск «Альт Линукс Ковчег 5.0 Рабочая Станция»</STRONG></td>
</tr>
</tbody>
</table>
<p>скопировать его, </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall3.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall3-300x225.png" alt="Полузащитник обрабатывает мяч... обрабатывает его... обрабатывает..." title="Полузащитник обрабатывает мяч... обрабатывает его... обрабатывает..." width="300" height="225" class="aligncenter size-medium wp-image-2500" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Полузащитник обрабатывает мяч&#8230; обрабатывает его&#8230; обрабатывает&#8230;</STRONG></td>
</tr>
</tbody>
</table>
<p>и попросить сервер раздавать содержимое этого диска для сетевой загрузки </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall4.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall4-300x225.png" alt="...обработал!" title="...обработал!" width="300" height="225" class="aligncenter size-medium wp-image-2501" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>&#8230;обработал!</STRONG></td>
</tr>
</tbody>
</table>
<p><strong>На клиентской машине</strong></p>
<p>Большинство современных сетевых карт, в том числе интегрированных в системные платы, поддерживают загрузку специального вида программ по сети посредством семейства протоколов PXE. На отдельных, не интегрированных, устройствах можно иногда заметить ряды неиспользуемых контактов или колодки для подключения микросхем. Это верный признак того, что устройство не поддерживает сетевую загрузку. Обычно возможность загрузки по сети обозначена в BIOS (где-нибудь в разделе «Boot priority»), либо самостоятельно анонсируется сетевой картой при включении компьютера. </p>
<p>В некоторых версиях BIOS даже есть возможность не меняяя настроек BIOS разово выбрать иное устройство для загрузки: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall5.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall5-300x225.png" alt="Спасибо тебе" title="Спасибо тебе" width="300" height="225" class="aligncenter size-medium wp-image-2502" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Спасибо тебе</STRONG></td>
</tr>
</tbody>
</table>
<p>Иногда в этих меню пишут ключевое слово «PXE», иногда «int 18», иногда показывают модель сетевого устройства, а иногда без затей предлгают «загрузку по сети»: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall6.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall6-300x201.png" alt="Выбор сетевой загрузки" title="Выбор сетевой загрузки" width="300" height="201" class="aligncenter size-medium wp-image-2504" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Выбор сетевой загрузки</STRONG></td>
</tr>
</tbody>
</table>
<p>Сетевая карта самостоятельно обращается к DHCP-серверу, и требует у него два вида информации: сетевые настройки и имя файла с программой, которую следует загрузить по сети (испльзуетеся протокол TFTP) и запустить; адрес TFTP-сервера также предварительно запрашивается: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall7.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall7-300x166.png" alt="Сетевая загрузка: DHCP" title="Сетевая загрузка: DHCP" width="300" height="166" class="aligncenter size-medium wp-image-2505" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Сетевая загрузка: DHCP</STRONG></td>
</tr>
</tbody>
</table>
<p>Загрузчик (в нашем слкчае он называется <code>pxelinux.0</code>), в свою очередь, скачивает с сервера конфигурационный файл: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall8.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall8-300x166.png" alt="Сетевая загрузка: PXE-загрузчик" title="Сетевая загрузка: PXE-загрузчик" width="300" height="166" class="aligncenter size-medium wp-image-2507" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Сетевая загрузка: PXE-загрузчик</STRONG></td>
</tr>
</tbody>
</table>
<p>«Лесенка» на этой картинке показывает, что ни один из конфигурационных файлов найти не удалось, кроме последнего, с именем <code>pxelinix.cfg/default</code> («unknown keyword», т. е. нераспознанное ключевое слово, очевидно, не сказалось на работоспособности загрузчика). Намётанный глаз Системного Администратора уловил соответствие MAC-адреса сетевой карты и первого из имён конфигурационного файла, а вот что последующие имена представляют собой шестнадцатеричное выражение <em>IP-адреса</em> и его частей, ему в голову не пришло. </p>
<p>Так или иначе, конфигурацонный файл загружен; можно выбирать разные профили загрузки, если ничего не трогать, будет использован профиль по умолчанию: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall9.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall9-300x166.png" alt="Сетевая загрузка: меню выбора" title="Сетевая загрузка: меню выбора" width="300" height="166" class="aligncenter size-medium wp-image-2508" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Сетевая загрузка: меню выбора</STRONG></td>
</tr>
</tbody>
</table>
<p>Загрузчик, опять-таки по SFTP, добудет ядро Linux и стартовый виртуальный диск </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall10.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall10-300x166.png" alt="Сетевая загрузка: ядро и стартовый виртуальный диск" title="Сетевая загрузка: ядро и стартовый виртуальный диск" width="300" height="166" class="aligncenter size-medium wp-image-2509" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Сетевая загрузка: ядро и стартовый виртуальный диск</STRONG></td>
</tr>
</tbody>
</table>
<p>и передаст управление ядру. Ядро, как водится, запустит со стартового виртуального диска «маленький Linux» </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall11.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall11-300x225.png" alt="Старт установщика по сети" title="Старт установщика по сети" width="300" height="225" class="aligncenter size-medium wp-image-2510" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Старт установщика по сети</STRONG></td>
</tr>
</tbody>
</table>
<p>В дистрибутивах принято «занавешивать» процесс загрузки экраном-индикатором, но можно нажать <code>ESC</code>, и появятся сообщения, выводимые при загрузке различными подсистемами. </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall12.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall12-300x225.png" alt="Задача сведена к уже решённой!" title="Задача сведена к уже решённой!" width="300" height="225" class="aligncenter size-medium wp-image-2511" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Задача сведена к уже решённой!</STRONG></td>
</tr>
</tbody>
</table>
<p>А это уже совсем настоящий установщик системы! Далее мы без особых трудностей устанавливаем «Альт Линукс Ковчег 5.0 Рабочая Станция»; надо только не забыть подключиться к имеющемуся домену. </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall13.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall13-300x225.png" alt="Не забыть зарегистрироваться в домене" title="Не забыть зарегистрироваться в домене" width="300" height="225" class="aligncenter size-medium wp-image-2512" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Не забыть зарегистрироваться в домене</STRONG></td>
</tr>
</tbody>
</table>
<p><strong>Аппетит приходит во время еды</strong></p>
<p>С одной стороны, загрузчик, дошедший до стадии «разметка диска» — вполне серьёзное тестирование компьютера на предмет устанавливаемости дистрибутива: сеть работает, графическая подсистема работает, диск виден. С другой стороны, это совсем не эффектно: ни приложение запустить, ни в Интернет выйти, не говоря уже о том, что начальству показывать ровным счётом нечего. </p>
<p>В конце концов, раз уж можно <em>установщик</em> загрузить по сети, то почему нельзя загрузить <em>LiveCD</em>? </p>
<p>Отчего же нельзя? Можно; для этого достаточно загрузчику указать имя профиля <code>live</code>, отличного от профиля <code>linux</code> по умолчанию: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall14.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall14-300x166.png" alt="Загрузка профиля &laquo;live&raquo;" title="Загрузка профиля &laquo;live&raquo;" width="300" height="166" class="aligncenter size-medium wp-image-2513" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Загрузка профиля «live»</STRONG></td>
</tr>
</tbody>
</table>
<p>Система чудесным образом загрузится! Правда, интерфейс отчего-то окажется на английском языке: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall15.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall15-300x225.png" alt="Отсутствие DNS при загрузке по сети" title="Отсутствие DNS при загрузке по сети" width="300" height="225" class="aligncenter size-medium wp-image-2514" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Отсутствие DNS при загрузке по сети</STRONG></td>
</tr>
</tbody>
</table>
<p>Вдобавок сетевые настройки в таком режиме явно недостаточные: например, нет информации о DNS-сервере, что означает невозможность использовать доменные имена — только IP-адреса. Наконец, все обнаруженные на жёстком диске разделы LiveCD смонтировал в каталог <code>/mnt</code> с правами записи кого угодно. Вдобавок пароль суперпользователя на LiveCD попросту пустой, так что возможность испортить содержимое жёсткого диска есть даже и без автоматического монтирования. Получается, что задача-то протестировать работу дистрибутива решена, а вот использовать загрузку LiveCD по сети для каких-то других задач (например, для работы в Linux на компьютерах без Linux) — проблематично. </p>
<p><strong>Первые шаги</strong></p>
<p><strong>Шаг вправо, шаг влево&#8230;</strong></p>
<p>Между прочим, эксплуатация сетевой установки выявила недочёты в аппаратной части локальной сети! Некоторые особенно новые компьютеры отчего-то отказывались загружать что-либо по сети, мотивируя это тем, что сети-то вообще нет. </p>
<p>Дело оказалось в том, что не все соединительные шнуры (т. н. patch cord-ы) в офисной сети соответствовали требованиям гигабитной Ehternet-сети (1000BASE-T). Встроенная в не слишком дешёвую гигабитную сетевую карту процедура тестирования кабеля обнаруживала эту несовместимость. Пришлось заменить эти самодельные шнуры на покупные (категории 5E), после чего неполадки прекратились. </p>
<p>Как же работает сетевая загрузка? </p>
<p>Первым делом ясно, что вместе со стандартными сетевыми настройками сетевая карта клиентской машины получает по протоколу DHCP ещё какие-то (здесь и далее приводятся примеры команд с сервера; строчки вида «&nbsp;.&nbsp;.&nbsp;.» означают, что часть выдачи пропущено из соображений экономии места): </p>
<pre>[root@host-15 ~]# cat /etc/dhcp/dhcpd.conf
 . . .
subnet 10.30.50.0 netmask 255.255.255.0 {
    next-server 10.30.50.1;
    filename "pxelinux.0";
    option root-path "/var/srv/public/netinst/current";
    option routers 10.30.50.1;
    option domain-name-servers 10.30.50.1;
    option domain-name "office";
    default-lease-time 86400;
    max-lease-time 86400;
    range 10.30.50.10 10.30.50.100;
}</pre>
<p>Вот эти настройки: </p>
<ul>
<li><code>filename</code> — имя файла, который надо загрузить с TFTP-сервера, загрузить в память и передать туда управление (это pxelinux.0 из пакета syslinux, специальный первичный сетевой загрузчик) </li>
<li><code>next-server</code> — адрес TFTP-сервера (совпадает с адресом сервера) </li>
<li><code>root-path</code> — адрес каталога на сервере, в котором хранятся все файлы, необходимые для сетевой загрузки Linux; этот каталог будет смонтирован по протоколу NFS системой в стартовом виртуальном диске </li>
</ul>
<p>Файл <code>pxelinux.0</code> хранится в стандартном для TFTP-сервера каталоге <code>/var/lib/tftpboot</code>: </p>
<pre>[root@host-15 ~]# ls /var/lib/tftpboot/
pxelinux.0 pxelinux.cfg syslinux</pre>
<p>Подкаталог <code>syslinux</code> используется для загрузки системы <em>с носителя</em>, и в сетевой загрузке почти не используется: </p>
<pre>[root@host-15 ~]# ls /var/lib/tftpboot/syslinux/
16x16.fnt da.hlp fi.tr    init     lt.tr  pt.tr   timer_a.jpg
af.tr   da.tr  fr.hlp    isolinux.bin memtest pt_BR.tr tr.tr
alt0    de.tr  fr.tr    isolinux.cfg mr.hlp  ro.hlp  uk.hlp
ar.hlp   el.hlp gfxboot.cfg it.hlp    mr.tr  ro.tr   uk.tr
ar.tr   el.tr  gl.hlp    it.tr     nb.hlp  ru.hlp  wa.tr
back.jpg  en.hlp gl.tr    ja.tr     nb.tr  ru.tr   xh.tr
bg.tr   en.tlk gu.hlp    ka.tr     nl.hlp  sk.hlp  zh_CN.hlp
boot.cat  en.tr  gu.tr    ko.hlp    nl.tr  sk.tr   zh_CN.tr
bootlogo  es.hlp hi.tr    ko.tr     pa.hlp  sl.tr   zh_TW.hlp
ca.hlp   es.tr  hr.tr    kroete.dat  pa.tr  sr.tr   zh_TW.tr
ca.tr   et.hlp hu.hlp    lang     pl.hlp  sv.hlp  zu.tr
cs.hlp   et.tr  hu.tr    languages   pl.tr  sv.tr
cs.tr   fi.hlp id.tr    lt.hlp    pt.hlp  ta.tr</pre>
<p>Почти, потому что в нём, в подкаталоге <code>alt0</code>, хранится ядро Linux (<code>vmlinuz</code>) и образ стартового виртуального диска (<code>full.cz</code>): </p>
<pre>[root@host-15 ~]# ls /var/lib/tftpboot/syslinux/alt0/
full.cz vmlinuz</pre>
<p>Это особенный стартовый виртуальный диск, более сложный, чем тот, что применяется при загрузке уже установленной системы. По сути, он содержит маленькую операционную систему (называемую «Propagator»), цель которой — найти и задействовать устройство, в том числе сетевое, для последующей загрузки оттуда. Что загружать — установщик, подсистему LiveCD или т. н. «спасательный диск» — выбирает пользователь. </p>
<p>Подкаталог <code>pxelinux.cfg</code> предназначен для хранения настроек <code>pxelinux</code>: </p>
<pre>[root@host-15 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 100
gfxboot syslinux/bootlogo
display syslinux/boot.msg
implicit 1
label harddisk
 localboot 0x80
label linux
 kernel syslinux/alt0/vmlinuz
  append initrd=syslinux/alt0/full.cz changedisk ramdisk_size=65536 lang=ru_RU vga=0x314 splash=silent splashcount=17 xdriver=auto showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow
 . . .
label live
 kernel syslinux/alt0/vmlinuz
 append initrd=syslinux/alt0/full.cz live fastboot vga=0x314 splash=silent splashcount=17 stagename=live showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow
 . . .</pre>
<p>Ключевые слова <code>gfxboot</code> и <code>display</code>, не используемые загрузчиком PXE, наводят на мысль, что этот файл был сгенерирован при включении «Сервера сетевых установок» автоматически из соответствующего настроечного файла <code>syslinux</code> на DVD. </p>
<p>Кроме того, уже сейчас ясно, отчего профиль <code>live</code> загрузился с английским языком: в профиле установщика linux язык указан явно (<code>lang=ru_RU</code>), а тут его нет; возможно, отказали электромозги конвертора настроек. Наконец, каталог <code>/var/srv/public/netinst/current</code>, который впоследствии монтируется по NFS, должен быть проэкспортирован. На деле экспортируется один из его родительских каталогов, <code>/srv/public</code>: </p>
<pre>[root@host-15 ~]# cat /etc/exports 
/srv/public -ro,insecure,no_subtree_check *
/srv/share -rw,insecure,fsid=0,sec=krb5 *</pre>
<p><strong>&#8230;Прыжок на месте</strong></p>
<p>Что же это такое за «всё необходимое для сетевой установки» хранится в <code>/var/srv/public/netinst/current</code>? Вот содержимое <code>/var/srv/public/netinst</code>: </p>
<pre>[root@host-15 ~]# ls -l /srv/public/netinst/
-rw-r--r-- 1 root root  2690922496 Dec 17 20:34 1.img
lrwxrwxrwx 1 root root       6 Dec 18 15:45 current -&gt; 1.img
drwxr-xr-x 2 root _ahttpd    4096 Dec 17 20:35 download
-rw-r--r-- 1 root root      67 Dec 17 20:34 list
drwxr-xr-x 2 root root     4096 Dec 17 20:35 mnt</pre>
<p>Негусто, учитывая, что оба подкаталога пустые. К тому же <code>/var/srv/public/netinst/current</code> — не каталог, а файл (точнее, ссылка на файл <code>1.img</code>). Как он может быть корнем файловой системы? </p>
<pre>[root@host-15 ~]# file /srv/public/netinst/1.img 
/srv/public/netinst/1.img: ISO 9660 CD-ROM filesystem data 'ALT Linux 5.0.0 Ark Desktop' (bootable)</pre>
<p>Дело начинает проясняться. В качестве <code>root-path</code> предлагается <em>образ</em> загрузочного DVD, который впоследствии монтируется примерно так: </p>
<pre>[root@host-15 ~]# mount -t iso9660 -o loop /srv/public/netinst/1.img /mnt</pre>
<p>Что же у неё внутри? </p>
<pre>[root@host-15 mnt]# ls -aF
./  .disk/   Metadata/    altinst index.html    license.ru.html rescue
../ ALTLinux/ RPM-GPG-KEY.bz2 docs/  license.all.html live       syslinux/</pre>
<p>Из интересного: <code>ALTLinux</code> — каталог с хранилищем пакетов, <code>syslinux</code> — каталог с настройками загрузчика (эти-то настройки и были преобразованы в настройки <code>pxelinux</code>), <code>altinst</code>, <code>live</code> и <code>rescue</code> — файлы с образами, соответственно, установщика, LiveCD и «спасательного диска». </p>
<p>Наша цель — <code>live</code>: </p>
<pre>[root@host-15 ~]# file /mnt/live
/mnt/live: Squashfs filesystem, little endian, version 4.0, 183451597311 bytes, 77617 inodes, blocksize: 42 bytes, created: Mon Jan 15 12:46:40 1945
[root@host-15 ~]# mount -t squashfs -o loop /mnt/live /mnt
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
    missing codepage or helper program, or other error
    In some cases useful info is found in syslog - try
    dmesg | tail or so</pre>
<p>Не тут-то было. Что-то не заладилось у Squashfs. Да и дата создания файла какая-то подозрительная. </p>
<pre>[root@host-15 ~]# dmesg | tail -3
[ 4700.690029] squashfs: version 3.4 (2008/08/26) Phillip Lougher
[ 4700.695179] SQUASHFS error: Major/Minor mismatch, trying to mount newer 4.0 filesystem
[ 4700.695194] SQUASHFS error: Please update your kernel</pre>
<p>Всё ясно: образ установщика сделан посредством Squashfs версии 4.0, а на сервере поддерживается только 3.4. Совместимости, очевидно, нет. </p>
<p>Неясно только, что дальше делать. Стоит ли тратить усилия на разбор Squashfs-образа? Может, в самом деле ядро обновить? Но разобрать мало, надо же ещё ошибку с сетью исправить и монтирование диска запретить. А потом обратно два образа, как матрёшек друг в друга, запаковывать. А если допустить какую-нибудь ошибку — всё по новой. </p>
<p>Может, ну его? Ведь работает же и так? </p>
<p><strong>Кришна Харе</strong></p>
<p>Всё-таки полуденные мысли о божественной сущности Кришны не были такими уж неплодотворными. По крайней мере, ничем другим нельзя объяснить, отчего именно в эту минуту в офисе 221-б появился глубоко Системным Администратором уважаемый и даже отчасти почитаемый Внесистемный Администратор Гуру (далее, для краткости, просто Гуру). Сущность Гуру далека от божественной, но ему открыто Тайное Знание, хотя сам он это категорически отрицает. Как бы то ни было, именно его совет помог сдвинуть дело с мёртвой точки. </p>
<p>Оказалось, что:<br />
<OL type="1">
<li>Серверный и десктопный дистрибутивы основаны на ядрах Linux разных версий (серверное — более старое, но с поддержкой виртуализации, десктопное — более новое). </li>
<li>Propagator умеет монтировать по сети не только образ ISO, но и каталог. </li>
</ol>
<p>Поэтому:<br />
<OL type="1">
<li>Чтобы добыть содержимое <code>live</code>, достаточно загрузиться с LiveCD на сервере, и переписать это содержимое туда. Главное, чтобы для 32-разрядных клиентов использовался LiveCD с 32-разрядным дистрибутивом. </li>
<li>Вместо ISO-образа DVD с Squashfs-образом <code>live</code> внутри можно организовать <em>каталог</em> с содержимым DVD с каталогом <code>live</code> внутри, загрузка в такой конфигурации будет также возможна, а отлаживать её и экспериментировать с нею станет намного проще. </li>
</ol>
<p><strong>Загрузка с LiveCD на сервере</strong></p>
<p>Возьмём диск с дистрибутивом «Альт Линукс Ковчег 5.0 Рабочая Станция», который мы собираемся использовать на рабочих станциях, и загрузимся с него на сервере в режиме «LiveCD» </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall16.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall16-300x225.png" alt="Загрузка LiveCD на сервере" title="Загрузка LiveCD на сервере" width="300" height="225" class="aligncenter size-medium wp-image-2518" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Загрузка LiveCD на сервере</STRONG></td>
</tr>
</tbody>
</table>
<p>Вот что видно на сервере после загрузки: </p>
<pre>[root@localhost ~]# cat /etc/fstab
proc      /proc          proc  nosuid,noexec,gid=proc     0 0
devpts     /dev/pts        devpts nosuid,noexec,gid=tty,mode=620 0 0
tmpfs      /tmp          tmpfs  nosuid             0 0
/dev/root / auto defaults,ro 0 0
UUID=b391cc0a-59c0-4313-b6f2-31f9096b6ba4    swap  swap  defaults    0   0
UUID=e40fc352-f031-4827-ab7c-a7ebe12ecc5e    /mnt/hda2    ext3  noauto 0   0
UUID=2a86bf2b-5d8c-4c04-9acf-0f47448ea45c    /mnt/hda5    ext3  noauto 0   0
UUID=a12e05b3-671f-4914-9d5e-f07cefd2570c    /mnt/hda6    ext3  noauto 0   0</pre>
<p>По всей видимости (не стоит удивляться, видимость Гуру много глубже видимостей обычного человека), первый раздел диска, <code>hda1,</code> используется под swap, второй, <code>hda2</code> &#8212; под корневую файловую систему, раздел в первом расширении таблицы разделовi, <code>hda5</code> — под <code>/var</code>, а раздел во втором расширении, <code>hda6</code> — под каталог с виртуальными машинами. Нам нужен &#8216;<code>/var</code>`: </p>
<pre>[root@localhost ~]# mount /mnt/hda5
[root@localhost ~]# ls /mnt/hda5/
adm      avahi empty local lost+found nobody  resolv srv yp
aquota.group cache ftp  lock  mail    opt    run   tmp
aquota.user  db   lib  log  nis     preserve spool  www</pre>
<p>Теперь смонтируем <code>live</code>, лежащий с точки зрения LiveCD в каталоге <code>/image</code>, куда-нибудь и скопируем его содержимое в <code>/srv/public/netinst</code> на серверном диске: </p>
<pre>[root@localhost ~]# mount -t squashfs -o loop /image/live /mnt/hda2
[root@localhost ~]# cp -a /mnt/hda2 /mnt/hda5/srv/public/netinst</pre>
<p>Внимательное изучение <code>/image</code> приводит к выводу о том, что этот каталог — результат монтирования DVD. Скопируем оттуда всё, включая скрытые файлы, но исключая файл <code>live</code> (его мы уже запасли в виде каталога): </p>
<pre>[root@localhost ~]# mkdir /mnt/hda5/srv/public/netinst/livefs
[root@localhost ~]# cd /image
[root@localhost image]# cp -a .??* [^l]* lic* /mnt/hda5/srv/public/netinst/livefs/</pre>
<p>Дело сделано, пора загружать сервер в штатный режим, а то пользователи уже начали волноваться: доступа в Интернет-то нет.</p>
<p><strong>Настройка сервера</strong></p>
<p>На сервере необходимо проделать несколько изменений, их порядок несущественен. Так, при монтировании каталога по NFS, доступ к файлам с правами суперпользователя превращается в доступ с правами пользователя <code>nobody</code>. NFS доверяет не пользователю, а компьютеру целиком, а эта дополнительная мера безопасности позволяет не доверять хотя бы суперпользователю с удалённого компьютера. Такое преобразование прав доступа называется «root squash» («придавить root», <em>не надо</em> путать со Squashfs, ничего общего, кроме звучного слова, в этих двух терминах нет!). </p>
<p>Когда по NFS монтируется каталог с единственным файлом образа преобразование прав действует только на обращение к этому файлу, а уж после он монтируется в качестве файловой системы посредством <code>-o&nbsp;loop</code>. Однако в нашем случае монтироваться будет непосредственно каталог, так что преобразование прав доступа надо отключить с помощью <code>no_root_squash</code> в параметрах монтирования: </p>
<pre>[root@host-15 ~]# cat /etc/exports 
/srv/public -ro,insecure,no_subtree_check,no_root_squash *
/srv/share -rw,insecure,fsid=0,sec=krb5 *</pre>
<p>После чего стоит перезапустить службу <code>nfs</code>: </p>
<pre>[root@host-15 ~]# service nfs restart
Stopping NFS mount service: [ DONE ]
Stopping NFS daemon: [ DONE ]
Stopping NFS svcgssd service: [ DONE ]
Stopping NFS quotas service: [ DONE ]
Unexporting NFS file systems: [ DONE ]
Exporting NFS file systems: [ DONE ]
Starting NFS quotas service: [ DONE ]
Starting NFS svcgssd service: [ DONE ]
Starting NFS daemon: [ DONE ]
Starting NFS mount service: [ DONE ]
Stopping rpc.idmapd service: [ DONE ]
Starting rpc.idmapd service: [ DONE ]</pre>
<p>Теперь подготовим корневую файловую систему для монтирования по сети: </p>
<pre>[root@host-15 ~]# cd /srv/public/netinst/
[root@host-15 netinst]# chmod 755 hda2/
[root@host-15 netinst]# mv hda2 livefs/live</pre>
<p>Предпоследняя команда продиктована тем, что у каталога <code>hda</code> оказались довольно странные права доступа. Скопируем куда-нибудь исходный файл настроек <code>pxelinux</code> и отредактируем актуальный файл до следующего состояния (не забудем вписать <code>lang=ru_RU</code> в список параметров): </p>
<pre>[root@host-15 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default
default live
prompt 0
timeout 0
noescape 1
label live
 kernel syslinux/alt0/vmlinuz
 append initrd=syslinux/alt0/full.cz live fastboot lang=ru_RU vga=0x314 splash=silent splashcount=17 stagename=live showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow</pre>
<p>Такая конфигурация заставит загружаемый компьютер <em>немедленно</em> использовать профиль <code>live</code>, причём пользователь даже не сможет в этот процесс вмешаться (это обеспечивает параметр <code>noescape&nbsp;1</code>). </p>
<p>Если всё-таки надо соответствовать условиям задачи, конфигурационный файл должен быть побольше: </p>
<pre>[root@host-15 mnt]# cat /var/lib/tftpboot/pxelinux.cfg/default
default live
prompt 1
timeout 100
label harddisk
 localboot 0x80
label linux
 kernel syslinux/alt0/vmlinuz
  append initrd=syslinux/alt0/full.cz changedisk ramdisk_size=65536 lang=ru_RU vga=0x314 splash=silent splashcount=17 xdriver=auto showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow
label rescue
 kernel syslinux/alt0/vmlinuz
 append initrd=syslinux/alt0/full.cz live ramdisk_size=65536 fastboot stagename=rescue showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow
label live
 kernel syslinux/alt0/vmlinuz
 append initrd=syslinux/alt0/full.cz live fastboot lang=ru_RU vga=0x314 splash=silent splashcount=17 stagename=live showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow</pre>
<p>Заметим, что для плохо работающих компьютеров имеется профиль <code>rescue</code> («спасательный диск»), позволяющий, как минимум, собрать информацию об аппаратном обеспечении. Эту информацию стоит отослать разработчикам, дабы совместно выяснить, отчего же система работает на машине плохо. Название («label») профиля надо вводить в ответ на подсказку <code>boot:</code>. </p>
<p>Перекинем символьную ссылку current с ISO-образа на созданный каталог: </p>
<pre>[root@host-15 ~]# ln -sf livefs /srv/public/netinst/current
[root@host-15 ~]# l /srv/public/netinst/
total 2630452
drwxr-xr-x 5 root _ahttpd    4096 Dec 18 15:45 ./
lrwxrwxrwx 1 root root       6 Dec 18 15:45 current -&gt; livefs/
drwxr-xr-x 8 root root     4096 Dec 17 21:01 livefs/
drwxr-xr-x 3 root root     4096 Dec 17 21:00 ../
drwxr-xr-x 2 root root     4096 Dec 17 20:35 mnt/
drwxr-xr-x 2 root _ahttpd    4096 Dec 17 20:35 download/
-rw-r--r-- 1 root root      67 Dec 17 20:34 list
-rw-r--r-- 1 root root  2690922496 Dec 17 20:34 1.img</pre>
<p>Стоит заметить, что ручная настройка приведёт модуль Центр Управления Системой «Сервер сетевых установок» в дезориентированное состояние; с этих пор лучше им не пользоваться, либо проверять результат. </p>
<p><strong>Настройка файловой системы клиента</strong></p>
<p>Подготовительный этап закончен, теперь пора приниматься за настройку клиентской части. По сути мы будем модифицировать корневую файловую систему бездискового клиента. </p>
<p>LiveCD Пятой Платформы устроен так, что при загрузке системы с него производятся некоторые действия, не характерные для установленного дистрибутива. В частности, пресловутое монтирование файловых систем с жёcткого диска — результат работы стартового сценария <code>livecd-fstab</code>. Сценарий сканирует доступные устройства хранения данных на предмет того, какие разделы можно было бы смонтировать, и записывает в стандартный файл <code>/etc/fstab</code> соответствующие настройки. Отключать этот сценарий не совсем правильно, зато можно насильственно выставить параметр <code>ro</code> (read only, только на чтение): </p>
<pre>[root@host-15 ~]# diff -u /srv/public/netinst/livefs/live/etc/init.d/livecd-fstab{.orig,}
--- /srv/public/netinst/livefs/live/etc/init.d/livecd-fstab.orig    2009-12-17 21:52:20 +0300
+++ /srv/public/netinst/livefs/live/etc/init.d/livecd-fstab   2009-12-17 21:52:51 +0300
@@ -16,9 +16,9 @@
 MNT_PREFIX="/mnt"
 FSTAB="/etc/fstab"
 UDEVADM="/sbin/udevadm"
-MOUNT_OPTIONS_VFAT="users,noatime,codepage=866,shortname=winnt,iocharset=utf8,gid=0100,fmask=111,dmask=0000"
-MOUNT_OPTIONS_NTFS3G="users,locale=ru_RU.utf8,gid=100,fmask=111,force,dmask=000" # force
-MOUNT_OPTIONS_OTHER="noauto"
+MOUNT_OPTIONS_VFAT="users,ro,noatime,codepage=866,shortname=winnt,iocharset=utf8,gid=0100,fmask=111,dmask=0000"
+MOUNT_OPTIONS_NTFS3G="users,ro,locale=ru_RU.utf8,gid=100,fmask=111,force,dmask=000" # force
+MOUNT_OPTIONS_OTHER="noauto,ro"
 
 log() {
   initlog $INITLOG_ARGS -n $0 -s "$1"</pre>
<p>В этом примере приведён не весь файл <code>livecd-fstab</code>, а только различия между исходной и отредактированной его версиями. Знаками «-» в первой колонке помечены удалённый строки, знаками «+» — добавленные. Нетрудно видеть, что к значению трёх каких-то переменных (чтение сценария показывает, что они хранят параметры монтирования файловых систем разного типа) добавлен <code>,ro</code>. </p>
<p>Осталось сделать две модификации: задать пароль суперпользователя (чтобы окончательно исключить возможность непреднамеренной порчи содержимого жёсткого диска) и разобраться с плохо работающей сетью. </p>
<p>Воспользуемся тем, что получившаяся файловая система — полноценное рабоче окружение. Это значит, что выполнив <code>chroot</code> в каталог <code>livefs/live</code>, мы сможем менять настройки и даже запускать некоторые сценарии, как если бы это происходило на клиенте, причём на клиенте, имеющем доступ к этому каталогу на <em>запись</em>: </p>
<pre>[root@host-15 ~]# chroot /srv/public/netinst/livefs/live/
[root@host-15 /]# pwd
/
[root@host-15 /]# ls
bin  dev home  lib  mnt proc sbin sys usr
boot etc image media opt root srv  tmp var
[root@host-15 /]# cat /etc/redhat-release 
ALT Linux 5.0.0 Ark Desktop (none)</pre>
<p>Теперь пароль суперпользователя можно задать обычной командой <code>passwd</code>: </p>
<pre>[root@host-15 /]# { echo "P@sSw0RD" ; echo "P@sSw0RD" ; } | passwd --stdin root</pre>
<p>Что же касается сети, то её настройка при сетевой загрузке — особая статья. В самом деле: первоначальная настройка сетевой карты и монтирование корневой файловой системы по NFS должны происходить <em>до</em> запуска и установщика, и профиля <code>live</code>, ведь их файлы как раз и находятся на удалённой файловой системе! К моменту, когда в LiveCD запускается служба Network Manager, сетевая карта уже настроена, настроен и маршрут по умолчанию. Если допустить Network Manager до перенастройки этой карты, он первым делом сбросит её IP-адрес, по сути, <em>отключит</em> её. Включить её обратно он уже не сможет: клиент-то бездисковый, все файлы — программы, библиотеки — находились на сетевом диске, который при выключенной карте не работает. </p>
<p>Поэтому дистрибутивы Пятой платформы, видя, что их загружают по сети, первым делом определяют, какая сетевая карта уже настроена, делают из этого вывод, что именно посредством этой карты осуществляется доступ к удалённой файловой системе, и добавляют специальную настройку, запрещающую службе Network Manager заниматься этим устройством. В LiveCD за это отвечает стартовый сценарий <code>livecd-save-nfs</code>. Подсистема <code>etcnet</code>, отвечающая за сетевые настройки в целом, также не занимается уже <em>настроенными сетевыми интерфейсами</em>. </p>
<p>Настроек, полученных по DHCP ещё подсистемой Propagator, достаточно для установки системы с сервера или загрузки произвольного профиля, но, как мы видели выше, информация о DNS-сервере (которая есть в DHCP) либо не запрашивается, либо не доживает до стадии загрузки профиля, и файл <code>/etc/resolv.conf </code>остаётся пустым. </p>
<p>Если в компьютере одна сетевая карта, сетевой интерфейс, скорее всего, будет называться eth0, Простейший способ всё-таки получить все причитающиеся этому интерфейсу настройки — это запустить службу «DHCP Client Daemon» (<code>dhcpcd</code>) самостоятельно. Сделать это можно в специальном дополнительном сценарии <code>rc.local</code>. По умолчанию его нет, но если он есть, то стартует после запуска всех стартовых сценариев. </p>
<pre>[root@host-15 /]# cat &gt; /etc/rc.d/rc.local &lt;&lt;@@@
#!/bin/sh
dhcpcd -p eth0
@@@
[root@host-15 /]# chmod +x /etc/rc.d/rc.local</pre>
<p>Ключ «-p» (persistent) указывает <code>dhcpcd</code> не сбрасывать состояние сетевой карты, чего Network Manager пока не умеет. Вообще говоря, непосредственная привязка к <code>eth0</code> — не слишком красивое решение. Как минимум, можно довериться <code>livecd-save-nfs</code>, который для всех уже настроенных сетевых карт создаёт каталог <code>/etc/net/ifaces/eth</code>номер, а в нём — файл <code>options</code>. Можно было бы написать что-то вроде <code>for&nbsp;I&nbsp;in&nbsp;/etc/net/ifaces/eth*;&nbsp;do&nbsp;dhcpcd&nbsp;-p&nbsp;$(basename&nbsp;$I);&nbsp;done</code>. </p>
<p>Но здесь выяснилось одно совсем уж загадочное обстоятельство: деятельность <code>livecd-save-nfs</code> при загрузке по сети приводит к тому, что в каталоге <code>/etc/net</code> не остаётся никаких файлов, кроме <code>/etc/net/ifaces/eth0</code>! Впрочем, полноценной работе оно не мешает, так как сеть больше трогать не надо. </p>
<p>Гуру с четверть часа изучал это безобразие, пришёл в мрачное расположение духа, но предложил вот такое исправление (в результате эффект в самом деле пропал): </p>
<pre>[root@host-15 ~]# diff -u /srv/public/netinst/livefs/live/etc/init.d/livecd-save-nfs{.orig,}
--- /srv/public/netinst/livefs/live/etc/init.d/livecd-save-nfs.orig   2009-12-18 15:39:55 +0300
+++ /srv/public/netinst/livefs/live/etc/init.d/livecd-save-nfs 2009-12-18 15:39:57 +0300
@@ -16,6 +16,7 @@
 {
     if ip -o a | grep -q 'eth.*UP' ; then 
         iface=$(ip -o a | grep 'eth.*UP' | cut -f 2 -d' ' | tr -d ':')
+        ls /etc/net/ifaces &gt; /dev/null
         mkdir -p /etc/net/ifaces/$iface
         echo 'NM_CONTROLLED=no' &gt;&gt; /etc/net/ifaces/$iface/options
         echo 'BOOTPROTO=dhcp' &gt;&gt; /etc/net/ifaces/$iface/options</pre>
<p>После чего пожелал успехов в труде и удалился. </p>
<p><strong>P. S.</strong></p>
<p>Оказалось, что в рамках получившейся файловой системы можно проделывать всякие полезные штуки: настраивать окружение стандартного для LiveCD пользователя <code>altlinux</code>, менять общие настройки и даже устанавливать и удалять пакеты! Для этого нужно скопировать туда файл <code>resolv.conf</code> и настроить <code>apt</code>: </p>
<pre>[root@host-15 ~]# cp /etc/resolv.conf /srv/public/netinst/livefs/live/etc/
[root@host-15 ~]# chroot /srv/public/netinst/livefs/live/
[root@host-15 /]# grep "^[^#]" /etc/apt/sources.list.d/alt.list
rpm [p5] http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch i586 classic
rpm [p5] http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch noarch classic
[root@host-15 /]# apt-get update
Get:1 http://ftp.altlinux.org i586 release [708B]
Get:2 http://ftp.altlinux.org noarch release [707B]
Fetched 1415B in 0s (4697B/s)
Get:1 http://ftp.altlinux.org i586/classic pkglist [3605kB]
Get:2 http://ftp.altlinux.org i586/classic release [125B]
Get:3 http://ftp.altlinux.org noarch/classic pkglist [2019kB]
Get:4 http://ftp.altlinux.org noarch/classic release [127B]
Fetched 5624kB in 7s (766kB/s)
Reading Package Lists...
Building Dependency Tree...</pre>
<p>Сеть из chroot-а доступна. Любой пакет, установленный в <code>livefs/live</code>, будет доступен при загрузке с неё. Например, можно установить неожиданно затребованную начальником древнюю игру Sopwith: </p>
<pre>[root@host-15 /]# apt-cache search sopw
sdl_sopwith - Classic scrolling shoot'em
[root@host-15 /]# apt-get install sdl_sopwith
Reading Package Lists...
Building Dependency Tree...
The following NEW packages will be installed:
 sdl_sopwith
0 upgraded, 1 newly installed, 0 removed and 69 not upgraded.
Need to get 46.0kB of archives.
After unpacking 162kB of additional disk space will be used.
Get:1 http://ftp.altlinux.org i586/classic sdl_sopwith 1.7.1-alt4 [46.0kB]
Fetched 46.0kB in 0s (144kB/s)
Committing changes...
Preparing...         ##########################################################
sdl_sopwith         ##########################################################
Running /usr/lib/rpm/posttrans-filetriggers
Done.</pre>
<p>Обнаруженная в пакете <code>syslinux</code> документация (в частности, <code>/usr/share/doc/syslinux-3.63/doc/menu.txt</code>), позволила Системному Администратору навести на полученное решение настоящий глянец! Дла начала надо скопировать в каталог TFTP-сервера волшебное дополнение к загрузчику по имени <code>vesamenu.c32</code>: </p>
<pre>[root@host-15 ~]# cd /var/lib/tftpboot/
[root@host-15 tftpboot]# cp /usr/lib/syslinux/vesamenu.c32 .</pre>
<p>После достаточно довести файл настроек <code>pxelinux.cfg/default</code> до такого состояния: </p>
<pre>[root@host-15 tftpboot]# cat pxelinux.cfg/default
default vesamenu.c32
prompt 0
label harddisk
 menu label ^Local disk boot
 localboot 0x80
label live
 menu default
 menu label ^Diskless client
 kernel syslinux/alt0/vmlinuz
 append initrd=syslinux/alt0/full.cz live fastboot lang=ru_RU vga=0x314 splash=silent splashcount=17 stagename=live showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow
label linux
 menu label ^Install ALT Linux Desktop 5.0
 kernel syslinux/alt0/vmlinuz
  append initrd=syslinux/alt0/full.cz changedisk ramdisk_size=65536 lang=ru_RU vga=0x314 splash=silent splashcount=17 xdriver=auto showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow
label rescue
 menu label ^Rescue disk
 kernel syslinux/alt0/vmlinuz
 append initrd=syslinux/alt0/full.cz live ramdisk_size=65536 fastboot stagename=rescue showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow</pre>
<p>Тогда вместо ручного ввода имени профиля пользователь увидит довольно аккуратное меню загрузки: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall17.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall17-300x225.png" alt="Выбор варианта сетевой загрузки в виде меню" title="Выбор варианта сетевой загрузки в виде меню" width="300" height="225" class="aligncenter size-medium wp-image-2519" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Выбор варианта сетевой загрузки в виде меню</STRONG></td>
</tr>
</tbody>
</table>
<p>Для того, чтобы нельзя было «случайно» поставить систему на собственный компьютер, раздел &#171;установка&#187; можно защитить паролем. Пароль лучше всего держать не в чистом виде, а в виде хеша: </p>
<pre>[root@host-15 tftpboot]# md5pass Install
$1$sgVXgwai$HowsFblM8sq7PTAupN7H20</pre>
<p>В качестве фона можно подложить произвольную небольшую картинку (например, её можно преобразовать их стандартной для дистрибутива, уменьшив размер до 640&#215;480): </p>
<pre>[root@host-15 tftpboot]# identify syslinux/back.jpg 
syslinux/back.jpg JPEG 800x600 800x600+0+0 8-bit DirectClass 41.7KiB 0.000u 0:00.000
[root@host-15 tftpboot]# convert syslinux/back.jpg -resize 640x480 back.jpg</pre>
<p>Кроме того, название пунктов меню можно писать на русском. Правда, текст должен быть в кодировке CP866, и надо положить в каталог также и шрифт: </p>
<pre>[root@host-15 tftpboot]# cp /lib/kbd/consolefonts/cp866-8x16.psf.gz .
[root@host-15 tftpboot]# gzip -d cp866-8x16.psf.gz </pre>
<p>Осталось сделать соответствующие изменения в файле настроек (стоит обратить внимание на то, что файл должен быть в кодировке CP866): </p>
<pre>[root@host-15 tftpboot]# iconv -f cp866 &lt; pxelinux.cfg/default
default vesamenu.c32
allowoptions 0
noescape 1
prompt 0
menu title Выберите варианты загрузки
menu background back.jpg
menu vshift 6
menu rows 5
timeout 100
menu autoboot Загрузка через # секунд{у,ы,}
font cp866-8x16.psf
label harddisk
 menu label ^L Загрузка с локального диска
 localboot 0x80
label live
 menu default
 menu label ^D Бездисковый клиент
 kernel syslinux/alt0/vmlinuz
 append initrd=syslinux/alt0/full.cz live fastboot lang=ru_RU vga=0x314 splash=silent splashcount=17 stagename=live showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow
label linux
 menu passwd $1$sgVXgwai$HowsFblM8sq7PTAupN7H20
 menu label ^I Установка ALT Linux Desktop 5.0
 kernel syslinux/alt0/vmlinuz
  append initrd=syslinux/alt0/full.cz changedisk ramdisk_size=65536 lang=ru_RU vga=0x314 splash=silent splashcount=17 xdriver=auto showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow
label rescue
 menu label ^R Спасательная система
 kernel syslinux/alt0/vmlinuz
 append initrd=syslinux/alt0/full.cz live ramdisk_size=65536 fastboot stagename=rescue showopts automatic=method:nfs,network:dhcp tz=Europe/Moscow</pre>
<p>Теперь выбор загрузки выглядит достаточно эстетично: </p>
<table style="width: 100%; margin-bottom: 1em;">
<tbody>
<tr>
<td style="border: none; text-align: center;">
<a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall18.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/NetworkInstall18-300x225.png" alt="Сплошная красота!" title="Сплошная красота!" width="300" height="225" class="aligncenter size-medium wp-image-2520" /></a>
</td>
</tr>
<tr>
<td style="border: none; text-align: center;"><STRONG>Сплошная красота!</STRONG></td>
</tr>
</tbody>
</table>
<p>Задача не то, что решена, а намного перевыполнена.<br />
</lj-cut></p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=2490</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Г. Курячий. Самозарождение порядка</title>
		<link>http://freeschool.altlinux.ru/?p=2390</link>
		<comments>http://freeschool.altlinux.ru/?p=2390#comments</comments>
		<pubDate>Thu, 10 Dec 2009 13:31:45 +0000</pubDate>
		<dc:creator><![CDATA[ALT Linux]]></dc:creator>
				<category><![CDATA[ALT Linux]]></category>
		<category><![CDATA[Книги]]></category>
		<category><![CDATA[Курячий]]></category>
		<category><![CDATA[Пятая Платформа]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=2390</guid>
		<description><![CDATA[Этой публикацией мы начинаем серию статей о применении решений на базе Пятой Платформы. Совсем недавно ALT Linux объявил о выходе Пятой Платформы и Школьных дистрибутивах на ее базе. Большинство учителей по воле судьбы оказалось в ситуации Linux/Unix администратора не являясь таковыми по своей квалификации. Чтобы облегчить им и всем, кто хочет организовать инфраструктуру школы или [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Этой публикацией мы начинаем серию статей о применении решений на базе Пятой Платформы.<br />
Совсем недавно ALT Linux объявил о выходе Пятой Платформы и <a href="http://freeschool.altlinux.ru/?p=2232">Школьных дистрибутивах на ее базе</a>. Большинство учителей по воле судьбы оказалось в ситуации Linux/Unix администратора не являясь таковыми по своей квалификации. Чтобы облегчить им и всем, кто хочет организовать инфраструктуру школы или офиса на базе свободного ПО предназначены эти материалы. Надеемся, что они будут полезны<br />
<span id="more-2390"></span><br />
<lj-cut><br />
<strong>Предварительное замечание.</strong> В тексте используются термины «Альт Линукс Ковчег 5.0 Сервер» и «Альт Линукс Ковчег 5.0 Рабочая Станция», их можно безболезненно заменить на «Альт Линукс 5.0 Школьный Сервер» и «Альт Линукс 5.0 Школьный Юниор».</p>
<p>Автор Г. Курячий<br />
<strong>Самозарождение порядка</strong></p>
<p><strong>Ситуация&#8230;</strong></p>
<p>Вообразим такое. Небольшая компания въезжает в новый офис. Работа кипит: кто-то двигает мебель, кто-то выбирает место поближе к окну, кто-то просто слоняется без дела, привыкая к новой обстановке. Пахнет краской, коробками, пластмассой — и переездом.</p>
<p>Системный Администратор сидит в холодной душной комнатушке с табличкой «программист». Никаких программистов в ней нет и в помине, есть только он, ревущие стойки с серверами и заляпанный масляной краской стул перед единственным пучеглазым монитором. Видимо, когда-то в комнатушке действительно обитал программист: запах кофе и сигарет не может выветрить даже время от времени взвывающий кондиционер, который работает здесь холодильником. Теперь это серверная.</p>
<p>Системному Администратору в серверной неуютно, ему тоже хочется найти место у окна, послоняться, а ещё выпить кофе и покурить. Однако он должен как можно быстрее пустить в ход «подключение к Интернет», чтобы его коллеги, когда начнут работать, начали работать, а не страдали от отсутствия корпоративной почты, информационных ресурсов, излюбленных социальных сетей и прочего. Необходимо как-то задействовать торчащий из соединительной панели провод с надписью «интернет № 15» и торчащий из стены провод с надписью «221-б» (это номер комнаты, в которой коллеги Системного Администратора обустраивают сейчас свой нехитрый производственный уют). Спасибо предыдущим хозяевам комнаты «221-б», сетевая проводка в ней в приличном состоянии, все рабочие места объединены концентратором, один провод от которого и ведёт в серверную.</p>
<p>Очевидно, что как минимум стоит установить на серверную машину какое-то серверное ПО, настроить его таким образом, чтобы «раздавался интернет», и протестировать настройку хотя бы одного рабочего места. Дальнейшая работа — настройка и/или установка других рабочих мест, разворачивание корпоративных служб и информационных ресурсов, запрет доступа к излюбленным социальным сетям и тому подобное — неплохо распараллеливаются, или, на худой конец, откладываются на потом.</p>
<p>По тем или иным причинам Администратор принимает решение, что на сервере он установит дистрибутив «Альт Линукс Ковчег 5.0 Сервер», а на рабочих станциях — по возможности — «Альт Линукс Ковчег 5.0 Рабочая Станция». Сказано — сделано. Установка серверного дистрибутива занимает с дюжину минут, не всякий кофейник успеет закипеть. Дело спорится. После установки сервер перезагружается, и через некотрое время Системный Администратор наблюдает следующую картину:<br />
<div id="attachment_2451" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-18_33_16.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-18_33_16-300x225.png" alt="ALT Linux Ковчег 5.0 сервер. Установка завершена?" title="snap-18_33_16" width="300" height="225" class="size-medium wp-image-2451" /></a><p class="wp-caption-text">ALT Linux Ковчег 5.0 сервер. Установка завершена?</p></div></p>
<p>Что дальше-то делать? Под рукой имеется совершенно новый казённый ноутбук — будущее рабочее место администратора. Очевидно, на него стоит поставить «Альт Линукс Ковчег 5.0 Рабочая Станция». И?..<br />
Самое время читать руководство по установке!</p>
<p><strong>&#8230;и её описание</strong></p>
<p>Для того, чтобы решить задачу, которая очевидно проступает в нашем рассказе, её сначала нужно сформулировать. В согласии с классическими традициями, опишем, что дано, что требуется и в каких условиях решение будет считаться удовлетворительным. Упоминание об условиях не случайно. Очень многие задачи «из жизни» не имеют окончательного решения: почти всегда есть возможность улучшить то, что уже имеется, и почти всегда выбор — останавливаться ли на пути улучшения или идти дальше — упирается в наличие ресурсов: времени, квалификации, средств. Мы ограничимся тем, что опишем условия, в которых задача посчитается решённой и потеряет для нас исследовательский интерес.</p>
<p><strong>Дано</strong></p>
<ul>
<li>Функционирующая локальная сеть с одним концентратором, объединяющая рабочие места и серверную комнату</li>
<li>Доступ в сеть Интернет из серверной комнаты в виде сетевого кабеля и инструкции по настройке сетевых параметров</li>
<li>Компьютер произвольной вычислительной мощности, предназначенный на роль сервера</li>
<li>Компьютер(ы) произвольной вычислительной мощности, предназначенные для рабочих станций</li>
</ul>
<p><strong>Требуется</strong></p>
<ul>
<li>Организовать возможность полноценной работы сервера и рабочей станции (выход в Интернет, управление сервером)</li>
</ul>
<p><strong>Условия</strong></p>
<ul>
<li>На серверный компьютер установлен дистрибутив «Альт Линукс Ковчег 5.0 Сервер», подключение к сети Интернет настроено а процессе установки таким образом, что единственный «внешний» IP-адрес приходится на серверный компьютер</li>
<li>Сервер имеет два сетевых интерфейса: «нулевой» — для подключения к сети Интернет, и «первый» — для взаимодействия с локальной сетью</li>
<li>На рабочую станцию установлен дистрибутив «Альт Линукс Ковчег 5.0 Рабочая Станция»</li>
<li>Процесс установки ОС можно не описывать, т. к. он описан в руководстве по установке</li>
<li>Доступа к серверу со стороны «внешнего» адреса на момент решения задачи нет</li>
</ul>
<p><strong>Решение задачи</strong><br />
Для начала приведём иллюстрированное <em>решение</em> задачи — последовательность действий на рабочей станции (которые окажутся в том числе и удалёнными действиями на сервере). Иллюстрации будем сопровождать комментариями, необходимыми для понимания происходящего. По окончании решения приведём объяснение принципов работы некоторых подсистем, обеспечивающих решения задачи.</p>
<p>Для решения нам понадобятся некоторые дополнительные данные, в первую очередь — соглашения о сетевых настройках:</p>
<ul>
<li>Внешний адрес, адрес DNS-сервера и адрес маршрутизатора по умолчанию сервер получает <em>автоматически</em>, для этого используется сетевой интерфейс <code>breth0</code>.</li>
<li>Внутренняя подсеть выбирается произвольно, например <code>10.30.50.1/24</code>, где <code>10.30.50.1 </code>— адрес внутреннего сетевого интерфейса на сервере(<code>breth</code>), а <code>24</code> — размер сетевой маски в локальной сети. Далее мы всегда будем пользоваться адресом <code>10.30.50.1</code> в качестве адреса сервера.</li>
<li>Сеть на рабочей станции ещё не настроена, но имя компьютера задано (например, автоматически)</li>
</ul>
<p><strong>Что уже произошло</strong><br />
Согласно допущению из условий задачи, операционная система установлена и на сервер, и на рабочую станцию, все кабели подсоединены, подключение сервера к сети Интернет настроено (автоматически).</p>
<p>«Альт Линукс Ковчег 5.0 Сервер» непосредственно после установки нуждается в начальной настройке — следует задать учётную запись суперпользователя, унифицированное имя домена и некоторую другую информацию. Руководство по установке даёт простую и однозначную картину: после перезагрузки сервер опубликует на системной консоли адрес веб-интерфейса для управления, на него следует зайти с помощью любого навигатора по адресу <code>http://10.30.50.1:8080</code>.</p>
<p>Вот только откуда зайти? По условию задачи мы должны это сделать с рабочей станции, а сеть на ней не настроена, так как не настроена автоматическое конфигурирование клиентов на сервере&#8230; замкнутый круг?</p>
<p><strong>Временная настройка клиентской машины</strong></p>
<p>Разумеется, ничего сложного в том, чтобы этот круг порвать, нету. Надо просто настроить сетевое подключение на рабочей станции <em>вручную</em>. Настройка эта будет временной, исключительно для доступа к серверу на финальной стадии его развёртывания. Временный адрес должен принадлежать той же локальной подсети, что и внутренний сетевой интерфейс сервера и не быть назначенным никакой другой машине. В наших условиях других машин, кроме сервера, и нет, поэтому выберем первый попавшийся: <code>10.30.50.2</code>.</p>
<p>Настройки рабочей станции будем менять с помощью локальной версии Центра Управления Системой (ЦУС), которая присутствует во всех дистрибутивах Пятой платформы. В дистрибутиве «Альт Линукс Ковчег 5.0 Рабочая Станция» программа доступна в меню GNOME: <code>Система -> Параметры -> Центр управления системой</code>:<br />
<div id="attachment_2452" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_10_55.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_10_55-300x225.png" alt="«Центр управления системой» в меню GNOME" title="snap-20_10_55" width="300" height="225" class="size-medium wp-image-2452" /></a><p class="wp-caption-text">«Центр управления системой» в меню GNOME</p></div></p>
<p>Обратите внимание, что меню целиком не помещается на экран, его можно прокрутить, подведя указатель мыши к нижней стрелке.<br />
Большинство операций по изменению настроек в системе требуют прав суперпользователя. Поэтому Центр управления системой (он же «<code>acc</code>», <strong>a</strong>ltlinux <strong>c</strong>ontrol <strong>c</strong>enter) просит ввести пароль суперпользователя:<br />
<div id="attachment_2454" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_11_20.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_11_20-300x225.png" alt="Пароль суперпользоваеля — весьма необходимая информация" title="snap-20_11_20" width="300" height="225" class="size-medium wp-image-2454" /></a><p class="wp-caption-text">Пароль суперпользоваеля — весьма необходимая информация</p></div></p>
<p>Открывшееся окно — и есть Центр управления. Наша задача — поменять настройки сети для того, чтобы добраться до веб-интерфейса на сервере:<br />
<div id="attachment_2455" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_12_17.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_12_17-300x225.png" alt="Сервер и рабочая станция находятся в одной локальной сети; настроим её" title="snap-20_12_17" width="300" height="225" class="size-medium wp-image-2455" /></a><p class="wp-caption-text">Сервер и рабочая станция находятся в одной локальной сети; настроим её</p></div></p>
<p>Как было сказано выше, временные настройки сети на клиенте должны обладать лишь одним свойством: они должны работать.<br />
<div id="attachment_2456" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_13_34.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_13_34-300x225.png" alt="Настроим сеть как попало" title="snap-20_13_34" width="300" height="225" class="size-medium wp-image-2456" /></a><p class="wp-caption-text">Настроим сеть как попало</p></div></p>
<p>В примере был взят первый попавшийся адрес, не равный адресу сервера, заполнено поле «шлюз», а поле «DNS-сервер» оставлено чистым: оно пока не понадобится.<br />
Кстати, если теперь запустить веб-навигатор<br />
<div id="attachment_2457" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_15_01.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_15_01-300x225.png" alt="Запускаем Firefox" title="snap-20_15_01" width="300" height="225" class="size-medium wp-image-2457" /></a><p class="wp-caption-text">Запускаем Firefox</p></div></p>
<p>и зайти на сервер обычным способом, (по HTTP), мы увидим большой объём документации по серверному дистрибутиву, включая руководство по установке, где описано, что делать дальше:<br />
<div id="attachment_2458" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_16_17.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_16_17-300x225.png" alt="Руководство по установке доступно после установки двух дистрибутивов" title="snap-20_16_17" width="300" height="225" class="size-medium wp-image-2458" /></a><p class="wp-caption-text">Руководство по установке доступно после установки двух дистрибутивов</p></div></p>
<p>Стоит заметить, что остальные ссылки на этой странице имеют полное право не заработать.</p>
<p><strong>Настройка сервера</strong></p>
<p>Ну наконец-то. Осталось только, как это сказано в руководстве по установке, запустить веб-навигатор, и зайти на сервер по адресу <code>https://10.30.50.1:8080</code>,<br />
<div id="attachment_2459" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_17_28.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_17_28-300x225.png" alt="Веб-интерйфейс Центра управления системой" title="snap-20_17_28" width="300" height="225" class="size-medium wp-image-2459" /></a><p class="wp-caption-text">Веб-интерйфейс Центра управления системой</p></div></p>
<p>И&#8230;</p>
<p><strong>Заминка с сертификатом</strong><br />
<div id="attachment_2460" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_18_33.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_18_33-300x225.png" alt="Предупреждение о недоверенности соединения" title="snap-20_18_33" width="300" height="225" class="size-medium wp-image-2460" /></a><p class="wp-caption-text">Предупреждение о недоверенности соединения</p></div></p>
<p>А это кто такой? Пограничник-книгочей? Пугает какими-то непроверенными идентификаторами&#8230; Думать некогда, у нас сервер недоустановлен. Да и какое недоверие может быть между компьютерами, воткнутыми друг в друга?<br />
<div id="attachment_2461" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_19_01.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_19_01-300x225.png" alt="Ещё одно предупреждение о недоверенности соединения" title="snap-20_19_01" width="300" height="225" class="size-medium wp-image-2461" /></a><p class="wp-caption-text">Ещё одно предупреждение о недоверенности соединения</p></div></p>
<p>По-видимому, не одни мы такие нетерпеливые. Что ж, у нас есть «веская причина»: сертификат на только что поставленном сервере просто не имел возможности стать доверенным.<br />
<div id="attachment_2462" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_19_26.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_19_26-300x225.png" alt="Последнее китайское предупреждение" title="snap-20_19_26" width="300" height="225" class="size-medium wp-image-2462" /></a><p class="wp-caption-text">Последнее китайское предупреждение</p></div></p>
<p>В третий раз призвал Абу &#8216;Амр Му&#8217;авийа б. Аби Ахмад Салих б. &#8216;Усман, известный под именем Джарир б. Са&#8217;ид б. Са&#8217;д б. Фихр ал-Хадрами, демона на свою главу&#8230; Ну да, да, явись уже!</p>
<p><strong>Начальная настройка сервера</strong><br />
Уф! А вот и картинка, виденная в руководстве по установке:<br />
<div id="attachment_2463" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_25_00.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_25_00-300x225.png" alt="Некоторые начальные параметры" title="snap-20_25_00" width="300" height="225" class="size-medium wp-image-2463" /></a><p class="wp-caption-text">Некоторые начальные параметры</p></div></p>
<p>Ах, какой прелестный пароль! И запоминается легко&#8230; Не забыть: <code>breth0</code> — интерфейс, «смотрящий в Интернет», его нам автоматически настраивает провайдер, <code>breth1</code> — интерфейс, «смотрящий в локальную сеть», его мы настроили сами.<br />
Теперь мы видим уже стандартную процедуру регистрации администратора системы. Введём учётные данные суперпользователя; протокол HTTPS позаботится о шифровании:<br />
<div id="attachment_2464" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_26_47.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_26_47-300x225.png" alt="Проверьте вашу память" title="snap-20_26_47" width="300" height="225" class="size-medium wp-image-2464" /></a><p class="wp-caption-text">Проверьте вашу память</p></div></p>
<p>Какой же он был, этот легко запоминающийся пароль&#8230;<br />
Кстати, на серверной консоли к этому времени картинка поменяется:<br />
<div id="attachment_2465" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_37_54.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_37_54-300x225.png" alt="Первоначальная настройка сервера закончена" title="snap-20_37_54" width="300" height="225" class="size-medium wp-image-2465" /></a><p class="wp-caption-text">Первоначальная настройка сервера закончена</p></div></p>
<p>Автоматическая настройка сетевых установок в локальной сети<br />
Вот он, Центр управления сервером:<br />
<div id="attachment_2466" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_38_54.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_38_54-300x225.png" alt="Стартовая страница Центра управления системой" title="snap-20_38_54" width="300" height="225" class="size-medium wp-image-2466" /></a><p class="wp-caption-text">Стартовая страница Центра управления системой</p></div></p>
<p>Дело за малым. Первое: организовать автоматическую настройку сети на рабочих станциях. На сервере для этого надо настроить службу DHCP:<br />
<div id="attachment_2467" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_40_42.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_40_42-300x225.png" alt="Настройка DHCP" title="snap-20_40_42" width="300" height="225" class="size-medium wp-image-2467" /></a><p class="wp-caption-text">Настройка DHCP</p></div></p>
<p>Шлюзом по умолчанию устанавливается наш сервер, диапазон раздаваемых адресов вполне произволен. Хорошо бы, чтобы в этот диапазон не входил текущий временный адрес той рабочей станции, с которой мы всё это настраиваем (не ровён час сервер его тут же кому-нибудь выдаст). Однако это требование не обязательно: достаточно после старта DHCP тут же перенастроить сеть на рабочей станции.</p>
<p><strong>Настройка межсетевого экрана в режиме трансляции адресов</strong><br />
Второе дело: организовать доступ в Интернет. Для этого достаточно перевести сервер в режим «шлюза», что означает включение в межсетевом экране («брандмауэре»)<br />
<div id="attachment_2468" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_42_02.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_42_02-300x225.png" alt="Модуль «брандмауэр»" title="snap-20_42_02" width="300" height="225" class="size-medium wp-image-2468" /></a><p class="wp-caption-text">Модуль «брандмауэр»</p></div></p>
<p>трансляции сетевых адресов (это и есть режим «шлюз»):<br />
<div id="attachment_2469" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_44_23.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_44_23-300x225.png" alt="Режим брандмауэра «шлюз»" title="snap-20_44_23" width="300" height="225" class="size-medium wp-image-2469" /></a><p class="wp-caption-text">Режим брандмауэра «шлюз»</p></div></p>
<p>Осталось только применить эти настройки<br />
<div id="attachment_2470" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_44_43.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_44_43-300x225.png" alt="Настройка сервера закончена" title="snap-20_44_43" width="300" height="225" class="size-medium wp-image-2470" /></a><p class="wp-caption-text">Настройка сервера закончена</p></div></p>
<p>и сетью можно пользоваться.<br />
Финальная настройка клиентской машины<br />
Не забудем только перенастроить сеть и на самой рабочей станции администратора:<br />
<div id="attachment_2471" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_46_02.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_46_02-300x225.png" alt="Включим автомат" title="snap-20_46_02" width="300" height="225" class="size-medium wp-image-2471" /></a><p class="wp-caption-text">Включим автомат</p></div></p>
<p>Готово. В подтверждение того, что настройки DHCP приняты к сведению, специальная программа (Network Manager applet) оповестит нас о подключении к сети:<br />
<div id="attachment_2473" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_46_39.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_46_39-300x225.png" alt="Автомат заработал" title="snap-20_46_39" width="300" height="225" class="size-medium wp-image-2473" /></a><p class="wp-caption-text">Автомат заработал</p></div></p>
<p>На всякий случай можно убедиться, что работает DNS и доступ в Интернет, введя в адресную строку навигатора доменное имя какого-нибудь сайта:<br />
<div id="attachment_2474" style="width: 310px" class="wp-caption aligncenter"><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_49_12.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/12/snap-20_49_12-300x225.png" alt="Сайт ALT Linux доступен!" title="snap-20_49_12" width="300" height="225" class="size-medium wp-image-2474" /></a><p class="wp-caption-text">Сайт ALT Linux доступен!</p></div></p>
<p>Если воспроизвести эти настройки (попросту — включить настройку автоматом) на любом другом абоненте локальной сети, доступ в Интернет будет работать и там.<br />
Системный Администратор наконец расслабляется, и, нащупывая в кармане зажигалку и пачку сигарет, отправляется на поиски кофейника&#8230;</p>
<p><strong>Объяснение</strong><br />
Таким образом часть руководства по установке, занимающую два снимка экрана (из которых один приведён в чисто иллюстративных целях), мы превратили в рассказ на три различные темы, сопровождаемый более, чем дюжиной иллюстраций. Что это, попытка замолчать правду в первом случае — или попытка напугать ленивого читателя во втором?</p>
<p><strong>А ларчик просто не открывался</strong></p>
<p>Ни то, ни другое. Просто руководство по установке решает принципиально другу задачу: описать установку ПО<em> на сервере</em>, и только её. В нашем же случае речь зашла о настройке <em>работоспособной локальной сети</em>, что поднимает задачу определения сетевых серверных настроек. Кроме того, дополнительное требование «вакуума на площадке» приводит к необходимости настраивать рабочее место <em>параллельно</em> серверу. Наконец, здоровая человеческая предусмотрительность, требующая, чтобы учётные данные (пароль суперпользователя!) передавались по сети только по защищённому соединению, нашла на не менее здоровую человеческую предупредительность, которая поставила под сомнение сам факт защищённости этого соединения.<br />
Но обо всём по порядку.</p>
<p><strong>Приборная доска анфас и в профиль</strong></p>
<p>Управление Linux-системой, в конечном итоге, есть просто редактирование конфигурационных файлов и уведомление соответствующих служб о том, что файлы изменились. Не более — и не менее. Опытные администраторы знают синтаксис и название наиболее часто редактируемых конфигурационных файлов, а про остальные знают, где посмотреть документацию. Неопытным на освоение этой премудрости требуется изрядное время, года два-три. НО даже самый опытный администратор в состоянии совершить ошибку, редактируя по заранее намеченной схеме несколько конфигурационных файлов подряд.</p>
<p>Между тем, он вовсе не обязан выполнять все сложные действия вручную. У каждого опытного имеется некоторый багаж «скриптов» — небольших (или больших) собственноручно написанных командных сценариев, решающих ту или иную часто встречавшуюся на профессиональном пути администратора задачу. Получается, что опытному и неопытному осталось сделать пару шагов навстречу друг другу, да призвать на подмогу программиста, и выйдет некий инструмент, конфигуратор, объединяющий опыт решения частных, но частых задач и быстроту освоения этого опыта.</p>
<p>В дистрибутивах Пятой Платформы конфигуратор, называемый «Центром управления системой», имеет трёхуровневую структуру. Первый уровень — это <em>интерфейс</em>, способ общения с пользователем. Интерфейс может быть каким угодно, чаще всего используется специальная программа или веб-интерфейс. В интерфейсе в простой форме представлены инструменты решения тех или иных рабочих задач. Эти инструменты могут быть весьма простыми, для решения простых задач, а могут сводиться к прямому редактированию конфигурационных файлов. Оптимум, как всегда, где-то посередине. Второй уровень — это <em>логика</em>, программная часть, позволяющая преобразовать данные, полученные из интерфейса в некоторые унифицированные команды изменения параметров системы. Эти команды передаются третьему уровню, <em>реализации</em>, на котором однотипные команды преобразуются в последовательность действий, корректно редактирующих соответствующие файлы и перезапускающих службы. Уровню реализации как раз соответствует «набор скриптов» опытного администратора.</p>
<p>Кроме того, Центр управления делится горизонтально — на модули. Некоторой функциональности соответствуют части сразу трёх уровней: представление данных в интерфейсе, логика преобразования в команды и реализация. Такой модуль оформляется в виде отдельного пакета в дистрибутиве или хранилище, и может быть по необходимости установлен или удалён.</p>
<p>Так что никого не должен смущать тот факт, что Центры управления сервером и рабочей станцией и выглядят по-разному (используются различные представления интерфейса), и состоят из отчасти различных модулей, а между тем называются одинаково и, по сути, являются вариантами одной и той же программной платформы, именуемой в сообществе «alterator».</p>
<p><strong>Без окон, без дверей</strong></p>
<p>Традиционно принято различать в Linux текстовые системные консоли и графическую подсистему. В дистрибутиве «Альт Линукс Ковчег 5.0 Сервер» графическая подсистема используется только на этапе установки; собственно, в состав ПО, устанавливаемого на сервер, она не входит. Таким образом после установки серверной части мы получаем компьютер, работа с которым возможна только посредством текстовой консоли — либо через веб-интерфейс, если настроена сеть. Учитывая особенность серверного оборудования нещадно шуметь и находиться в труднодоступной серверной комнате (не говоря уже об удалённых площадках), такой минимализм вполне оправдан.</p>
<p>Специфика Пятой Платформы требует, чтобы был выбран именно второй вариант — через сеть — оттого администратора склоняют к подобному выбору чуть ли не силой: до тех пор, пока первоначальная настройка сервера не завершена, командная строка недоступна.</p>
<p>Следовательно, процесс установки сервера требует (как то и сказано в руководстве по установке), чтобы был второй компьютер, рабочее место администратора, с которого можно было бы завершить первоначальную настойку и начать основную. Но, как выясняется, простой установки веб-навигатора недостаточно: требуется настроить доступ по сети хотя бы к самому серверу, то есть присвоить рабочей станции IP-адрес из одной с сервером подсети. Здесь мы столкнёмся с некоторой особенностью: конфигуратор не соглашается применять сетевые настройки, если они не полны, именно: не содержат т. н. «шлюза по умолчанию» (это поле можно на первых порах заполнять как угодно, но обычно роль шлюза по умолчанию как раз выполняет сервер).</p>
<p><strong>Кто проверяет проверяльщика?</strong></p>
<p>Вторая загвоздка возникает при попытке впервые воспользоваться веб-навигатором на уже настроенной рабочей станции. Вместо того, чтобы послушно показывать нам интерфейс Центра управления сервером, навигатор изображает полицейского в форме, пугает подменой сайтов и недвусмысленно предлагает уносить ноги. Опытные пользователи давно уже привыкли к подобным — довольно частым — угрозам, и не обращают на них внимания согласно правилу «нас пугают — нам не страшно». В данном случае всё и в самом деле не страшно, однако не мешало бы разобраться.</p>
<p>Сам протокол HTTP, посредством которого навигатор обменивается данными с сервером, вполне текстовый; искушённые администраторы способны получить текст страницы с сервера вообще безо всякого навигатора, вводя HTTP-запросы вручную с помощью команды непосредственного подключения к порту (например, <code>netcat</code>). Что более важно, вся информация передаётся в нём в открытую, без шифрования. Строго говоря, даже если шифровать передаваемые данные с помощью информации, передаваемой в том же соединении, перехватить и расшифровать эти данные будет не сложнее, чем перехватить нешифрованые. Поэтому — если уж скрывать содержимое передаваемых данных, например, имя пользователя и пароль, от посторонних глаз — следует заранее позаботиться о том, чтобы как минимум не клиентской имелась какая-то информация о сервере, с помощью которой данные получилось бы зашифровать так, что только на сервере их было возможно расшифровать.</p>
<p>Самый распространённый способ добиться этого — использовать так называемое асимметричное шифрование. Суть метода в том, что в нём используется два пароля, и то, что зашифровано одним, может быть расшифровано только другим. Один из них, называемый закрытым ключом, хранится на сервере и никогда никому не передаётся, другой же, называемый открытым ключом, напротив распространяется как можно шире, передаётся пользователям, публикуется и т. п. Зашифровав сообщение с помощью своего закрытого ключа, отправитель даёт возможность любому обладателю открытого ключа (т. е. просто любому) расшифровать и прочесть это сообщение, будучи полностью уверенным, что оно не поддельное, ибо зашифровал его обладатель закрытого ключа и никто иной. Такой алгоритм называется «электронной подписью». Если же зашифровать сообщение открытым ключом получателя, то его сможет прочесть только этот получатель, обладатель закрытого ключа, а злоумышленник, перехвативший сообщение, не сможет.</p>
<p>Этого как раз и требуется достичь! Используемый протокол-надстройка Secure Socket Layser (SSL) организует на обоих концах потока данных TCP шифрующие-дешифрующие «фильтры», а программа знай себе шлёт в этом потоке свои данные. Затруднения только два. Первое: поскольку шифрование не поднимается на прикладной уровень, необходимо как-то различать шифрованные и нешифрованные потоки данных на уровне транспортном. Это легко устранить, договорившись, что для использования SSL приложение подключается к серверу по <em>другому порту</em>, например, научить навигатор вместо 80-го порта заходить на 443-й. С точки зрения навигатора это вообще воспринимается как новый сетевой протокол (<code>https:</code> вместо <code>http:</code>).</p>
<p>Второе затруднение значительней, вокруг него и весь сыр-бор. Для того, чтобы безопасно передавать данные, необходим открытый ключ получателя. А этот ключ, в свою очередь, необходимо безопасно передать отправителю. Получается дурная бесконечность: для организации безопасного соединения необходимо&#8230; заранее организованное безопасное соединение. Правда, для передачи ключа безопасность надо соблюсти лишь однократно, но отказываться от мер предосторожности нельзя: должна быть гарантия, что полученный ключ действительно принадлежит отправителю, а не какому-нибудь злоумышленнику, получившему доступ к среде передачи данных.</p>
<p>Если принимать на веру подлинность полученного открытого ключа, злоумышленник, технически способный перехватить пересылаемые данные и подменить их своими, может запросто расшифровать эти данные так, что и отправитель, и получатель этого не заметят. Традиционный (и единственный сравнительно простой) способ называется атакой «man-in-the-middle» («человек посередине»). Суть её очень проста: вместо того, чтобы позволить получателю переслать ключ, а отправителю — шифровать им данные, злоумышленник ретранслирует поток данных через свой компьютер, попутно их расшифровывая. Более подробно: открытый ключ получателя злоумышленник вообще не показывает отправителю, а отсылает ему свой открытый ключ. Отправитель, думая, что разговаривает непосредственно с получателем, шифрует этим ключом свои данные, злоумышленник их перехватывает, расшифровывает (атака прошла успешно!), затем шифрует ключом получателя и отправляет ему, чтобы не вызывать подозрений.</p>
<p>Если не рассматривать передачу ключа альтернативными способами (например, можно приехать к администратору сайта, и лично у него переписать этот ключ), есть два способа избежать обмана, когда открытый ключ передаётся в рамках того же, ещё не доверенного, соединения. Первый состоит в том, чтобы, получив ключ, проверить его аутентичность (опять-таки с помощью альтернативного канала передачи данных). В этом помогает так называемый «отпечаток пальца» (fingerprint) — некоторое число, которому однозначно соответствует открытый ключ. Это число достаточно велико, и алгоритм его получения достаточно сложен, так что у злоумышленника нет разумной возможности изготовить свой ключ с таким же отпечатком. При этом отпечаток намного меньше самого ключа, и человек в состоянии самостоятельно сличить два отпечатка: тот, что сгенерирован из полученного ключа, и тот, что опубликован на сайте, или в службе DNS или получен иным способом. Предполагается, что злоумышленник не готов тратить столько ресурсов, чтобы получать контроль над всеми видами передачи данных.</p>
<p>Другой способ — воспользоваться электронной подписью. Если на компьютере отправителя имеется некоторый проверенный открытый ключ, получатель может попросить хозяина этого ключа подписать ключ получателя перед пересылкой. Тогда отправитель увидит, что пришедшая информация подписана доверенным лицом, и, стало быть, после того, как её подписали, не менялась. В действительности это род бизнеса: договариваться с производителями дистрибутивов ОС и ПО, использующего SSL, о том, чтобы включать в них свои открытые ключи, а затем брать деньги за подписывание этими ключами (точнее, их закрытыми парами). К сожалению, относительная дороговизна подобной процедуры приводит к тому, что администраторы серверов часто используют т. н. «самоподписанные» сертификаты, проверить аутентичность ключей в которых этим способом невозможно.</p>
<p>Теперь картинка с полицейским становится более понятной. Для доступа к серверу по защищённому протоколу требуется получить от него свежезаведённый открытый ключ (в терминах SSL — «серитфикат»), который разумеется, никто не успел подписать. Хуже того. В сертификате, помимо собственно ключа, хранится разнообразная информация о том, кому он принадлежит — в частности, доменное имя сайта. Но к моменту, когда нам необходимо подключиться к веб-интерфейсу на сервере, служба DNS на нём может и не работать, поэтому в примере используется IP-адрес. Обо всём этом (о недоверенности передаваемого сертификата и о несоответствии доменного имени) и сообщает навигатор. Для того, чтобы история впоследствии не повторилась, сертификат надо запасти на будущее (это называется «подтвердить исключение безопасности».</p>
<p><strong>Всех выпускать, никого не впускать</strong></p>
<p>Теперь пару слов о «настройке сети для класса». Собственно, ничего таинственного в них нет, нам необходимо воспользоваться двумя службами сервера: службой автоматизации клиентских настроек DHCP (Dynamic Host Configuring Protocol) и межсетевым экраном с маршрутизацией.</p>
<p>Сначала о маршрутизации. Вообще говоря, свойство быть маршрутизатором — принимать чужие пакеты и перенаправлять их через другой сетевой интерфейс — ядру Linux присуще, однако его следует включать специальной настройкой ядра sysctl (<code>net.ipv4.ip_forward;</code> в дистрибутивах Пятой Платформы можно также выставить эту настройку в единицу в файле <code>/etc/net/sysctl.conf</code>). В сервере она включена по умолчанию, но задачу «настройки сети для класса» это может решить только в случае, когда всем компьютерам раздаются настоящие IP-адреса. Точнее говоря, когда эти адреса обрабатываются не нашим сервером, а где-то дальше, сервер же попросту маршрутизирует пакеты от абонентов своей локальной сети. В нашем случае это не так: диапазон адресов в локальной сети был выбран вполне произвольно, следовательно, нам и отвечать за то, чтобы в дальнейшем своём путешествии по сети Интернет эти пакеты были признаны годными.</p>
<p>Просто так пакеты из настраиваемой локальной сети годными признаны не будут: они принадлежат одному из так называемых «внутренних» диапазонов адресов, именно: <code>10.0.0.0/8</code>. Пакеты с такими адресами в глобальной сети недопустимы, задача сервера — преобразовать их во что-либо пригодное. Например, воспользоваться умением межсетевого экрана Linux — IPTables — осуществлять преобразование сетевых адресов (NAT, Network Address Translation). Суть метода в том, что при пересылке пакетов «в большую сеть» адрес отправителя в них подменяется на адрес сервера (этот адрес, очевидно, работоспособный). Если предполагается <em>обмен</em> данными, то каждый сеанс обмена запоминается межсетевым экраном (например, для TCP-соединения запоминается адрес и порт настоящего отправителя, адрес и порт получателя, а также порт отправителя, выданный сервером в результате преобразования) и, проанализировав входящий трафик, сервер принимает решение об <em>обратном преобразовании</em>.</p>
<p>Команда <code>iptables-save</code> на сервере покажет, что преобразование адресов происходит в правиле таблицы nat подсистемы <code>IPTables -A POSTROUTING -o breth0 -j MASQUERADE</code>. Правило означает буквально, что после того, как принято решение о маршрутизации пакета (пакет предназначен куда-то вовне, и передаётся через сетевой интерфейс <code>breth0</code>), содержимое пакета обрабатывается специальной цепочкой-действием <code>MASQUERADE</code>. В отличие от цепочки-действия <code>NAT</code>, преобразующий адрес в некоторый заранее заданный, <code>MASQUERADE</code> сначала получает адрес соответствующего сетевого интерфейса, и преобразует именно в него. Это потребляет чуть больше ресурсов, чем <code>NAT</code>, зато правильно работает в ситуации, когда этот адрес настраивается динамически (как в нашем примере).</p>
<p>В Центре управления системой всё это включается, когда в соответствующей настройке межсетевого экрана («брандмауэра») переключатель «режим работы» выставляется из положения «роутер» (маршрутизатора) в положение «шлюз». Следует отметить, что маршрутизатору в чистом виде всё равно, из какого сетевого интерфейса в какой перекладывать несвои пакеты, а вот преобразование адресов необходимо только на выходе в глобальную сеть (и обратное — на входе оттуда).</p>
<p>Сервер не может самостоятельно определить, где глобальная сеть, а где какая-то другая. С его точки зрения существует два вида интерфейсов: внешние и внутренние. За внутренним <em>интерфейсом</em> лежит администрируемая локальная сеть, за внешним — «внешний мир». В режиме «шлюз» сервер будет преобразовывать адреса при выходе пакета через любой <em>внешний</em> интерфейс. Кроме того, межсетевой экран запретит любые <em>входящие</em> соединения (и приём других пакетов) через внешние интерфейсы, кроме тех, что отмечены на соответствующей странице Центра управления.</p>
<p>Последнее, о чём стоит упомянуть — это служба динамической настройки абонентов сети DHCP (Dynamic Host Configuring Protocol). Суть этой службы проста: абонент локальной сети может не иметь собственных настроек, а обращаться за ними к серверу; причём обращение это происходит до настройки сетевого уровня, без знания IP-адресов. Вкратце это происходит в четыре приёма: сначала клиент рассылает широковещательный запрос вида «а кто тут может мне настройки выдать» по локальной сети, и все имеющиеся в ней DHCP-серверы отвечают широковещательным же предложением «я могу дать такие настройки»; после чего клиент выбирает, чьи настройки ему больше по нраву (обычно — первые попавшиеся), и посылает ещё один широковещательный запрос: «мне такой-то сервер настройки обещал», и наконец получает ответ «вот твои настройки».</p>
<p>С помощью DHCP можно раздавать IP-адреса, настройки маршрутизации и адреса DNS-серверов, доменные имена, а также десятки других параметров. Кроме того, клиент может попросить выдать ему определённый адрес или имя, и, если они не заняты, получить именно их. Стоит также понимать, что адреса выдаются, вообще говоря, первые попавшиеся свободные и временно, так что без дополнительных действий адрес одного и того же компьютера может быть в разные дни разный.</p>
<p>Адреса, выдающиеся абонентам локальной сети, служба DHCP берёт из заданного диапазона. В примере их 91 — от <code>10.30.50.10</code> до <code>10.30.50.100</code>. Предполагается, что адреса каких-то ещё серверов, если они появятся, будут заканчиваться на однозначное число, а компьютеров во внутренней сети всё равно не будет больше, даже если учитывать ноутбуки и КПК сотрудников. В принципе, достаточно, чтобы в сети не было более 91 одновременно включённого компьютера, так как новым абонентам сети адреса выдаются по принципу «самй давно не используемый». Маршрутизатором и DNS-сервером для наших рабочих мест также будет серверная машина (причём информация про DNS берётся прямо из настроек самого сервера).</p>
<p>Клиентские машины (с любой операционной системой) теперь можно смело переводить на «автоматическую настройку сети».</p>
<p>Задача решена.<br />
</lj-cut></p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=2390</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Введение в ОС Linux второе издание</title>
		<link>http://freeschool.altlinux.ru/?p=2295</link>
		<comments>http://freeschool.altlinux.ru/?p=2295#comments</comments>
		<pubDate>Tue, 24 Nov 2009 08:24:15 +0000</pubDate>
		<dc:creator><![CDATA[ALT Linux]]></dc:creator>
				<category><![CDATA[Книги]]></category>
		<category><![CDATA[Библиотека ALT Linux]]></category>
		<category><![CDATA[Курячий]]></category>
		<category><![CDATA[ПСПО]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=2295</guid>
		<description><![CDATA[Вышла из печати очередная книга серии &#171;Библиотека ALT Linux&#187; &#8212; Г. В. Курячий, К. А. Маслинский Введение в ОС Linux. Курс лекций. Учебное пособие. 2-е изд. Книгу можно приобрести в интернет-магазине ALT Linux или прочитать on-line Это второе издание учебника, специально адаптированное к ПСПО. К книге прилагается диск &#171;Школьный Мастер&#187; Рекомендуем книгу всем школьным специалистам, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://freeschool.altlinux.ru/wp-content/uploads/2009/11/Linuxintro2_cover.png"><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/11/Linuxintro2_cover-150x150.png" alt="Linuxintro2_cover" title="Linuxintro2_cover" width="150" height="150" class="alignleft size-thumbnail wp-image-2296" /></a><br />
Вышла из печати очередная книга серии &#171;Библиотека ALT Linux&#187; &#8212; Г. В. Курячий, К. А. Маслинский<br />
Введение в ОС Linux. Курс лекций. Учебное пособие. 2-е изд. Книгу можно приобрести в <a href="http://shop.altlinux.ru/index.php?productID=727">интернет-магазине ALT Linux</a> или <a href="http://uneex.ru/Books/LinuxIntro">прочитать on-line</a><br />
Это второе издание учебника, специально адаптированное к ПСПО. К книге прилагается диск <a href="ftp://ftp.altlinux.ru/pub/beta/school/master/">&#171;Школьный Мастер&#187;</a><br />
<span id="more-2295"></span><br />
Рекомендуем книгу всем школьным специалистам, которым приходится администрировать компьютерное хозяйство. Требования к начальной подготовке минимальны: а) знакомство с устройством компьютера на уровне пользователя,  б) знакомство с устройством и принципом работы TCP/IP сетей.<br />
Если кого-то испугал п. б &#8212; не расстраивайтесь, во-первых эти знания понадобятся только в 14 и 15 главах (всего 18), и даже если вы не имеете понятия о TCP/IP протоколах &#8212; в 14 главе основы изложены вполне доступно.<br />
Изучив эту книгу вы научитесь работать с Linux из командной строки, поймете внутреннюю архитектуру, красоту и стройность системы. Книга снабжена массой практических примеров.<br />
<a href="http://www.altlinux.org/Books:Linuxintro2">Дополнительное описание и ссылка на текст</a></p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=2295</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Летняя школа Linux началась!</title>
		<link>http://freeschool.altlinux.ru/?p=2011</link>
		<comments>http://freeschool.altlinux.ru/?p=2011#comments</comments>
		<pubDate>Wed, 22 Jul 2009 16:43:55 +0000</pubDate>
		<dc:creator><![CDATA[Владимир Черный]]></dc:creator>
				<category><![CDATA[ALT Linux]]></category>
		<category><![CDATA[Люди]]></category>
		<category><![CDATA[Школа Linux]]></category>
		<category><![CDATA[Курячий]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=2011</guid>
		<description><![CDATA[Двадцать второго июля в г. Обнинск Калужской области на базе Центрального института повышения квалификации началась школа Linux для администраторов. На нее собрались 15 человек из разных городов: Челябинска, Набережных челнов, г. Шахты (Ростовская обл.), Калуги, Костромы, Реутова (Московской обл.) и Москвы. Основная цель собравшихся &#8212; систематизировать знания по ОС Линукс, узнать особенности серверных и десктопных [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Двадцать второго июля в г. Обнинск Калужской области на базе Центрального института повышения квалификации началась <a href="http://www.altlinux.ru/news/item/515/">школа Linux для администраторов</a>. На нее собрались 15 человек из разных городов: Челябинска, Набережных челнов, г. Шахты (Ростовская обл.), Калуги, Костромы, Реутова (Московской обл.) и Москвы. Основная цель собравшихся &#8212; систематизировать знания по ОС Линукс, узнать особенности серверных и десктопных дистрибутивов ALT Linux. Некоторых кроме того интересует получение сертификата &#171;ALT Linux Certified Specialist&#187; для участия в <a href="http://www.altlinux.ru/partners/">партнерской программе</a><br />
<span id="more-2011"></span><br />
Школу проводит <a href="http://heap.altlinux.org/engine/FrBrGeorge">Георгий Курячий</a>, &#171;специалист в области всего&#187;, как называет себя сам Георгий, автор учебников по <a href="http://linux.armd.ru/ru/documentation/metod/#1">Linux</a> и <a href="http://www.intuit.ru/department/os/osunix/">Unix</a>, мантейнер многих пакетов в <a href="http://sisyphus.ru">Сизифе</a>, администратор с огромным практическим опытом. Георгий подготовил <a href="http://linux.armd.ru/ru/documentation/courses/">курсы для учителей</a> в рамках школьного проекта.<br />
Мероприятие проходит в режиме интенсива &#8212; 8 учебных часов в день c двумя перерывами на чай и часовым обеденным перерывом. Для подготовки класса Георгий и Владимир приехали в Обнинск. На обном из компьютеров был поднят <a href="ftp://ftp.altlinux.ru/pub/beta/ark/TP/altlinux-5.0.0_beta-20090617-office-server-x86_64-ru-install-cd.iso">офис-сервер из прототипа 5-ой платформы</a>. Через веб-интерфейс управления на нем запущен DHCP, настроена раздача интернета, и выбрана опция сервера сетевой установки <a href="ftp://ftp.altlinux.ru/pub/beta/ark/TP/altlinux-5.0.0_beta-20090615-desktop-i586-ru-install-dvd5.iso">дистрибутива для остальных машин</a>. После этого самая большая проблема была заставить компьютеры грузиться по сети, особенно, если присутствует пароль на биос. После некоторых усилий все необходимые компьютеры заработали в нужном режиме.<br />
На второй день таким же образом на компьютеры студентов был разлит ALT Linux Desktop 4.1. Во всех этих мероприятиях нам активно помогал Антон Виноградов (aka arc из <a href="http://open-club.ru/">Костромского LUGа</a>).</p>
<table>
<tr>
<td>
<img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/07/obninsk_0-150x150.jpg" alt="obninsk_0" title="obninsk_0" width="150" height="150" class="alignleft size-thumbnail wp-image-2012" /></td>
<td><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/07/obninsk_1-150x150.jpg" alt="obninsk_1" title="obninsk_1" width="150" height="150" class="alignleft size-thumbnail wp-image-2013" /></td>
</tr>
<tr>
<td colspan="2">Рабочие моменты настройки</td>
</tr>
<tr>
<td><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/07/obninsk_2-150x150.jpg" alt="obninsk_2" title="obninsk_2" width="150" height="150" class="alignleft size-thumbnail wp-image-2014" /></td>
<td><img src="http://freeschool.altlinux.ru/wp-content/uploads/2009/07/obninsk_3-150x150.jpg" alt="obninsk_3" title="obninsk_3" width="150" height="150" class="alignleft size-thumbnail wp-image-2015" /></td>
</tr>
<tr>
<td>Антон Виноградов</td>
<td>Обед в кафе &#171;Фрегат&#187;</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=2011</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Приглашаем на семинар в Нижнем Новгороде</title>
		<link>http://freeschool.altlinux.ru/?p=1137</link>
		<comments>http://freeschool.altlinux.ru/?p=1137#comments</comments>
		<pubDate>Thu, 04 Dec 2008 17:11:24 +0000</pubDate>
		<dc:creator><![CDATA[ALT Linux]]></dc:creator>
				<category><![CDATA[Школа Linux]]></category>
		<category><![CDATA[Курячий]]></category>
		<category><![CDATA[Нижний Новгород]]></category>
		<category><![CDATA[семинар]]></category>
		<category><![CDATA[Элсис]]></category>

		<guid isPermaLink="false">http://freeschool.altlinux.ru/?p=1137</guid>
		<description><![CDATA[Наш партнёр в Нижнем Новгороде, компания &#171;Элсис&#171;, организует открытый семинар по ПСПО и с удовольствием приглашает на него всех желающих. Семинар состоится 8 декабря 2008 г. в 9-00 по адресу: г. Нижний Новгород, ул. Студенческая, д.6, (Нижегородский Технический Колледж), актовый зал. В программе семинара: Обзор программ, входящих в ПСПО Совместимость с оборудованием Использование программ Windows [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Наш партнёр в Нижнем Новгороде, компания &#171;<strong>Элсис</strong>&#171;, организует открытый семинар по ПСПО и с удовольствием приглашает на него всех желающих.</p>
<p>Семинар состоится <strong>8 декабря</strong> 2008 г. в 9-00 по адресу: г. Нижний Новгород, ул. Студенческая, д.6, (Нижегородский Технический Колледж), актовый зал.</p>
<p>В программе семинара:</p>
<ul>
<li> Обзор программ, входящих в ПСПО</li>
<li> Совместимость с оборудованием</li>
<li> Использование программ Windows</li>
<li> Методическое сопровождение</li>
<li> Как получить поддержку</li>
<li> Как принять участие в проекте ПСПО</li>
<li> История создания ПСПО</li>
</ul>
<p>Семинар будет проводить <strong>Георгий Курячий</strong>, руководитель образовательных программ ALT Linux.</p>
<p><a href="http://el-sys.org/events/ALTLinuxSeminar">Записаться на семинар.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://freeschool.altlinux.ru/?feed=rss2&#038;p=1137</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
