Биллинговая система Nodeny
22 Ноября 2024, 17:59:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Таблицы в ipfw  (Прочитано 7184 раз)
HEDG_SS
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 48


Просмотр профиля
« : 27 Мая 2011, 09:18:39 »

Здравствуйте.
Есть ли в Nodeny каой-то механизм, чтоб автоматически забивать в определенную таблицу из файла со списком ip?
Аналогично, как это делается при добавлении списка подсетей в какое то направление.
Добавление должно быть из указанного  файла в таблицу с нужным номером без привязок к направлениям.
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #1 : 27 Мая 2011, 09:31:07 »

Нет, такого нет. Но есть решение в одну сроку:
Код:
ipfw table 100 flush && grep -E '^([0-9]+\.){3}[0-9]+$' file.with.ips|while read ip;do ipfw table 100 add $ip; done
Записан
HEDG_SS
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 48


Просмотр профиля
« Ответ #2 : 27 Мая 2011, 09:42:29 »

Спасибо!
Записан
blackjack
NoDeny
Старожил
*

Карма: 24
Offline Offline

Сообщений: 352


Просмотр профиля Email
« Ответ #3 : 27 Мая 2011, 11:34:46 »

делаем файл в таком формате

table 100 add 192.168.1.2
table 100 add 192.168.1.3

а потом скармливаем файл ipfw

ipfw /home/admin/file.txt
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #4 : 27 Мая 2011, 11:36:01 »

irrational Подмигивающий
Ну можно так:
Код:
sed -e 's/^[^0-9]//' -e 's/^\(\([0-9]*\.\)\{3\}[0-9]*\)$/table 101 add \1/' /tmp/lol.txt >/tmp/lol1.txt && ipfw /tmp/lol1.txt
В файле /tmp/lol.txt лежат только ИПЫ, а в lol1.txt уже преобразованный под IPFW список
Но это 2-а файла (много места не бывает)
« Последнее редактирование: 27 Мая 2011, 11:49:29 от 0xbad0c0d3 » Записан
HEDG_SS
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 48


Просмотр профиля
« Ответ #5 : 27 Мая 2011, 13:10:28 »

сделал немного по другому...
добавил в nofire.pl
Код:
$pass_table="/path/to/dir/";
...
sub Flush
{
...
 file2tab('.ssh','100');   # SSH
 file2tab('.bad_net','101'); # BAN
}
sub file2tab
{
# file2tab ($pass_table.file,num_table)
   my $f="$pass_table$_[0]";
   my $t=$_[1];
   if (-r $f)
    {
       open(F,"< $f");
        &Add_Rule("table $t flush");
       while(<F>)
       {
           if ($_ =~ m:$ip_template:)
           {
                my $ip="$1$2";
                &Add_Rule("table $t add $ip");
            }
        }
    }
}

Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #6 : 27 Мая 2011, 13:23:22 »

Это конечно решение но не true-way т.к. пройдет время и ты забудешь что у тебя там было и когда обновится биллинг (если обновится) то все пропадет. Не беда конечно, но все же.
Записан
HEDG_SS
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 48


Просмотр профиля
« Ответ #7 : 27 Мая 2011, 13:31:35 »

Вряд ли...
У меня он все равно не стандартный, по этому при обновлении это все равно будет учитываться...
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #8 : 27 Мая 2011, 14:17:34 »

Ну я и не предлагаю свое решение как единственно верное. Но чаще всего оно будет проще и более изящнее. Все зависит от целей.
Записан
HEDG_SS
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 48


Просмотр профиля
« Ответ #9 : 27 Мая 2011, 14:24:46 »

Полностью согласен Улыбающийся, каждый выбирает вариант, который ему ближе ...
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!