Страница 1 из 1
Как в ipfw сделать исключение из таблицы?
Добавлено: 2018-03-04 13:23:37
Духовитин
Добрый день Уважаемые!
Подскажите плиз, что-то не могу сообразить. У меня есть две таблицы
table 1 - таблица со всеми пользователями
table 2 - таблица с исключениями из 1 - ой
Как мне в правилах ipfw написать это исключение?
Типа такого
Код: Выделить всё
ipfw add deny all from any to {"table(1)" and not "table(2)"}
Я так понял, что
or в правилах быть может, а
and нет.
Как в ipfw сделать исключение из таблицы?
Добавлено: 2018-03-04 16:42:43
Духовитин
Сразу дополню, на вопрос а почему не исключить из списка table 1 содержащиеся в table 2 адреса, отвечаю:
В table 1 указаны подсети 192.168.0.0/24
А в table 2 отдельные адреса - исключения: 192.168.0.10/32
Как в ipfw сделать исключение из таблицы?
Добавлено: 2018-03-05 8:34:19
Neus
Проще написать 2 правила.
Как в ipfw сделать исключение из таблицы?
Добавлено: 2018-03-05 10:11:58
Духовитин
Ясно, спасибо!
Но всё же мне кажется странно что OR реализован, а AND нет.
Как в ipfw сделать исключение из таблицы?
Добавлено: 2018-03-05 11:06:58
Neus
Реализация AND тут бессмысленна.
Как в ipfw сделать исключение из таблицы?
Добавлено: 2018-03-06 0:48:41
rmn
(A and not B) == not (not A or B)
Как в ipfw сделать исключение из таблицы?
Добавлено: 2018-03-06 15:00:04
Neus
Как в ipfw сделать исключение из таблицы?
Добавлено: 2019-01-16 22:02:27
fly380
Дабы не плодить темы задам вопрос в этой. Смысл тот же: есть таблица
Код: Выделить всё
cat /etc/tables/full_block | while read ip; do
${fwcmd} table 1 add $ip 1
done
${fwcmd} add deny log logamount 2048 all from table\(1\) to any in via ${extif}
содержащая 1483 записи отдельных IP и целых подсетей. Так вон нужно разрешить доступ (туда и обратно) к примеру IP 128.199.36.165 из заблокированной сети 128.199.0.0/16. Как это осуществить?
Если перед
Код: Выделить всё
${fwcmd} add deny log logamount 2048 all from table\(1\) to any in via ${extif}
добавляю
Код: Выделить всё
${fwcmd} add allow ip from 128.199.36.165 to any in via ${extif}
сам шлюз начинает ходить на этот IP, а вот компы в локалке никак. Даже если
Код: Выделить всё
${fwcmd} add allow all from 128.199.36.165 to any
все равно ходить туда может только шлюз. Как разрешить всем из локальной сети ходить на этот IP?
P.S extif интерфейс смотрящий в нет LanIn интерфейс смотрящий в локаль
Как в ipfw сделать исключение из таблицы?
Добавлено: 2019-01-18 1:56:21
FiL
а что еще запрещено в фаерволе? или это единственные два правила?
Как в ipfw сделать исключение из таблицы?
Добавлено: 2019-01-18 12:31:45
snorlov
У вас же скриптик, кто не дает вам сначала сделать нужную таблицу, к примеру work_table, которую и грузить в файер
Как в ipfw сделать исключение из таблицы?
Добавлено: 2019-01-18 13:39:15
fly380
Спасибо что отозвались! Вчера решил вопрос в конфиге фаервола было так:
Код: Выделить всё
${fwcmd} table 1 flush
${fwcmd} zero
${fwcmd} -f flush
${fwcmd} nat 1 delete
# Сетевая карта в которую вставлен провод от провайдера.
extif="igb1"
# Сетевая карта смотрящая во внутреннюю сеть.
LanIn="igb0"
setup_loopback
# Заполнение таблиц
cat /etc/tables/full_block | while read ip; do
${fwcmd} table 1 add $ip 1
done
${fwcmd} add allow ip from 128.199.36.165 to any
${fwcmd} add deny log logamount 2048 ip from table\(1\) to any in via ${extif}
# kernel nat - most trendy.
${fwcmd} nat 1 config if ${extif} log reset same_ports
${fwcmd} add nat 1 all from 10.10.0.0/21 to any out via ${extif}
${fwcmd} add nat 1 ip from any to any in via ${extif}
${fwcmd} add allow ip from any to any via ${extif}
# Разрешаем трафик внутренней сети на внутреннем интерфейсе.
${fwcmd} add allow all from any to any via igb0
# Доступ в DNS серверу.
${fwcmd} add allow tcp from any to ${IpOut} 53 in via ${extif} setup
# Запрещаем всё и пишим в лог.
${fwcmd} add 65534 deny log all from any to any
на мудрено с натом. Переделал
и
Код: Выделить всё
${fwcmd} table 1 flush
${fwcmd} zero
${fwcmd} -f flush
${fwcmd} nat 1 delete
# Сетевая карта в которую вставлен провод от провайдера.
extif="igb1"
# Сетевая карта смотрящая во внутреннюю сеть.
LanIn="igb0"
setup_loopback
# Заполнение таблиц запрета на вход
cat /etc/tables/full_block | while read ip; do
${fwcmd} table 1 add $ip 1
done
# Исключение запрета на вход
cat /etc/tables/AllowSites | while read ip; do
${fwcmd} table 2 add $ip 1
done
# kernel nat - most trendy.
${fwcmd} nat 1 config if ${extif} log reset same_ports
${fwcmd} add nat 1 all from any to any in via ${extif}
${fwcmd} add allow ip from table\(2\) to any in via ${extif}
${fwcmd} add deny log logamount 2048 all from table\(1\) to any in via ${extif}
${fwcmd} add nat 1 all from 10.10.0.0/21 to any out via ${extif}
${fwcmd} add allow ip from any to any out via ${extif}
# Разрешаем трафик внутренней сети на внутреннем интерфейсе.
${fwcmd} add allow all from any to any via igb0
# Доступ в DNS серверу.
${fwcmd} add allow tcp from any to ${IpOut} 53 in via ${extif} setup
# Запрещаем всё и пишим в лог.
${fwcmd} add 65534 deny log all from any to any
все побежало заблокированные сидят тихо а разрешенные ходят. И тут возник новый вопрос. Подскажите как сделать редирект при обращении из локалки на заблокированный IP на страницу к примеру 10.10.1.2:9443 на которой я указал что туда не ходи?
Как в ipfw сделать исключение из таблицы?
Добавлено: 2019-01-26 20:46:52
dekloper
пометить пакетик.. а дальше гоуту куда положено..