PDA

Bekijk de volledige versie : защита от Arp-спуфинга + мониторинг



Denisik
31-07-2006, 11:24
Проблема в следующем,
Тот Linux что прошит в ASUSe по умолчанию отзывается на любой ARP запрос к IP адресу если означенный IP адрес уставнослен на любом из его интерфейсов, из-за того, что по умолчанию sysctl net.ipv4.conf.eth0.arp_ignore=0.
В результате имею ситуевину, когда оборудование моего провайдера по WAN опрашивает мой роутер на нем "светится" мой и внутренний и внешний IP адреса.
Провайдеру это дело сильно не нравится и он меня банит.
Более побробно суть проблемы проилюстрирована на http://www.ozerki.net/forum/viewtopic.php?t=2965

Вопрос: Олег, можно ли в новую прошивку добавить так, что бы эта переменная (из-за которой меня дважды отрубали от сети) по умолчанию была ну хотябы 1. А еще личше, чтоб ее можно было менять через web морду.
или как минимум, мастера линукса, скажите каки команды дать чтоб asus запомнил это дело и востанавливал после перезагрузки.

Заранее примного благодарен.

gaaronk
31-07-2006, 12:06
Более побробно суть проблемы проилюстрирована на http://www.ozerki.net/forum/viewtopic.php?t=2965

а логин/пароль на форум где?

6opoga
01-08-2006, 07:06
по умолчанию sysctl net.ipv4.conf.eth0.arp_ignore=0.
В результате имею ситуевину, когда оборудование моего провайдера по WAN опрашивает мой роутер на нем "светится" мой и внутренний и внешний IP адреса.
Провайдеру это дело сильно не нравится и он меня банит.
...snip...
или как минимум, мастера линукса, скажите каки команды дать чтоб asus запомнил это дело и востанавливал после перезагрузки.

Примерно

echo 1 > /proc/sys/net/ipv4/conf/WAN-интерфейс/arp_filter
записать в /tmp/local/sbin/post-firewall.
Как это сделать и как сделать, чтобы запускалось автоматически - смотри FAQ.

gaaronk
27-08-2006, 21:59
Примерно

echo 1 > /proc/sys/net/ipv4/conf/WAN-интерфейс/arp_filter


это кстати не решает проблемы

опция arp_ignore как я понимаю появилась с ядра 2.4.26
для более ранних надо юзать неофициальный патч

djet
13-10-2007, 20:33
В сети начали гулять вирусы, массово гадящие левыми ARP'ами. Шлюз уже добавил в статик арп, только как защитить от этого же сам шлюз (свитч cisco)? Если заражённая машина начнёт стрелять арпами, трафик пойдёт налево по крайней мере в направлении от шлюза ко мне. Знаю про существовании arpwatch'a и хотелось бы на его базе организовать какой-нибудь мониторинг активности с отсылкой событий по snmp или почте. Никто не пробовал?

MMike
13-10-2007, 21:10
На сей случай существует множество вариантов, сильно зависящих от конкретного коммутатора и его IOS'а. Если девайс абонентский, а не транзитный, то можно сделать IP-PORT-MAC binding. Кошки естественно не поддерживают сам arpwatch, так что тут потребуется комп или роутер с линухом на борту, но на мой взгляд 500е асусы сиего не потянут если активность в сети высока, банально начнут дропать пакеты при их обработке. Сам арпвоч настраивается просто, на сей счет много статей на opennet.ru.

djet
14-10-2007, 18:00
Нашёл кое-что.

