Страница 1 из 1

Небольшой вопрос по IPFW

Добавлено: 2009-09-30 13:36:29
gilas
Доброго дня суток!

Спустя некоторое время работы, мой сервер стали брутить и сканировать разными способами. Помимо этого "китайцы" нагоняют нехилый трафик, посему было решено забанить нафиг весь Китайский диапазон. Диапазон был найден, сохранен в текстовой файл вида:

пример
0.0.0.0/24
0.0.0.0/24
0.0.0.0/24
0.0.0.0/24


Собственно сам вопрос, каким образом передлать скрипт запуска правил ipfw так, чтобы не пришлось вставлять весь этот огромный диапазон в основной скрипт правил, возможно ли брать весь китайский диапазон из файла средствами ipfw? Извиняюсь если такая тема уже поднималась.. :bn:

Re: Небольшой вопрос по IPFW

Добавлено: 2009-09-30 14:27:58
schizoid
используйте таблицы

Re: Небольшой вопрос по IPFW

Добавлено: 2009-10-01 8:34:26
mediamag

Код: Выделить всё

${fwcmd} table 1 add 10.0.0.0/24


и т д

Re: Небольшой вопрос по IPFW

Добавлено: 2009-10-01 13:47:05
gilas
Было бы корректней задать вопрос сразу же про таблицы, никак не соображу как ими пользоваться... :st:

Предположим есть несколько масок.

mediamag писал(а):

Код: Выделить всё

${fwcmd} table 1 add 10.0.0.0/24


и т д

Такое нужно писать в главный скрипт с правилами ipfw ? но тогда отпадает необходимость использовать эти самые таблицы. Может чего-то не понимаю, но в чем отличие этого правила (в моем случае с необходимостью блокировать адреса)

Код: Выделить всё

${fwcmd} table 1 add 10.0.0.0/24
от этого

Код: Выделить всё

${fwcmd} add deny ip from 10.0.0.0/24 to any
Зачем тогда эти таблицы если можно по старинке "ручками" блокировать определенные адреса? Попытаюсь еще раз спросить у гуру - есть ли возможность указать что-то вроде пути к файлу с black-list адресами и применять к ним какие-то правила или одно правило в ipfw? Если туплю, просьба не бить :"":

Re: Небольшой вопрос по IPFW

Добавлено: 2009-10-01 14:40:43
mediamag
так вы пишете каждое правило снова, а в моем случае только таблицу указываете..больше отличий нет...вроде как есть возможность хавать скрипту фаера данные из внешних файлов, но зачем???? что в файлике что в таблице вам придется вносить ручками эти адреса....так не проще ли посоздавать таблицы в самом конфиге фаера?

Re: Небольшой вопрос по IPFW

Добавлено: 2009-10-01 14:58:32
gilas
mediamag писал(а):так вы пишете каждое правило снова, а в моем случае только таблицу указываете..больше отличий нет...вроде как есть возможность хавать скрипту фаера данные из внешних файлов, но зачем???? что в файлике что в таблице вам придется вносить ручками эти адреса....так не проще ли посоздавать таблицы в самом конфиге фаера?
нужно забанить:
10.0.0.0
192.168.0.0

Вы предлагаете:

${fwcmd} table 1 add 10.0.0.0/24
${fwcmd} table 1 add 192.168.0.0/24

какое же отличие от моего варианта? С файлом бы вот узнать как работаем ipfw, это легче в моем случае. например есть место, где ведетсся блек-лист, предположим он лежит на http сервере. "Курлим" его в опред место, по крону запускаем скрипт ipfw - получается автоматизированный способ забанивания ненужных адресов. Остается только узнать как это реализовать на стороне ipfw :-o

Re: Небольшой вопрос по IPFW

Добавлено: 2009-10-01 15:38:46
schizoid
готовите файл вида

Код: Выделить всё

93.80.136.123
93.80.139.176
93.80.146.184
93.80.149.137
93.80.33.172
93.80.51.129
93.80.51.224
93.84.225.202
93.85.41.150
ну или подсети, разницы нет

далее в сам фаер вставляете скрипт:

Код: Выделить всё

      # Portsentry
        for p in `cat /usr/local/etc/portsentry.history | awk '{print $6}'| awk -F / '{print $2}'|sort| uniq`
        do
        ${fwcmd} table 6 add $p
        done
где cat /usr/local/etc/portsentry.history - э то у меня файл истории portsentry, если у вас формат файла так, как я выше показал. тто цикл будет выглядеть так:

Код: Выделить всё

      # Portsentry
        for p in `cat /usr/local/etc/FILE_WITH_BLOCK_ADDRESS `
        do
        ${fwcmd} table 6 add $p
        done
ниже вставляете правило в фаервол:

Код: Выделить всё

      ${fwcmd} add deny log all from 'table(6)' to any
это первый этап, при старте системы или при передергивании правил фаервола.
если вы хотите по крону обновлять таблицы, то сделайте отдельный скрипт вида:

Код: Выделить всё

 
        ipfw table 6 flush
        for p in `cat /usr/local/etc/FILE_WITH_BLOCK_ADDRESS `
        do
        ${fwcmd} table 6 add $p
        done
ну а правило блокируущее в фаерволе остается.