Перенаправление портов OpenBSD pf несколько правил

Если знание - сила, то нет никакого вреда в знании больше. Что касается разработчиков, я могу понять, что их фокус не находится на инструментах физического оборудования, хотя они никогда не могут понимать, как аппаратные средства могут иметь эффект на их работу.

Вы могли также посмотреть на вещи с точки зрения разработчиков (или защитник дьявола). Как программист или администратор систем/сети, почему мы не знаем больше об инструментах разработчика, стилях, виде, и т.д. и т.д.? Если мы, по-видимому, работаем с веб-сайтами или приложениями, должны мы, поскольку IT берет больше знающее об их поле?

Все это снижается для балансировки. Да, разработчики должны работать с компьютерами, но это не означает, что они должны знать каждую небольшую деталь об этом. Компьютер является инструментом или средством для конца. Для большинства из нас компьютерные гики это не всегда имеет место.

4
задан 23 July 2011 в 08:20
1 ответ

От pf.conf (5) страница справочника:

Опции перевода применяются только к пакетам, которые проходят через указанный интерфейс, и если никакой интерфейс не указан, перевод применяется к пакетам во всех интерфейсах. Например, перенаправление порта 80 во внешнем интерфейсе к внутреннему веб-серверу будет только работать на соединения, происходящие из внешней стороны. Соединения с адресом внешнего интерфейса от локальных хостов не будут перенаправлены, так как такие пакеты на самом деле не проходят через внешний интерфейс. Перенаправления не могут отразить пакеты назад через интерфейс, в который они прибывают, они могут только быть перенаправлены к хостам, подключенным к различным интерфейсам или к самому брандмауэру.

Вы смогли уплотнять некоторые свои правила, не указав, на каком интерфейсе Вы хотите, чтобы перенаправление произошло и позволило pf оценивать его для Вас.

Например:

pass in on $extif proto tcp from any to 10.0.0.213 port {25,80,443} rdr-to 172.16.1.193
pass in on $intif proto tcp from $intnet to 10.0.0.213 port {25,80,443} rdr-to 172.16.1.193

Мог быть переписан как:

pass in proto tcp from any to 10.0.0.213 port {25, 80, 443} rdr-to 172.16.1.193
  • Входящий трафик, предназначенный для 10.0.0.213 на $extif будет перенаправлен к 172.16.1.193.
  • Входящий трафик, предназначенный для 10.0.0.213 на $intif будет перенаправлен к 172.16.1.193.
  • Это также позволит трафик, который не является частью $intnet счастливо быть перенаправленным также. Это может, или не может желательный.

Не видя Ваш весь ruleset или действительно зная, что Вы пытаетесь выполнить, я могу только предложить пример подтверждения концепции.

Одно заключительное примечание: Я действительно постарался бы не делать это. Существует тенденция (по крайней мере, у меня есть она) хотеть записать, что наименьшее количество правил, возможных при наличии одного правила, делает больше, чем "одна вещь". Это плохо. Брандмауэры являются уже ужасно сложными и приличными всегда неправильно конфигурируемый; почему мешают на себе путем обработки византийского ruleset? Более длинный ruleset с более простыми правилами будет легче понять, обслуживание и отладка. Избегайте искушения быть чрезмерно умными.

3
ответ дан 3 December 2019 в 03:47

Теги

Похожие вопросы