Поиск

Газета FOSS News

16 ноября 2011

О газете
Архив
Авторам
Рекламодателям

 

Кабинет читателя

Вход в систему
Введите имя пользователя и пароль для входа в систему:

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Static ARP защита от подмены IP и MAC

28.02.10 /

Всё ниже описаное происходило на FreeBSD 8.0 Release.

static arp позволяет вручную задавать записи соответствия IP и MAC. В обычном режиме работает так называемый "динамический" arp, записи о котором обновляются каждые 20 минут. Это значение можно посмотреть так:

#sysctl net.link.ether.inet.max_age

а изменить вот так:

# sysctl net.link.ether.inet.max_age=10
net.link.ether.inet.max_age: 1200 -> 10

Теперь вернёмся к static arp. Мы будем настраивать так, что бы только избранные пары IP-MAC могли общаться с нашим сервером. static arp включается на каждой сетевой карте отдельно. Что бы его включить делаем так:

#ifconfig le0 staticarp

Что бы посмотреть, действительно ли у нас всё применилось, выполним команду:

# ifconfig le0
le0: flags=88843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,STATICARP> metric 0 mtu 1500
        options=8
        ether
00:0c:32:8e:d5:50
        inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255
        media: Ethernet autoselect
        status: active

Наличие слова STATICARP в угловых скобках говорит о том, что мы сделали всё верно. Теперь можно переходить к составлению пар IP-MAC. Создаём файл /usr/local/etc/arp.list такого содержания (допускаются комментарии через '#'):

10.10.10.10 00:0c:32:8e:d5:50 pub
10.10.10.111 00:15:46:fb:44:f2 pub
10.10.10.49 00:1d:77:7b:40:54 pub
#10.10.10.33 00:02:34:66:f9:97 pub

то есть сопоставляем IP - MAC. После этого нужно очистить текущую таблицу arp и загрузить новую, из файла. Если вы находитесь непосредственно у сервера, на консоле, то волноваться нечего, ибо в случае чего можно вернуть всё обратно. Но если же вы далеко и подключены через ssh, будьте осторожны и внимательны, не забудьте добавить все нужные IP и MAC.

Теперь переходим собственно к команде очистки и наполнения arp-таблицы:

#((arp -a -d && arp -f /usr/local/etc/arp.list ) || ifconfig le0 -staticarp) &

Я на всякий случай добавил отключение staticarp, если что-то пойдёт не так. Запускать нужно именно в фоне, ибо в момент запуска очищается таблица и вас выбрасывает из сессии. Поэтому рекомендую работать в "скринах", что бы потом просто подключиться к сессии.

После этого смотрим arp-таблицу:

$arp -a

freebsd80 (10.10.10.10) at 00:0c:32:8e:d5:50 on le0 permanent
skeletor (10.10.10.111) at 00:15:46:fb:44:f2 on le0 permanent published
? (10.10.10.49) at 00:1d:77:7b:40:54 on le0 permanent published

Как видим, у нас только те адреса, которые указаны в файле.

Что бы после ребута у нас ничего не слетало, сделаем следующее. В /etc/rc.conf в строку, где определяется адрес интерфейса добавим параметр staticarp:

ifconfig_le0="10.10.10.10/24 staticarp"

ну и создадим стартовый скрипт для очистки и наполнения arp-таблицы:

$ cat /usr/local/etc/rc.d/static_arp.sh
#!/bin/sh

((arp -a -d && arp -f /usr/local/etc/arp.list ) || ifconfig le0 -staticarp)

Сделаем его исполняемым и поместим в папку /usr/local/etc/rc.d. После этого можно полноценно работать. При добавлении нового адреса нет надобности использовать данный скрипт, ибо он обрывает все соединения. Лучше всего добавлять вручную (естественно, что не забываем добавлять его и в файл!). Делается это так :

#arp -s 10.10.10.33 00:01:52:8d:f9:54 pub

Вот и всё.


Автор: skeletor

По материалам:

Loading ...

Комментарии

Добавить комментарий

* - необходимое для заполнения поле

*




Изображение CAPTCHA для предотвращения спама
Если слово непонятно, нажмите здесь..
*
*
Akkerman, 22-03-10 17:03:
Интересно, а можно ли сделать так же, но на ядре Linux?
Kaydi, 19-01-12 21:59:
I'm so glad I found my solution oninle.
 
© 2004-2009 Журнал "Root UA" - свидетельство СМИ: КВ №14786-3757Р
Газета "FOSS News" - свидетельство СМИ: ОД №1355-236-Р
При использовании материалов портала ссылка на Root.UA обязательна, для интернет-изданий – гиперссылка, не закрытая для индексации поисковыми системами.

sitenews