|
Андрей Орлов Опубликовано: dl, 31.03.04 20:12 Речь в данной статье пойдет не о простом DHCP (Dynamic Host Protocol) сервере, как вы могли подумать, прочитав название статьи, а о немного более функциональной программе. Надеюсь, Вам будет интересно. Итак, начнем с сути проблемы. В локальных сетях часто возникает проблема распределения адресов. Многие люди пытаются получить неправильные или просто понравившиеся адреса. Если эти адреса в данное время не заняты (компьютеры-владельцы выключены), то им это удается, и настоящий владелец не может получить свой адрес. Таким образом, могут пострадать многие сетевые сервисы, так как адресация происходит именно по IP. Большинство брандмауэров также работает на уровне IP адресов, то есть произойдет подмена компьютеров, и защитные правила не будут работать для конкретной машины. Например, одно время на форуме bugtraq.ru была очень популярна тема, в которой автор спрашивал, как "спастись" от пользователей, которые меняют одновременно IP и MAC адрес и получают несанкционированный доступ к 1С бухгалтерии. Так как же спастись?
В сетях Ethernet существует такое понятие как MAC
адрес, благодаря которому драйвер сетевой карты определяет, что
данный пакет адресован именно данному компьютеру. Используется
логическая адресация при помощи IP адресов. IP адрес преобразуется в
MAC адрес средствами отправителя пакета, этим и занимается протокол
преобразования адреса.
Отправитель пакета определяет МАС адрес получателя, посылая широковещательный запрос по протоколу ARP. Давайте рассмотрим ARP запрос. Типичный пакет ARP запроса
И что же мы видим? Пакет рассылается широковещательно! Компьютер как будто спрашивает всю сеть, кто имеет нужный IP (логический) адрес, вышлите свой MAC (аппаратный) адрес. Машина в сети, которая считает, что она имеет соответствующий IP адрес, посылает ARP отклик со своим МАС адресом. Рассмотрим ARP ответ. Типичный пакет ARP ответа
ARP ответ сообщает запрашивающему МАС адрес,
соответствующий IP адресу запроса.
В пакете совпадают IP адреса отправителя и получателя, он также широковещательный. Если в сети уже есть компьютер, настроенный на использование запрашиваемого адреса, то он воспринимает "беспричинный" ARP как обычный ARP запрос и посылает ARP ответ, в котором указывает свой МАС адрес. Включившийся компьютер не ожидает получения ответа, а если получает, то мы видим: На самом деле, у нас есть возможность программно генерировать подобные ARP ответы и не пускать компьютер в сеть, то есть якобы присвоить себе все адреса сети. По каким критериям мы можем не давать или давать получить адрес? Посмотрим на ARP запрос. Ага, нам предоставляется только МАС адрес, а поскольку его можно легко подделать этот параметр является недостаточным. На помощь нам приходит протокол DHCP. Он позволяет получить большее количество параметров конфигурации от клиента и уже по ним сделать выбор: пускать или не пускать в сеть.
DHCP действует так: сначала клиент посылает широковещательное
сообщение DHCP Discover, в котором определяет желаемые параметры
инициализации сети. Сервер (или несколько) отвечает DHCP Offer, где
предлагает параметры инициализации, затем клиент принимает параметры
и отвечает сообщением DHCP Request. Процесс завершается сообщением
сервера DHCP Ack. Существуют еще другие типы сообщений, но подробное
описание протокола DHCP выходит за рамки данной
статьи. Поле опций DHCP Discover
Ну вот, уже намного больше параметров. Здесь мы можем использовать не только МАС адрес, а имя компьютера и тип операционной системы, также возможны манипуляции с идентификатором клиента. По этому принципу я и решил сделать программу, так как не нашел подобных разработок. Рабочее название системы - SecureDHCP.
Система находится в стадии альфа-тестирования, разрабатывается сайт http://www.ethersec.net/. Так что coming soon... Дальнейшее развитие системы подразумевает доработку
сервера и написание клиентских программ для различных ОС, чтобы
точно и однозначно идентифицировать систему в момент входа в сеть на
низком уровне. Будут использованы цифровые сертификаты и пароль
входа. Появится возможность не допускать смену МАС адреса и имени
компьютера без ведома администрации сети.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|