Как в ipfw сделать исключение из таблицы?

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Духовитин
мл. сержант
Сообщения: 125
Зарегистрирован: 2014-12-17 8:46:05

Как в 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 нет.
Кто не рискует - тот не пьёт шампанского.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Духовитин
мл. сержант
Сообщения: 125
Зарегистрирован: 2014-12-17 8:46:05

Как в 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
Кто не рискует - тот не пьёт шампанского.

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение Neus » 2018-03-05 8:34:19

Проще написать 2 правила.
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!

Аватара пользователя
Духовитин
мл. сержант
Сообщения: 125
Зарегистрирован: 2014-12-17 8:46:05

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение Духовитин » 2018-03-05 10:11:58

Ясно, спасибо!

Но всё же мне кажется странно что OR реализован, а AND нет.
Кто не рискует - тот не пьёт шампанского.

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение Neus » 2018-03-05 11:06:58

Реализация AND тут бессмысленна.
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!


Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение Neus » 2018-03-06 15:00:04

:-D
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!

fly380
проходил мимо
Сообщения: 8
Зарегистрирован: 2019-01-16 21:45:39

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение fly380 » 2019-01-16 22:02:27

Дабы не плодить темы задам вопрос в этой. Смысл тот же: есть таблица

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

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 интерфейс смотрящий в локаль

FiL
ст. лейтенант
Сообщения: 1374
Зарегистрирован: 2010-02-05 0:21:40

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение FiL » 2019-01-18 1:56:21

а что еще запрещено в фаерволе? или это единственные два правила?

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение snorlov » 2019-01-18 12:31:45

У вас же скриптик, кто не дает вам сначала сделать нужную таблицу, к примеру work_table, которую и грузить в файер

fly380
проходил мимо
Сообщения: 8
Зарегистрирован: 2019-01-16 21:45:39

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение fly380 » 2019-01-18 13:39:15

Спасибо что отозвались! Вчера решил вопрос в конфиге фаервола было так:

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

${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
на мудрено с натом. Переделал

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

sysctl net.inet.ip.fw.one_pass=0
и

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

${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 на которой я указал что туда не ходи?

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Как в ipfw сделать исключение из таблицы?

Непрочитанное сообщение dekloper » 2019-01-26 20:46:52

пометить пакетик.. а дальше гоуту куда положено..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!