4-е «кеды» — и снова индикатор клавиатуры в Mandriva

Первая моя заметка по поводу переключения раскладок клавиатуры и способа их индкации в Mandriva-Linux была написана мной около года назад (а сама проблема решалась примерно еще на год раньше)…

Позже я «раскрыл глаза» и заметил другую возможность индикации выбранной раскладки клавиатуры. Данный вариант (программа KKBSwitch) был интересен тем, что значительно меньше нагружал процессор. Что и не удивительно — он просто показывал флажок с буковками, а не проверял в отличие от X Neural Switcher — а то ли Вы пишите?.. Хотя, тут уж как кому нравится…

Снова вернуться к вопросу о переключении клавиатуры меня вынудила установка новой версии дистрибутива Mandriva – 2009.1. Точнее, не к вопросу переключения раскладок. Его решение осталось тем же самым, что было описано мной в самой первой заметке. А именно — редактирование файла /etc/X11/xorg.conf. Но за эти годы случилось в этом вопросе одно большое отличие — файл этот в новых версиях Mandriva управляет только связкой «монитор — видеоадаптер». А вот настройки клавиатуры (раскладки, кнопки переключения и т.п.) вынесли в другой файл — /etc/sysconfig/keyboard. И указанные в той («самой первой») заметке корректировки нужно вносить теперь в этот (новый) файл. И вдобавок к смене места расположения настройки раскладок, снова встал вопрос про индикатор, чтоб ему икнулось!… А причина в том, что по умолчанию в Mandriva 2009.1 использован KDE новой (4-й) версии. Ну и что, скажете Вы. И я сказал точно так же и побрел в «Центр Управления Mandriva» устанавливать программу KKBSwitch. «Без проблем!» — ответил Центр управления — «Есть такая программа». Я в очередной раз порадовался, поставил «птичку» и щелкнул «Применить». И тут меня ожидал такой сюрприз! «Для соблюдения зависимостей» мне предлагалось поставить ни много ни мало — добрую половину KDE 3.5!!! Вот и я подумал то же самое — не надо нам счастья такого! А флажка хотелось — ну просто жуть! Пошел искать…

И нашел-таки! Заодно в очередной раз убедившись в том, что совет «Разуй глаза!» — это очень полезный совет…

Итак приступим. Нам нужно запустить «Настройку рабочего стола». Для этого мы можем воспользоваться главным меню. В предыдущих версиях Mandriva (с 2007.1 по 2009.0) кнопка главного меню так и называлась — «Пуск». В версии 2009.1 вместо кнопки «Пуск» присутствует кнопка со «звездой» (логотип KDE). Так же, по умолчанию использовано меню в стиле Kickoff, которое лично мне не понравилось. По этому, я его сменил на «традиционное». Если Вам оно тоже не нравится, то его очень просто можно изменить. Для этого щелкаем правой кнопкой мыши на «звезде» и в появившемся меню выбираем пункт «Переключиться к классическому стилю меню» (см. рис. 1 ниже).

swich_menu_mode
Рис. 1 - Смена режима отображения главного меню

Все, в видом меню разобрались. Теперь жмем на «звезду» уже «обычной» левой кнопкой и выбираем «Утилиты» -> «Системные» -> «Настройка рабочего стола». Именно так, как это показано на рис. 2 ниже:

start_desktop_settings
Рис. 2 - Запуск программы "Настройка рабочего стола"

Кстати, был и более простой способ запустить ту же программу. Ярлык для запуска «Настройки рабочего стола» присутствует в трее возле кнопки пуск в поле Быстрого запуска (см. рис.3).

quick_start_desktop_settings
Рис. 3 - Ярлык для быстрого запуска "Настройки рабочего стола"

Не важно, каким способом мы запустим «Настройку рабочего тола». Так или иначе, но увидим мы следующее:

choose_locale_sуtup
Рис.4 - Интерфейс "Настройки рабочего стола"

В данном меню нас интересует пункт «Язык и стандарты». На рис. 4 этот пункт мной уже выделен. Дважды щелкаем на нем. И попадаем в соответствующее меню (которое так и называется «Язык и стандарты).

В данном меню необходимо в левой половине щелкнуть на закладке «Раскладка клавиатуры». Откроется окно настройки, показанное на рис. 5 ниже:

setup_for_indicator_only
Рис. 5 - Окно настройки раскладки клавиатуры

На всякий случай напоминаю, что нас интересует только индикатор, т. к. само переключение раскладок уже настроено в файле /etc/X11/xorg.conf. Поэтому, все что нам требуется — это поставить «птичку» в поле «Indicator only» (на него указывает верхняя стрелка на рис. 5), и нажать кнопку «Применить» внизу страва. После этих действий мы имеем счастье наблюдать в трее возле часов индикатор раскладки клавиатуры.

Вот и все…

FTP — для всех и «для себя любимого»…

Как утверждают, FTP — один из самых старых протоколов передачи данных, использующихся в наших компьютерных сетях. Подробнее о нем можно прочесть, например, вот по этой ссылке. Один из современных серверов FTP — ProFTP — позволяет довольно гибко его сконфигуировать под собственные нужды. Именно его (когда-то давно) я и решил себе установить. Как я тогда это делал, тут и описано.

Установка

Ах, Mandriva Linux — тысячи пакетов в репозиториях! Чтобы там не нашлось такого популярного сервера как ProFTP — да не может этого быть! Запускаем «Центр управления Mandriva», в нем «Установку и удаление программ» и в поле поиска вводим «proftpd». Ответ не был для меня неожиданностью — есть такой пакет proftpd. Ставим «птицу», жмем «Применить». Несколько минут терпения, и всё — сервер установлен и запущен.

Есть и другой вариант — установка в консоли, единственное условие — обязательно запущенной от имени «root-а». Достаточно всего лишь ввести команду:

urpmi proftpd

Итог будет тот же самый — сервер ProFTP будет установлен и запущен.

Настройка

Начать нам придется с настройки не самого ProFTP, а с файервола. Если на компьютере, на котором Вы установили и запустили ProFTP, он (файервол) включен, то в нем потребуется открыть порт, используемый для FTP. Обычно это 21-й порт. При желании, Вы сможете настроить ProFTP-сервер на использование порта с другим номером (об этом ниже). В таком случае, в файерволе нужно будет открыть тот порт, который Вы использовали для FTP. О том, каким образом в Mandriva Linux можно открыть порты в файерволе, я уже писал тут.

Теперь о настройке собственно ProFTP. Сразу же после установки сервер ProFTP сконфигурирован в некоем «умолчательном» варианте и уже запущен. Если Вы установили только сам ProFTP (с неким набором модулей, идущим в «комплекте по умолчанию»), и не устанавливали никаких дополнительных пакетов с модулями для ProFTP, то вся настройка сервера осуществляется в единственном файле — /etc/proftpd.conf. По этому, именно его мы и открываем в (любом) текстовом редакторе.

Находим в указанном файле первый интересующий нас параметр — имя сервера. Он задан вот такой строкой:

ServerName	"ProFTPD Default Installation"

Как по мне — не самый важный параметр. Но тем не менее — Вы можете для своего сервера ввести то имя, которое Вам нравится. Находим следующий параметр, который можно изменить «на свой вкус и цвет». Это упоминавшийся ранее номер порта:

Port	21

