powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / IPFW FreeBSD
15 сообщений из 15, страница 1 из 1
IPFW FreeBSD
    #36468151
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как на штатном IPFW FreeBSD, прописать путь к файлу для блокировки ИП

например в rc.firewall
будет прописываться файл с функций об блокировке
/etc/ipfw.banip

*
а в ipfw.banip
прописывались все ип в столбик
127.0.0.1
127.0.0.2
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36468826
gR4mm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. можно прописать прямо в rc.firewall

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
fw="/sbin/ipfw"

ban_ip () {
${fw} table  1  flush
${fw} table  1  add  127 . 0 . 0 . 1 / 8 
${fw} table  1  add  192 . 168 . 0 . 1 - 192 . 168 . 0 . 255 
${fw} table  1  add  10 . 0 . 0 . 1 / 8 
${fw} add deny ip from table( 1 ) to any

}
затем далее по тексту rc.firewall в секции Client
Код: plaintext
1.
2.
3.
4.
5.
6.
case ${firewall_type} in
....
[Cc][Ll][Ii][Ee][Nn][Tt])
...
ban_ip 
...
либо
2. Текст процедуры ban_ip можно вынести в отдельный файл, а в rc.firewall прописать

Код: plaintext
1.
2.
3.
4.
5.
6.
case ${firewall_type} in
....
[Cc][Ll][Ii][Ee][Nn][Tt])
...
./etc/ipfw.banip
...

список ип можно поулчить соответственно командой
Код: plaintext
ipfw table  1  list
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36468912
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо но сделал следующее

#!/bin/sh
ipfw table 1 flush

${fwCMD}00001 deny ip from "table(1)" to any via em0
cat /etc/ipfw_blockip | awk '{ if ($1!="") {system("ipfw table 1 add "$1"")} }' > /dev/null


а сответсвенно в ipfw_blockip добавляю ип, протестировал все работает.

**

и еще такой вопрос к вам будет

если я ставлю ограничение на соединение ИП адреса к серверу
${fwCMD}pass ip from any to any via em0 keep-state limit src-addr 2
- то данная команда работает!
но все остальные правила прекращают
например:
вот это перестает работать
${fwCMD}00811 pass tcp from 192.168.0.1 to any 22 in via re0 setup keep-state
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36468914
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не так скопировал на форум
${fwCMD}00001 deny ip from "table(1)" to any via em0
заменим
${fwCMD}00001 deny ip from "table(1)" to any via re0 - этот у меня сейчас в Ipfw

и
правило

${fwCMD}00811 pass tcp from 192.168.0.1 to any 22 in via re0 setup keep-state

так вот если первое правило работает, то прекращает 811 работать
если 1 правило закроем # то 811 начинает работать!
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36469079
gR4mm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hookisспасибо но сделал следующее

#!/bin/sh
ipfw table 1 flush

${fwCMD}00001 deny ip from "table(1)" to any via em0
cat /etc/ipfw_blockip | awk '{ if ($1!="") {system("ipfw table 1 add "$1"")} }' > /dev/null

а сответсвенно в ipfw_blockip добавляю ип, протестировал все работает.

Тож хороший вариант, но я с авк не дружу :)

Hookisи еще такой вопрос к вам будет

если я ставлю ограничение на соединение ИП адреса к серверу
${fwCMD}pass ip from any to any via em0 keep-state limit src-addr 2
- то данная команда работает!
но все остальные правила прекращают
например:
вот это перестает работать
${fwCMD}00811 pass tcp from 192.168.0.1 to any 22 in via re0 setup keep-state

....

не так скопировал на форум
${fwCMD}00001 deny ip from "table(1)" to any via em0
заменим
${fwCMD}00001 deny ip from "table(1)" to any via re0 - этот у меня сейчас в Ipfw

и
правило

${fwCMD}00811 pass tcp from 192.168.0.1 to any 22 in via re0 setup keep-state

