Перейти к содержимому

ARP таблица - теперь сама заполняется


Рекомендованные сообщения

Народ мне тут делать было нечего дело было вечером.. точнее ночью :D-)

Так вот..

Написал 2 скрипта которые через крон запускаю и каждую минуту у меня идет проверка АРП таблицы...

если мак клиента не залочен на АиПи то автоматический привязывает его :) сам :))

тобишь составит СТАТИСТИЧЕСКУ АРП таблицу без вашего ведома! :)

теперь можно даже к веб морде привязать и если клиент поменял сетевуху (в случае грозы или еще чегонибудь), то можно с легкостью снести ему МАК :)

и потом просто заниматься своими другими делами :() и не ждать пока МАК прилочится :D)

Блин... Моя радость не знает границ :D

4 часа мучался если не больше :)

Кому надо пишите в топик могу выложить :o

Ссылка на сообщение
Поделиться на других сайтах

Кому инетресно то я его даже привязал к Веб Морде! только чито :)

:loop:

Скриншот

Всем кому не лень могете качать и модифицировать :)

Скрипты

и так теперь в топик ваше мнение хочу услышать :)

Ссылка на сообщение
Поделиться на других сайтах

Система ASPLinux 9.2 я думаю на семействе RedHat будет работать безотказно.

попробуй набрать arp -n если текст будет такого содержания:

Address HWtype HWaddress Flags Mask Iface

10.10.0.5 ether 00:50:22:B0:85:5F CM eth1

10.10.0.7 ether 00:01:29:4E:5C:A6 CM eth1

 

то я думаю и на Фряхе заработает :)

Ссылка на сообщение
Поделиться на других сайтах
Кому инетресно то я его даже привязал к Веб Морде! только чито :)

и так теперь в топик ваше мнение хочу услышать :)

Ты бы файлики спаковал бы и выложил одним файлом. А то ПХП у тебя передается не как файл, а как страница, выполняясь, соответственно в таком виде он бесполезен.

Ссылка на сообщение
Поделиться на других сайтах

Ничего не понял.....поработало 10 минут - у всех стали флаги СМ... что это значит?

 

вопрос №2: как "снести" МАС?

 

вопрос №3: а можно скриптик дл гого что бы через вебморду снести МАС?

Ссылка на сообщение
Поделиться на других сайтах

Значить так....

флаги СМ - значат что аипи клиента привязан статистически к мак адресу!

тобишь с другой сетевой картой клиент уже не смогет выйти в инет :)

 

как снести МАК?

arp -d xxx.xxx.xxx.xxx

есть такой скриптик у меня! :)

:) но он у меня к сайту прикручен

надо будет заделать так же под простой веб ифейс

Ссылка на сообщение
Поделиться на других сайтах

Залил по новой теперь со структурой каталогов и в пакет входит скрипт (тобишь Веб морда) чтоб разлочивать юзверей

перед тем как через веб морду запускать проверьте запись в SUDO

потому что там работает через нее..

apache пользователю даете запуск команды /sbin/arp *

 

вот пример веб морды :))

за дизайн не пинать просто некогда рисовульки делать.

вот и вроде усе

Ссылка на сообщение
Поделиться на других сайтах

Хмм.....а может не стоит лочить клиентов с внешнего интерфейса?....

а то у меня за ночь уже залочило штук 50 адрессов с инета....

 

И ещё: как через судо разхрешить пользователю апач делать арп?

Ссылка на сообщение
Поделиться на других сайтах

по поводу внешних адресов не знаю у меня сеть провайдером маленькая 16 адресов вокруг моего сервера. :) тоесть залочить все - желательно :)) мало ли ;)

у меня просто никак лочится не могут :)) маки внешние %)

жмакаешь visudo

и вбиваешь по шаблону.

 

например так:

# sudoers file.

#

# This file MUST be edited with the 'visudo' command as root.

#

# See the sudoers man page for the details on how to write a sudoers file.

#

 

# Host alias specification

 

# User alias specification

 

# Cmnd alias specification

 

# Defaults specification

 

# User privilege specification

root ALL=(ALL) ALL

apache ALL=(ALL) NOPASSWD: ALL -------вот этустрочку надо прописать или можно именно только АРП каманду дать ;)

# Uncomment to allow people in group wheel to run all commands

# %wheel ALL=(ALL) ALL

 

# Same thing without a password

# %wheel ALL=(ALL) NOPASSWD: ALL

 

# Samples

# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom

# %users localhost=/sbin/shutdown -h now

Ссылка на сообщение
Поделиться на других сайтах

спасибо....всё получилось

 

попробовал считывать таблицу так : arp -i eth1 -n

вроде считыват всё правильно, токо локалку...

 

а после через некоторое время опять лезут со всех интерфейсов....вот сижу и смотрю на это НЛО....просто смеюсь, вроде все облазил а не могу понять откуда он их берёт.

 

Большая просьба обяснить алгоритм...

 

я так понимаю что сперва записываем в /MAC/arptables

потом с этим работаем

потом с флагом "С" поодному переделываем на "СМ"

 

Но вот откуда вторично берутся левые ip не пойму :)

 

(сначало в arptables все ip из eth1)

Ссылка на сообщение
Поделиться на других сайтах

АААААААААААААААААААААААА!!!!!!!!!!!!!!11

 

Где автор пропал????

 

У меня уже 150+ адресов залочиных с внешнего интерфейса....

что делать???? ХЕЛП!

я то скриптик остановил....почучуть поприбивал статику.....но нада что-то решать!

Ссылка на сообщение
Поделиться на других сайтах
попробуй подкорректируй скриптик logs чтоб сбрасывал только с интерфейса eth1 и все а дальше все само будет проверятся :)

я его подкорректировал, скидываются только те что нада.....но проходит 5 минут и опять куча левых ипов уже забиты статически.

Ссылка на сообщение
Поделиться на других сайтах
а не прописано у тебя случаем на одной сетевой карте внешка и локалка??

нет.....к сожалению их 2 штуки.

тогда замени скрипт mac.php на фильтрацию вот таким кодом..

<?

$path = "/MAC/arptable";
$read = @fopen ($path, "r") or die("Не верный логин или пароль.");
$file = fread($read, filesize($path));
$file = convert_cyr_string ($file, k, w);
$html = nl2br($file);
$line = explode("<br />", $html);

#поиск IP
for ($k=1; $line[$k]; $k++) {
$el=explode(".", $line[$k]);
$e=explode(" ", $el[3]);
$ops=explode("\n", $el[0]);

#сбор переменных
$ip = $ops[1].".".$el[1].".". $el[2].".".$e[0];

#поиск MAC и FLAG
$em=explode(":", $line[$k]);
$es=explode(" ", $em[5]);
#сбор переменных
$mac="00:".$em[1].":".$em[2].":".$em[3].":".$em[4].":".$es[0];
$flag=$es[3];

#Работа с данными

echo "\"$flag\"--- \"$mac\"--- \"$ip\"\n"; 

#ниже приведен пример фильтрации $ops[1] == "первая цифра аипи" $el[1] == "вторая цифра аипи" тобишь получается по маске 10.10.x.x а дальше смотри сам;)

if (($flag == "C") and ($ops[1] == "10") and ($el[1] == "10")) {

$arpip = exec("arp -s $ip $mac", $ok) or die("assss");

}




}

?>

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...