Менять его или нет — решать Вам. Если Вы планируете создать у себя публичный FTP-сервер, то однозначно не стоит. Потому как, по умолчанию, когда кто-то в своем браузере набирает «ftp://some.ftp.server.com», то запрос пойдет именно на 21-й порт указанного сервера. С другой стороны, Вы можете использовать ProFTP только для «личных нужд». В этом случае, можно уйти со стандартных номеров портов, которые в первую очередь сканируются злоумышленникам и при попытке взлома…

Еще пара «глобальных» параметров сервера:

User		nobody
Group		nogroup

Они задают пользователя и группу, от имени которых запущен сервер. Этот «бесправный» (в прямом смысле слова) пользователь «автоматом» создается для нужд ProFTP. В данном случае, на мой взгляд, ничего менять не нужно.

Следующий параметр, который я изменил в файле конфигурации:

UseReverseDNS 	off

Причину этого действия я уже описал у себя в блоге ранее. Дело в том, что если значение параметра установлено в «on«, ProFTP для нужд ведения своего лога (журнала работы) выполняет DNS-запрос имени компьютера, пытающегося к нему подключиться. В случае неудачи (а такое случается, например, в описанном мной случае — из-за кривизны настройки у провайдера «домашней сети») удаленный компьютер подключиться не сможет. С другой стороны, если данный параметр выключен («off«), то в лог пишется просто IP-адрес удаленного компьютера. На мой взгляд, этого вполне достаточно.

Таким образом, подводя итог всего сказанного выше, получается, что их всех настроек, изначально присутствовавших в файле /etc/proftpd.conf (по умолчанию), я изменил всего лишь одну — отключил запрос имен компьютеров, подключающихся к моему FTP-серверу. На этом, с «глобальными» настройками я покончил.

Есть еще одна вещь, которую нужно сделать. Необходимо в текстовом редакторе (от имени «root-а») открыть файл /etc/shells и добавить в него такую строку:

/bin/false

Этим мы добавляем «пустую» командную оболочку. Она потребуется нам при создании пользователей, которым мы предоставим возможность записи файлов на наш FTP-сервер. В итоге, этим «избранным» пользователям в нашем сервере будут доступны только команды протокола FTP, и ничего более. Безопасность, однако…

И вот теперь мы будем настраивать ресурсы, к которым предполагается предоставлять доступ. Начнем с тех, которые…

Для всех

Итак, публичный FTP-сервер. На нем хранятся файлы, к которым предоставляется доступ (но только на считывание!!!) абсолютно для всех желающих. Для этого в конце файла /etc/proftpd.conf добавляем следующее:

<Anonymous /var/ftp/pub>
	User		ftp
	Group		ftp
	UserAlias	anonymous ftp
	RequireValidShell	no
	MaxClients	5
	ShowSymlinks	on
	HideUser 	root
	HideGroup 	root
	RootLogin 	off
<Limit CWD DIRS READ LIST>
	AllowAll
</Limit>
<Limit WRITE>
	DenyAll</Limit>
</Anonymous>

А теперь рассмотрим, что же мы тут такого «понаписали»:

  • Строка «<Anonymous /var/ftp/pub>» обозначает (локальную) папку Вашего компьютера, доступ к ресурсам которой (файлам и вложеным подпапкам) будет предоставлять ProFTP. Пусть Вас не смущает слово «Anonymous» — в данном случае оно не имеет никакого отношения к анонимному доступу, а всего лишь обозначает начало (а со слешем (/) — и конец) секции параметров про указанный ресурс (папку). Итак, указанная строка обозначает, что в данном случае мы предоставим пользователям доступ к содержимому (локальной) папки «/var/ftp/pub«.
  • В следующих двух строках («User ftp» и «Group ftp«) мы принудительно задаем имена пользователя и группы, которые будут автоматически «подставляться» системой во время, когда внешние клиенты будут подключаться к нашему FTP-серверу.
  • Строка «UserAlias anonymous ftp» буквально означает следующее — «Пользователь «anonymous» и пользователь «ftp» — это один и тот же пользователь». Зачем она нам? Большинство браузеров при анонимном подключении к FTP-серверам использует в качестве логина (имени пользователя) именно «anonymous» (а в качестве пароля подставляют адрес электронной почты). А парой строк ранее мы настроили доступ пользователю «ftp». Установив даной строкой своеобразный знак равентства между двумя этими пользователями, мы тем самым предоставляем доступ и пользователю «anonymous».
  • Строка «RequireValidShell no» указывает, что к серверу могут подключаться пользователи, не имеющие назначенной им в данной системе оболочки (командного интерпретатора). То есть, обычному локальному пользователю при входе в систему предоставляется командная оболочка (интерпретатор команд). Как следствие — пользователь имеет возможность выполнять в системе какие-то определенные команды. С другой стороны, пользователю «ftp» командная оболочка не предоставляется, и сделано это именно для того, чтобы он не смог выполнять никаких системных команд (в его распоряжении остается только лишь набор команд FTP-протокола).
  • Парамерт «MaxClients 5» указывает максимальное число клиентов, которые могут быть одновременно подключены к серверу.
  • Параметр «ShowSymlinks on» определяет — показывать ли пользователям симлинки, или нет. Если «да«, то в случае наличия внутри ресурса т.н. «жестких ссылок» (симлинков) на файлы или папки, находящиеся за пределами каталога, выделенного для анонимного доступа, анонимные ftp-пользователи смогут получить доступ к содержимому этих «внешних» ресурсов.
  • Следующие три строчки — «HideUser root«, «HideGroup root» и «RootLogin off» — предназначены чтобы анонимный FTP-пользователь ни в коем cлучае не смог получить привелегии администратора (root).
  • Далее идет вот такая секция (повторюсь):
<Limit CWD DIRS READ LIST>
	AllowAll
</Limit>;

В ней сказано, что команды CWD, DIRS, READ и LIST разрешены всем (AllowAll). Данный набор позволяет пользователю перемещаться по папкам (в пределах ресурса), считывать содержимое файлов и каталогов. Одним словом — анонимный пользователь получает возможность считывать информацию с Вашего FTP-сервера.

  • Затем следует секция:
<Limit WRITE>
	DenyAll
</Limit>

В которой указано, что команда записи (WRITE) запрещена для всех (DenyAll). Таким образом, внешние пользователи не смогут загрузить (записать) файл(ы) на Ваш FTP-сервер.

  • Последняя строка «</Anonymous>» (как уже было сказано выше) просто завершает секцию параметров про указанный ресурс (папку).

Сохраняем изменения файла /etc/proftpd.conf и перезапускаем сервер ProFTP командой:

/etc/init.d/proftpd restart

