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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: iptables проверка цепочки  (Прочитано 2005 раз)

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

Оффлайн WonderTalik

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
iptables проверка цепочки
« : 15 Декабря 2009, 01:44:39 »
Начал углубятся в возможности iptables и пока нигде подобного не нашел.
Значит сделал вот так:
iptables -A INPUT -s 10.7.9.6 -p tcp -j DROPТеперь при iptables -L я вижу это правило. Вопрос в том , что если я еще раз введу эту же команду у меня правило продублируется. Интересует, можно ли как-то проверять на наличие этого правила в цепочки. И если это правило уже есть, не добавлять его и тд.... Надеюсь изъяснил понятно. Жду ответа.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: iptables проверка цепочки
« Ответ #1 : 15 Декабря 2009, 03:19:56 »
Поставь задачу нормально. Какой конечный итог этого действия должен быть?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн WonderTalik

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Re: iptables проверка цепочки
« Ответ #2 : 15 Декабря 2009, 11:10:06 »
Поставь задачу нормально. Какой конечный итог этого действия должен быть?
Допустим есть вот такой скрипт который запускается по крону раз в 10 мин:
#!/bin/sh
netstat -n -p | grep SYN_REC | awk '{$5}' | awk -F: '{print $1}' | sort | uniq; netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq > badipaddr
list=`cat badipaddr`
for ip in $list; do   
/sbin/iptables -I INPUT -s $ip -p tcp -j DROP
done
В файле badipaddr список ip-шников(1 айпи на строку). И как видно с помощью
/sbin/iptables -I INPUT -s $ip -p tcp -j DROPони загоняются в iptables.
Проблема в том, что в файле badipaddr каждые десят минут может быть один и тот же айпишник. А потому в айпитаблес создаются дублирующие правила. Вопрос: как можно сделать проверку в уже существующих правилах на наличие айпи из badipaddr, если есть -  правило не добавлять. если нет - добавить правило. Надеюсь понятно изложил суть проблемы?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: iptables проверка цепочки
« Ответ #3 : 15 Декабря 2009, 11:33:26 »
Можно сделать так:

/sbin/iptables -S INPUT | /bin/grep -Fe"-A INPUT -s $ip/32 -p tcp -j DROP" >/dev/null 2>&1 || /sbin/iptables -I INPUT -s $ip -p tcp -j DROP

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: iptables проверка цепочки
« Ответ #4 : 15 Декабря 2009, 23:27:27 »
Не надо ничего проверять. Очищаешь всю цепочку и забиваешь её адресами из списка наново.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

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