top
logo


Как в PfSense добавить RDR правило вручную ( в конфиг / файл ) PDF Печать E-mail
Автор: adm   
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 или файрвола.

 

 


{jcomments on}
Последнее обновление 08.02.12 11:50
 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика