Блокировать ARP-запросы (или широковещательные сообщения, если это возможно) от УКАЗАТЕЛЬНОГО ХОСТА в подсети

936
Sourav Ghosh

Мой провайдер предоставляет имя пользователя-пароль для аутентификации, а также регистрирует MAC-адрес клиента для аутентификации.

Я обеспокоен тем, что кто-то неправильно использует мою связь, пока я ее не использую. Имена пользователей легко угадать (клиенты не могут изменять имена пользователей, могут быть изменены только пароли), и если кто-то найдет MAC-адрес и пароль, они могут использовать мое соединение.

Теперь провайдер не использует частную VLAN, поэтому легко получить MAC-адреса. Простые запросы широковещательной передачи ARP от хоста в моей подсети покажут мой MAC, и я не полагаюсь на пароль, потому что страница аутентификации не использует HTTPS. Итак, мои пароли отправляются в виде простого текста.

В этом сценарии я хочу заблокировать / отбросить / отклонить ARP-запрос (или любые широковещательные запросы) от любого хоста в моей подсети, кроме шлюза.

Я посмотрел этот вопрос и этот вопрос, но ОП попытался заблокировать все запросы ARP. Конечно, это плохая идея, потому что тогда я не буду получать интернет-трафик от шлюза. Я просто хочу заблокировать ARP-запрос (если возможно, любой широковещательный запрос) от любого случайного хоста в моей подсети, но разрешить широковещательную / ARP-обработку только от моего шлюза.

Я использую OpenWrt в моем беспроводном маршрутизаторе. Поэтому я думаю, что Linux-решения будут работать и, если возможно, пожалуйста, предоставьте также Windows-решение.

1
Вероятно, arptable - это то решение, которое вам нужно. Сделайте свой маршрут статичным и заблокируйте все. Wiffzack 7 лет назад 0
Обычно вы можете установить статическую запись ARP (конечно, в зависимости от ОС), поэтому, если вы сделаете это для своего шлюза, вы никогда не потеряете ее и сможете заблокировать все остальные ARP. MaQleod 7 лет назад 0
@MaQleod Но как насчет того, когда шлюз хочет отправить мне пакет? это должно транслироваться для моего MAC. Я должен ответить на этот ARP. Sourav Ghosh 7 лет назад 0
Скорее всего, это не будет проблемой. Большинство маршрутизаторов ISP будут хранить таблицы ARP в течение примерно 20 минут (для большинства корпоративных маршрутизаторов для этого установлены высокие значения), и большинство из них, как правило, смогут обновлять таблицы ARP из входящих пакетов - поэтому для этого достаточно просто принять пакеты от вас к маршрутизатору. знать, где вы находитесь и как с вами связаться, без необходимости отправлять вам ARP вообще. Таким образом, если ваш компьютер ARP-шлюз каждые 2-5 минут, или независимо от того, на что настроено ваше обновление, хороший шанс, что вы также обновляете его ARP каждый раз. MaQleod 7 лет назад 0

1 ответ на вопрос

1
Sourav Ghosh

Я выполнил это требование двумя способами на устройствах Linux. Я все еще ищу способы добиться этого на устройствах Windows.

  1. Введите статическую запись ARP для моего шлюза и затем отключите ARP.
  2. С помощью arptable

Первый метод

ip neighbor add 172.xx.xxx.1 lladdr 84:xx:xx:xx:xx:80 nud permanent dev eth0 

Приведенная выше команда требует ip-fullпакета в системах OpenWrt. eth0мой WAN интерфейс Если для шлюза уже есть запись, используйте:

ip neighbor replace 172.xx.xxx.1 lladdr 84:xx:xx:xx:xx:80 nud permanent dev eth0 

Теперь отключите ARP. Используйте любую из команд .

ip link set dev eth0 arp off ifconfig eth0 -arp 

Чтобы включить позже, используйте:

ip link set dev eth0 arp on ifconfig eth0 arp 

Второй метод

Этот использует пакет arptables . Во-первых, я позволил свои ворота. Затем я также разрешил ARP в моей локальной сети ( br-lanинтерфейс) и, наконец, заблокировал все остальные ARP

arptables -A INPUT -s 172.xx.xxx.1 -j ACCEPT arptables -A INPUT -i br-lan -j ACCEPT arptables -P INPUT DROP 

Похожие вопросы