Пишем правила для KWF

Меня часто достают вопросами про написание правил для Kerio Firewall. Ребята, все очень просто. Главное — понять принцип написания этих правил. Принцип очень простой:

  1. откуда
  2. куда
  3. по какому протоколу или порту
  4. разрешено или нет
  5. использовать NAT или нет
  6. в какое время верно

Откуда называется source. может принимать значения:

  1. host — ip адрес конкретного компьютера внутри сети
  2. ip range — диапазон ip адресов
  3. ip address group — адресная группа или группы, определенные вами при конфигурации
  4. network/mask — сеть и маска подсети, которой вы разрешаете проход в интернет
  5. network connected to interface — сеть, подключенная к интерфейсу с указанным именем. имена задаются на вкладке interfaces
  6. vpn — разрешает проход vpn-клиентам
  7. users — имя пользователя, задается на вкладке users
  8. firewall host — правило будет действительно только для компьютера, на котором установлен KWF

destination может принимать значение такие же, как source service — список сервисов, думаю там все просто и понятно action может принимать значения permit — разрешено, deny — запрещено, drop — сброшено NAT может принимать значения:

  1. no translation — не транслировать
  2. translate to ip address of outgoing interface — транслировать на исходящий интерфейс. По умолчанию — в интернет.
  3. translate to ip address of interface — транслировать адреса в адресное пространство заданного интерфейса
  4. translate to ip address — транслировать на заданный адрес

port mapping может иметь значения no translation — никак не транслировать, translate to — адрес или имя машины внутри сети, порт указывается, если нужно входящий запрос по определенному порту перебросить на порт машины с заданным адресом. временной интервал определяется на вкладке time intervals и является очень полезной функцией. Таким образом, если мы хотим разрешить, например, полный доступ из локальной сети к сети интернет всем юзерам по любому протоколу, то правило выглядит так:

source

destination

service

action

translation

valid on

локальная сеть

интернет

any

permit

nat

ваш интервал

Допустим, что мы хотим разрешить проход всем пользователям сети в интернет, но только по определенным протоколам, например http, icq, pop3, smtp тогда правило выглядит так:

source

destination

service

action

translation

valid on

локальная сеть

интернет

HTTP ICQ POP3 SMTP

permit

nat

ваш интервал

Если вы хотите, чтобы у вас не было в статистике неопознанного трафика (unrecognized users) то в поле source следует указать users, тогда только юзеры, авторизованные на файрволле, смогут проходить в интернет. Бывает, что нужно получить доступ из интернет к серверу SQL или WEB, расположенных на компьютере внутри локальной сети. Для этого нужно будет написать соответствующее правило. Для начала следует понять, что все запросы, приходящие на ваш внешний IP приходят к компьютеру, на котором установлен KWF, так как только он имеет внешний адрес, на который зарегистрирован домен. Рассмотрим ситуацию на примере моей конфигурации. На постоянный внешний IP адрес зарегистрировано имя notes.blogsite.org. Сервер, поддерживающий сайт физически, расположен внутри локальной сети и имеет адрес, например 192.168.1.2 Порт, по которому отвечает web сервер 8080. Любой запрос по адресу http://notes.blogsite.org будет приходить на файрволл, то бишь на firewall host, а оттуда он должен перенаправляться на локальную машину с адресом 192.168.1.2 на порт 8080. Правило для такого случая будет выглядеть так:

source

destination

service

action

translation

valid on

интернет

firewall host

HTTP

permit

map 192.168.1.2:8080

always

Правило сие, в переложении на русский язык, звучит так: перенаправить любой запрос из интернет по протоколу HTTP на компьютер с адресом 192.168.1.2 на порт 8080. В данном случае при указании преобразования адресов вам нужно выбрать translate to ip address и указать порт 8080. Как только вы нажмете кнопку apply ваш внутренний сервер будет виден снаружи. Аналогичным способом можно открыть любую машину по любому протоколу, будь то почтовый сервер, сервер баз данных, веб-сервер и т.д. Еще один любопытный момент. Допустим, вы разрешили проход из интренет к вашему серваку. но при обращении к доменному имени notes.blogsite.org вдруг получаете ответ "сервер не найден". Все правильно, файрволл не допускает таких вольностей. Чтобы получать доступ по доменному имени к внутренним серверам потребуется написать еще одно правило. И выглядеть оно будет так:

source

destination

service

action

translation

valid on

локальная сеть

notes.blogsite.org

HTTP

permit

NAT (подключение по локальной сети)
MAP 192.168.1.2:8080

always

То есть при создании правила трансляции вы используете translate to ip address of inteface: указываете имя интерфейса, к которому подключена локальная сеть и включаете портмаппинг на адрес вашего веб-сервера 192.168.1.2 и порт 8080. Жмите кнопку apply и наслаждайтесь, теперь ваш внутренний сервер доступен из локальной сети по доменному имени, в моем случае notes.blogsite.org Надеюсь, я доступно изложил порядок написания правил для KWF. Если у вас что то не получилось или что то не понятно — спрашивайте, отвечу.