<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.permlug.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>PSUnet</title>
 <link>http://www.permlug.org/taxonomy/term/223/</link>
 <description>The taxonomy view with a depth of 0.</description>
 <language>ru</language>
<item>
 <title>Подключаемся к WiFi @ ПГУ</title>
 <link>http://www.permlug.org/node/3810/</link>
 <description>&lt;p&gt;Как известно, на территории Пермского Государственного Университета функционирует WLAN c кодовым названием PSUnet и весьма привлекательными тарифами. Подключение осуществляется в Интернет-центре (Корпус 2) и бесплатно для студентов. Для регистрации требуется паспорт, копия студенческого и собственно supplicant (ноут, кпк, etc) - устройство, подключаемое к сети. И все бы хорошо, но, ввиду отсутствия квалицированных специалистов в этом самом интернет-центре или по другим неведомым мне причинам, подключение осуществляется только при наличии оси WinXP (для ноутов разумеется..). И конечно же не предоставляется информация о параметрах сети, типе авторизации и т.п. Как всегда разбираемся во всем сами...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Этап 1. Разведка&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;После шаманства представителей центра с несчастным саппликантом и получения регистрационных данных можно приступить к сбору информации. Порывшись в опциях беспроводного подключения, можно извлечь следующие данные о сети:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
