Product: WAF
Version: 7.x
Правила межсетевого экрана
Префиксы
Имя
Описание
PASS
Разрешение трафика.
DENY
Блокировка трафика.
Условия
src.zone , src.geoip , src.ip .
dst.zone , dst.geoip , dst.ip .
time , url .
Свойства
name , desc , enabled , rule_log , reject_with .
Пример
[firewall "Firewall rules"]
% ----------------- 1 -----------------
DENY \
scenario = "Example torrent detection scenario" \
dst.zone = Untrusted \
dst.ip = lib.network("Botnets IP list") \
rule_log(session) \
reject_with("host-unreach") \
enabled(true) \
name("Example block RU RKN by IP list")
% ----------------- 2 -----------------
PASS \
scenario = "Example torrent detection scenario" \
src.zone = Trusted \
dst.zone = Untrusted \
rule_log(yes, "3/h", 5) \
enabled(true) \
name("Allow trusted to untrusted")
Правила защиты почтового трафика
Префиксы
Имя
Описание
PASS
Пропуск трафика без изменений.
DENY ("with error")
Блокировка письма, при этом сообщается об ошибке доставки письма на сервер.
DENY
Блокировка письма без уведомления о блокировке.
WARNING
Маркировка почтовых сообщений.
Условия
src.zone , src.geoip , src.ip .
dst.zone , dst.geoip , dst.ip .
user , service , envelope_from , envelope_to .
Свойства
name , desc , enabled , rule_log , mark_hdr , mark , antispam_usergate , dnsbl .
Пример
[mailsecurity "Mail Security Rules"]
% ----------------- 1 -----------------
PASS \
user = (example, "CN=VPN users,DC=LOCAL") \
envelope_from = "Email froup from" \
envelope_to = "Email froup to" \
service = SMTP \
rule_log(yes) \
mark_hdr(Subject) \
enabled(true) \
name("Mail Pass Rule")
% ----------------- 2 -----------------
DENY("with error") \
service = (SMTPS, SMTP) \
rule_log(yes) \
mark_hdr(Subject) \
antispam_usergate(yes) \
enabled(true) \
name("Mail Drop Rule")
% ----------------- 3 -----------------
DENY \
src.zone = Untrusted \
service = SMTP \
mark_hdr(Subject) \
dnsbl(yes) \
enabled(false) \
name("DNSBL spam drop rule")
% ----------------- 4 -----------------
WARNING \
src.zone = Untrusted \
service = (SMTP, POP3, SMTPS, POP3S) \
mark_hdr(Subject) \
mark("[SPAM]") \
antispam_usergate(yes) \
enabled(false) \
name("SMTP and POP3 filtering")
Правила reverse-прокси
Префиксы
Имя
Описание
OK
Всегда ОК.
Условия
src.zone , src.geoip , src.ip , src.mac .
dst.zone , dst.geoip , dst.ip .
request.header.User-Agent , url.port .
Свойства
name , desc , enabled , rule_log , profile , certificate , is_https , ssl_profile ,
waf_profile , rewrite_path .
Пример
[reverseproxy "Reverse proxy Rules"]
% ----------------- 1 -----------------
OK \
url.port = 80 \
src.zone = Untrusted \
desc("Example reverse proxy rule. This is an example rule which can be changed or deleted if necessary. ") \
profile("Example reverse proxy server") \
rewrite_path("example.com/path1", "example.local/path1") \
waf_profile("Example WAF profile") \
enabled(true) \
name("Example reverse proxy rule")
Правила балансировки reverse-прокси
Префиксы
Имя
Описание
OK
Всегда ОК.
Свойства
name , desc , enabled , profile .
Пример
[reverseproxy_balancing "Reverse proxy load balancing Rules"]
% ----------------- 1 -----------------
OK \
profile("Example reverse proxy server") \
enabled(true) \
name("Reverse-proxy load balancing")
Правила временной блокировки IP-адреса
Префиксы
Имя
Описание
DENY
Блокировка IP-адреса
Условия
http.response.code
Свойства
name , enabled
Пример
В примере для конкретного источника (условие scr.ip ) настроен подсчет количества кодов ответа 404. Если количество таких ответов за последние 30 секунд превысит 10, IP-адрес этого источника будет заблокирован на одну минуту.
def var counter_404
init = 0
window = 00:00:30
key = src.ip
end
def var block
init = 0
window = 00:01:00
key = src.ip
end
DENY var.block = 1.. log_message("Black list") enabled(true) name("Black list")
http.response.code = 404 inc(var.counter_404, 1) log_message("Incriment counter") enabled(true) name("Incriment counter")
DENY var.counter_404 = 10.. inc(var.block, 1) log_message("Enable block") enabled(true) name("Enable block")