так вот если первое правило работает, то прекращает 811 работать
если 1 правило закроем # то 811 начинает работать!
т.е. получается такое:
Код: plaintext
1.
${fwCMD} 00001  deny ip from "table(1)" to any via re0 
${fwCMD} 00811  pass tcp from  192 . 168 . 0 . 1  to any  22  in via re0 setup keep-state
чтобы это работало, правила надо поменять местами,т.к. пакет попадая в фаервол проходит все правила последовательно, если не указано иное.
Правило № 1 говорит, что запретить все хождения из списка ip, которые лежат в table(1) куда бы то ни было, а правило №811 говорит, давайте-ка пустим пакеты с ипа 192.168.0.1 куда нибудь на 22 порт, но скорее всего пакет просто не доходит до этого правила вылетая на правиле №1.

приведите вывод
Код: plaintext
1.
2.
ipfw list 
и
ipfw table  1  list
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36469241
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага спасибо за заметку, это надо будет тоже учесть в дальнейшем

но ты маленько не понял смысл.

если убрать вообще табле, то изначально фаервол блочит всё!

теперь добавляем туда ТОЛЬКО два правила,

на лимит
а потом на порт и порт только на себя, но оказывается что могут заходить все на порт 22, вот тут я и стопорнул понять не могу в чем проблема.
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36469254
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если убрать правило на лимит, и оставить только порт на себя (тоесть на свой комп), то оно нормально работает!
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36469440
gR4mm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще запутался, давай начнем с того, что необходимо сделать?
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36469467
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я и сам запутался и тебя запутал не то все по кидал - че скажешь второй день только с FreeBSD работаю

фаервол - чист!

добавляем две команды - как тестовые, и начинаем тестировать!

${fwCMD}pass ip from any to any via em0 keep-state limit src-addr 2${fwCMD}00811 pass tcp from 192.168.0.1 to any 22 in via re0 setup keep-state

1. первое правило без номера как я понял в этом случай можно и не писать!
оно дает лимит на коннекты к серверу, с одного IP - 2 коннекта
2. вторая строка правило к примеру 00811, оно дает доступ только моему компьютеру к порту 22.

так вот проблема следующая если эти две команды так стоят, то идет разрешения 2 коннекта к серверу с ип - на порт ТОЛЬКО всем пользователям!

как только убираю первую строку, тут же начинает правильно работать правило 00811 - то есть на порт 22 могу зайти только я один!
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36469471
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не обращай внимание что в первой строку em0 - на сервере у меня норм везде прописано re0
просто опять ступил маленько =)
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36470015
gR4mm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если надо ограничить подключения на 2 порта только для одного адреса то надо писать так:
${fwCMD}00811 pass tcp from 192.168.0.1 to me 22 in via re0 setup keep-state
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36470024
gR4mm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gR4mmЕсли надо ограничить подключения на 2 порта только для одного адреса то надо писать так:
${fwCMD}00811 pass tcp from 192.168.0.1 to me 22 in via re0 setup keep-state
*читать как "подключение на 22й порт"
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36470849
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще раз говорю без первого правила, второе правило РАБОТАЕТ!
как добавляю первое правило второе перестает работать, via на сервере везде стоит re0 - для моей внешней сетевухе - так что вопрос следующий почему при добавления первого правила перестает работать второе правило ?
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36470853
Hookis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е.

Когда добавляю первое правило:
первое работает!
второе нет!

как только убрал первое правило:
второе правило сразу же заработало!

Как только убираю второе правило:
первое работает!
...
Рейтинг: 0 / 0
IPFW FreeBSD
    #36471593
gR4mm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.freebsd.org/doc/en/books/handbook/firewalls-ipfw.html setup

This is a mandatory keyword that identifies the session start request for TCP packets.

keep-state

This is a mandatory keyword. Upon a match, the firewall will create a dynamic rule, whose default behavior is to match bidirectional traffic between source and destination IP/port using the same protocol.

limit {src-addr | src-port | dst-addr | dst-port}

The firewall will only allow N connections with the same set of parameters as specified in the rule. One or more of source and destination addresses and ports can be specified. The limit and keep-state can not be used on the same rule. The limit option provides the same stateful function as keep-state, plus its own functions.
т.е. первое правило неверно по сути.

попробуй прописать следующее

${fwCMD}pass ip from any to any via re0 limit src-addr 2
${fwCMD}00811 pass tcp from 192.168.0.1 to me 22 in via re0 setup keep-state
т.е. ограничиваем до 2х подключений с одного адреса и разрешаем заходить по ssh только с адреса 192.168.0.1.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / IPFW FreeBSD
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]