Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [РЕШЕНО] Периодически обрывается соединение к WiFi DWA-525 adhoc  (Прочитано 4852 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Тогда скрипт программа.
Пример
ловить
arp -a
? <= мак адрес 00:xx:xx:xx:xx:xx.
И иптаблес
iptables -A FORWARD -m mac --mac-source 00:xx:xx:xx:xx:xx -j DROP
бан
----------------------------
iptables -D FORWARD -m mac --mac-source 00:xx:xx:xx:xx:xx -j DROP
открыть
Wars ~.o

Оффлайн ___WereMax___

  • Автор темы
  • Участник
  • *
  • Сообщений: 200
  • Бубен -самая нужная вещь СИС-админа
    • Просмотр профиля
Написал скрипт для добавления в бан по МАК адресу, если его IP выше заданного диапазона.
Добаил защиту от повторного бана (если соединение еще не оборвалось)
#!/bin/bash
iface=wlan0 #интерфейс, который необходимо проверять
TIME=60 #Время ожидания между проверками
IP=192.168.1. #Неизменные цифры IP адреса (только для сети класаа С)
frIP=3 #Последняя цифра "Своих" IP адресов. Все адреса с большим числом будут заносится в БАН
file=/home/weremax/banlist #путь к файлу, где указываются адреса, внесенные в БАН
count=3 #колличество проверочных пакетов
UID_ROOT=0 # UID пользователя "ROOT"
###############################################################################################
# Проверка запущен ли скрипт с правами суперпользователя
if [ "$UID" -ne "$UID_ROOT" ]; then
echo "Для работы требуются права root"
sleep 10
exit 1
fi
# Начало бесконечного цикла
while true
do
# Начальные данные
N=2
i=0
# Начало цикла проверки всех подключенных к интерфейсу клиентов
while [ $i -eq 0 ]
do
list=(` arp -i $iface -n | sed $N'!D' | cut -c11-53`) # Создание массива об очередном юзере
if [ -n "$list" ]; then # Проверка существования данных об пользователе
echo "Клиент номер: $[$N-1]"
echo "IP адрес: $IP${list[0]}"
echo "MAC адрес: ${list[2]}"
if (( ${list[0]} > $frIP )); then # проверка принадлежности пользователя к "своим"
# Проверка внесен ли пользователь в БАН, если нет, то вносим
result=$(ping -c ${count}  $IP${list[0]} | tail -2 | head -1 | awk '{print $4}')
if [ $result -eq 0 ]; then
echo "Обнаружен чужак!!! Его MAC адрес (${list[2]}) уже записан в БАН iptables."
else echo "Обнаружен чужак!!! Его MAC адрес (${list[2]}) будет записан в БАН iptables."
echo `date` >> $file
echo ${list[2]} >> $file
iptables -A INPUT -m mac --mac-source ${list[2]} -j DROP
fi
else echo "Данный клиент является "Своим""
fi
N=$[$N+1] # Переходим к следующему пользователю текущей проверки
else echo "Проверили всех"   
i=1
fi
done
echo "Выжидаем время: $TIME секунд(ы)"
sleep $TIME # Конец цикла текущей проверки
done

Кстати.. Проблему постоянных дисконнектов и ошибок в логах решил с помощью ХРшных драйверов с родного диска... Теперь все работает, как часы.

Пользователь решил продолжить мысль 01 Июля 2011, 18:53:50:
victor00000, огромное спасибо за помошь!!!!!!
« Последнее редактирование: 01 Июля 2011, 18:53:50 от ___WereMax___ »

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.