LINUX.ORG.RU

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

 


0

1

Суть пробемы: есть таблица

cat /etc/tables/full_block | while read ip; do
      ${fwcmd} table 1 add $ip 1
   done
${fwcmd} add deny log logamount 2048 ip 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 ip from table\(1\) to any in via ${extif}
добавляю
${fwcmd} add allow ip from 128.199.36.165 to any
сам шлюз начинает ходить на этот IP, а вот компы в локалке никак. Как разрешить всем из локальной сети ходить на этот IP?

P.S extif интерфейс смотрящий в нет



Последнее исправление: fly380 (всего исправлений: 1)

Ответ на: комментарий от hizel

Вот так не работает

${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

fly380
() автор топика
Ответ на: комментарий от fly380

вы разрешаете трафик до нат, и он не попадает в правило нат, значит не натится, по умолчанию ipfw nat 1 срабатывает как ipfw allow, нужно установить sysctl net.inet.ip.fw.one_pass=0

и правила типа

${fwcmd} add nat 1 all from any to any in via ${extif}

${fwcmd} add allow ip from 128.199.36.165 to any in via ${extif}
${fwcmd} add deny log logamount 2048 ip 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 ti any out via ${extif}

это не полное, идея должна быть понятна, посмотрите, кстати handbook freebsd про ipfw еще

откуда эта вредная привычка выползла в рунете именовать ipfw в fwcmd, получается же длинее

hizel ★★★★★
()
Ответ на: комментарий от hizel

Спасибо, разобрался! Я так и думал что с натом намудрил. А по поводу fwcmd это мне в «наследство» досталось :)

fly380
() автор топика
Ответ на: комментарий от fly380

Это конечно уже не к этой теме, но все же. Подскажите как сделать редирект при обращении из локалки на заблокированный IP на страницу к примеру 10.10.1.2:9443?

fly380
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.