Контроль доступа к серверу по MAC‐ адресам

Ни один из известных способов не спасает от одновременной смены IP - адреса и MAC -адрес - адреса.

Создадим файл ipmac соответствия IP и MAC. Для этого запустим скрипт ipmac.sh, который использует утилиту Работа с ARP протоколом: очистка таблицы:

> ee ipmac.sh
#!/bin/sh

arp -an | awk -v OFS="\t" '{print(substr($2, 2, length($2)-2), $4)}' > /scripts/arp/ipmac

Очистим arp-таблицу и заполним ее из нашего файла ipmac

> arp -d -a
> arp -f /scripts/arp/ipmac

Чтобы другие компьютеры вообще не замечали наш сервер, для этого в rc.conf пропишем для локальной cети:

ifconfig_rl0="inet 192.168.x.x netmask 255.255.255.0 staticarp"

где rl0 – внутренний интерфейс. То есть сервер не будет делать arp-запросы на этом интерфейсе, и те компьютеры, которые не окажутся в файле, видеть его не смогут.

Для адресов, которые не задействованы в подсети, можно создать статические записи с фиктивными физическими адресами (например, 00:11:22:33:44:55). Это исключит возможность использования кем-либо данных IP-адресов или для интерефейса прописать staticarp, как показано выше.

Итак, мы получили статическую таблицу соответствия между IP- и MAC-адресами. Теперь выход в Интернет через FreeBSD-сервер с "чужого" IP-адреса станет невозможным, если, конечно, заодно не подменить и MAC-адрес (с последним явлением можно бороться разве что организационными методами).

Но любая палка, как известно, о двух концах. За повышение защищенности сети придется платить дополнительными заботами по администрированию, поскольку теперь добавление новой машины в сеть, замена сетевого адаптера, смена IP-адреса должны сопровождаться правкой и перезагрузкой ARP-таблицы. Хотя это все равно лучше, чем бегать по этажам, "вычисляя" недобросовестного пользователя.

Ссылки