ARP-spoofing (http://xgu.ru/wiki/ARP-spoofing)

+

HOWTO: install syslog-ng (http://wl500g.info/showthread.php?t=10394&highlight=syslog-ng)

djet
14-10-2007, 20:03
Нашёл кое-что.

ARP-spoofing (http://xgu.ru/wiki/ARP-spoofing)

+

HOWTO: install syslog-ng (http://wl500g.info/showthread.php?t=10394&highlight=syslog-ng)

Делаю для себя памятку:

1. Установить arpwatch, esmptd и syslog-ng (http://wl500g.info/showthread.php?t=10394&highlight=syslog-ng) и настроить их по минимуму.
2. Создать для arpwatch'a файл с базой /opt/arpwatch/arp.dat
3. Добавить arpwatch -N -i vlan1 в автозагрузку
4. Создать обработчик логов /opt/bin/syslog-ng-arpwatch, будет писать письма:

#!/bin/sh

sign='\n\n--\nRegards,\nAsus WL500gp'
sender='Asus WL500gp<djet@фром.ru>'
subj='Probable ARP Spoofing'
rcpt='djet@ту.ru'

while read line
do
mac="$(echo $line | grep 'changed ethernet address' | awk '{print $10}')"
[ -z "$mac" ] && continue
(echo -e "From: $sender\nTo: $rcpt \nSubject: $subj \n\n$line $sign" | sendmail $rcpt)
done
5. Добавить в конфиг syslog-ng:

destination dp_arpspoofing { program("/opt/bin/syslog-ng-arpwatch"); file("/opt/var/log/arpspoof.log"); };
destination df_arpwatch { file("/opt/var/log/arpwatch.log"); };
filter f_arpwatch { program("arpwatch"); };
filter f_arpspoofing { program("arpwatch") and match ("(changed ethernet address|mismatch) нужный-для-слежки-ip"); };
log { source(src); filter (f_arpwatch); destination(df_arpwatch); };
log { source(src); filter (f_arpspoofing); destination(dp_arpspoofing); };

TDA
05-11-2007, 07:09
Столкнулся с проблеммой - в сети появились вирусы которые подменяют адресс шлюза и соединение рветься пости непрерывно...
Пров выдал всем бат файлик:

arp -d
arp -s ип шлюза мак шлюза
arp -a

но попытка перенести его в роутер ничего не дала - выдает arp not found поиск по репозитарию тоже ничего не дал - arpwatch поставил но это видимо немножко не то - он тожеотказался понимать такие команды :(
КТо знает подскажите как привязать адреесс шлюза к маку?

djet
05-11-2007, 08:10
Столкнулся с проблеммой - в сети появились вирусы которые подменяют адресс шлюза и соединение рветься пости непрерывно...
Пров выдал всем бат файлик:

arp -d
arp -s ип шлюза мак шлюза
arp -a

но попытка перенести его в роутер ничего не дала - выдает arp not found поиск по репозитарию тоже ничего не дал - arpwatch поставил но это видимо немножко не то - он тожеотказался понимать такие команды :(
КТо знает подскажите как привязать адреесс шлюза к маку?
arp входит в пакет net-tools.

Ещё можно добавить запись в arp такой командой:

ip neigh [add|change] [ip] dev vlan1 lladdr [mac] nud permanent


Можно добавить вот такой кусок в post-firewall, должно работать:

# STATIC ARP
ip=`ip route list dev vlan1 to 0/0 | awk '{print $3}'`
mac=`ip neigh show $gw | awk '{print $5}'`
ip neigh change $ip dev vlan1 lladdr $mac nud permanent

TDA
05-11-2007, 08:41
arp входит в пакет net-tools.

Ещё можно добавить запись в arp такой командой:

ip neigh [add|change] [ip] dev vlan1 lladdr [mac] nud permanent


Можно добавить вот такой кусок в post-firewall, должно работать:

# STATIC ARP
ip=`ip route list dev vlan1 to 0/0 | awk '{print $3}'`
mac=`ip neigh show $gw | awk '{print $5}'`
ip neigh change $ip dev vlan1 lladdr $mac nud permanent

спасибо после установки нет толс все заработало!!!

а вот предложенный вариант с ip neigh не прошел - рушался на конструкцию add|change :)

Вопрос только остался - после перезагрузки это поди все исчезнет - куда вписывать нужно для сохранения?

djet
05-11-2007, 10:29
спасибо после установки нет толс все заработало!!!

а вот предложенный вариант с ip neigh не прошел - рушался на конструкцию add|change :)

Вопрос только остался - после перезагрузки это поди все исчезнет - куда вписывать нужно для сохранения?

Нужно писать либо add, либо change, в зависимости от наличия записи в кэше. Для сохранения лучше прописать в post-firewall. В инструкции по настройке с нуля подробно расписан процесс.

poezdatik
12-12-2007, 20:04
вопросик возник - возможно ли установить пакет net-tools без подключения жеского или флешки, или как боротся с arp не имея флешки и харда!?

з.ы. wl-500gp последняя прошивка от Олега

Oleg
12-12-2007, 20:48
Ну вроде человеческим языком всё объяснили. :) Ничего ставить не надо. Вот пример:

ip neigh add 10.1.1.1 lladdr 00:11:22:33:44:55 nud permanent dev vlan1

poezdatik
12-12-2007, 21:43
Ну вроде человеческим языком всё объяснили. :) Ничего ставить не надо. Вот пример:

ip neigh add 10.1.1.1 lladdr 00:11:22:33:44:55 nud permanent dev vlan1

так это строка постоянно будет или при ребуте слетит? или ее нуна выполнять когда произошла подмена шлюза?

Oleg
13-12-2007, 08:20
Эту строчку надо будет выполнять после каждого ребута. Например в post-boot можно засунуть.

djet
27-02-2008, 07:07
Заметил, что роутер отвечает на ARP-запросы из WAN (vlan1) с IP, принадлежащем LAN (br0). Т.е. если из внешней сети арпом запрашивают 192.168.1.1, роутер на него отвечает, выдавая своё присутствие. Выстановка /proc/sys/net/ipv4/conf/*/arp_filter = 1 не помогает.
Это баг или фича?

ЗЫ: хорошо, что ещё не роутит для клиентов из WAN'a при настройках по умолчанию. Нашёл у себя в сегменте аж 2 железки с дефолтным IP 192.168.1.1, запросто раздающих интернет при добавлении их в качестве шлюза. Кстати, ещё один повод сменить IP сети для br0.

vsu
28-02-2008, 20:26
arp_filter - BOOLEAN
1 - Allows you to have multiple network interfaces on the same
subnet, and have the ARPs for each interface be answered
based on whether or not the kernel would route a packet from
the ARP'd IP out that interface (therefore you must use source
based routing for this to work). In other words it allows control
of which cards (usually 1) will respond to an arp request.

0 - (default) The kernel can respond to arp requests with addresses
from other interfaces. This may seem wrong but it usually makes
sense, because it increases the chance of successful communication.
IP addresses are owned by the complete host on Linux, not by
particular interfaces. Only for more complex setups like load-
balancing, does this behaviour cause problems.

arp_filter for the interface will be enabled if at least one of
conf/{all,interface}/arp_filter is set to TRUE,
it will be disabled otherwise
Т.е., чтобы от установки arp_filter=1 что-то менялось, надо настраивать source based routing (ip rule и т.п.), а ядро, похоже, собрано без его поддержки.

Bumbr
08-11-2008, 19:16
Имею роутер wl500gpV2. У моего провайдера водится вирь, который пытается пустить траф через себя во всей подсети. В винде прописываю шлюз статически и все ок (arp -s ...). Как это сделать на роутере? Пока прошику не ставил. Хочу поставить чисто из-за этой фичи, если это реализуемо. И можно-ли на стандартной асусовской прошивке сие устроить? Есть там конечно фильтр по мак-адресу, но вирь работает следующим образом: ассоциирует ип адрес шлюза с мак-адресом сетевухи на зараженной машине.

Bumbr
08-11-2008, 20:35
Может не понятно все описал. В общем нужно прописать мак адрес шлюза на роутере статическию

DafT
08-11-2008, 21:40
можно. на штатной незнаю на олеговской вполне, arp -s и никаких проблем

rromcic
11-11-2009, 11:20
Эту строчку надо будет выполнять после каждого ребута. Например в post-boot можно засунуть.

Добавил в post-boot, но если на компе уже стоит IP то не успевает загрузится ip-neigh для данного IP.


P.S. Нашел сам решение:

ip neigh add 192.168.100.2 lladdr 00:1E:33:A7:67:78 nud permanent dev br0
потом строка
ip neigh change 192.168.100.2 lladdr 00:1E:33:A7:67:78 nud permanent dev br0

так что даже если при загрузки на IP попадает reachable а не permanent то потом все меняется