Ru-Board.club
← Вернуться в раздел «Программы»

» WIPFW / IPFW

Автор: biomednet
Дата сообщения: 17.03.2005 12:04
Главная ссылка проекта http://wipfw.sourceforge.net
WIPFW - MS Windows действующая версия известного IPFW для РТА FreeBSD. Вы можете использовать те же самые функциональные возможности и конфигурировать это как, только Вы работаете с IPFW. Проект wipfw представляет собой, похожий по синтаксису с FreeBSD ipfw, интерфейс для управления пакетным фильтром Windows 2000/XP/2003. Из функциональности в первых версиях отсутствует возможность ограничения трафика, форвадинга и некоторые другие специфичные функции появившиеся в последнее время во FreeBSD.

IPFW - фильтрация пакета и система учета, которая постоянно находится в kernelmode, и имеет утилиту управления user-land control, ipfw. Вместе, они позволяют Вам определять и сделать запрос правил, используемых ядром в его решениях маршрутизации.

Есть две связанных части к ipfw. Раздел межсетевой защиты выполняет фильтрацию пакета. Есть также IP, считающий раздел, который прослеживает использование маршрутизатора, основанного на правилах, подобных используемым в разделе межсетевой защиты. Это позволяет администратору контролировать, сколько трафика маршрутизатор добирается от определенной машины, или сколько трафика WWW это отправляет, например.

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

Автор: Polikus
Дата сообщения: 16.11.2005 14:09
Говорят рульная вещь. Хотел бы узнать где почитать что-нибудь на русском про него.
Автор: eshil
Дата сообщения: 15.01.2006 21:07
Подскажите как правильно его настроить для модемного соединения сколько пробовал все выдает ошибку sh.exe "Память не м.б. writen" Заранее благодарен
Автор: dariusii
Дата сообщения: 22.04.2006 20:19
Polikus


Цитата:
Говорят рульная вещь. Хотел бы узнать где почитать что-нибудь на русском про него.


Первая ссылка

Вторая ссылка

Третья ссылка

четвертая ссылка

Автор: dariusii
Дата сообщения: 23.04.2006 03:05
И, кстати. Как же так!

http://wipfw.sourceforge.net/doc-ru.html

Только, я никак понять не могу, как обзывать сетевой интерфейс в винде. eth0 же не назовешь

