2.2.5 чистая установка, проблема с маршрутизац



  • Добрый день!
    У меня странная ситуация:
    Чистая установка pfsense 2.2.5 на виртуальной машине под ESXi отказывается маршрутизировать с интерфейса LAN на gateway group из двух инернетов INET1 и INET2.
    Причём чистая установка 2.2.4 с теми же самыми настройками работает отлично, обновляется на 2.2.5, и после этого продолжает работать.
    Кто-нибудь с чем-то аналогичным сталкивался?

    Интерфейсы
    em0  MGMT  10.255.1.234/24
    em1  LAN      10.24.1.200/24
    em2  INET1  10.1.1.3/29  шлюз INET1_GW 10.1.1.1/29
    em3  INET2  10.1.1.11/29  шлюз INET2_GW 10.1.1.9/29

    Правила брандмауэра:
    интерфейс MGMT

        • MGMT Address 443 80 * * Anti-Lockout Rule
          интерфейс LAN
          IPv4 * * * * * Inet_summary none
          Inet_summary - это gateway group из шлюзов INET1_GW и INET2_GW
          На других интерфейсах правил нет.

    Проверял, указывая в качестве шлюза вместо Inet_summary по отдельности INET1_GW или INET1_GW. Ни в каком случае пакеты до провайдеров не доходят. Клиент в локальной сети получает "Operation timed out" либо "Connection refused".

    Похоже на серьёзный баг. Как сообщить разработчикам?



  • Добрый.
    VLAN-ы есть ?

    Какие типы соединения исп-ся на WAN-ах?
    WAN-ы вообще поднялись ? Это видно в веб-фейсе ?

    Интерфейсы точно правильно сопоставлены в вирт. машине? Покажите скрин настроек в ESXi.

    P.s. Попробуйте исп-ть не intel-кие сетевые, а нативные паравиртуальные в настройках вирт. машины. Предварительно выкл. её.



  • В pfsense VLAN-ов нет.
    Типы соединения IPv4 static, вы это имеете в виду?
    WAN-ы поднялись, это видно в веб-интерфейсе. К тому же с самого pfsens-а ping и telnet в интернет ходят. Из локальной сети - нет.
    По поводу сопоставления интерфейсов сомнений нет. Сетевые карты пробовал разные, результат один, машину на момент смены карт выключал.

    Проблема наблюдается при последовательной установке 2.2.5 и 2.2.4 на одну и ту же виртуальную машину без изменения ее настроек, поэтому, я думаю, из подозреваемых ESX можно исключить?



  • "Operation timed out" либо "Connection refused"

    Рекомендую для начала проверить настройки NAT — они лучше работают и контролируются в ручном режиме.
    Может какая проблема в файрволе
    Вывести правила можно командами

    pfctl -sn
    
    pfctl -sr
    


  • Настройки NAT по-умолчанию, т.е. Automatic.

    На машине c установленной с нуля 2.2.5:

    $ pfctl -sn
    no nat proto carp all
    nat-anchor "natearly/*" all
    nat-anchor "natrules/*" all
    no rdr proto carp all
    rdr-anchor "relayd/*" all
    rdr-anchor "tftp-proxy/*" all
    rdr-anchor "miniupnpd" all
    
    $ pfctl -sr | grep -v inet6
    scrub on vmx2 all fragment reassemble
    scrub on vmx0 all fragment reassemble
    scrub on vmx1 all fragment reassemble
    scrub on vmx3 all fragment reassemble
    anchor "relayd/*" all
    anchor "openvpn/*" all
    anchor "ipsec/*" all
    block drop in log quick inet from 169.254.0.0/16 to any label "Block IPv4 link-local"
    block drop in log quick inet from any to 169.254.0.0/16 label "Block IPv4 link-local"
    block drop in log inet all label "Default deny rule IPv4"
    block drop out log inet all label "Default deny rule IPv4"
    block drop log quick inet proto tcp from any port = 0 to any label "Block traffic from port 0"
    block drop log quick inet proto udp from any port = 0 to any label "Block traffic from port 0"
    block drop log quick inet proto tcp from any to any port = 0 label "Block traffic to port 0"
    block drop log quick inet proto udp from any to any port = 0 label "Block traffic to port 0"
    block drop log quick from <snort2c> to any label "Block snort2c hosts"
    block drop log quick from any to <snort2c> label "Block snort2c hosts"
    block drop in log quick proto tcp from <sshlockout> to (self) port = ssh label "sshlockout"
    block drop in log quick proto tcp from <webconfiguratorlockout> to (self) port = https label "webConfiguratorlockout"
    block drop in log quick from <virusprot> to any label "virusprot overload table"
    block drop in log on ! vmx2 inet from 10.1.1.8/29 to any
    block drop in log inet from 10.1.1.12 to any
    block drop in log on ! vmx0 inet from 10.255.21.0/24 to any
    block drop in log inet from 10.255.21.233 to any
    block drop in log on ! vmx1 inet from 10.21.1.202 to any
    block drop in log inet from 10.21.1.202 to any
    block drop in log on ! vmx3 inet from 10.1.1.0/29 to any
    block drop in log inet from 10.1.1.4 to any
    pass in on lo0 inet all flags S/SA keep state label "pass IPv4 loopback"
    pass out on lo0 inet all flags S/SA keep state label "pass IPv4 loopback"
    pass out inet all flags S/SA keep state allow-opts label "let out anything IPv4 from firewall host itself"
    pass in quick on vmx0 proto tcp from any to (vmx0) port = https flags S/SA keep state label "anti-lockout rule"
    pass in quick on vmx0 proto tcp from any to (vmx0) port = http flags S/SA keep state label "anti-lockout rule"
    anchor "userrules/*" all
    block drop in quick on vmx0 inet from any to ! 10.255.21.233 label "USER_RULE"
    pass in quick on vmx1 inet from any to <negate_networks> flags S/SA keep state label "NEGATE_ROUTE: Negate policy routing for destination"
    pass in quick on vmx1 route-to (vmx2 10.1.1.9) inet all flags S/SA keep state label "USER_RULE"
    anchor "tftp-proxy/*" all</negate_networks></virusprot></webconfiguratorlockout></sshlockout></snort2c></snort2c>
    

    На машине с установленной с нуля 2.2.4, обновлённой до 2.2.5:

    $ pfctl -sn
    no nat proto carp all
    nat-anchor "natearly/*" all
    nat-anchor "natrules/*" all
    nat on vmx3 inet from 127.0.0.0/8 to any port = isakmp -> 10.1.1.3 static-port
    nat on vmx3 inet from 10.255.21.0/24 to any port = isakmp -> 10.1.1.3 static-port
    nat on vmx3 inet from 10.24.1.0/24 to any port = isakmp -> 10.1.1.3 static-port
    nat on vmx3 inet from 127.0.0.0/8 to any -> 10.1.1.3 port 1024:65535
    nat on vmx3 inet from 10.255.21.0/24 to any -> 10.1.1.3 port 1024:65535
    nat on vmx3 inet from 10.24.1.0/24 to any -> 10.1.1.3 port 1024:65535
    nat on vmx2 inet from 127.0.0.0/8 to any port = isakmp -> 10.1.1.11 static-port
    nat on vmx2 inet from 10.255.21.0/24 to any port = isakmp -> 10.1.1.11 static-port
    nat on vmx2 inet from 10.24.1.0/24 to any port = isakmp -> 10.1.1.11 static-port
    nat on vmx2 inet from 127.0.0.0/8 to any -> 10.1.1.11 port 1024:65535
    nat on vmx2 inet from 10.255.21.0/24 to any -> 10.1.1.11 port 1024:65535
    nat on vmx2 inet from 10.24.1.0/24 to any -> 10.1.1.11 port 1024:65535
    no rdr proto carp all
    rdr-anchor "relayd/*" all
    rdr-anchor "tftp-proxy/*" all
    rdr-anchor "miniupnpd" all
    
    $ pfctl -sr | grep -v inet6
    scrub on vmx3 all fragment reassemble
    scrub on vmx0 all fragment reassemble
    scrub on vmx1 all fragment reassemble
    scrub on vmx2 all fragment reassemble
    anchor "relayd/*" all
    anchor "openvpn/*" all
    anchor "ipsec/*" all
    block drop in log quick inet from 169.254.0.0/16 to any label "Block IPv4 link-local"
    block drop in log quick inet from any to 169.254.0.0/16 label "Block IPv4 link-local"
    block drop in log inet all label "Default deny rule IPv4"
    block drop out log inet all label "Default deny rule IPv4"
    block drop log quick inet proto tcp from any port = 0 to any label "Block traffic from port 0"
    block drop log quick inet proto udp from any port = 0 to any label "Block traffic from port 0"
    block drop log quick inet proto tcp from any to any port = 0 label "Block traffic to port 0"
    block drop log quick inet proto udp from any to any port = 0 label "Block traffic to port 0"
    block drop log quick from <snort2c> to any label "Block snort2c hosts"
    block drop log quick from any to <snort2c> label "Block snort2c hosts"
    block drop in log quick proto tcp from <sshlockout> to (self) port = ssh label "sshlockout"
    block drop in log quick proto tcp from <webconfiguratorlockout> to (self) port = https label "webConfiguratorlockout"
    block drop in log quick from <virusprot> to any label "virusprot overload table"
    block drop in log on ! vmx3 inet from 10.1.1.0/29 to any
    block drop in log inet from 10.1.1.3 to any
    block drop in log on ! vmx0 inet from 10.255.21.0/24 to any
    block drop in log inet from 10.255.21.232 to any
    block drop in log on ! vmx1 inet from 10.21.1.0/24 to any
    block drop in log inet from 10.21.1.201 to any
    block drop in log on ! vmx2 inet from 10.1.1.8/29 to any
    block drop in log inet from 10.1.1.11 to any
    pass in on lo0 inet all flags S/SA keep state label "pass IPv4 loopback"
    pass out on lo0 inet all flags S/SA keep state label "pass IPv4 loopback"
    pass out inet all flags S/SA keep state allow-opts label "let out anything IPv4 from firewall host itself"
    pass out route-to (vmx3 10.1.1.1) inet from 10.1.1.3 to ! 10.1.1.0/29 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
    pass out route-to (vmx2 10.1.1.9) inet from 10.1.1.11 to ! 10.1.1.8/29 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
    pass in quick on vmx0 proto tcp from any to (vmx0) port = https flags S/SA keep state label "anti-lockout rule"
    pass in quick on vmx0 proto tcp from any to (vmx0) port = http flags S/SA keep state label "anti-lockout rule"
    anchor "userrules/*" all
    block drop in quick on vmx0 inet from any to ! 10.255.21.232 label "USER_RULE"
    pass in quick on vmx1 inet from any to <negate_networks> flags S/SA keep state label "NEGATE_ROUTE: Negate policy routing for destination"
    pass in quick on vmx1 route-to { (vmx2 10.1.1.9), (vmx3 10.1.1.1), (vmx3 10.1.1.1), (vmx3 10.1.1.1), (vmx3 10.1.1.1) } round-robin inet all flags S/SA keep state label "USER_RULE"
    anchor "tftp-proxy/*" all</negate_networks></virusprot></webconfiguratorlockout></sshlockout></snort2c></snort2c>
    

    Получается, что при установке 2.2.5 с нуля, некоторые правила не создаются что ли?
    Я так понимаю, основная причина неработы - это отсутствие строк

    pass out route-to (vmx3 10.1.1.1) inet from 10.1.1.3 to ! 10.1.1.0/29 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
    pass out route-to (vmx2 10.1.1.9) inet from 10.1.1.11 to ! 10.1.1.8/29 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
    


  • Сперва разберитесь с NAT — при чистой установке его просто нету и естественно провайдер будет блокировать пакеты с IP адресами вашей внутренней сети. У меня правилах для NAT есть записи и тоже стоит автоматическое заполнение, но  эта машина так-же обновлена с 2.2.4 и интерфейса на ней всего 2 (WAN и LAN).
    И не видно почему-то в чистой установке правила для второго интернета
    Завтра попробую переставить в чистую 2.2.5 посмотрим что выйдет.



  • @PbIXTOP:

    И не видно почему-то в чистой установке правила для второго интернета

    Виноват. Действительно был выбран только первый интернет.
    Но общей картины это не меняет, в выводе меняется только одна строка

    pass in quick on vmx1 route-to (vmx2 10.1.1.9) inet all flags S/SA keep state label "USER_RULE"
    

    следует читать как

    pass in quick on vmx1 route-to { (vmx2 10.1.1.9), (vmx3 10.1.1.1), (vmx3 10.1.1.1), (vmx3 10.1.1.1), (vmx3 10.1.1.1) } round-robin inet all flags S/SA keep state label "USER_RULE"
    


  • @PbIXTOP:

    Сперва разберитесь с NAT — при чистой установке его просто нету и естественно провайдер будет блокировать пакеты с IP адресами вашей внутренней сети.

    До провайдеров пакеты даже не доходят. Проверяли на их стороне.

    зы Что за косяк с форумом? Сообщение не отредактировать.



  • В настройках WAN интерфейсов поле 'IPv4 Upstream Gateway' заполните.



  • @petroid:

    До провайдеров пакеты даже не доходят. Проверяли на их стороне.

    Проверять можно и на своей воспользовавшись tcpdump.
    @PbIXTOP:

    Завтра попробую переставить в чистую 2.2.5 посмотрим что выйдет.

    Поставил в чистую c 2 интерфейсами (WAN и LAN) — NAT и разрешающие для локальной сети правила создались.



  • @PbIXTOP:

    Поставил в чистую c 2 интерфейсами (WAN и LAN) — NAT и разрешающие для локальной сети правила создались.

    Сейчас тоже попробовал, с 4 интерфейсами - тоже создались.

    @rubic:

    В настройках WAN интерфейсов поле 'IPv4 Upstream Gateway' заполните.

    Так они были заполнены… Сейчас переключил на "none" и обратно с сохранением настроек, и правила появились! Что это было вообще?



  • @petroid:

    Так они были заполнены… Сейчас переключил на "none" и обратно с сохранением настроек, и правила появились! Что это было вообще?

    По наличию значения в этом поле pfSense определяет, что данный интерфейс - WAN. Соответственно создает правила в Outbоund NAT, когда он в автоматическом режиме, и в Firewall.



  • @rubic:

    По наличию значения в этом поле pfSense определяет, что данный интерфейс - WAN. Соответственно создает правила в Outbоund NAT, когда он в автоматическом режиме, и в Firewall.

    Так я и говорю, что значение в поле было, а правил не было! После убирания значения, и последующего возвращения его на место, правила появились.


Log in to reply