The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! vladkic, 22-Июн-15, 16:27  [смотреть все]
Здравствуйте!

Настроил сервер под управлением FreeBSD84, настроил squid. Все прекрасно
работает, но вот почту в обход сквида на 25 smtp и 995 pop SSL-TLS никак не хочет отправлять, сразу оговорюсь - dns на контроллере домена, который также имеет выход в Интернет(пока что) уже 2-ую неделю бьюсь - не получается пока...

ядро собрал со следующими опциями:
options   IPFIREWALL
options   IPFIREWALL_VERBOSE
options   IPFIREWALL_VERBOSE_LIMIT=1000
options   IPFIREWALL_FORWARD
options   DUMMYNET
options   HZ=1000
options   IPDIVERT
#----------------------------------------
rc.conf

hostname="proxy-server"
ifconfig_igb1="inet a.b.c.d netmask 255.255.255.128" #внешний ip
defaultrouter="a.b.c.1"
gateway_enable="yes"

#---         NAT         ---

natd_enable="yes"
natd_interface="igb1"
natd_flags="-m -u"

#---                     ---

ifconfig_igb0="inet 192.168.0.1 netmask 255.255.255.0"
keymap="us.unix"
firewall_enable="yes"
firewall_type="/etc/Firewall"
sshd_enable="yes"
squid_enable="YES"
#-----------------------------------------------------
Firewall
#-----------------
igb0 - LAN (вн.сеть)
igb1 - WAN (Интернет)
a.b.c.d - внешний ip-адрес (на igb1)
#-----------------

-q flush
-f flush
-f pipe flush
-f queue flush

5    add    check-state
10    add    allow ip from any to any via lo0
20    add    deny ip from any to 127.0.0.0/8
30    add    deny ip from 127.0.0.0/8 to any
45    add    allow ip from any to any established  #включил и сеть стала подтормаживать

47    add    allow icmp from 192.168.0.0/24 to any keep-state
48    add    allow ip from 192.168.0.0/24 to any 25 out via igb1 setup keep-state
49    add    allow ip from 192.168.0.0/24 to any 995 out via igb1 setup keep-state

400    add    deny ip from any to ::1
500    add    deny ip from ::1 to any

550    add    deny ip from me to any 137-139,445 out via igb1
1000    add    allow ip from 192.168.0.0/24 to any out via igb1 keep-state

#1200    add    deny ip from any to 10.0.0.0/8 in via igb1     #пока выключил
1300    add    deny ip from any to 172.16.0.0/12 in via igb1
#1400    add    deny ip from any to 192.168.0.0/16 in via igb1  #пока выключил
#1500    add    deny ip from any to 0.0.0.0/8 in via igb1     #пока выключил

#-----рубим пакеты `типа от внутренней сети, но на внешнем интерфейсе------
1555    add    deny ip from 192.168.0.0/24 to any in via igb1.

# -----------------------------------------------------------------------

1600    add    deny ip from any to 169.254.0.0/16 in via igb1
1650    add    deny ip from any to 224.0.0.0/8 in via igb1
1700    add    deny ip from any to 240.0.0.0/8 in via igb1
1800    add    deny icmp from any to any frag

#----------------- И еще одна попытка открыть почту через НАТ -------------------
1810    add    allow tcp from any to any 25 via igb1
1820    add    allow tcp from any 25 to any via igb1

#----------------Рубим 80 и 443 порты----------------------------------------
1850    add deny tcp from 192.168.0.0/24 to any 80 out via igb1     #только через proxy
1860    add deny tcp from 192.168.0.0/24 to any 443 out via igb1 #только через proxy

1900    add deny log icmp from any to 255.255.255.255 in via igb1
2000    add deny log icmp from any to 255.255.255.255 out via igb1

#------------------------ NAT---------------------------------------
2150    add divert natd ip from any to any via igb1
#2200    add divert 8668 ip from any to 192.168.0.0/24 in via igb1 #другой варинат ната
#---------------------------и еще раз почта---------------------------
#2202    add allow ip from any to any 25
#2203    add allow ip from any to any 995

# ---------------------- Еще одна попытка заставить заработать почту --------

#2220    add pass tcp from any 25, 995 to 192.168.0.0/24 via igb1
#2230    nat pass on igb1 from 192.168.0.0/24 to any port 25 -> igb1

