|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Yuri Chumakov 2:5079/65.2 11 Nov 2006 04:05:58 To : Denis Shaposhnikov Subject : PF firewall -------------------------------------------------------------------------------- 09 ноября 2006 12:08, Denis Shaposhnikov писал Yuri Chumakov: Yuri>> #ext_if="{ xl1, tun0, ng0 }" # external interface name Yuri>> nat on $ext_if from $internal_net to any -> $ext_if Yuri>> По понятным причинам, нат нужен на всех 3-х интерфейсах. HО!!! Yuri>> Если раскоментировать первую строку, где есть все 3 интерфейса, Yuri>> то ната не будет нигде, так как ng0 - нет в системе. DS> Ты точно уверен, что NAT'а не будет HИГДЕ? Мало того - не будет вообще ни одного правила. Говорит, типа, "кто такой ng0 - не знаю, и правила загружать не буду вообще". DS> Берут меня сомнения в этом. Посмотри `pfctl -sr`, что у тебя получилось DS> вместо твоего правила `nat on`, после раскрытия списка. в -sr нет правил ната, а в -sn: =================== Cut =================== nat on xl1 inet from 192.168.0.0/24 to any -> { 10.10.247.63, 10.10.103.235 } round-robin nat on tun0 inet from 192.168.0.0/24 to any -> { 10.10.247.63, 10.10.103.235 } round-robin rdr on xl0 inet proto tcp from 192.168.0.0/24 to any port = http -> 127.0.0.1 port 3128 rdr on xl0 inet proto tcp from 192.168.0.0/24 to any port = 8080 -> 127.0.0.1 port 3128 ================= End cut ================= Всё вполне прилично. Смущает немного round-robin, но это должно решиться, когда я научусь указывать адрес интерфейса в правиле, где участвует сам интерфейс, или просто укажу nat on tun0 from $internal_net to any -> tun0. Однако удручает тот момент, что нельзя указать таблицу в районе nat on <table>. Это решило-бы проблему перегрузки правил добавлением/убиранием имени интерфейса в таблице. А так, если не найду способа реализовать это в пределах одного файла, то придется где-то еще рисовать отдельный файл, почти копию. :( Что такое anchor - я еще не понял... И как будет выглядеть self - тоже еще не представляю. Hапример: pass in quick on $ext_if proto udp from any to $ext_if port = 53 заменить на pass in quick on $ext_if proto udp from any to self port = 53 DS> Думается мне, белиберда там получается, 9 правил (при DS> раскомментированном ext_if), вместо 3-х, как ты, вероятно, хотел. DS> Попробуй заменить эту строку на три отдельных `nat on`, с явным DS> указанием интерфейса. на момент запуска системы, и старта pf - ng0 в системе нет. Получается рисуем два ната, а третий при поднятии интерфейса из соседнего файла? Так не интересно... Ибо в параллель надо поднимать 60% (грубо говоря, дублировать все правила, кроме обработки локального траффика) конфига. DS> После этого настрой то, что у тебя ng0 поднимает, Это mpd. DS> так, что бы оно запускало скрипт после, установления сессии, из DS> которого ты будет выполнять `/etc/rc.d/pf reload`. ng0 поднимается иногда. "иногда" в данном случае временной интервал от нескольких часов до нескольких дней. Короче когда инет понадобился - тогда и запускаю. До встречи, с уважением Yuri Chumakov --- GoldED+/W32 1.1.5-030809 * Origin: Default origin (2:5079/65.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/28114554fbd8.html, оценка из 5, голосов 10
|