А хелпы везде на /dev/** синтаксис имен
Автор: GOODmen
Дата сообщения: 24.04.2006 09:54
Подтверждаю, рульная вещь Ставил Kerio Winrout 6.2.0, тоже ничего, но тормозит. Вернулся обратно на wipfw

Добавлено:

Цитата:
eth0 же не назовешь

почему же? именно так и зовется
Автор: c00ker
Дата сообщения: 24.04.2006 12:55
документация в процессе перевода. Интерфейсы там так и обзываются. Список интерфейсов можно посмотреть с помощью команды enum ( то есть ipfw enum)
Автор: dariusii
Дата сообщения: 24.04.2006 15:47
А что за 0'й порт светится, даже, когда все закрываешь? Кто-нибудь знает?
тот же nmap стойко его показывает, если сканить с другой машины.
Автор: 174bpm
Дата сообщения: 04.07.2006 01:03
есть сумбурная инструкция по настройке:
гугль://евсюков+денис+"lada.talk"OR"lada.soft"
Автор: dvsx
Дата сообщения: 18.07.2006 10:10
Вопрос встал можно-ли ставить wipfw на сервер.
Автор: GOODmen
Дата сообщения: 18.07.2006 10:59
dvsx
можно
Автор: dvsx
Дата сообщения: 18.07.2006 14:45
Я имел ввиду целесообразность данного шага, попробую перефразировать вопрос немного.
Надежно-ли ставить WIPFW на сервер.

ps. написано на оффсайте что NAT он не поддерживает, т.е.я так понимаю фильтрацию по нату он не поддерживает, но вообще существованию NAT'а на машине, на которой находится он припятствует или нет. т.е. после его установки иными средствами можно-ли будет реализовать поддержку и прочиевозможности NAT'а
Автор: GOODmen
Дата сообщения: 19.07.2006 06:18
Хм, не скажу точно. Было время, стоял сабж и Usergate (порт-маппинг, etc). Работало. С Kerio уже нет. То есть если НАТ не средствами второго фаера, то имхо без проблем.
Автор: Engaged Clown
Дата сообщения: 07.08.2006 18:59
Привет всем. У меня wipfw 0.2.8 + qtfw 0.5

Как я понимаю , во фронтенде qtfw есть возможность сохранять настройки фильтрации (Repository --> Save/Load)

Самому довольно сложно будет написать все правила для фильтрации, думаю кто-то это уже делал до меня. Поэтому просьба - если у кого-то найдётся множество правил , сохраните и выложите куда-нибудь. Интересует множественные ограничения (блокировка входящих ICMP, исходящих DNS и тд)

Заранее спасибо.
Автор: dariusii
Дата сообщения: 07.09.2006 20:09
Так, кто-нибудь может сказать, с фига он, в любом случае, оставляет открытым нулевой порт?
Автор: c00ker
Дата сообщения: 07.09.2006 21:24
нулевых портов не существует ) может ты сканишь сам себя через интерфейс обратной петли?
Автор: dariusii
Дата сообщения: 07.09.2006 22:04
c00ker

Да. Чуток давно это было. Просто вспомнил этот момент. Видимо, ошибся.

Еще одна ссылка. В основном, правила. Читаем последний пост/

Но бывает так, что ссылки умирают. Поэтому, выкладываю тот текст сюда. Будут нарекания - удалю этот текст.
Просто, сам часто сталкивался с тем, что ссылки умирают. лучше не выпендриваться ссылками, а сделать, имхо, проще - выложить содержимое. выкладываю, как есть:

Евсюков Денис 30.05.2006 16.25
Настройка wipfw, консольный фаервол под windows, портированный из FreeBSD


Скачать можно здесь:
wwwhttp://wipfw.sourceforge.net/

[more]
Евсюков Денис 30.05.2006 16.25
Настройка wipfw, консольный фаервол под windows, портированный из FreeBSD

[i]
Установка очень проста. Нужно распаковать в любую папку
содержимое архива и затем запустить один из предлагаемых скриптов
install. Есть два скрипта, каждый из которых создан для задания
определенного действия по умолчанию. Есть скрипт разрешающий (т.е. если
в правилах что то не блокировано, то значит разрешено) и запрещающий
(наоборот, если явно не разрешено, значит блокировать), я уже по
привычке, вынесенной из аутпоста выбрал режим блокирования,
соответственно нужно прописывать разрешающие правила...

После запуска скрипта он прописывает пути в реестр, чтобы помнить, куда
его поставили и прописывает программу как сервис в системе, после чего
производит запуск установленного сервиса. В памяти программа занимает
очень мало, порядка 2 мегабайт в оперативной памяти и порядка 400–500 килобайт в
виртуальной памяти... С аутпостом не сравнить конечно, но у нас нет
интерфейса к программе и сама программа не контролирует работу
приложений в системе. Точнее интерфейс написан уже создателями самого
фаервола, но он идет отдельно. Данный интерфейс
служит только для создания правил работы, и не позволяет мониторить
работу фаервола. А по поводу второго вопроса хочется сказать, что фаер пришел из
среды FreeBSD, в которой так же как в Linux не производиться контроль за
работающими приложениями и основная задача фаервола – защита
машины от атак извне. Все остальное зависит от пользователя и от программ по борьбе
с троянами и вирусами...

Итак, программа установлена, теперь пришла пора настройки. Настройка
производиться путем правки файла rc.wf. Нужно править именно этот файл, т.к. он запускается
при запуске системы и конфигурирование производиться именно им. Я
пробовал создавать свой скрипт конфигурации системы, типа файла .bat, он
производит настройку, но только на время работы компьютера, после
перезагрузки все изменения теряются. Чего не происходит в случае правки
данного файла...

Запуск скрипта производиться с помощью файла sh.exe, это порт командного
процессора из FreeBSD, поэтому в начале файла требуется описание
программы, которая используется для обработки данного скрипта.
Если в начале строки стоит знак # – значит все что идет дальше по строке
является комментарием...

#!/bin/sh
#
#

Далее прописываем переменную для уменьшения кода, данная переменная
содержит вызов фаера с командой добавления правила

cmd="./ipfw add"

Для изменения правил нужно эти правила сначала очистить, а потом уже по
новой прописать, поэтому очищаем все правила...

# First flush the firewall rules
./ipfw -q -f flush

Разрешаем все сетевые пакеты на локальной машине...

#Localhost rules
$cmd pass all from any to any via lo*

Теперь задаем основное правило, т.е. программу мы поставили в режиме
блокировки, и теперь нам надо разрешать то, что нужно. Для себя я выбрал
режим разрешить все себе (т.е. все исходящие разрешены) и открыть порты
для входящих соединений в определенных сервисах...

#Для начала разрешаем все нам самим
$cmd allow all from me to any

Теперь разбираемся с пингом. Аутпост использует режим невидимости и в то
же время позволяет пинговать нам самим... Выберем тот же режим и здесь.
Напоминаю, что исходящие уже разрешены, поэтому прописываем только
входящие. У пинга есть несколько типов пакета, и все зависит от типа
пакета. Есть пакеты типа запрос, ответ, и т.п. Нам нужно разрешить
только ответ от нашего запроса и соответственно запретить запрос...

# ICMP разрешаем пинг...
$cmd allow icmp from any to me icmptypes 0,3,4,11 in

Далее я думаю понятно... Разрешаем те порты для входящих, сервисы
которых как мы предполагаем будут работать на машине, включая http, мыло
и все остальное... Если этого не сделать, то запрос мы отправим, а вот
получить ответ уже не сможем и тем самым сервис работать просто напросто
не будет...

# Разрешаем получать IPшники по DHCP
$cmd pass udp from any 68 to any 67
$cmd pass udp from any 67 to any 68

# Разрешаем DNS
# DNS
$cmd allow tcp from any to any 53
$cmd allow tcp from any 53 to any
$cmd allow udp from any to any 53
$cmd allow udp from any 53 to any

# Разрешаем входящие ftp, ssh, email, tcp-dns, http, https, pop3, pop3s
(если вы чем либо из этого не пользуетесь то убираем то что не нужно...)
$cmd allow tcp from any 20,21,22,25,80,123,443,110,119,995 to me
$cmd allow tcp from any 5223,8010,8080 to me

# Разрешаем входящие сервера времени
$cmd allow udp from any 13,37,525 to me
$cmd allow tcp from any 13,37 to me

В АИСТе (интернет-провайдер г. Тольятти) используется технология VPN соединений для установления
интернет-соединений, она подразумевает использование прокола gre,
который не завязан на определенный порт, поэтому прописываем правило для
ip не используя указание порта. Для большей безопасности разрешаем
установку соединения только с сервером АИСТа (192.168.0.1)...

# VPN разрешаем vpn тунель
$cmd allow ip from 192.168.0.1 to me

Для работы с ослом (имеенно в режиме High ID), требуется при установке
соединения позволить серверу соединение по любым портам, т.к. сервер при
соединении проверяет порты, и если тот порт, что он проверяет будет
недоступен, то он дает вам low id, что сказывается на способности
качать... Поэтому серверу разрешаем соединения по всем портам, и
открываем порты осла 4662 и 4672 для остальных. Я открыл порты и tcp и
udp хотя сейчас сеть kad не используется, на всякий случай, по сути порт
4672 можно и не прописывать, на работе это никак не скажется...

# Разрешаем осла
$cmd allow tcp from 81.28.160.141 to any
$cmd allow tcp from any to any 4662
$cmd allow udp from any to any 4672

У меня стоит модем Zyxel P660-R, он внешний и я управляю его работой по
телнету и получаю все его события (логи) по snmp протоколу, которые
нужно разрешить... 10.0.0.1 – это ип-адрес модема...

# Разрешаем snmp
$cmd allow udp from 10.0.0.1 to any 162,514

# Разрешаем telnet
$cmd allow tcp from 10.0.0.1 23 to any

Ну и резрешаем порты для работы ирк-сервера...

# Разрешаем IRC...
$cmd pass tcp from any to any 6667–6669
$cmd pass tcp from any 6667–6669 to any

Собственно все. Все сервисы работают. И работают отлично. Причем
работают так же и ssl и https, они включены в список...

Я проверял эффективность работы фаера на внешних серверах, сканирующих
порты и выявляющих уязвимости, все сервера сказали, что все порты
защищены, уязвимости нет... И это при том условии, что расходуется
минимум памяти, минимум процессорного времени и при всем этом прога еще
распространяется по лицензии FreeBSD, т.е. бесплатно...

После данного эксперимента я решил остаться именно на этом фаерволе...

Так выглядели правила фаервола в первой редакции, и с тех пор я немного
доработал правила, чем сейчас делюсь с Вами...

Я буду рассмартивать только те части, что претерпели изменения, все
остльное просто вырезал...

# Разрешаем входящие ftp, ssh, email, tcp-dns, http, https, pop3, pop3s
$cmd allow tcp from any 22,25,80,123,443,110,119,995 to me established
$cmd allow tcp from any 143,993,3128,5223,8010,8080,8081 to me established
$cmd allow tcp from 81.28.160.194 32000 to me established
$cmd allow tcp from any 20,21 to me

Итак, во первых к правилам добавляем пукт established, он означает
требование в каждом пакете содержать биты RST или ASK, т.е. входящие
пакеты будут приниматься только в том случае, если был запрос от Вас
самих... Именно поэтому порты фтп вынесены отдельно, с данным условием
фтп не работает... Добавились порты работы с прокси серверами, ssl почты
и добавлено правило для работы с веб-интерфейсом почты автограда...

Здесь все понятно из комментариев, опять же подключения только как ответ
на запрос пользователя...

# Разрешаем получение ключей PGP с серверов
$cmd allow tcp from any 389,11371 to me established

# Разрешаем входящие сервера времени
$cmd allow udp from any 13,37,525 to me
$cmd allow tcp from any 13,37 to me

Доработано правило для организации VPN соединений, спасибо большое Илье
Котлярову за подсказку! Теперь вместо открытия всего трафика с сервера,
открываем подключения только для нужных протоколов и портов...

# VPN разрешаем vpn тунель
$cmd allow 47 from 192.168.0.1 to me
$cmd allow tcp from 192.168.0.1 1723 to me

Правила для осла претерпели существенные изменения... Добавлены правила
позволяющие работу с любыми портами, обращающимся к нашему 4662 и
наоборот, при этом все «опасные» порты прикрыты... Соединение теперь
стабильное, всегда High ID, и количество соединений максимально, потерь
нет... 81.28.160.141 – сервер осла.

# Разрешаем осла
$cmd allow udp from 81.28.160.141 4665 to any
$cmd allow tcp from any 1024–65535 to any 4662
$cmd allow tcp from any 4661,4662 to any 1024–65535
$cmd allow udp from any to any 4672

И теперь самое главное, очень удобно логировать то, что было запрещено,
для этого переписываем правило по умолчанию с параметром log. После
чего, все пакеты deny фиксируются в файлах типа wipfw20060527.log в
каталоге C:\WINDOWS\security\logs\
И теперь, если после настройки фаера у вас како-нить сервис не работает,
смотрите файл wipfw(сегодняшняядата).log, где фиксируете по времени
обращения, какие порты были закрыты и почему, после чего уже намного
легче исправлять или добавлять новые правила...
Вот строка для логирования блокированных пакетов:

# Log denny all
$cmd drop log all from any to any

Если будут замечания, буду рад Вас выслушать... [/more]

Добавлено:
Правда, после его правил, у меня перестал работать ход на 80е порты (my > any 80)
Хотя, я и не нашел, что бы у него это было разрешено. То есть, оно-то разрешено, но входящие с таких серверов на безопасные 1025-65535 не созданы у него.

А если он это проглядел, то вероятно, что мог проглядеть и много чего еще..
Статья не сильная, в общем.
Просто в данном топике вообще ничего нет.
Автор: bredonosec
Дата сообщения: 11.09.2006 11:17
dariusii

Цитата:
Поэтому, выкладываю
неужели надо напоминать
[no][more=статья]полный текст[/more][/no]


Добавлено:
но за статью всё равно спасибо
Автор: dariusii
Дата сообщения: 23.09.2006 13:35
bredonosec

исправил
млин. неудобно читать стало...
ну, надо, так надо..
Автор: dariusii
Дата сообщения: 24.09.2006 00:58
Кстати, разобрался с настройками. Просто был невнимателен, когда читал.

все Ваботает
Автор: dariusii
Дата сообщения: 24.09.2006 22:30
никак не найду, где расписаны правила по "remote desktop". То, что я должен раскрыть выход на удаленный порт 3389, понятно. Но какие порты должны быть раскрыты из входящих!!!

telnet xxx.xxx.xxx.xxx 3389

смотрю лог

..
ipfw: 2100 Deny TCP xxx.xxx.xxx.xxx:3389 yyy.yyy.yyy.yyy:1986 in via eth0

входящий порт постоянно разный

походил по форуму. нихрена путного не нашел, по правилам
Автор: BrainOff
Дата сообщения: 24.09.2006 23:07
а поддержка ARP есть? я где-то читал, что обрезали.. самому посмотреть пока руки не доходят, хотя очень надо
Автор: dariusii
Дата сообщения: 25.09.2006 05:00
BrainOff

Поищи на Opennet. Там где-то обсуждали этот вопрос. Точно не упомню, но именно по wipfw тема...

########

Неплохая подборка правил по ipfw:http://forums.whirlpool.net.au/forum-replies-archive.cfm/493621.html

Зная, как теряются линки, выкладываю снимок содержимого той ссылки.

[more=FreeBSD Firewall...]# Statistics for incoming and outcoming packets through iinet
#Global Send packets
$cmd 510 count ip from any to any out via $pif
#Global Receive packets
$cmd 520 count ip from any to any in via $pif

#$cmd 530 check-state

#iinet
# Allow all connections that I initiate.
$cmd $skip tcp from any to any out xmit $pif setup
# Once connections are made, allow them to stay open.
$cmd $skip tcp from any to any out xmit $pif established
$cmd allow tcp from any to any in recv $pif established

#Allow all traffic to VoIP machine
#Allow ping
$cmd allow icmp from any to $voip in recv $pif
$cmd allow icmp from $voip to any out xmit $pif
#Allow traceroute with 255 hops max in and out
$cmd allow udp from any to $voip 33434-33689 in recv $pif
$cmd allow udp from $voip to any 33434-33689 out xmit $pif
#Allow ssh
$cmd allow tcp from any to $voip 22 in recv $pif setup
$cmd allow tcp from any to $voip 80 in recv $pif setup
#IAX2 port
$cmd allow udp from $voip 4569 to any out xmit $pif
$cmd allow udp from any to $voip 4569 in recv $pif
#IAX port
$cmd allow udp from $voip 5036 to any out xmit $pif
$cmd allow udp from any to $voip 5036 in recv $pif

#SIP ports
$cmd allow tcp from any to $voip 5060-5070 in recv $pif setup
$cmd allow tcp from any to $voip 5190 in recv $pif setup
$cmd allow tcp from any to $voip 5298 in recv $pif setup
#Allow UDP for SIP
$cmd allow udp from $voip 5060-5070 to any out xmit $pif
$cmd allow udp from any to $voip 5060-5070 in recv $pif
$cmd allow udp from $voip 10000-20000 to any out xmit $pif
$cmd allow udp from any to $voip 10000-20000 in recv $pif
#Allow all local traffic to VOIP (shouldn't be necessary until we put a different network card)
$cmd allow ip from 192.168.0.1/16 to $voip
$cmd allow ip from $voip to 192.168.0.1/16

# Deny everything else
$cmd deny log ip from $voip to any via $pif
$cmd deny log ip from any to $voip via $pif

#VPN server
$cmd allow tcp from any to 192.168.0.1 1723 in recv $pif setup
$cmd allow gre from any to any in recv $pif
$cmd $skip gre from any to any out xmit $pif

#Allow traffic on VPN connections ng0 to ng5
$cmd allow all from any to any via ng0
$cmd allow all from any to any via ng1
$cmd allow all from any to any via ng2
$cmd allow all from any to any via ng3
$cmd allow all from any to any via ng4
$cmd allow all from any to any via ng5

# Everyone on the internet is allowed to connect to the following
# services on the machine.
#SSH server on server1 and gateway
$cmd allow tcp from any to 192.168.0.3 22 setup in recv $pif setup
$cmd allow tcp from any to 192.168.0.1 22 setup in recv $pif setup
#mail server is on 192.168.0.3/4/5
$cmd allow tcp from any to 192.168.0.5 25 in recv $pif setup
$cmd allow tcp from any to 192.168.0.5 8025 in recv $pif setup
$cmd allow tcp from any to 192.168.0.5 465 in recv $pif setup

#LDAP
$cmd allow tcp from any to 192.168.0.5 636,389 in recv $pif setup
#COURIER-IMAP
$cmd allow tcp from any to 192.168.0.5 8110,8143,8993,8995 in recv $pif setup
$cmd allow tcp from any to 192.168.0.3 8110,8143,8993,8995 in recv $pif setup

#Web server is on 192.168.0.3 for iinet
$cmd allow tcp from any to 192.168.0.3 80 in recv $pif setup
$cmd allow tcp from any to 192.168.0.3 8180 in recv $pif setup
$cmd allow tcp from any to 192.168.0.3 8080 in recv $pif setup
#SSL Web server is on 192.168.0.3
$cmd allow tcp from any to 192.168.0.3 443 in recv $pif setup
#SSL Web server is on 192.168.0.6
$cmd allow tcp from any to 192.168.0.6 443 in recv $pif setup
#Secure POP server is on 192.168.0.5
$cmd allow tcp from any to 192.168.0.5 pop3s in recv $pif setup
#Secure IMAPs server is on 192.168.0.5
$cmd allow tcp from any to 192.168.0.5 imaps in recv $pif setup
#Secure IMAP server is on 192.168.0.3
$cmd allow tcp from any to 192.168.0.5 imap in recv $pif setup
##Servlet/Tomcat
#$cmd allow tcp from any to 192.168.0.5 8080 in recv $pif setup
#$cmd allow tcp from any to 192.168.0.5 80 in recv $pif setup
#$cmd allow tcp from any to 192.168.0.5 8443 in recv $pif setup
#$cmd allow tcp from any to 192.168.0.5 8180 in recv $pif setup

#Allow CISCO VPN connection
$cmd allow udp from any to 192.168.0.1/23 500,10000,20001
$cmd $skip udp from 192.168.0.1/23 to any 500,10000,20001
$cmd allow esp from any to any
$cmd divert 8669 ip from any to any in recv $pifvpn

#Only allow ssh to TI-CVS so far
$cmd $skipvpn tcp from me to any 22 setup via $pifvpn keep-state
$cmd $skipvpn tcp from 192.168.0.0/23 to any 22 setup via $pifvpn keep-state
#Also allow DNS query
$cmd allow udp from any 53 to 192.168.0.1/23 in recv $pifvpn
$cmd $skipvpn udp 192.168.0.0/23 to any 53 out xmit $pifvpn
$cmd $skipvpn tcp from 192.168.0.0/23 to any 53 setup via $pifvpn keep-state

#deny all other traffic
$cmd deny log ip from any to any via $pifvpn

#Open port for vnc on JYAPC
$cmd allow tcp from any to 192.168.0.2 5900 setup
$cmd allow tcp from any to 192.168.0.2 5800 setup
$cmd allow tcp from any to 192.168.0.61 5900 setup
$cmd allow tcp from any to 192.168.0.61 5800 setup
$cmd allow tcp from any to 192.168.0.2 3389 setup
$cmd allow tcp from any to 192.168.0.2 80 setup

#open port for limewire on powerbook
$cmd allow tcp from any to 192.168.0.59 6346 setup
$cmd allow tcp from any to 192.168.0.2 4661 setup
$cmd allow tcp from any to 192.168.0.2 4662 setup
$cmd allow udp from any to 192.168.0.2 4665
$cmd $skip udp from 192.168.0.2 to any 4665
$cmd $skip udp from 202.59.106.233 to any 4665

$cmd allow tcp from any to 192.168.0.61 4661 setup
$cmd allow tcp from any to 192.168.0.61 4662 setup
$cmd allow udp from any to 192.168.0.61 4665
$cmd $skip udp from 192.168.0.61 to any 4665
$cmd $skip udp from 58.6.68.93 to any 4665
$cmd allow udp from any to 192.168.0.61 4666
$cmd $skip udp from 192.168.0.61 to any 4666
$cmd $skip udp from 58.6.68.93 to any 4666
#Kazaa
$cmd allow tcp from any to 192.168.0.61 1214 setup
$cmd allow udp from any to 192.168.0.61 1214
#BitTorrent
$cmd allow tcp from any to 192.168.0.61 6881 setup
$cmd allow udp from any to 192.168.0.61 6881

# Allow query to/from local DNS server from outside
$cmd allow tcp from any to me 53 in recv $pif
$cmd allow udp from any to me 53 in recv $pif
$cmd $skip tcp from me to any 53 out xmit $pif setup
$cmd $skip udp from me to any 53 out xmit $pif

#Allow DNS query from ns1 and ns4
$cmd $skip udp from 203.217.31.225 53 to any out xmit $pif
$cmd $skip udp from 58.6.68.93 53 to any out xmit $pif

#Allow DNS query and answer from server2
$cmd $skip udp from 192.168.0.5 to any 53 out xmit $pif
$cmd allow udp from any 53 to 192.168.0.5 in recv $pif

# Deny all inbound traffic from non-routable reserved address spaces
$cmd deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 private IP
$cmd deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 private IP
$cmd deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 private IP
$cmd deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd deny all from 169.254.0.0/16 to any in via $pif #DHCP auto-config
$cmd deny all from 192.0.2.0/24 to any in via $pif #reserved for doc's
$cmd deny all from 204.152.64.0/23 to any in via $pif #Sun cluster interconnect
$cmd deny all from 224.0.0.0/3 to any in via $pif #Class D & E multicast

# Deny all Netbios service. 137=name, 138=datagram, 139=session
# Netbios is MS/Windows sharing services.
# Block MS/Windows hosts2 name server requests 81
$cmd deny tcp from any to any 134 in via $pif
$cmd deny udp from any to any 134 in via $pif
$cmd deny tcp from any to any 135 in via $pif
$cmd deny udp from any to any 135 in via $pif
$cmd deny tcp from any to any 137 in via $pif
$cmd deny udp from any to any 137 in via $pif
$cmd deny tcp from any to any 138 in via $pif
$cmd deny udp from any to any 138 in via $pif
$cmd deny tcp from any to any 139 in via $pif
$cmd deny udp from any to any 139 in via $pif
$cmd deny tcp from any to any 81 in via $pif
$cmd deny udp from any to any 81 in via $pif
# Deny MS shit
$cmd deny tcp from any to any 445 in via $pif
$cmd deny udp from any to any 445 in via $pif

# Deny any late arriving packets
$cmd deny all from any to any frag in via $pif

# This sends a RESET to all ident packets.
$cmd reset log tcp from any to any 113 in recv $pif

#allow connection in and out to Internode NTP server
$cmd allow udp from 203.16.214.199 123 to me in recv $pif
$cmd $skip udp from me to 203.16.214.199 123 out xmit $pif

#allow connection in and out to ntp.cs.mu.OZ.AU NTP server (it has 2 IP addresses)
$cmd allow udp from 128.250.37.1 123 to me in recv $pif
$cmd $skip udp from me to 128.250.37.1 123 out xmit $pif
$cmd allow udp from 128.250.36.2 123 to me in recv $pif
$cmd $skip udp from me to 128.250.36.2 123 out xmit $pif

#Allow connection in and out to ntp.mel.nml.CSIRO.AU
$cmd allow udp from 138.194.21.154 to me in recv $pif
$cmd $skip udp from me to 138.194.21.154 123 out xmit $pif

# Allow ICMP (for ping and traceroute to work).
$cmd $skip icmp from any to any out xmit $pif
# Allow in icmp responces (such as ping)
$cmd allow icmp from any to any in recv $pif

# Rules for DCC
$cmd allow udp from any 6277 to 192.168.0.5 in recv $pif
$cmd $skip udp from 192.168.0.5 to any 6277 out xmit $pif
$cmd allow udp from any 1023 to 192.168.0.5 in recv $pif
$cmd $skip udp from 192.168.0.5 to any 1023 out xmit $pif
#Rules for Pyzor
$cmd allow udp from any 24441 to 192.168.0.5 in recv $pif
$cmd $skip udp from 192.168.0.5 to any 24441 out xmit $pif

#Allow UDP from localhost
$cmd $skip udp from me to any
$cmd allow udp from any to me

# Deny all the rest.
$cmd deny log ip from any to any
$cmd deny log all from any to any

$cmd 30000 divert natd ip from any to any out xmit $pif
$cmd allow ip from any to any

#Authorised traffic on my DSL interface
$cmd 30000 divert natd ip from any to any out xmit $pif
$cmd allow ip from any to any

#Authorised traffic on VPN
$cmd 40000 divert 8669 ip from any to any out xmit $pifvpn
$cmd allow ip from any to any via $pifvpn[/more]

Специфика, конечно, по фре. Но многие моменты будут, думаю, интересны начинающим.

Жаль, что мало народу здесь. Имхо, лучший файрволл. Но и настроить его грамотно нужно.
Многие проблемы у людей возникают, имхо, потому, что много док, но мало экзамплов. Экзамплы хорошо помогают в усваивании, что к чему. Конечно, если они правильные. Или ближе к соблюдению грамотного подхода опр. тулзы.
Всегда удивляло то, что очень много документации, а примеров мало, или они от такого фонаря, что аж слепит днем...

Предлагаю каждому выкладывать свои настройки. Критиковать других. Спорить, как на ЛОР'е. Имхо, здоровый спор очистит ненужное в них. Но и без оффтопа..

Если что не так. Прошу поправить.

какие правила я сделал для себя:
[more=rc.fw]#!/bin/sh
#
#

cmd="./ipfw add"
# First flush the firewall rules
./ipfw -q -f flush
#Localhost rules
$cmd pass all from any to any via lo*

$cmd allow all from me to any
$cmd allow icmp from any to me icmptypes 0,3,4,11 in

$cmd pass udp from any 68 to any 67
$cmd pass udp from any 67 to any 68

$cmd allow tcp from any to any 53
$cmd allow tcp from any 53 to any
$cmd allow udp from any to any 53
$cmd allow udp from any 53 to any

$cmd allow tcp from any 22,25,80,123,443,110,119,995,411 to me established
$cmd allow tcp from any 143,993,3128,5223,8010,8080,8081,5190 to me established
$cmd allow tcp from 81.28.160.194 32000 to me established
$cmd allow tcp from any 20,21 to me

#vpn-client
$cmd allow 47 from 10.60.1.21 to me
$cmd allow tcp from 10.60.1.21 1723 to me
#######################начало правил, где я не уверен################################
#ftp-server
$cmd allow tcp from any to me 20,21 in
$cmd allow tcp from any to me 49152-65534 in
#Bittorrent
$cmd allow tcp from any to me 6881 setup
$cmd allow udp from any to me 6881

#rdp
#x.x.x.x - ip одной из машин, куда я иду по rdesktop

$cmd allow tcp from x.x.x.x 3389 to me 1024-5000 in established
####################конец таких правил###########################################

$cmd allow udp from any 13,37,525 to me
$cmd allow tcp from any 13,37 to me

$cmd drop log all from any to any
#где нет комментов - на первой странице этой ветки, в конце оной я выложил ссылку на небольшой экзампл одного человека, который оговаривает эти правила (pgp.ru)
#красным выделена настройка под определенный сервис или клиент. Что бы он имел возможность работать. Данная настройка неверна. Я не знаю, как правильно создать правила для такого сервиса или программы. Это может касаться не только того, что выделено в данном конфиге#Синим выделено то, что закомментировано, что бы было легче разбирать правила. Это касается только тех правил, которые я создал для себя и они у меня работают на машине. Чужие правила, которые были созданы не мною, здесь не выделены красным и зеленым цветом с обычным шрифтом. Их я выделяю только по надобности и они всегда имеют жирный шрифт и красный цвет. "#!/bin/sh" я не не выделяю, хотя он и имеет знак "#".[/more]


Большая просьба, не переходить на личности, а идти только по теме, если возникнет критика в адрес приведенных правил соседей по ветке.

Величайшая просьба - не выкладывать кусками конфиг. Иногда может быть так, что другим людям будет интересно увидеть индивидуальную настройку каждого человека. Интересуемый момент в конфиге можно, в конце концов, просто выделить цветом или сделать жирнее шрифт в таком месте. Кто-то может заметить повтор правил интересуемого момента и момента, который человек и не заметил, а он может оказаться похож диапазоном портов или других вещей. Тогда можно будет обсудить объединение правил и другие вещи.

Люди. Пожалуйста начинайте выкладывать свои конфиги. Свои мысли по технической стороне.
Данная тулза позволяет легко выкладывать текстовики конфигов, без графических сэмплов.
Автор: dariusii
Дата сообщения: 28.09.2006 00:01
Мои изменения в rc.conf

[more=подробности]
################начало конфиг файла###########################
#!/bin/sh
#
#

cmd="./ipfw add"
# First flush the firewall rules
./ipfw -q -f flush
#Localhost rules
$cmd pass all from any to any via lo*

$cmd allow all from me to any
$cmd allow icmp from any to me icmptypes 0,3,4,11 in

$cmd pass udp from any 68 to any 67
$cmd pass udp from any 67 to any 68

$cmd allow tcp from any to any 53
$cmd allow tcp from any 53 to any
$cmd allow udp from any to any 53
$cmd allow udp from any 53 to any

$cmd allow tcp from any 22,25,80,123,443,110,119,995,411 to me established
$cmd allow tcp from any 143,993,3128,5223,8010,8080,8081,5190,6969 to me established
$cmd allow tcp from 81.28.160.194 32000 to me established
$cmd allow tcp from any 20,21 to me

#vpn-client
$cmd allow 47 from 10.60.1.21 to me
$cmd allow tcp from 10.60.1.21 1723 to me
#######################начало правил, где я не уверен################################
#ftp-server

$cmd allow tcp from any to me 20,21 in
$cmd allow tcp from any to me 49152-65534 in
#Bittorrent В клиенте отдаем на прослушку 49151 порт
-$cmd allow tcp from any to me 6881-6889 setup
$cmd allow udp from any to me 6881-6889
$cmd allow tcp from any to me 49151
$cmd allow udp from any to me 49151
#rdp
#x.x.x.x - ip одной из машин, куда я иду по rdesktop

$cmd allow tcp from x.x.x.x 3389 to me 1024-5000 in established
####################конец таких правил###########################################

$cmd allow udp from any 13,37,525 to me
$cmd allow tcp from any 13,37 to me

$cmd drop log all from any to any
################конец конфиг файла###########################
Красным цветом отмечено то, что удалено
Зеленым цветом отмечено то, что доавлено
Синим цветом отмечены комментарии

Если используется консольный броузер, то узнать, что добавлено, а что удалено, можно по значкам "+" и "-" перед строкой определенного правила.
Знак "-" означает, что строка, стоящая после, удалена в данном файле и находится в нем лишь для того, что бы понять, что было изменено в файле.
Знак "+ означает, что строка, стоящая после, добавлена в конфигурационном файле
Пользователи GUI броузеров типа IE, Firefox, Opera, итц, на знаки "+" и "-" внимание обращать не должны, как если бы этих знаков не было в конфиг-файле, вообще. И при копировании такого содержимого, должны удалить эти знаки. Но я не тестировал данное описание такими броузерами, как lynx, w3m, links итд. и могу ошибиться. Может быть они и поддерживают цвета. Во всяком случае, w3m собранный с X, наверняка поддерживает и цвета и графику...[/more]

Изменения связаны с клиентом bittorrent
Автор: GOODmen
Дата сообщения: 28.09.2006 09:36
Мой когда-то рабочий конфиг (сейчас стоит Керио как прокси и фаер). К сожалению, руки не дошли разобраться с флагами setup establish keep-state и подобными, было бы еще надежнее.
[more]
#!/bin/sh
#
#

cmd="./ipfw add"
adm="172.16.0.1/24"
lan1="172.16.1.0/24"
lan2="172.16.2.0/24"
lan="172.16.0.1/21"
port1="53,88,749,123,135,137" #20,21,
port2="139,389,445,1433,1434,1512,2371" #
portudp="53,67,68,88,123,135,137,138,389,1434" #749


# First flush the firewall rules
./ipfw -q -f flush

#Localhost rules
$cmd 100 pass all from any to any via lo*

# Prevent any traffic to 127.0.0.1, common in localhost spoofing
$cmd 110 deny log all from any to 127.0.0.0/8 in
$cmd 120 deny log all from 127.0.0.0/8 to any in

#$cmd check-state
#$cmd pass all from me to any out keep-state
# $cmd count log ip from any to any

# allow tcp FTP(20-21),DNS(53),Kerberos,Kerberos-adm,netbios-ns
$cmd allow tcp from $lan to $lan $port1
$cmd allow tcp from $lan $port1 to $lan

# allow tcp netbios-ssn,LDAP,microsoft-ds,mssql,WINS,drweb
$cmd allow tcp from $lan to $lan $port2
$cmd allow tcp from $lan $port2 to $lan

#allow web, proxy, mail
$cmd allow tcp from $lan to $lan 9025,9110,8025,8110,7025,7110,5025,5110 # маппинг портов через почтовик
$cmd allow tcp from $lan 9025,9110,8025,8110,7025,7110,5025,5110 to $lan # на mail.ru и прочие
$cmd allow tcp from any to any 25,80,110,443
$cmd allow tcp from any 25,80,110,443 to any
$cmd allow tcp from $lan to $lan 8080,8081
$cmd allow tcp from $lan 8080,8081 to $lan

# allow RADMIN
#$cmd allow tcp from $adm to me 4899
$cmd allow tcp from $adm to me 4899 in via eth0
$cmd allow tcp from me 4899 to $adm out via eth0

# allow Jive admin
$cmd allow tcp from $adm to $adm 9090,9091

#allow cpanel
$cmd allow tcp from me to site.ru 2082 via ppp0
$cmd allow tcp from site.ru 2082 to me via ppp0

#allow FTP
$cmd allow log tcp from any to any 20
$cmd allow log tcp from any 20 to any
$cmd allow log tcp from any to any 21
$cmd allow log tcp from any 21 to any
# пытался сделать чтоб нужные порты для ФТП сами открывались
#$cmd allow log tcp from any to me 21 setup
#$cmd allow log tcp from any to me 25500-25502 setup
#$cmd allow log tcp from me 1024-65535 to any setup

# ftp, pop, http, smtp, ntp, https, icq, http-proxy, ftp-passive
#$cmd allow log tcp from me to any 20,21,25,80,110,119,443 keep-state
#$cmd allow log tcp from me to any 1024-65535 keep-state

# allow RPC
$cmd allow tcp from $lan to $lan 1024,1025,1026,1050
$cmd allow tcp from $lan 1024,1025,1026,1050 to $lan

# allow udp DNS,DHCPs,DHCPc,Kerberos,Kerberos-adm,netbios-ns,netbios-dgm,

$cmd allow udp from any to any $portudp
$cmd allow udp from any $portudp to any

#JABBER+IRC
$cmd allow tcp from any to any 4242,4661,4662,4663,4664,4665,5190,5222,5223,6667
$cmd allow tcp from any 4242,4661,4662,4663,4664,4665,5190,5222,5223,6667 to any

#ICMP
#$cmd allow icmp from any to any icmptypes 0,3,4,8,11
$cmd allow icmp from any to any

$cmd deny log all from any to any
[/more]
Автор: dariusii
Дата сообщения: 28.09.2006 21:10
Мои изменения в rc.conf

[more=убрал опцию setup из правил, под клиентов bittorrent]
################начало конфиг файла###########################
#!/bin/sh
#
#

cmd="./ipfw add"
# First flush the firewall rules
./ipfw -q -f flush
#Localhost rules
$cmd pass all from any to any via lo*

$cmd allow all from me to any
$cmd allow icmp from any to me icmptypes 0,3,4,11 in

$cmd pass udp from any 68 to any 67
$cmd pass udp from any 67 to any 68

$cmd allow tcp from any to any 53
$cmd allow tcp from any 53 to any
$cmd allow udp from any to any 53
$cmd allow udp from any 53 to any

$cmd allow tcp from any 22,25,80,123,443,110,119,995,411 to me established
$cmd allow tcp from any 143,993,3128,5223,8010,8080,8081,5190,6969 to me established
$cmd allow tcp from 81.28.160.194 32000 to me established
$cmd allow tcp from any 20,21 to me

#vpn-client
$cmd allow 47 from 10.60.1.21 to me
$cmd allow tcp from 10.60.1.21 1723 to me
#######################начало правил, где я не уверен################################
#ftp-server

$cmd allow tcp from any to me 20,21 in
$cmd allow tcp from any to me 49152-65534 in
#Bittorrent В клиенте отдаем на прослушку 49151 порт
-$cmd allow tcp from any to me 6881-6889 setup
$cmd allow udp from any to me 6881-6889
#меняем настройки в bittorrent клиенте. 4951 порт зарезервирован в IANA port list (за 2006-09-28)
-$cmd allow tcp from any to me 49151
-$cmd allow udp from any to me 49151

+$cmd allow tcp from any to me 49150
+$cmd allow udp from any to me 49150

#rdp
#x.x.x.x - ip одной из машин, куда я иду по rdesktop

$cmd allow tcp from x.x.x.x 3389 to me 1024-5000 in established
####################конец таких правил###########################################

$cmd allow udp from any 13,37,525 to me
$cmd allow tcp from any 13,37 to me

$cmd drop log all from any to any
################конец конфиг файла###########################
Красным цветом отмечено то, что удалено
Зеленым цветом отмечено то, что добавлено
Синим цветом отмечены комментарии

Если используется консольный броузер, то узнать, что добавлено, а что удалено, можно по значкам "+" и "-" перед строкой определенного правила.
Знак "-" означает, что строка, стоящая после, удалена в данном файле и находится в нем лишь для того, что бы понять, что было изменено в файле.
Знак "+ означает, что строка, стоящая после, добавлена в конфигурационном файле
Пользователи GUI броузеров типа IE, Firefox, Opera, итц, на знаки "+" и "-" внимание обращать не должны, как если бы этих знаков не было в конфиг-файле, вообще. И при копировании такого содержимого, должны удалить эти знаки. Но я не тестировал данное описание такими броузерами, как lynx, w3m, links итд. и могу ошибиться. Может быть они и поддерживают цвета. Во всяком случае, w3m собранный с X, наверняка поддерживает и цвета и графику...[/more]

Изменения связаны с клиентом bittorrent
Автор: dariusii
Дата сообщения: 09.10.2006 14:38
Кстати. Ethereal тоже является пакетным фильтром. Почему бы не использовать его?

То есть, чем он может быть лучше/хуже?
Автор: GOODmen
Дата сообщения: 10.10.2006 06:57
что за зверь?
Автор: dariusii
Дата сообщения: 11.11.2006 18:22
GOODmen

не то. утка... Надо было мне сначала проверить достоверность этой инфы...

Добавлено:
мои правила для wipfw v. 0.2.8

[more]-f flush
add allow all from any to any via lo*
add check-state
#dhcp
add allow udp from any 67,68 to any 67,68 keep-state
add allow 47 from any to any
add allow all from me to any keep-state
add allow tcp from any 1024-65535 to me 21 setup keep-state
#ftp
add allow tcp from any 1024-65535 to me 49152-65534 keep-state
#Bittorent
add allow tcp from any to me 6881-6889 keep-state
add allow tcp from any to me 49150 keep-state
add allow tcp from any to me 49150 keep-state
#dc++
add allow tcp from any to me 1412 keep-state
add allow udp from any to me 2896 keep-state
#icmp
add allow icmp from me to any keep-state
#time
add allow udp from me 123 to any 123 keep-state
#
add prob 0.05 deny ip from any to any in
#
add drop log all from any to any

добавил запись "gre 47 GRE" в C:\WINDOWS\system32\drivers\etc\protocol

порядок номеров протоколов имеет место быть.
ip 0 IP # Internet protocol
icmp 1 ICMP # Internet control message protocol
ggp 3 GGP # Gateway-gateway protocol
tcp 6 TCP # Transmission control protocol
egp 8 EGP # Exterior gateway protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # User datagram protocol
hmp 20 HMP # Host monitoring protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
rdp 27 RDP # "reliable datagram" protocol
gre 47 GRE
rvd 66 RVD # MIT remote virtual disk
############

должно быть:
D:\home\dariusii>ipfw -ad list
00100 7376 215656 allow ip from any to any via lo*
00200 0 0 check-state
00300 0 0 deny log ip from any to {......скрыт ip адрес}
00400 8 2692 allow udp from any 67,68 to any 67,68 keep-state
00500 8259 6253853 allow gre from any to any
00600 7631 5896876 allow ip from me to any keep-state
00700 0 0 allow tcp from any 1024-65535 to me 21 keep-state setup
00800 0 0 allow tcp from any 1024-65535 to me 49152-65534 keep-state
00900 0 0 allow tcp from any to me 6881-6889 keep-state
01000 0 0 allow tcp from any to me 49150 keep-state
01100 0 0 allow tcp from any to me 49150 keep-state
01200 0 0 allow tcp from any to me 1412 keep-state
01300 0 0 allow udp from any to me 2896 keep-state
01400 0 0 allow icmp from me to any keep-state
01500 0 0 allow udp from me 123 to any 123 keep-state
01600 3 1480 prob 0.050000 deny ip from any to any in
01700 65 39628 deny log ip from any to any
65535 1 33 deny ip from any to any
## Dynamic rules:
...
{здесь появятся динамически созданные правила}
подробности http://wipfw.sourceforge.net/doc-ru.html[/more]
Автор: EgorDS
Дата сообщения: 21.11.2006 09:06
Народ а какую версию лучше использовать 0.2.7 или 0.2.8 ?

Страницы: 123456

Предыдущая тема: ArtCam7


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.