#--------- Рубим трафик к частным сетям-----------------------------
#2300    add deny ip from 10.0.0.0/8 to any out via igb1     #пока выключил
2400    add deny ip from 172.16.0.0/16 to any out via igb1
#2500    add deny ip from 192.168.0.0/16 to any out via igb1    #пока выключил
#2600    add deny ip from 0.0.0.0/8 to any out via igb1        #пока выключил
2700    add deny ip from 169.254.0.0/16 to any out via igb1
2800    add deny ip from 224.0.0.0/4 to any out via igb1
2900    add deny ip from 240.0.0.0/4 to any out via igb1


3000    add allow ip from any to any established
3100    add allow ip from me to any out xmit igb1 keep-state
#--------------------DNS--------------------------------------------
3150    add allow udp from 192.168.0.0/24 to 8.8.8.8 53 out via igb1 keep-state
3300    add allow udp from 8.8.8.8 53 to 192.168.0.0/24 in via igb1 established
3400    add allow udp from 192.168.0.0/24 to any 53 out via igb1
#--------------------TIME-------------------------------------------
3500    add allow udp from any to any 123 via igb1
#---------------------FTP-------------------------------------------
3600    add allow tcp from any to any 20,21 out via igb1

3700    add allow tcp from any to a.b.c.d 49152-65535 via igb1
3800    add allow icmp from any to any icmptypes 0,8,11
#3810    add allow icmp from any to any out via igb1 icmptypes 0,8,11 setup keep-state
# 3850    add deny icmp from any to a.b.c.d in via igb1
3900    add allow tcp from any to a.b.c.d ssh via igb1

3910    add allow ip from any to 192.168.0.0/24 in via igb0
3920    add allow ip from 192.168.0.0/24 to any out via igb0
3930    add allow ip from any to any established

3950     add allow ip from any to any via igb0
# 3960    add allow tcp from any to any via igb0
# 3970    add allow udp from any to any via igb0
# 3980  add allow icmp from any to any via igb0

#----------------------------ICQ-----------------------------------------
#9000    add allow tcp from 192.168.0.0/24 to any 5190 in via igb0 setup

10000    add deny log tcp from any to a.b.c.d in via igb1 setup
65530    add deny log ip from any to any

