PDA

Просмотр полной версии : Настройка wipfw(встроеный во FreeBSD файрволл)



SDA
13.05.2005, 23:00
WIPFW это IPFW (фаер) клонированный с FreeBSD на винду! Настройка его в винде почти ничем не отличается, от настройки во фре.
авторская статья (Автор: nori) про настройку WIPFW.


И так почему я начал писать статью именно про этот файрволл?
Ответ простой единственная *nix система в которой я хоть что то понимаю FreeBSD.
IPFW - крайне удобный встроеный во FreeBSD файрволл. Как только я настроил его в БСД сразу захотелось такую же ВЕЩЬ и в винде.
Гугль как всегда поможет... оказалось что IPFW уже портирован на винду!
Нашел это http://wipfw.sourceforge.net/ . Скачал, поставил, настроил очччень понравилось (=.
На момент написания этого , последняя доступная версия - WIPFW v0.2.4-beta.
Бинарник доступен по адресу - http://prdownloads.sourceforge.net/wipfw/wipfw-0.2.4-binary.zip?download
Можно так же скачать GUI http://prdownloads.sourceforge.net/wipfw/qtfw_win-beta.zip?download - НО! Я не качал ибо оно мне ненадо =)
Сорцы на - http://prdownloads.sourceforge.net/wipfw/wipw-0.2.1b-source.zip?download. =)

Чтож качаем!
Скачал бинарники весом 224 килобайта (мало не правда ли?).
Разархивируем их куда удобно.
Допустим C:\wipfw.
Поехали настраивать! (сразу оговорюсь может кто сочтет мои настройки дилетантскими)
Для начала установим службу... запускаем install.cmd... бумс! и все готово (=
Теперь смотрим файл rc.fw.. в начале он выглядит примерно так...
#!/bin/sh
#
#
# Config sample by dik

$IPFW="./ipfw"
$IPFW -f flush

"$IPFW" add pass all from any to any via lo0
"$IPFW" add check-state
"$IPFW" add pass all from me to any out keep-state

Оговорюсь правила настраиваются аналогично так же как и во FreeBSD! Поэтому вы можете настроить все сами не читая дальше! man ipfw - или читаем здесь !
http://www.hmug.org/man/8/ipfw.html
чтож ничего особенно полезного... оставляем только первые несколько строк
#!/bin/sh
#
#
# Config sample by dik

$IPFW="./ipfw"
$IPFW -f flush

начнем дописывать:

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

# Зарпещаем все от всех (дикие параноики дальше могут не чиатть )
$IPFW add deny all from any to me out

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

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

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

# ICMP разрешаем пинг... или соответственно запрещаем сменив allow на deny
$IPFW add allow icmp from any to any icmptypes 0,3,4,8,11

# VPN разрешаем vpn тунель
$IPFW add allow tcp from any to any 1723
#$IPFW add allow tcp from any 1723 to any # тут я могу ошибсяться.... поэтому закомментировал...

# Разрешаем IRC...
$IPFW add pass tcp from any to any 6667-6669 #коннект к ирк серверу не будет происходить мгновенно... поэтому можете сменить pass на просто allow
$IPFW add pass tcp from any 6667-6669 to any

$IPFW add deny all from any to any

вот в принципе и все... остальное добавляется по желанию (=
допустим разрешаем Quake 3

$IPFW add allow udp from any to any 27960-27965
$IPFW add allow udp from any 27960-27965 to any

остально легко сделать по аналогу с тем что написал я...
Так с правилами покончено (или нет если вы хотите что нибудь еще) =)

переходим в дирректорию /bin/ и запускаем init.cmd.. бум если при обработке каких либо правил были допущены ошибки идем в rc.fw и правим..
В принципе и все файрволл настроен... Скажу еще что служба ipfw жрет всего около двух мегабайт оперативки а работает все на ура.

P.S. Любопытная статья надо попробывать.Правда по оценкам:"проще юзать адаптированные под винду фаерволлы...
но это уже неплохо, судя по версии - до релиза еще далеко, так что будем ждать, а насчет злосчастных 224 килобайт - там гуевый интерфейс планируется, так что все нормально - а на вкус и цвет, как известно...
http://forum.web-hack.ru/index.php?showtopic=21641

Geser
13.05.2005, 23:01
Только не забывай ссылку на оригинал в конце давать :)

