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

IPFW не отключает

Добавлено: 2007-01-18 8:40:37
3t0n
Вообщем сталкнулся с таким нюансом.
Комментирую в конф файле файрвола ип чела ака зарубаю ему инет, перезапускаю конф файл, страницы он грузить уже не может а вот установленные соединения как работали у него так и работают к примеру та же аська и майл агент до перезагрузки его машины или до переподключения, а если взять во внимание что через них можно гонять файло это не есть гуд, и думается мне если качает он к примеру файл то он тоже будет до конца докачиваться. Есть подозрения на ключ -q для удаленной работы с IPFW через ssh который не обрубает в файле с правилами. Есть мысли как эту беду победить?

Добавлено: 2007-01-18 9:02:49
baklan
Тоже наблюдал подобное у себя, решил писать два правила на каждого юзера , а от established отказался.

Добавлено: 2007-01-18 11:36:54
dikens3
Странный у вас фаер.

пропишите всех пользователей в таблицу, и прибивайте всё что не в ней и пытается выйти наружу.

Добавлено: 2007-01-18 11:43:49
3t0n
dikens3 писал(а):Странный у вас фаер.

пропишите всех пользователей в таблицу, и прибивайте всё что не в ней и пытается выйти наружу.
Гимарой, зачем все усложнять? а если штук 50 нужно обрубить? я думаю есть более рациональное решение. ИМХО

Добавлено: 2007-01-18 12:30:11
dikens3
Да хоть 500, убирать лишние правила или добавлять полнейший абсурд.
Пользуйтесь нормальными возможностями.

P.S. Чем больше правил. тем медленне фаер и сложнее в нём что-то понять.

Добавлено: 2007-01-18 12:41:33
dikens3
Совсем примитивный

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

#!/bin/sh -

ifout="rl0"
iflan="fxp0"

## 3 таблица, кому можно ходить в инет.
fwtable="/sbin/ipfw table"
${fwtable} 3 f

users=" 192.168.100.1 192.168.100.2 и т.д. "

for lan in ${users}
    do
        ${fwtable} 3 add $lan
    done

fwcmd="/sbin/ipfw -q"
${fwcmd} -f flush

# Пускаем lo
        ${fwcmd} add pass all from any to any via lo0
# Пускаем Нашу сеть
        ${fwcmd} add pass all from any to any via ${iflan}

# Пользователи - Исходящий траффик
# Прибиваем незарегистрированных пользователей
        ${fwcmd} add deny log all from not table\(3\) to any out via ${ifout}
..
..
Правила
Правила
Правила
..
..

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

Удаление из таблицы:
ipfw table 3 del НУЖНЫЙ_ИП
Добавление в таблицу:
ipfw table 3 add НУЖНЫЙ_ИП
Как вариант для хранения в файле

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

# Таблица users
            ipfw table 3 f
            mynets=$(cat /path/users)
            for ip in $mynets
                    do
                    ipfw table 3 add $ip
                    done
Надеюсь этого будет достаточно для понимания?

Добавлено: 2007-01-18 12:57:06
3t0n
примерно картина прояснилась, ща повникаю в код

Добавлено: 2007-01-18 13:19:40
dikens3
3t0n писал(а):примерно картина прояснилась, ща повникаю в код
Если правило divert стоит первой строкой, то запретить отправку уже сложнее.

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

Пример в сторону которого нужно думать.
# Запрешаем исходящие пакеты принятые на интерфейсе iflan, обработанные файрволом, и выходящие с интерфейса ifout
        ${fwcmd} add deny log all from not table\(3\) to any out recv ${iflan} xmit ${ifout}
Перемудрил, Divert тут не причём, но очень полезная строка, особенно если она будет первой в списке на выход с внешнего интерфейса.

Добавлено: 2007-01-24 10:59:03
Kolesnikov
3t0n писал(а):Гимарой, зачем все усложнять? а если штук 50 нужно обрубить? я думаю есть более рациональное решение. ИМХО
Можно использовать сеты. При добавлении правила для каждого пользователя добавляешь параметр set 10(к примеру). Потом одной командой ipfw delete set 10 удаляешь всех, при этом основные правила фаера не задеты.