Идентификатор сети (SSID): PSUnet&lt;br /&gt;
Протокол аутентификации: IEEE802.1x&lt;br /&gt;
Тип EAP: Protected EAP (PEAP)&lt;br /&gt;
Метод аутентификации: MSCHAPv2&lt;br /&gt;
Тип шифрования: WEP&lt;br /&gt;
Тип ключей WEP: динамические (IEEE802.1x)&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Также помимо выданных при регистрации login/password на машине обнаруживается некий новый сертификат Root CA, предназначенный видимо для проверки подлинности сервера сети.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Этап 2. Поиск клиента IEEE802.1x под Linux&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Порывшись в сети с запросами по IEEE802.1x, можно найти 2 клиента для UNIX-like систем:&lt;br /&gt;
&lt;strong&gt;wpa_supplicant&lt;/strong&gt; (&lt;a href=&quot;http://hostap.epitest.fi/wpa_supplicant/&quot; title=&quot;http://hostap.epitest.fi/wpa_supplicant/&quot;&gt;http://hostap.epitest.fi/wpa_supplicant/&lt;/a&gt;)&lt;br /&gt;
клиент WPA/WPA2 и IEEE802.1x (либо через встроенный клиент, либо через внешний, например Xsupplicant)&lt;br /&gt;
&lt;strong&gt;Xsupplicant&lt;/strong&gt; (&lt;a href=&quot;http://open1x.sourceforge.net/&quot; title=&quot;http://open1x.sourceforge.net/&quot;&gt;http://open1x.sourceforge.net/&lt;/a&gt;)&lt;br /&gt;
клиент, в первую очередь ориентированный на IEEE802.1x&lt;/p&gt;

&lt;p&gt;Логично предположить, что раз используемый протокол IEEE802.1x, то лучше выбрать Xsupplicant, однако по многим причинам от этой затеи пришлось отказаться (отсутствие в репозитарии Arch, многочисленные ошибки при сборке как обычной, так и cvs-версии, etc).&lt;/p&gt;

&lt;p&gt;wpa_supplicant входит стандартно практически во все Linux-дистрибутивы и FreeBSD 6-CURRENT&lt;br /&gt;
Итак, будем подключаться к сети из Linux используя клиент wpa_supplicant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Этап 3. Подключение&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Найстройка wlan-карточки здесь не описывается, однако следует обратить внимание на список поддерживаемых драйверов на сайте wpa_supplicant (&lt;a href=&quot;http://hostap.epitest.fi/wpa_supplicant/&quot; title=&quot;http://hostap.epitest.fi/wpa_supplicant/&quot;&gt;http://hostap.epitest.fi/wpa_supplicant/&lt;/a&gt;). Для большинства карточек все будет работать через стандартный драйвер c Linux Wireless Extensions (wext).&lt;/p&gt;

&lt;p&gt;для подключения необходимы пакеты:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
wireless_tools&lt;br /&gt;
wpa_supplicant&lt;br /&gt;
dhcp-клиент (например dhcpcd)&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Дистрибутиво-независимое решение:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Первым делом нужно составить конфиг для wpa_supplicant (множество примеров и комментарии к опциям в дефолтном wpa_supplicant.conf):&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
# vi /etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
fast_reauth=1
network={
    ssid=&quot;PSUnet&quot;
    key_mgmt=IEEE8021X
    eap=PEAP
    phase2=&quot;auth=MSCHAPV2&quot;
    identity=&quot;login&quot;
    password=&quot;password&quot;
}

# chmod 0600 /etc/wpa_supplicant.conf
&lt;/pre&gt;&lt;br /&gt;
Запускаем wpa_supplicant:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
# wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
&lt;/pre&gt;&lt;br /&gt;
Значения опций:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
-Dwext - использовать драйвер Linux Wireless Extension (универсальный)&lt;br /&gt;
-iwlan0 - использовать интерфейс wlan0&lt;br /&gt;
-c/etc/wpa_supplicant.conf - путь к конфигу wpa_supplicant&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
подробности:&lt;br /&gt;
wpa_supplicant --help&lt;br /&gt;
man wpa_supplicant&lt;/p&gt;

&lt;p&gt;Состояние можно посмотреть командой:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
# wpa_cli status
&lt;/pre&gt;&lt;br /&gt;
Если аутентификация прошла успешно, то используя dhcp-клиент получаем данные сети:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
# dhcpcd wlan0
&lt;/pre&gt;&lt;br /&gt;
Изучаем вывод ifconfig, iwconfig, route, содержимое /etc/resolv.conf на предмет&lt;br /&gt;
поднятия сетевого интерфейса, добавление маршрута по умолчанию и dns-серверов.&lt;/p&gt;

&lt;p&gt;Проверить подключение можно пингом сервера &lt;a href=&quot;http://www.psu.ru:&quot; title=&quot;&quot;&gt;www.psu.ru:&lt;/a&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# ping &lt;a href=&quot;http://www.psu.ru&quot; title=&quot;www.psu.ru&quot;&gt;www.psu.ru&lt;/a&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Доступ к внешней сети предоставляется через некоторое время (от одной до нескольких минут)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Arch-ориентированное решение:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;В Arch Linux есть набор скриптов для быстрого переключения между сетевыми подключениями (пакет core/netcfg).&lt;br /&gt;
Профайлы находятся в &lt;code&gt;/etc/network.d&lt;/code&gt;&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
# vi /etc/network.d/psunet

CONNECTION=&quot;wireless&quot;
DESCRIPTION=&quot;PSUnet WLAN&quot;
INTERFACE=wlan0
IP=dhcp
DHCP_TIMEOUT=20
DHCP_OPTIONS=&quot;&quot;
ESSID=&quot;PSUnet&quot;
SECURITY=wpa-config
SCAN=&quot;NO&quot;
TIMEOUT=10
WPA_OPTS=&quot;&quot;
WPA_CONF=/etc/wpa_supplicant.conf

# chmod 0600 /etc/network.d/psunet
&lt;/pre&gt;&lt;br /&gt;
Подключение:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
# netcfg2 psunet
&lt;/pre&gt;&lt;br /&gt;
Отключение:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
# netcfg2 -d psunet
&lt;/pre&gt;&lt;br /&gt;
Подробности:&lt;br /&gt;
netcfg2 --help&lt;br /&gt;
man netcfg&lt;/p&gt;

&lt;p&gt;Также в пакет входит dialog-based интерфейс для выбора нужного сетевого профайла:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;
# netcfg-menu
&lt;/pre&gt;&lt;br /&gt;
&lt;strong&gt;out&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;На написание этой статьи меня побудило то, что в сети практически не уделяется внимание подключению к сетям на основе IEE802.1x по сравнению с wpa/wpa2. Целью же было не выкинуть конфиг и команды для подключения к какой-то конкретной сети, а показать пример цепочки логичесих выводов, позволяющих решить поставленную перед линуксоидом задачу ;)&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-weight:bold&quot;&gt;greets&lt;/span&gt; 2 &lt;span style=&quot;font-weight:bold&quot;&gt;Raydan&lt;/span&gt; за предоставленное оборудование и аккаунт.&lt;/p&gt;</description>
 <comments>http://www.permlug.org/node/3810/#comments</comments>
 <category domain="http://www.permlug.org/taxonomy/term/224/">Arch</category>
 <category domain="http://www.permlug.org/taxonomy/term/226/">EAP</category>
 <category domain="http://www.permlug.org/taxonomy/term/222/">IEEE802.1X</category>
 <category domain="http://www.permlug.org/taxonomy/term/225/">netcfg</category>
 <category domain="http://www.permlug.org/taxonomy/term/223/">PSUnet</category>
 <category domain="http://www.permlug.org/taxonomy/term/219/">WiFi</category>
 <category domain="http://www.permlug.org/taxonomy/term/221/">wpa_supplicant</category>
 <category domain="http://www.permlug.org/taxonomy/term/71/">Документация</category>
 <category domain="http://www.permlug.org/taxonomy/term/220/">ПГУ</category>
 <pubDate>Fri, 28 Mar 2008 13:26:15 +0300</pubDate>
 <dc:creator>Auror</dc:creator>
 <guid isPermaLink="false">3810 at http://www.permlug.org</guid>
</item>
</channel>
</rss>
