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

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Духовитин
мл. сержант
Сообщения: 114
Зарегистрирован: 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Духовитин
мл. сержант
Сообщения: 114
Зарегистрирован: 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
капитан
Сообщения: 1767
Зарегистрирован: 2008-09-08 21:59:56

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

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

Проще написать 2 правила.
«Вы никогда не сумеете решить возникшую проблему,
если сохраните то же мышление и тот же подход,
который привёл вас к этой проблеме.»
© Альберт Эйнштейн

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

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

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

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

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

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

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

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

Реализация AND тут бессмысленна.
«Вы никогда не сумеете решить возникшую проблему,
если сохраните то же мышление и тот же подход,
который привёл вас к этой проблеме.»
© Альберт Эйнштейн


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

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

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

:-D
«Вы никогда не сумеете решить возникшую проблему,
если сохраните то же мышление и тот же подход,
который привёл вас к этой проблеме.»
© Альберт Эйнштейн

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
ст. лейтенант
Сообщения: 1366
Зарегистрирован: 2010-02-05 0:21:40

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

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

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

snorlov
подполковник
Сообщения: 3679
Зарегистрирован: 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
ст. лейтенант
Сообщения: 1315
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

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

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

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