UNИX, осень 2008, 05 лекция (от 29 октября)
Материал из eSyr's wiki.
Содержание |
[править] Лекция
[править] Вступление
У нас сегодня промежуточный день. СПД, она же интерфейсный уровень. Также следующий уровень --- сетевой, IP.
Давайте закончим с интерфейсным уровнем. Некая группа компьютеров, подсоединенная к СПД, возможна передача от любого к любому. Мы говорили про Ethernet, Token Ring. Существуют часто используемые СПД, другого, а иногда принципиально другого плана. Виртуальные СПД --- VPN, VLAN, на интерфейсном уровне --- PPPoE. Мы оставили на потом тему ``беспроводная сеть. На сегодняшний день, когда говорят ``беспроводная сеть, обычно говорят о Wi-Fi. IEEE 802.11.
Для начала обсудим общие вещи. У нас есть Ethernet. Он представляет собой провода, воткнутые в компьютеры, коммутатор. Человек, который прокладывает провода, знает, куда он их прокладывает и более-менее знает, кому прокладывает. Есть возможность, что кабелем дадут попользоваться компьютеру с другим MAC-адресом. Всегда есть ненулевая вероятность, что какой-то злоумышленник с паяльником или бокорезами в руках расковыряет кабель и подсоединится к проводам со своим ноутбуком. И та и другая вероятность достаточно низкие и опираются на какие-то действия злоумышленника. При обычном Ethernet не задумываются, что им можно злоупотребить. MAC-адрес можно менять, отсюда отсутствие жесткой дисциплины.
[править] Радио-Ethernet
Возьмем радио-Ethernet. Мы имеем СПД, к которой можно подключиться в любой момент времени. Любой компьютер, умеющий передавать данные может передавать их в любой момент времени.
[править] Идентификация
На интерфейсном уровне, когда мы говорим о дисциплине передачи данных, должна включаться идентификация абонента. В случае радио-Ethernet это должна быть достаточно уверенная и обязательная идентификация. Сейчас разговор не о Wi-Fi, а о переходе на неразграниченную СПД.
Задача 1. жесткая идентификация абонента. Также есть задача идентификации СПД --- т.к. воздух один. При развертывании рядом такой же СПД нужно, чтобы устройства это нормально поддерживали.
Мы получаем две категории абонентов сети. В Ethernet все абоненты равны. В случае радио есть идентифицированные и неидентифицированные абоненты. Нужно не давать возможности неидентифицированному абоненту пользоваться услугами сети.
[править] Авторизация
Задача 2. Авторизация. Должна быть процедура авторизации устройства, чтобы определить, что можно данному устройству. Должна быть авторизационная информация, грубо говоря, логин-пароль. Абонент должен сказать что-то волшебное, вроде ``крокодилы летят на север. Достаточно большой комплект всевозможной технической настройки, связанной с тем, что вакуум один на всех.
[править] Настройка
Мы не затрагивали один тонкий вопрос --- радио одно на всех, мы разворачиваем рядом две точки доступа Wi-Fi. Как сделать так, чтобы они друг другу не мешали, не вещали на одной волне. Должна существовать нехитрая договоренность на этом уровне, которая позволит это решать. Wi-Fi позволяет выбирать Auto волну. До сих пор полно документации, где написано, если точка не заработала, смените диапазон. Auto не на уровне протокола.
Задача 3. Техническая поддержка настройки.
В проводном случае штатная ситуация одна --- работающий провод. На радио волны затухают. Особенно хорошо затухают в железобетонных конструкциях. Точка доступа может быть то видна, то не видна. Уровень сигнала может быть низким. Частота большая. Затухание большое. Все настройки плавающие, на максимальной скорости может не заработать. На нашей частоте может работать электросварочный аппарат. Технические подробности настройки вылезают на уровень протокола, потому что ими надо уметь управлять. Мы имеет дело с ненадежной и негарантированной СПД.
[править] О домашних точках
У домашней точки радиус действия небольшой. За двумя соседними углами можно разворачивать точку доступа на такой же частоте. Речь о том, что сигнал затухает. В протоколе коллизии обрабатываются по Ethernet-овски. Должна быть обработка шумов. Если два устройства вещают на одной частоте, они друг другу качество сигнала портят. Разница в том, что либо есть jam, либо нет jam. Устройства, передающие на одной частоте тем больше мешают друг другу, чем ближе друг к другу находятся. При сближении возрастает количество ошибок, битых пакетов, наконец, все отваливается. Утверждение, что точка доступа и типичный клиент ее работают одинаково, неверно. Wi-Fi карта может работать в двух различных режимах --- как раздающая точка доступа, и как клиент, подключающийся к точке доступа. Дальше --- чистый Ethernet, клиенты что-то пищат, получается jam. Вещание на одной частоте либо отсутствует, либо запрятано, криво реализовано. Вся эта дискуссия должна утвердить нас в одной мысли: все три описанные процедуры весьма значимы, когда мы в качестве СПД используем вакуум, обладающий свойством передачи э/м волн.
[править] WiFi
Касательно Wi-Fi. Структура вполне Ethernet'ная.
[править] Инструменты
В Линуксе автоматически поднимается устройство, являющееся беспроводной сетью. Мы видим просто интерфейс с каким-то именем, обладающий схожими с обычным свойствами. Также отдельно им можно управлять с помощью wireless tools (iwconfig, iwlist, iw\dots). У него есть дополнительные фичи, определяющие принадлежность к беспроводному интерфейсу.
[править] Сканирование
Можно запустить сканер, вылавливающий идентификационные пакеты, идущие от точки доступа. В частности, будет прописан идентификатор. На каком-то диапазоне найдет одну сеть, на другом --- другую. У лектора бывает, что находится до 12 сетей. Такова обычная ситуация.
Сканирование --- специально написанный кусок кода, заглядывающий в каждый диапазон. Затем выбираем из списка сеть, чьи настройки мы знаем, настраиваемся на нее и работаем.
[править] Безопасность
Что касается идентификации и авторизации, это вопрос отдельный. Если речь идет о рассказывании пароля, неплохо его зашифровать. Если пароль не шифруется, то любой может быть этим кем-то независимо от нашего желания.
После того, как мы правильно настраиваем сетевую карту, работающую в Wi-Fi, мы попадаем в точку доступа, решающую, что делать устройству с нашим MAC-адресом. Это уже задача авторизации. Если есть точка доступа, как сделать, чтобы доступ к ней имели не все?
Решение номер 0: не обеспечивать авторизацию, а регулировать доступ к Интернету на более высоких уровнях. Чем плохо? Мы не гарантированы от следующего злоупотребления: есть идентифицированный абонент, мы прикидываемся этим абонентом.
Если на высоком уровне есть шифрование, манипуляция MAC-адресами не спасает. Если наша задача ограничить доступ в Интернет, а не что-то другое, наверное, так и надо делать.
Запароленная прокси. Причины, почему так не стоит делать: если точка доступа довольно хилая и стоит в офисе, было бы нехорошо давать доступ всем, потому что их может оказаться много, и кроме того, может быть злоумышленник, у которого, может быть, даже из-за троянов лезет в эфир всякий мусор в большом количестве; кроме того, если это домашняя точка доступа, зачем делать дополнительные усилия, если можно сделать автоматическую защиту и шифрование.
Проблема с паролями в том, что его надо хранить. Проблема нацарапанного на крышке стола гвоздем пароля администратора. Пароль будут спрашивать. Можно сделать так, чтобы он спрашивался один раз, но тем не менее.
Вторая проблема --- пароль лежит на точке доступа, его туда надо доставить. По парольному признаку работает WEP. Это простейший способ.
Подбор WEP-пароля занимает несколько минут для 64-битного пароля. Этими паролями шифруются данные и идут в сеть. Какие данные --- более-менее известно, и пароли можно восстановить, от нескольких минут до нескольких дней.
Беспарольный Wi-Fi в местах, где он открыто заявлен, например, в McDonalds.
Железка рисует замочек с замочной скважиной. Открыть его можно, даже есть специальные проблемы. Потом придумали WPA, WPA2.
В ней можно работать с просто паролем. Вариантов шифрования --- чертова прорва. Автоматически подобрать все это очень сложно, особенно вручную. Алгоритм WPA2.
Один пакет, зашифрованный пасс-фразой. Сервер отвечает пакетом, которым надо шифровать. Постоянного обмена пакетами с ключом нет.
Если шифрование по предварительному обмену сертификатами, рисуется замочек с тремя скважинами, как символ высоко защищенной сети.
Разница в том, что пароль используется один раз, при инициализации. Далеко не все Wi-Fi карты это умеют.
WPA_supplicant. Есть часть протокола, заложенного в устройстве, но в большинстве случаев он вылезает на уровне ОС. Никому не охота загружать в микросхему шифрование и прочее.
[править] Что творится в Линуксе?
Две очень неприятные вещи.
На свете существует только два Wi-Fi чипсета, драйверы под которые можно писать, просто глядя в спецификацию. Еще недавно был один. Высокораспространенный чипсет закрыт. Многие чипсеты закрыты и наличие к ним драйвера --- вопрос либо reverse engineering глядя на драйвер, обмен данными, либо драйверов от производителей.
Мы имеем забавную ситуацию --- некоторые производители делают закрытые драйверы под Линукс. Смелые ребята, особенно учитывая частую смену ядра. Ateros недавно открыли. Realtek всегда были открыты.
В OpenBSD был всего один эксплоит за всю историю /*О РЛЫ?*/. Она быстрая, надежная. Но не работает с закрытым железом.
[править] Ноутбуки
- Первый вариант --- посчастливилось стать обладателем устройства с открытым чипсетом.
- Второй вариант --- чипсет с закрытым firmware.
Гуглим, находишь firmware, подсовываешь, все начинает работать.
- Третий вариант --- закрытый драйвер от производителя.
Гуглим, ставим.
- Четвертый вариант --- ndis wrapper.
Идея стандартизовать сетевой драйвер. Есть некоторый API. Есть некоторая спецификация. Если пишем согласно этой спецификации, можно не углубляться в железо, и все будет работать.
В Линуксе есть ndis, которому можно скормить виндовский драйвер и он будет работать. Могут быть взаимозацепления кривых ручек. Но это распространенный способ борьбы с проприетарным Wi-Fi. Методички начинаются с установки ndis wrapper и скармливания ему драйвера.
Вывод номер один --- работа Wi-Fi в Линукс из коробки --- явление не частое. Однако, если есть линуксоид, скорее всего, заработает. Совсем неработающего Wi-Fi лектору не встречалось.
Есть специальный демон. Некоторые Wi-Fi карты он не поддерживает. Не факт, что будет поддерживаться WPA. Может случиться ситуация, что человек, раздающий сеть, выключил точку доступа. Такое было на выставке. Вводишь параметры, ничего не работает. Потом оказалось, что они решили защититься.
На сегодняшний день ситуация следующая --- количество поддерживаемых чипсетов растет. Второе --- скорее всего, Wi-Fi заработает, но скорее всего, потребуется линуксоид.
Мы затронули тему аппаратной совместимости, она лежит немного в стороне.
[править] Самоорганизация в WiFi
Когда речь идет о Wi-Fi, мы говорили, что карточка Wi-Fi может работать в режиме точки доступа. В этом смысле отвод лучше. Набирают силу, но пока из коробки не работают ячеистые сети. Дисциплина самоорганизации множества Wi-Fi устройств. В чем отличие обсуждаемого механизма от межсетей?
Есть точка раздачи Интернета. Есть некоторое количество машин, которые каким-то образом вступили в ячеистые отношения друг с другом. Мы лезем с Wi-Fi устройством в сеть. Есть софт, выбирающий правильного абонента с точки зрения загрузки и кратчайшего пути.
Вопрос выбора пути --- вопрос архитектуры, софта. С точки зрения конечного пользователя --- негритенок приходит с OLPC, смотрит, ждет 10 минут, и у него появляется Интернет, когда его зарегистрируют. Почему это возможно?
Предполагается, что мы не будем генерировать огромное количество трафика. На конференции мы пришли, а у нас уже есть Интернет. Маршрутизация и алгоритм подключения точки к точке достаточно сложный, чтобы можно было двигаться с места на место и реструктурировать сеть.
Эта вещь была активно реализована в OLPC, потому что изначально было предназначено именно для такого использования.
[править] Аппаратная совместимость. ADSL
Что можно про нее рассказать? ADSL --- Asymmetric Digital Subscriber Line. Сегодня с развитием пиринговых сетей асимметричности нет. Возможность передавать высокочастотный сигнал по обычному телефонному проводу, даже по советской лапше. Этот способ характерен двумя вещами.
Во-первых, нужна специальная аппаратура на телефонной станции. Подключение абонента называется кроссированием. После этого по проводу пойдут высокочастотные сигналы, неслышимые человеком. Правильный способ использования --- железяка с двумя проводами, налево обычный сигнал без высокочастостной составляющей, направо --- высокочастотный сигнал. Сигнал должен быть воспринят компьютером. Есть что-то. Внутри этого чего-то завернут PPP-трафик. Есть три способа выкроить PPP-трафик.
Способ 0. Покупаете машинку --- ADSL-модем. С одной стороны втыкается телефон, с другой вытыкается обычный Ethernet. В железке выставляем параметры провайдера, и обычно наступает счастье. Железка является обычным маршрутизатором.
Упражнение 2 --- железка, с одной стороны телефон, с другой --- Ethernet, из которого лезет непонятно что. Железка демодулирует сигнал и все. Она более тупая. Получаем PPPoE. Уже клиенту PPPoE рассказываем настройки, и этот клиент получает нормальный Интернет.
Третий вариант --- купили у Стрима USB ADSL-модем. С одной стороны телефон, с другой USB-кабель. Должен быть программный продукт, который умеет интепретировать, выковыривать трафик, представлять в виде виртуального соединения.
[править] Грабли
В случае USB-устройства есть два вида грабель. Протокол USB с виду похож на Ethernet. Там тоже есть фреймы и прочее.
Грабли номер один --- вставляем устройство, получаем непонятно что. Идут непонятные USB-сообщения, никто не знает, что это такое. Нет драйвера под это устройство. Той части ПО, которая превращает USB-нечто в PPP-трафик, драйвера. Этот драйвер несвободный или изготовлен с помощью reverse engineering. На сегодняшний существует куча reverse engineering драйверов. Если вы знаток, можно распознать трафик USB.
Вторые грабли --- железка еще и не умеет дешифровывать трафик, вообще ничего не умеет. В нее надо залить прошивку. Непонятно, как и куда писать. Поддержка засовывания прошивки внутрь. Запускаем программу, она что-то куда-то заливает.
Есть инструкции с выдиранием куска кода из DLL --- это и будет прошивка. Сами производители не делают этого, чтобы не нарушать лицензию. Reverse engineering не является незаконным в некоторых случаях. Модемы еще и виснут. Рекомендация простая --- не покупайте USB ADSL модемы.
В следующий раз IP.
[править] Конспект eSyr
Закончим с интерфейсным уровнем. Речь идёт о ситуации, когда мы бъед компьютеры в лок. сеть, Лок. сеть в понимании лектора — некая группировка компьютуров, подключенных к единой СПД. Отличительные признаки: передача данных от любого абонента любому (все всех видят), передавать напрямую. Мы в прошлый раз поговорили про езернет, лектор упомянул в качестве альтернативы про token ring, и существуют ещё всякие дост. часто СПД другого плана. Что часто встречается в нашей жизни:
- Виртуальные среды передачи данных (VPN, VLAN)
Те5м не менее, мы сотавили на потом нечто, названное беспроводной сетью. ЗА словом бесп. сеть обычно скрывается много разных технологий, но одна из них считается доминирующий — wi-fi, или IEEE 802.11.
У нас есть пресловутый ethernet, который предст. собой провода, воткнутые в компьютеры, с другой стороны коммутатор, и человек, который их прокладывает, знает, уда он изх прокладывает и знает, какой абонент с другой стороны. Всегда есть шанс, что добрый хозямн хоботка может дать попользоваться им другому. Есть ненулевая вероятность подключения несанкционированного, но она дост. низкая. При этом важно заметить, что обе вероятности остаточно низкие, поэтому, когда ечь идёт об обычном езернете, никто не задумывается о том, что нужно устр. жёсткую дисциплину.
Теперь переходим к радиоезернету. Мы имеем среду, к которой в любой момент моджет подкл. любой. Из этого следует, что на ур. минт., в том месте, где мы имеем место с дисциплиной, должна включаться идентификация абонента. В случае узернета она вялотякущая, лишь бы работая, в случае же радиоезернета, в который может попасть любой, идент. должна быть строгая, уверенная и принудительная. Сейчас речь идёт о переходе с разграниченной на неращгр. СПД.
На самом еле, есть ещё задача СПД, воздух-то на всех один. Соотв., если мы хотим развернуть две СПД, то мы должны озаботиться тем, чтобы и абоненты знали, куда они хотят подключиться, и само устр. понимало, кто оно такое. Более того, всякий раз, когда мы переходим от понятия, всякий раз, когда поЯвл. идент. и неидент. персонаж, мы получаем две категории абонентов сети. Если мы имеем езернет, то условно все они равны, в случае радиоезернета есть идентифицировавшиеся и неидент. В этом случае неидент. абонентам вообще польз. сервисами сети. Соответственно, возн. задача авторизации. Когда речь зах. об авторизации, то должна сущ. авторизационная информация. Абонент, который желает подсоед. к СПД, должен что-то такое волшебное сказать, и его тут же пустят.
Что ещё. Дост. большой комплект всевозм. чисто техн. настройки, связанной с тем, что вакуум один на всех. Когда мы говорили о том, что у нас неск. СПД, мы не затр. вопрос того, что оно одно на всех. Следовательно, необходимо выбирать частотный диапазон. Кроме того, если провод либо работает, либо нет, а волны, например, могут затухать, то точка доступа то видна, то нет, и так далее. В итоге, техн. вопросы настр. вылезают на уровень протокола.
Вся дискуссия, которая проходила, должна убедить в одной вещи: вся эта процедура их трёх пунктов весьма важна, как только мы переходим к откр. СПД.
Что касается wifi. Там арзитектура вполне себе езернетная.
В линуксе, когда оно поднимается, вы видете вполне себе езернетный интерфейс, которым можно управлять, ну и кроме этого можно им управлять в соответствии с теми тремя категориями утилитами из wireless-tools.
О дисциплине. Когда вы попадаете в какое-то место, где вы желаете подкл. к вайфаю, вы можете запустить iwlist scan, которая будет вылавливать идент. вещи от точки доступа, где прописаны всякие нужнвые вещи: ESSID, техн. параметры, и ещё кое-что. iwlist scan это просто кусок кода, который загл. в каждый диапазон и дост. инф. После чего дост. настройки, пропис. их с помощью iwconfig, и начинаете работать. Т. о. мы решили посл. две задачи.
Что касается идент. и аутент. Как было сказано Даниилом, то если вы исп. пароль, то его нужно зашифровать, иначе это не пароль. Факт., после того, как вы настр. сетевую карту, которая работает с вайфаем, вы попадаете в точку доступа, в который принимается решение, нужно делать с картой с таким-то мак-адресом или не нужно. Первая мысль: есть тд, в которую ломятся все, а интернет надо давать и вообще подкл. не всем. Решение номер 0: делать её выше. Ещё почему нужно фильтровать доуступ: поскольку могут что-то испортить, второе: если это перс. точка доступа, зачем делать допусилия, если проблему можно решить здесь, и при подкл. автоматом будет нормальная авторизация.
Теперь перезодим к вопросу, как сделать авториз. У всякой авт. есть две проблемы: по паролю — пароль где-то должен быть. Кроме того, его надо хранить в компьютере, поск. не спращивать же его при каждом подключении. Кроме того, он должен быть на точке доступа.
Простейший доступ по паролю — WEP. Но при этом если зодит зашифрованные данные, то если их слушать достаточно долго, то можно пароль и угадать. Поэтому на смену ему пришёл сначала WPA, потом WPA2. WPA2 включает себя много всего. При этом шифруются данные не той passphrase, которая используется для аутентификацию и получению ключа для шифрования. При этом далеко не все карточки это безобразие умеют. Поэтому нужен софт, колторый это умеет, wpa_supplicant. Мы имеем ситуацию, обратную той, о которой говорили раньше: у нас есть часть протокола, но он вылезает в операционную систему. Тут начинается самое неприятное ... Для того, чтобы восп. криптостойким методом шифр., нужно иметь некую софтину, которая умеет завосывать ключи, высовывать из обратно. Считается, что wpa2 не ломается за мыслимое время.
Что творится с вайфаем в линуксе? Творится 2 непр. вещи:
- На сегодняшний день есть два чипсета, которые полностью специфицированы. Многие вайфайные чипсеты закрыты, и дррйвера для них — либо результат дейятельности реверсинжиниринг-сообщества, помимо этого есть драйвера от производителей (производители пытаются делать закрытые дарйвера под линукс, смелые ребята). При этом это не значит, что вайфая не будет. Это может быть потому, что:
- Счастлвиый обладатель открвтой карточки
- Каротчка голая и хочет закрытый firmware
- Драйвер от произаодителя
- Драйвер от сообщества
- ndiswrapper. В незапамятные времена МС пришло в голову станд. сетевой драйвер для Linux, описать API, и тут они поступили вопреки себе и сделали полноценную спецификацию — NDIS. Поэтому в линух и bsd есть ndiswrapper, которому можно скормить драйвер сетевой карты, и он иногда работает. Это дост. распростр. способ борьбы с проприетраным wifi. Лектор не знает, насколько это последнее автоматизированно в разл. дистрибутивах.
Итак, есть драйвера, есть wpa-supplicant, есть много чего...
На сег. день ситуация следующая: количество поддерживаемых чипсетов растёт. Скорее всего, вайфай заработает, но скорее всего, его нужно будет немного допилить. Хотя, есть NetworkManager, у которого есть мозг, и он часто работает.
Когда речь идёт о вайфае, мы уже говорили, что карточка, которая вайфайная, может работать ad-hoc. Набирают силу, но пока из коробки не работают mesh-сети. По сути, это просто дисц. самоорг. устройств в режиме ad-hoc.
Вот у нас есть некое кол. устр., нах. в ячейстых отношениях. Приходит устройство, видит их и подкл. к одному из них. Дальше оно маршрутизируется само. Почему это возможно? Если мы не буджем гонять большое количество трафика, то почему быи нет?
Про аппаратную совместимость
ADSL это возможность передавать сигнал по проводам. Этот способ характерен двумя вещами: нужно ставить спецаппаратуру на АТС, после кроссирования (подключения) по проводам начинают ходить высокоч. сигналы. Этот высокоч. сигнал должен быть преобразовон во что-то, оно должно быть преобразовано компьютером, внутри этого завёрнут обыкновенный PPP-трафик. Есть три способа выдрать PPP-трафик:
- Втыкается нормальный ADSL-модем, у которого торчит ethernet. Она сама решает задачу подкл. по dsl и отдаёт уже обычныц ppp
- ADSL-to-Eth transiever. Иногда наз. модем. С одной стороны у этой железяки вст. телеф. шнур, с другой — eth, из которого лезет чёрт знает что. Это железяка ужн бесмозглая, она всего лишь занимается демод. сигнала и кодир. в eth-фреймы, в которых pppoe. После чего на компьютере запускаете pppoe-клиент на компьютере, который создаёт вирт интерфейс и всем занимается
- Купив у стрима adsl-модеи, вы обн., что никакого eth там нет, торчит usb-шнур. Это озн., что на ст. комьпютреа должен быть некий программный продукт, который умеет выковыривать оттуда ppp-трафика
Тут есть два рода грабель:
- Мыльница без мыла. Нужно брать драйвер
|
|