Страница 1 из 1

фобия - uptime

Добавлено: 2007-02-28 12:07:11
selinia
да, у меня такая фобия, посему вопрос следующий =)

собственно, насколько я понимаю, при загрузки фаервола как модуля, мы по умолчанию имеем запрет на всё, и правила:
firewall_type="/etc/ipfw.conf
описанные в этом файле неработают, и заработают только после перезагрузки ?

но задача стоит включить фаервол, при этом сохранив uptime, поэтому:

kldload ipfw ipfw add 64000 allow ip from any to any,
имеем фаервол и неотваливаемся от ssh (да, мы всё это делаем удалённо, конечно), как в этом случае подгрузить те правила, что находятся в firewall_type="/etc/ipfw.conf, без перезагрузки ?

в сюда же второй вопрос, нужна ли строчка в rc.conf вида:
firewall_enable="YES", при условии, что фаервол вмонтирован в ядро ?

Добавлено: 2007-02-28 12:16:18
Alex Keda
подгрузить

Код: Выделить всё

sh /etc/ipfw.conf 
тока, боюсь, с такой строкой сервер не загрузиться вообще:

Код: Выделить всё

firewall_type="/etc/ipfw.conf 
с кавычками внимательней!!
======
вообще, rc.conf можно попробовать также

Код: Выделить всё

sh /etc/rc.conf
должен ничё не выдать и не ругнуться.
===========
до загрузки лучше сделать

Код: Выделить всё

ipfw disable firewall
так помоему звучит...
=============
по последнему - нужна, иначе не загрузит файрволл.
=============
а вообще на WEB-сервере файрволл - лишнее - лучше приложения грамотно настроить чтоб никто ничё лишего не слушал...
тока если как мера на случай отрубить кого совсем...
а так - не нужен...

Добавлено: 2007-02-28 12:25:30
selinia
спасибо, значит порядок действий такой:
1) в rc.conf

Код: Выделить всё

firewall_enable="YES"
firewall_type="/etc/файл с пркавилами"
firewall_logging="YES"
2) ipfw disable firewall
3) kldload ipfw ipfw add 64000 allow ip from any to any
4) sh /etc/файл с правилами

и всё работает исправно ? :o

Код: Выделить всё

FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="xl0"            # внешний интерфейс
LanIn="sis0"            # внутренний интерфейс
IpOut="222.222.222.222" # внешний IP адрес машины
IpIn="192.168.20.254"   # внутренний IP машины
NetMask="24"            # маска сети (если она разная для внешней 
                        # и внутренней сети - придётся вводить ещё 
                        # одну переменную, но самое забавное, что 
                        # можно и забить - оставить 24 - всё будет 
                        # работать, по крайней мере я пробовал - 
                        # работаало на 4-х машинах, в разных сетях, 
                        # с разными масками - настоящими разными! но - 
                        # это неправильно.)
NetIn="192.168.20.0"    # Внутренняя сеть
вот без этого можно обойтись ? если просто вписать в файл, скажем, только это:

Код: Выделить всё

add 1001 reject log tcp from any to any tcpflags fin, syn, rst, psh, ack, urg
add 1002 reject log tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg
add 1003 reject log tcp from any to any not established tcpflags fin
add 1004 deny log ip from any to any not verrevpath in
add 1005 allow ip  from any to any  setup limit src-addr 10
:::

Добавлено: 2007-02-28 13:07:05
Alex Keda
не совсем.
файрволл - это просто шелл-скрипт.
поэтому надо указвать путь к ipfw
всякие LANin и LANout писать не обязательно - можно прям IP вбить.
=========
и лучше без номеров правил, если не используется какая-то хитрая система skip и прочего - если понадобиться находу добавить правило между ними - то придётся править файл...
=========
и ещё

Код: Выделить всё

sh /etc/rc.firewall &
вот с амперсандом на конце - корректне всего. иначе есть шанс отвалиться :)))
========
но последнее актаульно без firewaall disable -так, на всякий случай

Добавлено: 2007-02-28 13:40:47
votuanr
большой uptime? ^)

Добавлено: 2007-02-28 13:59:55
Alex Keda
после 100 дней психологически становиться жалко. На себе проверял. :)))
У меня по 200 с копейками бывает. Обычно - ~150 дней....
========
в двух филиалах серваки ребтнули с интервалом в неделю - оба за пару дней до 200 :((
так жалко было. Почему жалко - не знаю :))
А ребутнули - потому что не могли разобраться как ретартануть сервисы...

Добавлено: 2007-02-28 14:55:52
selinia
lissyara писал(а): и лучше без номеров правил
хмм,
тоесть я могу написать так:

Код: Выделить всё

kldload ipfw ipfw add allow ip from any to any
после чего подгрузить файл с правилами, в котором будет так:

Код: Выделить всё

#!/bin/sh
net="192.0.2.0" (непонятно что)
mask="255.255.255.0" (маска)
ip="192.0.2.1" (реальный ip во внешнем мире)

add reject log tcp from any to any tcpflags fin, syn, rst, psh, ack, urg 
add reject log tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg 
add reject log tcp from any to any not established tcpflags fin 
add deny log ip from any to any not verrevpath in 
add allow ip  from any to any  setup limit src-addr 10 
:::
то тогда непонятно, как это:

Код: Выделить всё

ipfw ipfw add allow ip from any to any
будет сочетатся с новыми правилами, загруженными из файла (например файл с правилами может запрещать что-то в будущем)

Добавлено: 2007-02-28 16:37:01
Alex Keda

Код: Выделить всё

ipfw delete номер_правила

Добавлено: 2007-03-05 15:43:51
schizoid
я делаю так:
ipfw disable firewall
sh /etc/rc.firewall
ipfw enable firewall

при этом не выкидывает из ссх
ну и в начале конфига фаера ессесно обнуление всех правил, счетчиков, пайпов, очередей....

Добавлено: 2007-03-05 19:05:11
bakake
schizoid писал(а):я делаю так:
ipfw disable firewall
sh /etc/rc.firewall
ipfw enable firewall

при этом не выкидывает из ссх
ну и в начале конфига фаера ессесно обнуление всех правил, счетчиков, пайпов, очередей....
Не рискну советовать, но я как человек деревянный, делаю новый фаервол отдельным файлом и сперва с ним эксперементирую. Предварительно запустив shutdown -r +10m.
Ежели все пучком, копирую его на место штатного (который у меня firewall_type="/usr/local/etc/ipfw.conf") и делаю pkill shutdown. Впрочем, пара поездок в коллок на другом конце города в 11 вечера и подобная перестраховка уже не кажется такой уж глупостью :D