nixp.ru v3.0

21 октября 2017,
суббота,
08:03:11 MSK

DevOps с компанией «Флант»
Fatal написал 26 февраля 2005 года в 14:35 (446 просмотров) Ведет себя как мужчина; открыл 123 темы в форуме, оставил 484 комментария на сайте.

подскажите, пожалуйста, что за хрень происходит.

прописываю я строку в /etc/rc.firewall

cmd=«/sbin/ipfw»

${cmd} add pass all from any to any

весь трафик пропускается.

затем комментирую эту строку и прописываю, что бы любые пакеты пересылались толь

ко на определйнный локальный адрес:

#${cmd} add pass all from any to any

${cmd} add pass all from 169.254.0.1 to any

${cmd} add pass all from any to 169.254.0.1

но на этот локальный адрес ничеого не пересылается.

что здесь не так? я ведь вместо всех указываю только один адрес, ведь должно пер

есылаться!

Genie

а с чего бы это оно должно пересылать-то?

что ты хочешь сделать?

видишь ли, помсотрим на то, что ты написал глазами ipfw.

пропускать пакеты от 169.254.0.1 до всех

пропускать пакеты от всех до 169.254.0.1

что он честно и делает.

а наружи компьютерные народности тихо недоумевают, а куда ж им отсылать эти пакеты, точнее ответы на эти пакеты? приходится тихо дропать.

так что этих правил явно недостаточно, чтобы заработало.

так что, давай-ка, расписывай, что ты хочешь сделать, что прочитал, какой конкретно пункт прочитанного пытался применить?

Fatal

извините, я забыл привести файл /etc/rc.firewall полностю

#!/bin/sh

#

/usr/bin/ipfw -q flush

# внутренний и внешний интерфейсы

inint=«vr0»

outint=«vr1»

cmd=«/usr/bin/ipfw»

${cmd} add divert natd all from any to any ${outint}

# разрешаю трафик в пределах локальной сети

${cmd} add pass all from any to any via ${inint}

# ICMP пакеты

${cmd} add pass ICMP from any to any

# DNS сервера

${cmd} add pass udp from any to any 53

${cmd} add pass udp from any 53 to any

# здесь я пытаюсь, что бы машина 169.254.0.1

# имела доступ ко всему: к интернету, различным портам (smtp, pop)

# через шлюз FreeBSD, но почему-то пакеты не пропускаются

# подскажите, чего нехватает

${cmd} add pass all from 169.254.0.1 to any

${cmd} add pass all from any to 169.254.0.1

Genie

правила на pass проверяются до того, как происходит трансляция пакетов в natd.

поэтому по правилу «${cmd} add pass all from 169.254.0.1 to any» пакеты наружу выйдут, но вот обратно под правило «${cmd} add pass all from any to 169.254.0.1» они не попадут

Fatal

если так, то почему если поставить правило

${cmd} add pass all from any to any

то всё будет работатать, это же тоже правило на pass?

anonymous
Fatal
если так, то почему если поставить правило

${cmd} add pass all from any to any

то всё будет работатать, это же тоже правило на pass?

Посмотри tcpdump-ом, что происходит. Через некоторого количества попыток посмотри, какой из счетчиков трафика увеличился.

Вообще , рекомендую писать свои скрипты, а rc.firewall оставить в покое — пусть не мозолит глаза :-)

anonymous
Fatal
если так, то почему если поставить правило

${cmd} add pass all from any to any

то всё будет работатать, это же тоже правило на pass?

И еще : сделай `whereis ipfw` :-) Сдается мне, что ipfw лежит в /sbin , а не где-то еще

Genie
то всё будет работатать, это же тоже правило на pass?

да, это тоже правило на pass, да вот только не то же.

потому как оно у тебя отвечает за абсолютно весь трафик.

вот если бы ты его разбил по направлениям с интерфейса на другой…

тогда бы ещё можно было что-то сравнивать.

а так… весовые категории не те у правил. совершенно.

Fatal

скажите, пожалуйста, как два правила запредить всё и разрешить всё уживаются вместе? в ядре по умалчанию стоит запретить всё, а в конфиге — разрешить. и почему у меня разреашется, короче, почему у разрешения приоритет выше чем у запрещения, индек у разрешить всё меньше.

fly4life
Fatal
скажите, пожалуйста, как два правила запредить всё и разрешить всё уживаются вместе? в ядре по умалчанию стоит запретить всё, а в конфиге — разрешить. и почему у меня разреашется, короче, почему у разрешения приоритет выше чем у запрещения, индек у разрешить всё меньше.

Это реализация политики безопасности «заперщать всё, что не разрешено».

Правила выполняются сверху вниз, т.е. сначала идёт твоё разрешающее правило, поэтому оно выполняется раньше, чем следом идущее запрещающее.

anonymous
Fatal
скажите, пожалуйста, как два правила запредить всё и разрешить всё уживаются вместе? в ядре по умалчанию стоит запретить всё, а в конфиге — разрешить. и почему у меня разреашется, короче, почему у разрешения приоритет выше чем у запрещения, индек у разрешить всё меньше.

Прочитай man ipfw и не морочь людям голову.