Осталось проделать пару манипуляций с папкой /var/ftp/pub, а именно — назначить ее`владельцем пользователя «ftp» из группы «ftp», а также назначить ей необходимые права доступа. Для этого вводим в консоли две следующие команды:

chown -R ftp:ftp /var/ftp/pub
chmod -R 755 /var/ftp/pub

После этого анонимные пользователи смогут считывать файлы, расположенные в папке /var/ftp/pub и ее подпапках, набрав в браузере адрес Вашего сервера в виде «ftp://adres.vashego.ftp.servera».

Для «избранных»

А как же запись? Имеется ввиду случай «особо приближенных» друзей-товарищей, которым Вы хотите предоставить возможность загружать «что-то» на Ваш сервер. При этом — только по протоколу FTP, и только в некую специально выделенную папку. Примем как исходное условие, что e данного пользователя имя (в системе) будет «uploader«, а доступ с возможностью записи мы ему предоставим в папку «/var/ftp/uploader«. С этой целью добавим в конец файла /etc/proftpd.conf следующие строки:

<Anonymous /var/ftp/uploader/>
	User 	uploader
	Group 	ftp
	AnonRequirePassword 	on
<Limit LOGIN>
	AllowAll
</Limit>
	HideUser 	root
	HideGroup 	root
	RootLogin 	off
</Anonymous>

Как видим, в этот раз ресурсом для доступа будет папка /var/ftp/uploader. К данной папке разрешен доступ только пользователю «uploader» из группы»ftp». Для доступа к ресурсу требуется ввод пароля («AnonRequirePassword on«). Все функции (команды) доступны только после успешного входа пользователя в систему (Limit LOGIN). Предположительно, у Вас еще нет в системе данного пользователя. Поэтому, создадим его, для чего в консоли от имени администратора (root) выполним следующую команду:

useradd -d /var/ftp/uploader -g ftp -p test -s /bin/false uploader

Данной командой мы:

  • создаем пользователя (командой useradd);
  • с именем «uploader» (самый последний параметр в команде — uploader);
  • принадлежащего к группе «ftp» (-g ftp);
  • с домашней папкой «/var/ftp/uploader» (-d /var/ftp/uploader);
  • с паролем «test» (-p test);
  • и «пустой командной оболочкой «/bin/false» (-s /bin/false)

Создать пользователя конечно можно и иначе, в какой-нибудь графической утилите. Но, на мой взгляд, эта одна единственная команда делает всё и сразу — создает пользователя, задает ему пароль, назначает ему «пустую» командную оболочку, создает папку данного пользователя, назначает этого пользователя её владельцем и прописывает папке все необходимые права.

Все. После перезапуска сервера ProFTP можете давать логин и пароль своим друзьям. Чтобы войти в сервер, пользователю понадобится FTP-клиент, позволяющий ввести имя пользователя и пароль, например, FileZilla. Также, подключиться к FTP-серверу с указанием имени и пароля позволяют, например, FAR или Midnight Comander..

Для «себя любимого»

Ну и напоследок о «себе любимом». Точнее, обо всех пользователях, зарегистрированных в системе. Все они имели возможность подключаться к ProFTP сразу же после его установки и запуска. При этом им необходимо использовать FTP-клиент, позволяющий ввести имя пользователя и пароль, (например, FileZilla), Имя и пароль необходимо указывать те, под которыми пользователь входит в систему. К чему получит доступ такой клиент, залогинившись по FTP? Это определяется одной единственной строкой файла конфигурации. Снова заглянем в файл /etc/proftpd.conf и найдем там следующую строку:

#DefaultRoot ~

По умолчанию эта строка закоментирована. Если же ее раскоментировать, то в своих перемещениях по файловой системе сервера пользователи будут ограничены пределами своей домашней папки. Но, если эту строку не трогать и оставить закоментированой, то пользователи получат доступ ко всей файловой системе сервера, начиная от корневого каталога (естественно, в четком соответствии с установленными в системе правами доступа). Таким образом, «для себя любимого» с самого начала ничего настраивать не надо было…

Chillispot — ещё тот «перец»!..

К одной из моих заметок прислали комментарий — «Да это же очевидно!«. Абсолютно согласен! В блоге своем я пишу что-либо только после того, как уже разобрался с этим, и для меня то, что я написал тут тоже стало уже «очевидным». Но, до этого — зачастую приходится основательно перелопатить интернет, форумы, блоги и т.п. Вот возьмем, к примеру, тот же Chillispot 🙂 …

Начнем с простейшего — во многих интернет-источниках адрес сайта Chillispot указан как http://www.chillispot.org/. Но на сегодняшний день (и как пишут, это длится еще с середины 2007 года) сайт этот не существует, а информация, загрузки, FAQ, форум и пр. теперь находятся по новому адресу — http://www.chillispot.info/. Но к этому мы вернемся позже, а пока…

Вступление

Собственно, что это такое и зачем оно надо. Chillispot — это контроллер доступа. Его задача в максимально общей формулировке — пускать пользователей из одного сегмента сети в другой. То есть, если уже «приземленно», то с одной стороны (во внутренней подсети) находятся клиенты, а с другой стороны — бескрайние просторы интернета. И Chillispot с одной стороны на основании информации от сервера авторизации либо пускает этих клиентов в сеть либо нет. А с другой стороны, Chillispot осуществляет взаимодействие с сервером учета Radius, благодаря чему поставщик услуг (провайдер) знает сколько клиент провел времени в интернете, а также какой объем информации клиент принял и отдал в интернет. И, если совсем уж без намеков — Chillispot чаще всего используется тогда, когда кто-то хочет создать хотспот, работающий под управлением ОС Linux, и управляемый каким-нибудь биллингом, взаимодействующим с Chillispot посредством Radius-а.

При этом непосредственно Chillispot выполняет три задачи:

  1. Формирует LAN-подсеть для клиентов хотспота. Для этого он сам выступает в роли DHCP-сервера, раздавая клиентским компьютерам IP-адреса.
  2. Взаимодействуя с сервером RADIUS работает контроллером доступа, не пропуская в интернет неавторизованных клиентов, и предоставляя доступ с указанными (RADIUS-ом) параметрами — авторизованным.
  3. Предоставляет клиентам страницу авторизации (специальную веб-страницу) на которой они могут ввести логин и пароль, чтобы попасть в интернет.

Существует целый класс аппаратных устройств, у которых есть и своё собственное название — NAS (Network Access Server — сервер доступа в сеть). Chillispot можно считать «программным» NAS. Кстати, аббревиатуру запоминайте — она нам еще встретится при настройке…

1. Подготовка

Что нам нужно.

  • Две сетевые платы — одна из «смотрит» в интернет, вторая — во внутреннюю подсеть. Примем как исходное условие, что плата, «смотрящая» в интернет (WAN), в нашем Linux имеет обозначение eth0, а та, которая обращена во внутреннюю подсеть (LAN) — eth1. Номера эти тоже запомним — это также потребуется в процессе настройке.
  • Для сетевой платы, посредством которой компьютер подключен в интернет (WAN/eth0) ДОЛЖНО БЫТЬ НАСТРОЕНО ВСЁ! То есть, настройки его адреса, шлюза, маски подсети и пр. либо же работающий DHCP-клиент, одним словом, этот компьютер должен «нормально ходить в интернет». Для сетевой платы, к которой подключаются пользователи (LAN/eth1), в Linux НИЧЕГО НАСТРАИВАТЬ НЕ НУЖНО. Linux должен ее только лишь определить и «подставить» соответствующий драйвер. Chillispot сам «поднимет» на указанном интерфейсе все необходимое для подключения пользователей — DHCP-сервер и т.д и т.п.
  • В системе должен присутствовать модуль TUN-драйвера. Как утверждают, модуль этот присутствует в ядре Linux уже достаточно давно (не помню, начиная с какой версии), но по умолчанию он не загружается автоматически при старте системы.  По-этому, его предлагают включать в список модулей автоматически загружаемых при запуске системы (файл /etc/modules). Но, просмотрев скрипт запуска Chillispot, я увидел, что при его выполнении обязятельно запускается и модуль TUN-драйвера. По этому никаких дополнительных действий предпринимать я не стал. Как проверить, есть ли драйвер в системе? В консоли от имени root-а запускаем комманду (выделена синим)  и видим ответ (выделен оранжевым цветом):
[root@my-svr etc]# modprobe -l -a tun 

/lib/modules/2.6.24.7-desktop-2mnb/kernel/drivers/net/tun.ko.gz
  • Настроенный RADIUS-сервер. Именно он хранит записи о клиентах, имеющих доступ в интернет, а также результаты подсчета их времени и трафика. Собственно, у меня к этому времени уже был установлен и настроен FreeRADIUS.
  • Работающий веб-сервер с поддержкой SSL. Тут с меня советчик плохой — лично я себе по-быстренькому поставил apache-ssl, а чтобы он не мешал основному apache, запретил ему в конфиге «слушать» порт 80. На что стоит обратить внимание при таком, по сути, «варварском» подходе — файл конфигурации «секурного» сервера (это отдельный сервер, а не mod_ssl к обычному apache)  свой собственный и находятся в отдельной папке — /etc/httpsd/conf/httpsd.conf. Также отдельно расположена и папка html-документов этого сервера (/var/lib/httpsd/html), и папка cgi-скриптов (/var/lib/httpsd/cgi-bin). Думаю, правильнее будет все-таки воспользоваться одной из многочисленных инструкций, имеющихся в интернете, и настроить «обычный» apache с использованием mod_ssl. Но, при любом из подходов нужно будет, во-первых, запомнить папку в которой должны размещаться cgi-скрипты (потребуется при настройке), а во-вторых, «обзавестись» ssl-сертификатами для Вашего сервера. «По умолчанию», при установке apache с mod_ssl папка, куда нужно будет положить cgi-скрипт «безопасной» авторизации  это /var/www/cgi-bin (для случая моей установки на Mandriva), а ssl-сертификаты генерируются «автоматом» на этапе установки указанных пакетов. Лично я сертификаты для себя сгенерировал самостоятельно, воспользовавшись следующей командой, найденой мной где-то на просторах интернета (будьте внимательны, это одна строка):

openssl req -new -newkey rsa:4096 -nodes -keyout /etc/ssl/ca/ca.key -x509 -days 3650 -subj /C=UA/ST=Ukraine/L=Zaporozhye/O=EI/OU=IT/CN=my.server.adres/emailAddress=my@adres.com -out /etc/ssl/ca/ca.crt

Естественно, персональные данные (выделенные красным) в команду Вы подставляете свои собственные. Особое внимание нужно обратить на имя сервера, которое Вы впишите в команду — оно должно быть в точности таким же, как ответ Вашего компьютера на команду «hostname -f«. Также обратите внимание на ту часть команды — «/etc/ssl/ca/«,  которая обозначает путь, куда будут записаны сформированные сертификат и ключ (в команде присутствует дважды!!!).  Дополнительно почитать про сертификаты можно еще по следующим адресам:

  1. http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#ownca
  2. http://www.opennet.ru/base/dev/apache_mod_ssl.txt.html
  3. http://forum.oszone.net/thread-68700.html

После генерации сертификатов прописываете их использование в файл конфигурации сервера apache-ssl (ну или apache с mod_ssl). Это конечно не избавит в дальнейшем от сообщений браузеров об неизвестном центре сертификации, т.к. сертификаты «самоподписанные», но те, кого это не устраивает, могут приобрести настоящие сертификаты. Существует еще одна возможность, на тот случай, если у Вас есть возможность разместить свой скрипт на безопасном сервере, доступном с того компьютера, на котором планируется разместить Chillispot, Об этом — ниже…

2. Установка

Чем (для меня) хорош дистрибутив Mandriva? Обилием программ в «родных» репозиториях! Запустите «Центр управления», выберите «Установку и удаление программ», введите в поле поиска желаемое, и с определенной долей уверенности можно утверждать, что «оно там найдется»… Так же было и с Chillispot — он оказался в списке доступных пакетов, я всего-лишь поставил «птичку» и нажал кнопку «Применить»…

(Ничто не вечно под луной… Пока я собирался описать установку Chillispot, вышел новый дистрибутив Mandriva — версии 2009.1, в пакетах которого Chillispot, увы, уже  не оказалось. Но, на проверку, преспокойно устанавливается и работает пакет от дистрибутива версии 2009.0).

На всякий случай, я сохранил пакет у себя на FTP в соответствующей папке.

3.  Конфигурирование

Вся конфигурация Chillispot описывается одним единственным файлом — /etc/chilli.conf. Каждый параметр в нем прокомментрирован, единственное «неудобство» — «как всегда», на английском. Кроме того, можно в консоли запустить команду

"chilli --help"

, которая выведет подсказку с параметрами. Следует учесть (и это сказано в man к chilli, но как-то не явно), что все те параметры, которые выводит подсказка , могут быть прописаны в файл конфигурации /etc/chilli.conf, единственное — писать их нужно без двойного дефиса («—«).  Перейдем непосредственно к файлу конфигурации. Во-первых, обратите внимание на несколько фраз из комментариев к параметрам.

  • Фраза «For most instalation you need to modify this tag» обозначает, что данный параметр скорее всего Вам придется изменить с учетом потребностей и параметров Вашей инсталяции.
  • Фраза «Normally you do not need to uncomment this tag» обозначает, что если Вы не хотите «наконфигурировать» что-то совсем нетрадиционное и экстравагантное, не надо раскомментировать строку с данным параметром. Это не означает, что параметр не будет установлен. Будет использовано его значение «по-умолчанию», которое обычно устраивает почти все 100% пользователей.
  • Фраза «Do not uncomment this tag unless you are an experienced user» рекомендует не раскомментировать данный параметр, если Вы не являетесь опытным пользователем. (Практически, как старые таблички «Не влезай, убъет!»).

Теперь о самих параметрах. Все их я описывать не буду, опишу лишь те, которые необходимо было изменить. (Параметры выделены жирным, их значения — красным).

radiusserver1 127.0.0.1 — адрес (1-го) сервера RADIUS, у которого Chillispot запрашивает данные при авторизации клиентов.  То есть, чтобы Chillispot пропустил в интернет пользователя с «такими-то» логином и паролем, этот пользователь именно с этими логином и паролем должен быть записан в базе пользователей данного RADIUS-сервера. В моем случае указан адрес 127.0.0.1, так как мой RADIUS-сервер расположен (установлен) на том же самом компьютере, что и Chillispot. В качестве параметра можно указывать как ip-адрес, так и имя (например server.radius.net) сервера.

radiusserver2 127.0.0.1 — адрес (2-го) сервера RADIUS. Как пишут в комментарии к данному параметру, если Вы используете только один RADIUS-сервер, то в данном параметре укажите то же самое значение, что и для radiusserver1. Нигде явно  это не сказано, но рискну предположить, что данный параметр указывает на RADIUS-сервер аккаунтинга (того, который считает потребленные пользователем время и трафик). И в случае такой вот (раздельной) инсталяции, когда один RADIUS-сервер используется для авторизации, а второй для подсчета, данный параметр должен указывать на сервер учета. Но у меня нет возможности проверить правильность данного предположения… В моем случае указан адрес 127.0.0.1, так как у меня используется один RADIUS-сервер. В качестве параметра можно указывать как ip-адрес, так и имя (например server.radius.net) сервера.

radiussecret testing123 — пароль, который Chillispot использует при обмене с RADIUS-сервером. Данный пароль позволяет Вам быть уверенным в том, что никто другой не влезет в Ваш RADIUS-сервер (естественно, если Вы изменили пароль на свой собственный, а не оставили тот, что указан тут и который является паролем по умолчанию используемым на всех инсталяциях «с  нуля»). Что следует учесть при смене пароля. Как и любой пароль, его «должны знать двое». То есть, если Вы меняете этот пароль на свой собственный тут (в настройках Chillispot), то его нужно сменить и в настройках RADIUS-сервера! У RADIUS-сервера настройка данного параметра (в простейшем случае) находится в файле «/etc/raddb/clients.conf«. Комментариями там все это «разбавлено прилично», но если их выкинуть, то выглядеть все это будет так:

client localhost {
	ipaddr = 127.0.0.1
	secret		= testing123
	require_message_authenticator = no
	nastype     = other	# localhost isn't usually a NAS...
}

Как видим, присутствующий в списке параметр «secret» имеет то же самое значение — «testing123». Таким образом, меняя пароль в настройках Chillispot, необходимо изменить его и в настройках RADIUS-сервера в файле /etc/raddb/clients.conf. Если же Ваш RADIUS-сервер хранит настройки клиентов в SQL-базе, то менять нужно там. Как это сделать — решаете самостоятельно.

Возвращаемся к настройкам Chillispot.

dhcpif eth1 — номер (идентификатор) сетевой платы,  к которой подключены пользователи («сторона LAN»). Ее номер мы указывали в самом начале в условиях, помните? Для данной платы в Linux НИЧЕГО НАСТРАИВАТЬ НЕ НУЖНО. Linux должен ее только лишь определить и «подставить» соответствующий драйвер. Chillispot сам «поднимет» на указанном интерфейсе все необходимое для подключения пользователей — DHCP-сервер и пр. Что еще важно учесть — между Chillispot и пользователями (в случае необходимости) должно устанавливаться только т.н. «dumb»-оборудование — простые коммутаторы (switch), хабы (hub)  или точки доступа (AP). Использовать функции  NAT, masquarade, route, firewall  между Chillispot (выходом eth1) и пользователями нельзя.

#net 192.168.182.0/24 — данный параметр, как видите, в моих настройках остался закоментированным. Но он имеет непосредственное отношение к только что описанному параметру dhcpif. Параметр этот задает маску подсети LAN. То есть, сам Chillispot как шлюз будет виден под адресом 192.168.182.1, а пользователям при их подключении будут предоставляться адреса в диапазоне от 192.168.182.2 до 192.168.182.254. Параметр этот рекомендуют как раз не менять без особой нужды. Но, если «вдруг что», то Вы можете изменить номер самой подсети (например, 192.168.1.0). При этом важно, чтобы номер внутренней подсети не совпадал с внешней (если, допустим, Ваш компьютер подключен к ADSL-маршрутизатору). С другой стороны, может случиться так, что 250-и возможных пользователей Вам окажется мало. На этот случай, в FAQ, размещенном на сайте Chillispot, предлагают сменить маску подсети (указать значение параметра как net 192.168.182.0/20, ну и, естественно, раскомментировать его).

uamserver https://192.168.182.1/cgi-bin/hotspotlogin.cgi — страница авторизации (UAM — Universal Authorisation Metod).  Данный параметр указывает на  расположение страницы, которая позволяет пользователям вводить логин и пароль для доступа в интернет. Причем, на расположение ее в (скажем так) «внешней» адресации (URl), а не в виде «/var/www/cgi-bin/hotspotlogin.cgi».  Именно ради возможности размещения и обслуживания этой страницы нам и был нужен «защищенный» веб-сервер.  Страница авторизации НЕ ОБЯЗАТЕЛЬНО должна находиться на том же самом сервере, где установлен Chillispot. Помните, с самом начале я говорил, что можно использовать «чужой» веб-сервер. В таком случае, его адрес (включая и месторасположение самой страницы авторизации) нужно будет указать ИМЕННО В ЭТОМ параметре.  При этом, кроме того, потребуется разрешить доступ к указанному адресу без авторизации (см. ниже). Как видите, при авторизации пользователь перенаправляется на страницу, обмен с которой происходит с использованием SSL-шифрования (адрес начинается как https://). Данная страница (а точнее скрипт, написанный на языке perl) поставляется в пакете с Chillispot и после его установки находится в папке /usr/share/doc/chillispot/.  Данный скрипт нужно скопировать в папку, в которой Ваш веб-сервер хранит И ОБРАБАТЫВАЕТ исполняемые CGI-скрипты. Для случая использования apache с mod_ssl это папка /var/www/cgi-bin. А в «моем» случае использования отдельного сервера apache-ssl — папка /var/lib/httpsd/cgi-bin.  После того, как файл скопирован, его нужно сделать исполняемым (команда chmod +x hotspotlogin.cgi) а также назначить владельцем этого файла того пользователя, от имени которого запущен веб-сервер (в моем случае — chown apassl:apassl hotspotlogin.cgi, в Вашем — посмотрите в файлах конфигурации apache).  После этого данный файл ПОЧТИ готов к использованию, но об этом ниже.

#uamhomepage http://192.168.182.1/welcome.html — страница приветствия. Как видите, в моем случае этот параметр не используется. Что это за страница такая? Краткое описание работы Chillispot (возможно с него стоило начать?!..):

Когда неавторизованный (еще) пользователь из внутренней сети (LAN) пытается получить доступ к интернету (WAN), Chillispot перехватывает его запрос и пользователь перенаправляется на страницу авторизации по адресу, как указано в параметре uamserver (см. выше).  В «выпрыгнувшем» окошке пользователю предлагается ввести логин и пароль. Полученные значения логина и пароля Chillispot отправляет на проверку серверу RADIUS. Если они верны (RADIUS-сервер отвечает утвердительно), то Chillispot предоставляет пользователю полный доступ в интернет. Пользователь перенаправляется на запрошенный им адрес.  Вот так вкратце работает Chillispot.

С другой стороны, есть возможность перенаправить такого пользователя сначала не на страницу ввода логина и пароля, а на т.н. «страницу приветствия». На этой ОБЫЧНОЙ веб-странице Вы можете разместить любую информацию, которую посчитаете нужной (рекламу, правила пользования, еще что-то)… Вот адрес именно такой «страницы приветствия» и нужно указать как значение параметра uamhomepage. Ну и, естественно, раскомментировать строку с этим параметром. Что еще нужно учесть при этом? Первое — если эта страница находится на другом сервере (а такое тоже допускается), доступ к ней должен быть разрешен без авторизации (см. ниже). Далее — на этой странице обязательно должна присутствовать ссылка, вызывающая то самое всплывающее окошко ввода логина и пароля. Адресс такой — http://192.168.182.1:3990/prelogin (правильнее — адрес вида http://chilli.login.server:3990/prelogin, где абстрактное chilli.login.server обозначает адрес сервера, на котором расположена страница авторизации (нужно подставить РЕАЛЬНОЕ значение)). И последнее — в случае использования страницы приветствия автоматической переадрессации пользователя после успешной авторизации по запрошенному им адресу НЕ ПРОИСХОДИТ. Таким образом, если параметр uamhomepage задан (адрес страницы указан, и строка раскомментирована), то пользователь при авторизации будет переходить на страницу приветствия. Если же нет, то сразу на страницу ввода логина и пароля.

uamsecret ht2eb8ej6s4et3rg1ulp — пароль, который Chillispot использует в своем обмене данными со страницей авторизаци (hotspotlogin.cgi). По умолчанию эта строка закоментирована. Пусть этот факт не вводит Вас в заблуждение — это не значит, что пароль не используется! Это значит, что используется его значение по умолчанию! Почему я так заостряю на этом Ваше внимание? Помните, я написал ранее, что файл hotspotlogin.cgi почти готов к использованию? Дело в том, что в нем использование этого самого пароля по умолчанию ОТКЛЮЧЕНО! Таким образом, чтобы получить РАБОТАЮЩУЮ страницу авторизации, ее (т.е. файл hotspotlogin.cgi) нужно открыть в любом нравящемся Вам текстовом редакторе, найти (практически в самом начале) строки:

#$uamsecret = "ht2eb8ej6s4et3rg1ulp";
#$userpassword=1;

и раскомментировать их! Первая из строк задает тот самый пароль (который нужно указать, желательно все-таки свой собственный а не «умолчательный», и, естественно, одинаковый, для обоих конфигурационных файлов — chill.conf и hotspotlogin.cgi). Вторая строка включает использование этого пароля скриптом hotspotlogin.cgi. Если Вы забудете это сделать, то окно авторизации будет все время выдавать ошибку…

#uamallowed www.chillispot.org,10.11.12.0/24 — адреса (страницы, имена, подсети), доступ к которым разрешен пользователю без авторизации. Если адресов много (как в примере), то они разделяются запятыми. Как видите, параметр по умолчанию закоментирован. В данном случае он не используется. Если же Вам необходимо предоставить пользователям доступ к каким-либо внешним страницам без/до/для (!!!) авторизации, то их нужно указать тут и раскомментировать строку. Это может потребоваться, например, в случаях использования внешних («чужих») страниц авторизации и/или приветствия,  описанных выше.

#dns1 172.16.0.5

и

#dns2 172.16.0.6 — адреса первого и второго серверов DNS. Эт о адреса серверов DNS, которые Chillispot по dhcp выдает клиентским компьютерам. По умолчанию эти строки закоментированы. Это не значит, что клиентские компьютеры не получат адресов DNS. Это значит, что не используются принудительное их указание в файле настроек  Chillispot-а. В таком случае (когда эти параметры закомментированы) адреса DNS-серверов используются из настроек сетевой платы WAN-интерфейса (eth0) самого компьютера с Linux на котором установлен и запущен Chillispot. При желании Вы можете использовать собственные значения — их нужно указать, а строки раскомментировать.

Последние два параметра я добавил в файл chill.conf сам. На этой странице для того, чтобы иметь возможность оключать пользователя согласно сецификации RADIUS, рекомендуется запускать Chillispot с параметрами –coaport 3799 и –coanoipcheck. Но, как сказано в man к chilli эти параметры можно указать и в файле конфигурации chill.conf. Что я и сделал:

coaport 3799
coanoipcheck

4. Еще чуть-чуть и запускаем…

До полной работоспособности Chillispot осталось сделать самую малость. Но важную «малость». Во первых, нужно включить опцию ip forvarding в настройках системы. Для этого в текстовом редакторе  открываем файл /etc/sysctl.conf и добавляем в него следующую строку:

net.ipv4.ip_forward = 1

Чтобы форвардинг заработал сразу (без перезагрузки всей системы), перезапускаем поддержку сети командой:

/etc/init.d/network restart

Во-вторых, с Chillispot поставляется скрипт правил файервола, который необходимо запускать при загрузке системы. Сразу после установки файл этот находится в папке /usr/share/doc/chillispot/ и называется firewall.iptables. Открываем его в редакторе и смотрим на значения, присвоенные двум переменным (в самом начале файла) — EXTIF=»eth0« и INTIF=»eth1«. В качестве значения переменной «EXTIF» (внешний интерфейс) должна быть указана сетевая плата, «смотрящая» в интернет. А в качестве «INTIF» (внутренний интерфейс) — плата, к которой подключаются пользователи (точка доступа). В самом начале данной заметки, в исходных условиях мы приняли, что к интернету у нас подключен интерфейс eth0, а к точке доступа — eth1. Таким образом, значения указанных параметров нас устраивают целиком и полностью. Если же подключение выполнено наоборот, то нужно соответствующим образом изменить и значения этих двух параметров, указанные в файле firewall.iptables. Разобравшись с настройками и сохранив изменения (если таковые были), выходим из текстового редактора и копируем файл правил в папку, где расположены все скрипты, выполняющиеся при запуске системы:

cp /usr/share/doc/chillispot/firewall.iptables /etc/init.d/firewall.iptables

Затем файл /etc/init.d/firewall.iptables делаем исполняемым:

chmod +x /etc/init.d/firewall.iptables

И после этого просто запускаем его:

/etc/init.d/firewall.iptables

Что еще по поводу файервола? В правилах, поставляемых с Chillispot не учтена необходимость открытия порта, используемого для того, чтобы иметь возможность оключать пользователя согласно сецификации RADIUS. На уже упоминавшейся странице можно посмотреть или даже прямо скопировать содержимое файла firewall.iptables с уже открытым для этой цели 3799-м портом. Это может оказаться актуальным, в том случае, если Ваша билинговая программа может отключать пользователей посредством команд RADIUS-сервера.

Дальше. Серверу RADIUS для «правильного восприятия» Chillispot нужно добавить поддежку некоторых атрибутов, специфичных для chilli. Сам файл атрибутов поставляется вместе с FreeRADIUS (в моем случае — версия 2.0). Файл атрибутов называется dictionary.chillispot и находится в папке /usr/share/freeradius/. Нужно лишь включить его поддержку в основном файле настроек «словарей». Для этого открываем в текстовом редакторе файл /etc/raddb/dictionary и добавляем в него следующую строку:

$INCLUDE /usr/share/freeradius/dictionary.chillispot 

(Кстати, может перед тем, как слепо следовать моим советам, стоит проверить, а есть ли там такой файл?)… Сохраняем мзменения, выходим из редактора, и чтобы RADIUS-сервер «подхватил» новые настройки, перезапускаем его:

/etc/init.d/radiusd restart 

5. И вот теперь запускаем!

Не знаю почему, но Mandriva при установке Chillispot не запускает его «в работу» сразу же после установки, как делает это со многими другими сервисами (например, с тем-же веб-сервером apache).  Более того, хотя скрипт запуска и присутствует в папке /etc/init.d/, по умолчанию он не запускается во время загрузки. То же самое и с нашим скриптом правил файервола. По этому, их нужно указать как сервисы (службы), стартующие «автоматом». Сделать это можно, например, в Mandriva Control Center (Центр управления Mandriva) — закладка «Система», пункт «Включение и отключение системных сервисов», поставить птичку в поле «При запуске». Лично я предпочел для этого воспользоваться своим любимым Webmin-ом…

Ну чтож, время пришло, запускаем Chillispot:

/etc/init.d/chillispot start 

Ну вот и все. Надеюсь, ничего не забыл …

Также, про настройку Chillispot можно прочитать по следующим ссылкам:

  1. https://help.ubuntu.com/community/WifiDocs/ChillispotHotspot/7.10
  2. http://www.opennet.ru/base/net/wireless_hotspot_howto.txt.html
  3. http://www.chillispot.info/chilliforum/viewtopic.php?id=18

ВНИМАНИЕ! Предлагается вариант приобретения биллинговой программы Easyhotspot (русифицированный и модернизированный вариант) и подробного руководства по установке хотспота. Подробности здесь.

Предлагаем WiFi-хотспот под ключ!

Логотип wifi С каждым днем растет число  мобильных устройств, оборудованных адаптерами беспроводной связи Wi-Fi. Однако радиус действия Wi-Fi адаптеров относительно невелик. Как следствие, владельцы подобных мобильных устройств, находясь вне дома или офиса, нуждаются в услугах особых зон интернет инфраструктуры, предлагающих клиентам доступ в Интернет по беспроводным каналам связи. Такие зоны, называемые WiFi-хот-спотами, стали как грибы после дождя появляться в общественных местах.

Вводя у себя новую услугу (WiFi-хот-спот), с одной стороны, Вы однозначно повышаете популярность Вашего заведения среди клиентов, И не только мобильных. Не исключено, что именно наличие хотспота в Вашем кафе или ресторане сделает его самым популярным в округе! С другой стороны, в работе системы используется полноценный вэб-сайт. На нём Вы сможете разместить все, что только душа пожелает — от рекламы собственного заведения до предлагаемого меню. В итоге посетитель сможет ознакомиться с Вашим меню (или иными предлагаемыми услугами), просто подключившись к Вашему WiFi-хот-споту. Ну и напоследок, а почему бы просто не зарабатывать деньги? Тем более, что, как утверждают опытные люди, при удачном месторасположении хотспот может давать вполне достойный доход.

Данный хотспот — это не отдельное устройство. Непосредственно зону покрытия обеспечивают либо одна, либо, в случае необходимости, несколько Wi-Fi точек доступа, подключенных к компьютеру. Все остальные функции хотспота возложены на програмное обеспечение, установленное на компьютере. Одна из программ генерирует ваучеры (талоны) с кодами, предоставляющими право доступа в интернет. Другая программа пропускает в интернет только тех, кто ввел правильный код. Третья — подсчитывает, сколько времени клиент провел в интернете, и по истечении лимита отключает его. Управление всем этим комплексом осуществляется через веб-сервер. Благодаря этому, управление возможно с любого компьютера как в локальной, так и в глобальной сети. При этом процедуры управления максимально упрощены, что позволяет продавать посетителям интернет так же просто, как, допустим, кофе эспрессо, при наличии соответствующего автомата.

Управление системой двухуровневое и определяется биллинговой программой Easyhotspot. Администратор задает номиналы ваучеров и назначает их цену. Кассир на основании номиналов генерирует ваучеры и продает их. После чего администратор просто «снимает кассу» (которую для него подсчитал компьютер). Более подробно работа в программе как в роли администратора, так и в роли кассира, описана в данном Руководстве.

Более того, как гласит народная пословица: «Лучше один раз увидеть, чем сто раз успышать!» Именно для этого на нашем сайте размещена демонстрационная копия программы управления хотспотом. Чтобы попробовать поработать в ней, просто щелкните по данной ссылке. Если Вы хотите поработать в программе в качестве администратора, Вам потребуется ввести логин admin и пароль admin123. Если же есть желание побыть в шкуре кассира, то логин нужно ввести vcool, а пароль при этом используется vcool123.

Осталось лишь сказать о цене. Так как речь идет о целом програмно-аппаратном комплексе, то конечная цена будет зависить от его комплектации. Минимальная цена составляет 1000 грн. и возможна в том случае, когда у заказчика все оборудование и коммуникации уже есть, а от исполнителя требуется только установить и настроить программное обеспечение. Если же требуемое оборудование у заказчика отсутствует, то возможна его поставка исполнителем по ценам, приведенным в этом документе. Кроме того, в случае поставки оборудования исполнителем, на цену работ по установке и настройке программ предоставляется дополнительная скидка в 20%. Стоимость возможно потребующейся при установке кабельной продукции, а также работ по ее прокладке и монтажу определяется персонально для каждой инсталяции.

Вас заинтересовало данное предложение? Возникли вопросы? Нужно больше информации? Напишите нам!

Если же вы хотите установить и настроить свой хотспот самостоятельно, возможно вас заинтересует биллинговая программа Easyhotspot (русифицированный и модернизированный вариант) и подробное руководство по установке хотспота. Подробности здесь.

Управление разделами HDD программой Gparted с диска Live-CD Ubuntu

Берем Live-CD Ubuntu. Как берем? Скачиваем. Где берем? На сайте Ubuntu. Пишем на болванку. Вставляем диск в привод компьютера и загружаемся с него.

У тех, кто хочет отредактировать разделы HDD у компьютера, на котором уже установлена Ubuntu (или другой дистрибутив Linux, использующий десктоп Gnome), может возникнуть вопрос — а почему именно Live-CD? Почему просто не загрузить Linux с жесткого диска, а потом запустить программу Gparted и поредактировать разделы? Ответ прост — Gparted не сможет работать со смонтированными разделами.  А раздел жесткого диска с которого компьютер только что загрузил Linux, размонтировать не получится (равно как и другие разделы, используемые Linux-ом в работе, если таковые имеются). Вот потому-то и нужно загрузиться с Live-CD — при этом все разделы жеского диска компьютера не смонтированы и доступны к редактированию.

Есть еще один «подводный камень», который может вас подстерегать при работе с разделами на жестком диске. Суть его в том, что если один из имеющихся на винчестере разделов — swap (подкачка), то Ubuntu, загружаясь даже с Live-CD его использует! В итоге, если допустим, swap находится на логическом диске в расширенном разделе, у вас не получится изменить что-либо в этом (расширенном) разделе до тех пор пока вы не прекратите использование подкачки Ubuntu-ой (swap-off)…

Вернемся к загрузке. У дистрибутивов версий 8.04 и выше первым делом автоматически появляется список, предлагающий Вам выбрать один из возможных языков интерфейса. Выбираем кнопками управления курсором («стрелками») и подтверждаем ENTER-ом. У более старых дистрибутивов этот список «автоматом» не выпрыгивает. Чтобы заполучить русский интерфейс в этом случае, нужно нажать кнопку «F2» и уже потом выбрать язык. В итоге мы видим вот такое меню:

ubuntu_boot_menu1
Рис. 1. Стартовое меню диска Live-CD Ubuntu

Выбираем пункт «Запустить Ubuntu без установки на компьютер«. Начнется загрузка Ubuntu. После того, как загрузка завершена, запускаем программу Gparted. Расположение ярлыка программы Gparted в стандартном меню Ubuntu показано на рисунке ниже:

Рис. 2 Запуск программы Gparted
Рис. 2. Запуск программы Gparted

При запуске программа Gparted автоматически определяет все дисковые накопители (жесткие диски), установленные в компьютере. Если винчестеров в системе несколько, то выбрать тот, с которым предполагается работать (менять/создавать/удалять разделы) позволяет кнопка в правой верхней части окна программы (см. рис. 3 ниже):

Рис. 3. Выбор жесткого диска
Рис. 3. Выбор жесткого диска

При выборе жесткого диска, думаю, полезной будет информация о правилах их нумерации в Linux-е. Диск, подключенный «мастером» на 1-м IDE контроллере, будет именоваться как /dev/hda. Второй IDE-винчестер (slave-устройство на 1-м контроллере) будет именоваться как /dev/hdb, третий (master-устройство на 2-м контроллере) — /dev/hdc, четвертый (slave-устройство на 2-м контроллере) — /dev/hdd. Первый винчестер, подключенный к SATA контроллеру будет иметь имя /dev/sda, второй — /dev/sdb, третий — /dev/sdc, и т.д. Также, cледует учесть, что флешки и карточки памяти также попадают в один ряд к устройствам SATA (то есть, тоже будут видны как /dev/sdx). Также, хорошей подсказкой при выборе жесткого диска будет информация о его физическом размере, отображаемая на кнопке рядом с номером устройства.

После того, как диск выбран, его структура будет отображена двояко: графически — в горизонтальном поле сразу под кнопкой выбора диска, а также, в виде списка сразу под графическим отображением.

gparted_select_partition
Рис. 4. Выбор раздела жесткого диска

Изменение размера раздела

Выбираем раздел, который хотим изменить, и щелкаем на нем правой кнопкой мыши. Тот же самый результат достигается, если правой кнопкой мыши щелкать не на графическом поле, а на строке в списке, соответствующей выбранному разделу. Появляется контекстное меню со списком предлагаемых действий. Еще одно — если до запуска программы gparted Вы пользовались разделом диска, структуру которого теперь хотите изменить (например, копировали файлы и т.п.), то он будет смонтирован в файловую систему. В этом случае, чтобы иметь возможность менять параметры раздела, его нужно будет сначала отмонтировать. Для этого служит пункт «Unmount» контекстного меню. Жмем сначала его. После этого станут доступны остальные пункты контекстного меню.

Итак, раздел отмонтирован, приступаем к изменению его размера. Для этого в контекстном меню выбираем пункт «Resize/Move«. Появится следующий экран:

gparted_resize_partition
Рис. 5. Окно изменения размера раздела жесткого диска

В появившемся окне мы видим наш раздел, так сказать, графически, а также, цифры «про него» — под рисунком. Что нам дает это меню. Во первых, в графической половине мы видим какая часть раздела занята (выделено цветом) и какая свободна (белая). Также, по краям слева и справа присутствуют стрелки, которые можно тягать мышью. Сразу под рисунком присутствуют два параметра — Minimum size и Maximum size. Как нетрудно догадаться, это те значения, меньше и больше которых мы не сможем выставить новый размер данного раздела. Минимум определяется объемом уже записанной на данном разделе диска информации (кому нужна была бы программа, стирающая данные с диска?!). Максимум определяется либо текущим размером (как в приведенном примере), либо может быть и больше в случае, если на жестком диске есть еще неразмеченное пространство, примыкающее к данному разделу. В таком случае оно также будет присутствовать в графическом представлении раздела в виде серых полей слева или справа. Благодаря этому раздел можно сделать даже больше, чем он был до этого…

Теперь вернемся к цифрам (тем которые в нижней половине окна). Суть их такова. «Free space preceding» —  свободное место перед разделом. «New size» — новый размер диска. «Free space following» — сваободное место после раздела. Как видим, на моем рисунке в момент, когда это меню только открыли, свободного места нет ни до ни после раздела, а его новый размер равен старому. В случае, если же на жестком диске присутствуют неразмеченные области, примыкающие к данному разделы, то в полях «Free space preceding» и/или «Free space following» будут присутствовать соответствующие цифры, отличные от нуля.  Когда Вы начнете мышью тягать стрелки, изображенные по краям рисунка раздела, все эти цифры (место до и после, а также размер) начнут меняться. С другой стороны, Вы можете самостоятельно (вручную) в каждом из цифровых полей ввести новые значения (если Вы сторонник точных чисел)…

Теперь немножко «лирики». Если Вы читаете данную инструкцию с целью освободить немного места на диске с Windows, для того, чтобы установить Linux, то достаточно будет потянуть мышью стрелку справа так, чтобы свободного места после раздела (значение «Free space following«) стало больше той цифры, которую авторы выбранного Вами дистрибутива указывают как минимально необходимую для установки. Для Mandriva, например, рекомендуют не менее 4 Гб. Обратите внимание, что значения в указанных цифровых полях приведены в Мегабайтах…

gparted_new_partition_parameters_set
Рис. 6. Подтверждение нового размера раздела жесткого диска

После того, как новый размер раздела задан, жмем кнопку «Resize/Move«, как показано на рис. 6. Учтите, что:

  • Не стоит (по крайней мере в случае «откусывания от Windows чуток места под попробовать Linux«) освобождать место «до раздела» (слева).
  • Не бойтесь — что-либо потерять на этом этапе не получится! Все описанные выше действия — это пока только «план действий», и никаких реальных изменений с Вашим жестким диском еще не происходило!
  • Если Вы только освобождали место для Linux, и создавать новые разделы Вам не нужно, то можете сразу перходить к заголовку «А вот теперь приступим!!!» ниже.

Создание нового раздела

Теперь у нас появилось свободное место, чтобы создать новый раздел. Для этого жмем правой кнопкой либо на сером поле в графическом представлении структуры диска, либо на пункте «unallocated» в списке под рисунком. В контекстном меню выбираем пункт «New«.

gparted_new_partition
Рис. 7. Создание нового раздела

Откроется следующее меню:

gparted_new_partition_parameters
Рис. 8. Выбор параметров нового раздела жесткого диска

В нем мы создаем новый раздел и задаем все его параметры. Часть параметров нам уже знакома — они присутствовали в меню изменения раздела, описанном выше. Но добавились еще два параметра. Пункт «Create as» позволяет выбрать тип создаваемого раздела из следующих двух: «Primary partition» (основной раздел) и «Extended partition» (дополнительный раздел). Второй из «новых» пунтов «Filesystem» позволяет задать тип файловой системы, в которую будет отформатирован вновь созданный раздел. Список выбора достаточно широк, описывать его тут я не планировал. Почитать можно тут (по английски, правда). Определившись с параметрами нового раздела, жмем кнопку «+Add«. Если Вам нужно создать несколько разделов, то возвращаемся к заголовку «Создание нового раздела» выше…

А вот теперь приступим!!!

Обращаю внимание на то, что все описаные выше процедуры изменения старого раздела, создания нового раздела, НА САМОМ ДЕЛЕ ПОКА ЧТО НИЧЕГО НЕ СДЕЛАЛИ СО СТАРОЙ СТРУКТУРОЙ ЖЕСТКОГО ДИСКА, а всего лишь запланировали указанные действия. По мере того, как мы будем писать наш «план действий», его список будет расти в самом нижней части окна программы.  С другой стороны, в верхней части окна программы становится активной кнопка «Undo» (отмена). Она позволяет отменить действие (назначенное задание).

После того, как весь «план работы» создан, внимательно просматриваем его еще разок. Если находим ошибку — жмем кнопку «Undo» и создаем новое (в этот раз уже правильное) задание.

После того, как мы на 100% убедились, что все правильно, пришло время нажать кнопку «Apply» (применить). Вот именно после ее нажатия и начнется процесс изменения структуры Вашего жесткого диска…

gparted_apply_changes
Рис. 9. «Apply» — настройка завешена, пора менять разделы!!!

В зависимости от объема «запланированной работы», а также от объема информации на диске, Вам может потребоваться некоторое терпение, чтобы дождаться окончания…