zippovich
16.05.2005, 02:35
Не знал что под винду такое есть. Как раз сейчас искал бесплатный файерволл на винду!

Кто знает проксю бесплатную на винду, поделитесь!

Slukad
19.06.2006, 10:49
squid

Xen
19.06.2006, 11:36
Ни разу не авторская статья. Интервью с автором я здесь выкладывал =) а этот нори, судя по стилю, какой-то юный [censored] из поколения журнальчика Ксакеп =)

wipfw уже давно используется на энтерпрайз серверах несмотря на номер версии...

Kuzz
12.12.2006, 14:22
Кто знает проксю бесплатную на винду, поделитесь!
squid - зайти на http://www.acmeconsulting.it/SquidNT/download.html
squidGUI - http://sourceforge.net/project/showfiles.php?group_id=151683 (для тех кому это надо)
А вообще если возникает вопрос о бесплатных прогах: sourceforge.net, чаще всего..

Van_Veber
01.07.2008, 19:54
# Разрешаем DNS
# DNS
$IPFW add allow tcp from any to any 53
$IPFW add allow tcp from any 53 to any
$IPFW add allow udp from any to any 53
$IPFW add allow udp from any 53 to anyПочему пишем "from any to any 53", а затем "from any 53 to any"?
Почему не написать "from any 53 to any 53"? Или "from me 53 to any 53" и "from any 53 to me 53"?
Я пробовал -- не работает :(. Причина мне не понятна -- ведь DNS работает по 53 порту.

XP user
01.07.2008, 19:57
Почему пишем "from any to any 53", а затем "from any 53 to any"?
Почему не написать "from any 53 to any 53"? Или "from me 53 to any 53" и "from any 53 to me 53"?
Я пробовал -- не работает :(. Причина мне не понятна -- ведь DNS работает по 53 порту.
Нет. Порт 53 - привилегированный (=системный, зарезервированный, служебный) порт для серверов. Клиент обычно подключается с портов в диапазоне от 1024 до 4999 (эфемерные порты).

Paul

Van_Veber
01.07.2008, 23:29
Нет. Порт 53 - привилегированный (=системный, зарезервированный, служебный) порт для серверов. Клиент обычно подключается с портов в диапазоне от 1024 до 4999 (эфемерные порты).

Paul

Спасибо, Paul, а где можно почитать про это по подробнее -- в большинстве руководств про это ничего не сказано (в том же Таненбауме говорится лишь про 53 порт; и во всех статьях, которые я видел тоже). Или клиентский порт зависит от операционной системы?

XP user
02.07.2008, 07:54
Например здесь (http://ru.wikipedia.org/wiki/DNS-%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82):


Во многих версиях BIND запрос к другим DNS-серверам исходил с 53-го порта (порта, по которому принимаются запросы DNS, как TCP, так и UDP), в отличие от клиентских приложений, использующих произвольный порт отправителя (из незарегистрированного диапазона).
незарегистрированный диапазон = 1024-4999
После того, как достигается порта 4999, Windows обычно опять начинает с порта 1024. Как на Linux, не знаю.

Paul

Pili
03.07.2008, 10:43
Правила типа
add allow udp from any to any 53
add allow udp from any 53 to any
- потенциальная дыра.
Кстати, это ошибка довольно-таки часто встречается при конфигурации фаерволов. Разрешено подключение на любой ip-адрес, на любые порты от любого источника с портом 53. То есть злоумышленник может осуществить соединение на любой порт, всего лишь установив свой исходящий на 53.
взято здесь (http://virushelper.net/viewtopic.php?t=16&start=0&sid=3561ec8eb5f3ae921b75f60031efd6de)
Если это правило не для сервера, лучше написать так

add allow udp from me 1024-65535 to any 53 out
add allow udp from any 53 to me 1024-65535 in
или

add allow udp from me 1024-65535 to any 53 keep-state
А ещё лучше вместо any указывать конкретный ip адрес DNS сервера

XP user
03.07.2008, 11:25
А ещё лучше вместо any указывать конкретный ip адрес DNS сервера
+1. Естественно ограничивать адреса до DNS-серверов провайдера.

Paul