The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Freebsd84 ipfw+squid - Проблема с натом с почтой"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (BSD ipfw, ipf, ip-filter / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от vladkic email(ok) on 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, парни помогите!!!

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от PavelR (??) on 22-Июн-15, 19:49 

Покажите ipfw sh
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от vladkic email(ok) on 23-Июн-15, 06:16 
> Покажите 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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от Сергей (??) on 23-Июн-15, 08:52 
  какое значение имеет 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 не доходит до ната...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от vladkic email(ok) on 23-Июн-15, 09:10 
>   какое значение имеет disable_one_pass?

net.inet.ip.fw.one_pass: 0


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от vladkic email(ok) on 23-Июн-15, 09:37 
>> 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 порты.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от Сергей (??) on 23-Июн-15, 13:17 
подставите собственные данные
до ната
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..

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от vladkic email(ok) on 23-Июн-15, 13:40 
>  подставите собственные данные
> до ната
> 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

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

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

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Freebsd84 ipfw+squid - Проблема с натом с почтой"  +/
Сообщение от Square (ok) on 25-Июн-15, 15:27 
>> Покажите 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, которых тут на форуме уже дофига работающих ...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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