Как в PfSense добавить RDR правило вручную ( в конфиг / файл ) Печать
08.02.12 11:41
Как в PfSense добавить RDR правило вручную ( в конфиг/ файл )

Система pfSense представляет собой полноценную ОС, оптимизированную под конкретную задачу,  с надстройков в виде WEB интерфейса. Все системные конфигурационные файлы каждый раз генерируются заново согласно настройкам в WEB интерфейсе. Поэтому все пользовательские изменения конфигурационных файлов в любой момент могут быть перезаписаны.

Иногда у пользователей pfSense возникает необходимость применения своих собственных скриптов. Для этого необходимо встроить свой собственный код в графический интерфейс pfSense. В этой статье будут рассмотрны некоторые подобные вопросы и способы их решения.

 

Пользовательские правила Firewall и NAT

Если перед Вами стоит задача генерации правил файрвола и НАТ своими скриптами, то необходимо использовать механизм обработки packages. При каждой генерации правил NAT или файрвола система ищет в каталоге /usr/local/pkg файлы INC и просматривает их на наличие специальной функции с именем filename_generate_rules($type). Функция в первой своей части должна иметь имя, совпадающее с именем INC файла. К примеру функция в файле squid.inc будет называться squid_generate_rules.

function squid_generate_rules($type) {

global $config;
switch($type) {
case 'nat':
$rules .= "\n# Setup Squid proxy redirect\n";
$rules .= "no rdr on $iface proto tcp from any to { 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 } port 80\n";
$rules .= "no rdr on $PPPOE_ALIAS proto tcp from any to { 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 } port 80\n";
break;
case 'filter':
case 'rule':
$rules .= "pass in quick on $iface proto tcp from any to !($iface) port 80 flags S/SA keep state\n";
$rules .= "pass in quick on $iface proto tcp from any to !($iface) port $port flags S/SA keep state\n";
$rules .= "\n";
break;
default:
break;
}
return $rules;
}

Аргумент функции $type входящий и может принимать значения 'nat' и 'filter' или 'rule'. Соответственно в зависимости от значения аргумента $type функция должна возвратить набор правил NAT или файрвола.

 

 

оригинал: http://iskatel.ixrad.ru/index.php/ru/pfsense/94-stati/nastrojka-pfsense/104-pravila
обсуждение: http://forum.pfsense.org/index.php/topic,45934.0.html
ссылка на материал:http://thin.kiev.ua/index.php?option=com_content&view=article&id=513:rdr&catid=50:pfsense&Itemid=81

{jcomments on}
Последнее обновление 08.02.12 11:50