The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
FreeBsd PF - нстройка правил, !*! Hlf, 06-Ноя-10, 19:00  [смотреть все]
Приветствую.
Дело в следующем: чтоб долго не расписывать что к чему выкладываю rc.conf и pf.conf

Проблема в том что с данным конфигом всем можно всё (
Подскажите в чем я ошибся - не пойму вроде правила правильно расписал....

Rc.conf

defaultrouter="***.***.***.149"
gateway_enable="YES"
hostname="bsd"
ifconfig_re0="inet ***.***.2.150 netmask 255.255.255.252" # интерфейс  к провайдеру
ifconfig_rl0="inet ***.***.24.17 netmask 255.255.255.240" # смотрит в сеть 1
ifconfig_rl1="inet ***.***.88.241 netmask 255.255.255.248" # смотрит в сеть 2

pf_enable="YES"
pf_rules="/etc/pf.conf"

---------------------------------------------------------------------------------

Pf.conf

ext_if="re0"
lan_if_1="rl0"
lan_if_2="rl1"

inet_proto = "{tcp, udp}"
allowed_ports="{ 443, 1494, 80, 1935, 3128, 8080, 1433, 1104, 2562, 1407 }


Allowed_networks="{ ***.***.***.***/32, ***.***.***.0/24, } #разрешенные Ip и сети

# разрешаем сети подключеной к интерфейсу rl0 доступ к Allowed networks через интерфейс re0

pass in on $ext_if inet proto $inet_proto from $Allowed_networks to ***.***.24.0/28 port $allowed_ports keep state
pass out on $ext_if inet proto $inet_proto from ***.***.24.0/28 to $Allowed_networks port $allowed_ports keep state

#разрешаем одному ip из сети подключеной к интерфейсу rl0 всё

pass in on $ext_if inet proto $inet_proto from any to ***.***.24.18/32 port $allowed_ports keep state
pass out on $ext_if inet proto $inet_proto from ***.***.24.18/32 to any port $allowed_ports keep state

#разрешаем машинке из сети подключеной к интерфейсу rl1 всё

pass in on $ext_if inet proto $inet_proto from any to ***.***.88.243/32 port $allowed_ports keep state
pass out on $ext_if inet proto $inet_proto from ***.***.***.243/32 to any port $allowed_ports keep state


всё

применяем правила - ок
проверяю - все ip из всех сетей имеют полный выход в инет....

  • FreeBsd PF - нстройка правил, !*! Кирилл_Н, 19:27 , 06-Ноя-10 (1)
    >[оверквотинг удален]
    > pass out on $ext_if inet proto $inet_proto from ***.***.24.18/32 to any port
    > $allowed_ports keep state
    > #разрешаем машинке из сети подключеной к интерфейсу rl1 всё
    > pass in on $ext_if inet proto $inet_proto from any to ***.***.88.243/32 port
    > $allowed_ports keep state
    > pass out on $ext_if inet proto $inet_proto from ***.***.***.243/32 to any port
    > $allowed_ports keep state
    > всё
    > применяем правила - ок
    > проверяю - все ip из всех сетей имеют полный выход в инет....

    добавьте
    block in all
    block out all
    перед первым правилом

    • FreeBsd PF - нстройка правил, !*! mef, 19:31 , 06-Ноя-10 (3)
      > добавьте
      > block in all
      > block out all
      > перед первым правилом

      порядок правил в данном случае не важен, если не используется конструкция quick.

      • FreeBsd PF - нстройка правил, !*! Aquarius, 21:01 , 06-Ноя-10 (4)
        >> добавьте
        >> block in all
        >> block out all
        >> перед первым правилом
        > порядок правил в данном случае не важен, если не используется конструкция quick.

        как это не важен, если исполняется последнее подходящее правило?

        • FreeBsd PF - нстройка правил, !*! Hlf, 22:11 , 06-Ноя-10 (5)
          >>> добавьте
          >>> block in all
          >>> block out all
          >>> перед первым правилом
          >> порядок правил в данном случае не важен, если не используется конструкция quick.
          > как это не важен, если исполняется последнее подходящее правило?

          А вот тут начинается самое интересное
          Если я ставлю правила block первыми или последними - инета нет по всем моим сетям

          • FreeBsd PF - нстройка правил, !*! mef, 22:27 , 06-Ноя-10 (7)
            > А вот тут начинается самое интересное
            > Если я ставлю правила block первыми или последними - инета нет по
            > всем моим сетям

            pfctl -sr что показывает?
            Попробуй временно убрать in и out.

            • FreeBsd PF - нстройка правил, !*! Hlf, 22:40 , 06-Ноя-10 (8)
              >> А вот тут начинается самое интересное
              >> Если я ставлю правила block первыми или последними - инета нет по
              >> всем моим сетям
              > pfctl -sr что показывает?
              > Попробуй временно убрать in и out.

              Если убрать правила block - инет появляется.
              Но игнорит акцесслист, у всех есть полный доступ в обе стороны
              pfctl показывает, что все правила работают как и должно быть)

              • FreeBsd PF - нстройка правил, !*! mef, 22:45 , 06-Ноя-10 (9)
                > Если убрать правила block - инет появляется.
                > Но игнорит акцесслист, у всех есть полный доступ в обе стороны
                > pfctl показывает, что все правила работают как и должно быть)

                А in и out если убрать?

              • FreeBsd PF - нстройка правил, !*! Кирилл_Н, 10:39 , 07-Ноя-10 (11)
                >>> А вот тут начинается самое интересное
                >>> Если я ставлю правила block первыми или последними - инета нет по
                >>> всем моим сетям
                >> pfctl -sr что показывает?
                >> Попробуй временно убрать in и out.
                > Если убрать правила block - инет появляется.
                > Но игнорит акцесслист, у всех есть полный доступ в обе стороны
                > pfctl показывает, что все правила работают как и должно быть)

                А инет у вас пропадает при добавлении блока в начале потому, что не разрешён никакой трафик на lan_if_1 и lan_if_2. Может вы выложили не весь конфиг?

                • FreeBsd PF - нстройка правил, !*! Hlf, 13:07 , 07-Ноя-10 (12)
                  >[оверквотинг удален]
                  >>>> Если я ставлю правила block первыми или последними - инета нет по
                  >>>> всем моим сетям
                  >>> pfctl -sr что показывает?
                  >>> Попробуй временно убрать in и out.
                  >> Если убрать правила block - инет появляется.
                  >> Но игнорит акцесслист, у всех есть полный доступ в обе стороны
                  >> pfctl показывает, что все правила работают как и должно быть)
                  > А инет у вас пропадает при добавлении блока в начале потому, что
                  > не разрешён никакой трафик на lan_if_1 и lan_if_2. Может вы выложили
                  > не весь конфиг?

                  А то что в правилах прописано пропускать через ext_if сеть подключенную к lan_if
                  разве не должно работать ?

                  # разрешаем сети подключеной к интерфейсу rl0 доступ к Allowed networks через интерфейс re0

                  pass in on $ext_if inet proto $inet_proto from $Allowed_networks to ***.***.24.0/28 port $allowed_ports keep state
                  pass out on $ext_if inet proto $inet_proto from ***.***.24.0/28 to $Allowed_networks port $allowed_ports keep state

                  • FreeBsd PF - нстройка правил, !*! Кирилл_Н, 13:51 , 07-Ноя-10 (14)
                    >[оверквотинг удален]
                    >> не весь конфиг?
                    > А то что в правилах прописано пропускать через ext_if сеть подключенную к
                    > lan_if
                    > разве не должно работать ?
                    > # разрешаем сети подключеной к интерфейсу rl0 доступ к Allowed networks через
                    > интерфейс re0
                    > pass in on $ext_if inet proto $inet_proto from $Allowed_networks to ***.***.24.0/28 port
                    > $allowed_ports keep state
                    > pass out on $ext_if inet proto $inet_proto from ***.***.24.0/28 to $Allowed_networks port
                    > $allowed_ports keep state

                    При запросе на соединение из локальной сети пакет сначала появится на локальном интерфейсе сервера как входящий, а только потом уйдёт с внешнего интерфейса сервера. Т.е. как минимум для интернета изнутри вам надо разрешить входящий траф на внутренних интерфейсах и исходящий на внешних. Обратный траф будет попадать под состояения, созданные keep state.

                    • FreeBsd PF - нстройка правил, !*! Hlf, 14:06 , 07-Ноя-10 (15)
                      > При запросе на соединение из локальной сети пакет сначала появится на локальном
                      > интерфейсе сервера как входящий, а только потом уйдёт с внешнего интерфейса
                      > сервера. Т.е. как минимум для интернета изнутри вам надо разрешить входящий
                      > траф на внутренних интерфейсах и исходящий на внешних. Обратный траф будет
                      > попадать под состояения, созданные keep state.

                      Если я правильно понял мне надо перед правилом которое я создал для сети
                      добавить правило которое пропускает весь трафик внутреннего интерфейса на внешний ?
                      А первой строкой прописать правила block in и out ?


                      • FreeBsd PF - нстройка правил, !*! Кирилл_Н, 14:16 , 07-Ноя-10 (16)
                        >> При запросе на соединение из локальной сети пакет сначала появится на локальном
                        >> интерфейсе сервера как входящий, а только потом уйдёт с внешнего интерфейса
                        >> сервера. Т.е. как минимум для интернета изнутри вам надо разрешить входящий
                        >> траф на внутренних интерфейсах и исходящий на внешних. Обратный траф будет
                        >> попадать под состояения, созданные keep state.
                        > Если я правильно понял мне надо перед правилом которое я создал для
                        > сети
                        > добавить правило которое пропускает весь трафик внутреннего интерфейса на внешний ?
                        > А первой строкой прописать правила block in и out ?

                        В pf выполняется последнее совпавшее правило. Поэтому разрешить внутренний траф вам надо где-нибудь после block all. И трафик из внутренней подсети будет идти не на внешний интерфейс, а куда угодно в интернет. Т.е. вам после блокирующего правила надо добавить правило, разрешающее на внутреннем интерфейсе весь входящий траф из внутренней подсети куда угодно (или куда угодно кроме самого сервера, если вам не надо изнутри попадать на сервер).

                        pass in on $lan_if_1 inet from ($lan_if_1)  to any keep state

                        Если вам надо чтобы сам сервер ходил во внутреннюю подсеть, то также надо разрешить исходящий трафик на внутреннем интерфейсе от сервера во внутреннюю подсеть

                        хороший ман. почитайте:
                        http://www.opennet.ru/base/net/pf_faq.txt.html

          • FreeBsd PF - нстройка правил, !*! Aquarius, 09:02 , 07-Ноя-10 (10)
            >>>> добавьте
            >>>> block in all
            >>>> block out all
            >>>> перед первым правилом
            >>> порядок правил в данном случае не важен, если не используется конструкция quick.
            >> как это не важен, если исполняется последнее подходящее правило?
            > А вот тут начинается самое интересное
            > Если я ставлю правила block первыми или последними - инета нет по
            > всем моим сетям

            ну все верно:
            когда есть правила block, разрешено только то, что разрешено правилами pass
            а когда их нет, разрешено все

            предлагаю подумать, к какой стороне относятся указанные порты в ваших правилах (отдельно для правил in и для out)

        • FreeBsd PF - нстройка правил, !*! mef, 22:26 , 06-Ноя-10 (6)
          >>> добавьте
          >>> block in all
          >>> block out all
          >>> перед первым правилом
          >> порядок правил в данном случае не важен, если не используется конструкция quick.
          > как это не важен, если исполняется последнее подходящее правило?

          Да, важен. Другое хотел сказать.

  • FreeBsd PF - нстройка правил, !*! mef, 19:30 , 06-Ноя-10 (2)
    А где правило block?
    keep state кстати можно убрать, сейчас все правила по-умолчанию keep state. Еще можно сделать вместо просто pass - pass quick.
    • FreeBsd PF - нстройка правил, !*! Hlf, 13:20 , 07-Ноя-10 (13)
      В связи с тем что сеть должна работать - временно установил cisco 2621, пусть маршрутизит (через циску всё заработало как из пушки).
      А FreeBsd буду поднимать на Vmware с аналогичным конфигом, и разбираться детально.
      При удачном исходе выложу работающий конфиг - можт кому будет интересно.





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру