Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Если файл конфигурации еще не существует, он создается и добавляется правилом с номером «$count_startnum + 1». Если же файл существует, то происходит проверка на наличие в нем пользователя с именем «$username», и в случае, если такой пользователь есть, выбирается имя соответствующего правила. Если пользователя нет, он добавляется с номером правила, вычисленным на основе числа строк в файле (очень просто, но именно это накладывает описанные выше ограничения). Переменная $username_prefix добавляется в файл конфигурации перед именем пользователя, то есть если она равна «_», то название правила изменится с username на _username, что существенно облегчит выборку и сортировку результатов подсчета трафика командой ipastat.

Непосредственное взаимодействие с ipa производится в двух случаях: когда добавляются пользователи, ipa посылается сигнал HUP, а когда правило удаляется из таблицы ipfw, происходит сброс накопленной информации командой «ipa -k dump».

В приведенном только что скрипте главное – не запутаться в переменных. Скрипту в качестве параметров передаются «$action $username», которые внутри него становятся соответственно $1 и $2. Так же ведет себя функция ipa_add_user, которая располагает переданные «$2 $usernum» в порядке поступления, $1 и $2. Внутренние переменные awk обозначаются так же, но содержат поля входного потока. Чтобы частично устранить путаницу, сначала переменным даются соответствующие алфавитные имена, а затем уже они используются по назначению.

Функция printf позволяет форматировать текст при выводе, например добавлять в строку переносы « ». Комбинация команд grep, head и tail, где для первой номер строки вычисляется с помощью expr, позволяет выделить из файла одну строку, из которой awk выделяет номер правила. В другом варианте (правила еще нет) количество строк в имеющемся файле подсчитывает команда «wc -l».

Как только получен номер правила, остается лишь добавить его в таблицу ipfw. Всевозможные проблемы несовместимости уже имеющегося набора правил и того набора, что модифицируются скриптом count_ipfw, проявляются именно на этом этапе. Написать сразу что-то более-менее универсальное практически невозможно, поэтому скрипт рассчитан только на один стандартный тип настройки ipfw: OPEN.

Для этого нужно указать в /etc/rc.conf:

firewall_enable="YES"

firewall_type="OPEN"

 

Кстати, если в вашем ядре еще нет поддержки ipfw, совсем необязательно его перекомпилировать. Достаточно загрузить соответствующий модуль, и чтобы загрузка выполнялась автоматически при каждом старте системы, добавить соответствующую строку в /boot/loader.conf (за примерами – в /boot/defaults/loader.conf). Если эти манипуляции производятся на удаленном сервере, не забудьте о мерах предосторожности.

Команда «ipfw show» при настройках ядра (или модуля) по умолчанию покажет следующее:

# ipfw show

 

00100        0           0 allow ip from any to any via lo0

00200        0           0 deny ip from any to 127.0.0.0/8

00300        0           0 deny ip from 127.0.0.0/8 to any

65000        0           0 allow ip from any to any


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2016 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100