GURUs I need your HELP, парни помогите!!!

  • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! PavelR, 19:49 , 22-Июн-15 (1)
    • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! vladkic, 06:16 , 23-Июн-15 (2)
      > Покажите ipfw sh

      # ipfw -a list
      00005       0          0 check-state
      00010  166696   29233680 allow ip from any to any via lo0
      00020       0          0 deny ip from any to 127.0.0.0/8
      00030       0          0 deny ip from 127.0.0.0/8 to any
      00045 6415962 5598536751 allow ip from any to any established
      00047     382      29256 allow icmp from 192.168.0.0/24 to any keep-state
      00048      50       2520 allow ip from 192.168.0.0/24 to any dst-port 25 out via igb1 setup keep-state
      00049     955      48132 allow ip from 192.168.0.0/24 to any dst-port 995 out via igb1 setup keep-state
      00400       0          0 deny ip from any to ::1
      00500       0          0 deny ip from ::1 to any
      00550     177      13806 deny ip from me to any dst-port 137-139,445 out via igb1
      01000    1105      55692 allow ip from 192.168.0.0/24 to any out via igb1 keep-state
      01300       0          0 deny ip from any to 172.16.0.0/16 in via igb1
      01555       0          0 deny ip from 192.168.0.0/24 to any in via igb1
      01600       0          0 deny ip from any to 169.254.0.0/16 in via igb1
      01650       0          0 deny ip from any to 224.0.0.0/8 in via igb1
      01700       0          0 deny ip from any to 240.0.0.0/8 in via igb1
      01800       0          0 deny icmp from any to any frag
      01810       6        256 allow tcp from any to any dst-port 25 via igb1
      01820       0          0 allow tcp from any 25 to any via igb1
      01850       0          0 deny tcp from 192.168.0.0/24 to any dst-port 80 out via igb1
      01860       0          0 deny tcp from 192.168.0.0/24 to any dst-port 443 out via igb1
      01900       0          0 deny log logamount 200 icmp from any to 255.255.255.255 in via igb1
      02000       0          0 deny log logamount 200 icmp from any to 255.255.255.255 out via igb1
      02150   12296     824413 divert 8668 ip from any to any via igb1
      02400       0          0 deny ip from 172.16.0.0/16 to any out via igb1
      02700       0          0 deny ip from 169.254.0.0/16 to any out via igb1
      02800       0          0 deny ip from 224.0.0.0/4 to any out via igb1
      02900       0          0 deny ip from 240.0.0.0/4 to any out via igb1
      03000       0          0 allow ip from any to any established
      03100  974945  628926121 allow ip from me to any out xmit igb1 keep-state
      03150       0          0 allow udp from 192.168.0.0/24 to 8.8.8.8 dst-port 53 out via igb1 keep-state
      03300       0          0 allow udp from 8.8.8.8 53 to 192.168.0.0/24 in via igb1 established
      03400       0          0 allow udp from 192.168.0.0/24 to any dst-port 53 out via igb1 established
      03600       0          0 allow tcp from any to any dst-port 20,21 out via igb1
      03700       4        160 allow tcp from any to a.b.c.d dst-port 49152-65535 via igb1
      03800       8        634 allow icmp from any to any icmptypes 0,8,11
      03900       0          0 allow tcp from any to a.b.c.d dst-port 22 via igb1
      03910  299897   37429734 allow ip from any to 192.168.0.0/24 in via igb0
      03920  286860   28291872 allow ip from 192.168.0.0/24 to any out via igb0
      03930       0          0 allow ip from any to any established
      03950    2063     401601 allow ip from any to any via igb0
      10000     481      21616 deny log logamount 200 tcp from any to a.b.c.d in via igb1 setup
      65530     485      69019 deny log logamount 200 ip from any to any
      65535  895701   64933042 deny ip from any to any

      • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! Сергей, 08:52 , 23-Июн-15 (3)
          какое значение имеет disable_one_pass?

        > 00048      50      
        >  2520 allow ip from 192.168.0.0/24 to any dst-port 25 out
        > via igb1 setup keep-state
        > 00049     955      48132
        > allow ip from 192.168.0.0/24 to any dst-port 995 out via igb1
        > setup keep-state

        Уберите эти правила и попробуйте, у вас банально 25 и 995 не доходит до ната...

        • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! vladkic, 09:10 , 23-Июн-15 (4)
          >   какое значение имеет disable_one_pass?

          net.inet.ip.fw.one_pass: 0


        • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! vladkic, 09:37 , 23-Июн-15 (5)
          >> 00048      50
          >>  2520 allow ip from 192.168.0.0/24 to any dst-port 25 out
          >> via igb1 setup keep-state
          >> 00049     955      48132
          >> allow ip from 192.168.0.0/24 to any dst-port 995 out via igb1
          >> setup keep-state
          >  Уберите эти правила и попробуйте, у вас банально 25 и 995
          > не доходит до ната...

          Убрал и добавил правила сразу после ната:
          add allow ip from 192.168.0.0/24 to any 25 out via igb1
          add allow ip from any 25 to 192.168.0.0/24 in via igb1
          add allow ip from any 25 to 192.168.0.0/24 out via igb0

          также отсутствует положительный результат забора и отправки почты - 25 и 995 порты.

          • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! Сергей, 13:17 , 23-Июн-15 (6)
            подставите собственные данные
            до ната
            add pass all from localnet to any 25 via interface_localnet
            add pass all from any to localnet 25 via interface_localnet

            Ремарка. выкиньте natd и используйте встроеннный в ipfw nat..

            • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! vladkic, 13:40 , 23-Июн-15 (7)
              >  подставите собственные данные
              > до ната
              > add pass all from localnet to any 25 via interface_localnet
              > add pass all from any to localnet 25 via interface_localnet
              > Ремарка. выкиньте natd и используйте встроеннный в ipfw nat..

              сделал, но пакеты назад не возвращаются:

              02050      6      304 allow ip from 192.168.0.0/24 to any dst-port 25 via igb0
              02055      0        0 allow ip from any 25 to 192.168.0.0/24 via igb0
              02100      6      304 divert 8668 ip from 192.168.0.0/24 to any out via igb1
              02110    117    22925 divert 8668 ip from any to a.b.c.d in via igb1

              • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! Сергей, 14:32 , 23-Июн-15 (8)
                Вы лучше сделайте следующее, возьмите rc.firewall, имеющийся в поставке, определите тип в OPEN и потихоньку добавляйте свои правила...  

                • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! vladkic, 17:00 , 23-Июн-15 (9)
                  >  Вы лучше сделайте следующее, возьмите rc.firewall, имеющийся в поставке, определите тип
                  > в OPEN и потихоньку добавляйте свои правила...

                  в OPEN режиме попробовал - все работает, но при добавлении ограничивающих правил, он по-прежнему остается открытым и пакеты пропускает.

                  И в добавок ко всему у меня задача поставлена именно штатным закрытым файрволом все реализовать.

                  Может еще мысли есть...

                  • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! Сергей, 20:39 , 23-Июн-15 (10)
                    >>  Вы лучше сделайте следующее, возьмите rc.firewall, имеющийся в поставке, определите тип
                    >> в OPEN и потихоньку добавляйте свои правила...
                    > в OPEN режиме попробовал - все работает, но при добавлении ограничивающих правил,
                    > он по-прежнему остается открытым и пакеты пропускает.
                    > И в добавок ко всему у меня задача поставлена именно штатным закрытым
                    > файрволом все реализовать.
                    > Может еще мысли есть...

                      Ну там не только OPEN есть...

      • Freebsd84 ipfw+squid - Проблема с натом с почтой, !*! Square, 15:27 , 25-Июн-15 (11)
        >> Покажите ipfw sh
        > 65530     485      69019 deny log logamount 200 ip from any to any
        > 65535  895701   64933042 deny ip from any to any

        вас не смущает наличие пакетов одновременно в правилах 65530 и 65535?

        Посмотрите какие именно пакеты попали в deny и поймите почему.

        Впишите необходимые правила для пропуска этих пакетов (если они вам нужны)

        Но вообще..мда...

        что значит "не хочет отправлять" ?
        Кто не хочет отправлять,клиент через ваш шлюз или сам шлюз?

        правило
        1810    add    allow tcp from any to any 25 via igb1
        это попытка доступа из серой сети к серверу в интернет минуя нат. с серым соответственно адресом. никогда так не заработает :)

        правила
        3150    add allow udp from 192.168.0.0/24 to 8.8.8.8 53 out via igb1 keep-state
        3300    add allow udp from 8.8.8.8 53 to 192.168.0.0/24 in via igb1 established
        3400    add allow udp from 192.168.0.0/24 to any 53 out via igb1
        жгут неподеццки :)
        особенно 3300 :)))
        опять отчаянная попытка отправить пакет  из серой сети с серым адресом к ДНС серверу в инете...
        все что вы отправляете в интернет- должно быть с вашим БЕЛЫМ адресом..тоесть пройти через НАТ....

        правила
        1850    add deny tcp from 192.168.0.0/24 to any 80 out via igb1     #только через proxy
        1860    add deny tcp from 192.168.0.0/24 to any 443 out via igb1
        Это глупость.
        а если клиент пойдет на 8080 порт?
        deny tcp from 192.168.0.0/24 to any 80 должно быть на внутреннем порту!
        делается это так:
        правило пропуска на ваш прокси (все что не идет по спец портам- идет на прокси)
        правило запрещающее все что захотело идти мимо прокси (все что не прошло на прокси и не прошло по спецпортам- запрещено).

        причем эти правила не на ИСХОДЯЩЕМ в инет порту, а на ВХОДЯЩЕМ на внутреннем.
        файрвол должен отрубать пакеты как можно раньше (на входе) а не обрабатывать пакеты и когда они уже выходят из него- спохватываться и отрубать...

        правило
        03910  299897   37429734 allow ip from any to 192.168.0.0/24 in via igb0
        редкостный бред, если только в вашей сети нет белых адресов и серых сетей больше одной...
        from any ... in via igb0 - это вы белые адреса с ВНУТРЕННЕЙ сети на внутренний интерфейс пропускаете?? :)
        to 192.168.0.0/24 - вы понимаете вообще что тут никогда ничего кроме вашего серого адреса шлюза не будет в принципе? in via igb0 - это входящие ИЗ СЕТИ на вашу внутреннюю карточку.
        тут дестинейшен никакой кроме вашего внутреннего адреса шлюза и белых инет адресов для натящихся пакетиков не будет в принципе. если будет - значит либо вас ломают, либо вы что-то делаете неправильно.

        В общем возьмите готовый конфиг, тут на форуме их дофига примеров было.

        Если Вы, тем не менее, не воспримете мой совет, вам следует сделать следующее:
        1) не экспериментируйте на рабочем шлюзе.

        2) создайте три виртуальных машины на каком нибудь офисном компьютере:
        виртуальная машина "интернет"
        виртуальная машина "шлюз в интернет"
        виртуальная машина "внутренняя сеть"

        3) воспроизведите настройку файрвола на виртуальной машине "шлюз в интернет"

        4) на ВСЕ правила файрвола повесьте логирование.

        5) пытайтесь установить соединение с "внутренняя сеть" к "интернет", и смотрите как проходят пакеты через файрвол.

        6) через некоторое время вы поймете как работают ip-сети  :)

        И сможете сами создать пример конфига ipwf, которых тут на форуме уже дофига работающих ...




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

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