Парсинг текстового файла в скрипт для фаервола.

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Raven_kg
рядовой
Сообщения: 46
Зарегистрирован: 2009-11-30 9:38:35
Контактная информация:

Парсинг текстового файла в скрипт для фаервола.

Непрочитанное сообщение Raven_kg » 2010-05-31 7:41:47

Есть текстовый файл с описанием провайдерских подсетей, примерно следующего содержания:

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

85.115.192.0/19
212.112.96.0/19
...
на основе этого списка я строю правила для фаерволов на 2 сервера (iptables и ipfw). Но список довольно длинный, провайдеры почему-то часто модернизируются и перекидывать список вручную стало задачей не из легких. Назрел такой вопрос - как можно заставить систему делать все это саму, с помощью какого-нибудь скрипта. Просто построчно парсить текстовый файл и закидывать в другой файл, например в виде

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

$IPFW add allow ip from $EXT_IP to 85.115.192.0/19 out xmit $EXT
$IPFW add allow ip from $EXT_IP to 212.112.96.0/19 out xmit $EXT
? Посоветуйте пожалуйста как можно это реализовать (желательно с примерами, т.к. я в скриптах пока слаб).

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Парсинг текстового файла в скрипт для фаервола.

Непрочитанное сообщение skeletor » 2010-05-31 8:54:01

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

#!/bin/sh

while read myline
do
  echo "\$IPFW add allow ip from \$EXT_IP to $myline  out xmit \$EXT" >> /etc/fire.wall
done < inputfile
где inputfile - файл с адресами по одному в каждой строчке, а /etc/fire.wall - файл с уже готовыми правилами.


Аватара пользователя
gonzo111
лейтенант
Сообщения: 648
Зарегистрирован: 2007-11-15 16:32:33
Откуда: China
Контактная информация:

Re: Парсинг текстового файла в скрипт для фаервола.

Непрочитанное сообщение gonzo111 » 2010-05-31 17:12:22

только совет не совсем верный
надо юзать скриптом не правила, а таблицы Люк
ipfw table number add addr[/masklen] [value]
ipfw table number delete addr[/masklen]
ipfw table {number | all} flush
ipfw table {number | all} list

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

$IPFW add allow ip from $EXT_IP to table(1) out xmit $EXT

#!/bin/sh

for myline in ./file_ip.txt
do
  $IPFW table(1) add  $myline/
done 
тут глянь еще
http://forum.lissyara.su/viewtopic.php? ... 32&start=0

без таблиц будет тупняк если правил будет много
Тяжело в учении легко в РАЮ!
беру зарплату гречкой и сахаром...
Наша комната - lissyara.su@conference.jabber.ru