The OpenNET Project / Index page

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

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

"PF + почтовый сервер в DMZ..."  +/
Сообщение от iTango email(ok) on 14-Апр-08, 23:22 
всем - драсЬте!...

есть локалка: 10.0.0.0/24
есть DMZ: 10.10.10.10/24

между ними стоит FreeBSD 6.3, которая одним интерфейсом смотрит в Инет. На него же она принимает почтовые запросы и пересылает их к почтовому серверу в DMZ.
Правила пакетного фильтра следующие:

ext_if="tun0" - внешний интерфейс
int_if="lnc1" - локалка
vir_if="lnc2" - DMZ


mail_server = "10.10.10.123"
mail_ports = "{ smtp, pop3 }"

...

rdr on $ext_if proto tcp from any to any port $web_ports -> $web_server

...

=======================================================================


помогите написать правила, разрешающие пользователям из локалки (10.0.0.0/24) забирать почту с почтового сервера 10.10.10.123

я пробовал написать так:

...

$office_net="10.0.0.0/24"
$vir_net="10.10.10.10/24"

...

nat on $int_if from $office_net to $vir_net -> ($vir_if)

rdr on $int_if proto tcp from any to $mail_server port 8110 -> 10.10.10.123 port 110

...


...но при попытке получить почту с локального компа, получаю ошибку: НЕВОЗМОЖНО СОЕДИНИТЬСЯ С СЕРВЕРОМ, а pftop показывает вот такую картину:

tcp   Out 10.0.0.2:4818    10.10.10.123:110    SYN_SENT:CLOSED

==============================================================

подскажите пожайлуста, куда копать...

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

Оглавление

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


1. "PF + почтовый сервер в DMZ..."  +/
Сообщение от reader (??) on 15-Апр-08, 00:11 
>[оверквотинг удален]
>сервера 10.10.10.123
>
>я пробовал написать так:
>
>...
>
>$office_net="10.0.0.0/24"
>$vir_net="10.10.10.10/24"
>
>...

1
>
>nat on $int_if from $office_net to $vir_net -> ($vir_if)

может?
nat on $vir_if from $office_net to $vir_net -> ($vir_if)
>[оверквотинг удален]
>
>...но при попытке получить почту с локального компа, получаю ошибку: НЕВОЗМОЖНО СОЕДИНИТЬСЯ
>С СЕРВЕРОМ, а pftop показывает вот такую картину:
>
>tcp   Out 10.0.0.2:4818    10.10.10.123:110    
>SYN_SENT:CLOSED
>
>==============================================================
>
>подскажите пожайлуста, куда копать...

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

2. "PF + почтовый сервер в DMZ..."  +/
Сообщение от iTango (ok) on 15-Апр-08, 08:56 
>может?
>nat on $vir_if from $office_net to $vir_net -> ($vir_if)

не помогло и это!.. :(

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

3. "PF + почтовый сервер в DMZ..."  +/
Сообщение от EL (??) on 15-Апр-08, 09:37 
>>может?
>>nat on $vir_if from $office_net to $vir_net -> ($vir_if)
>
>не помогло и это!.. :(

А может не городить весь этот огород и просто тупо
pass in quick on $local_if from $local_net to $dmz_net

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

4. "PF + почтовый сервер в DMZ..."  +/
Сообщение от vg (??) on 15-Апр-08, 10:16 
>>>может?
>>>nat on $vir_if from $office_net to $vir_net -> ($vir_if)
>>
>>не помогло и это!.. :(
>
>А может не городить весь этот огород и просто тупо
>pass in quick on $local_if from $local_net to $dmz_net

Правильно, НАТ в этом случае уже не нужен

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

5. "PF + почтовый сервер в DMZ..."  +/
Сообщение от iTango (ok) on 15-Апр-08, 10:42 
>>>>может?
>>>>nat on $vir_if from $office_net to $vir_net -> ($vir_if)
>>>
>>>не помогло и это!.. :(
>>
>>А может не городить весь этот огород и просто тупо
>>pass in quick on $local_if from $local_net to $dmz_net
>
>Правильно, НАТ в этом случае уже не нужен

добавил правило:

office_net="10.0.0.0/24"    # local
vir_net="10.10.10.0/24"     # DMZ

mail_server = "10.10.10.123"

...

# mail
rdr on $int_if proto tcp from any to $mail_server port 8110 -> 10.10.10.123 port 110

...

pass in quick on $int_if from $office_net to $vir_net

...

но почтовый клиент при попытке получить почту задумывается на пару секунд и выдаёт ошибку о невозможности соединиться с почтовым серверов, а pftop выдаёт в момент коннекта:

In  10.0.0.2:1924            10.10.10.123:110              CLOSED:SYN_SENT


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

6. "PF + почтовый сервер в DMZ..."  +/
Сообщение от iTango (ok) on 15-Апр-08, 11:50 
>[оверквотинг удален]
>
>...
>
>но почтовый клиент при попытке получить почту задумывается на пару секунд и
>выдаёт ошибку о невозможности соединиться с почтовым серверов, а pftop выдаёт
>в момент коннекта:
>
>In  10.0.0.2:1924          
>  10.10.10.123:110        
>     CLOSED:SYN_SENT

убрал:

rdr on $int_if proto tcp from any to $mail_server port 8110 -> 10.10.10.123 port 110

заменил:

pass in quick on $int_if from $office_net to $vir_net

на

pass in quick on $int_if from $office_net to $vir_net flags S/SA synproxy state

...и теперь почтовик непереставая принимает почту (по крайней мере делает вид, что получает...), а pftop выдаёт:

tcp       In  10.0.0.2:3091            10.10.10.123:110               PROXY:DST

...млин!!!

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

7. "PF + почтовый сервер в DMZ..."  +/
Сообщение от iTango (ok) on 15-Апр-08, 13:03 
>...млин!!!

прошу прощение за наглость, но может у кого нибудь есть готове решение о том как организовать почтовый сервер в DMZ с применением правил PF?.. а то почта на него сваливается, но принять получается только через интерфейс, подключеный к локалке напрямую... :(((


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

8. "PF + почтовый сервер в DMZ..."  +/
Сообщение от 1ight_apprentice (ok) on 15-Апр-08, 13:44 
Сети с адресом 10.10.10.10/24 НЕ СУЩЕСТВУЕТ.

УЧИТЕ ТЕОРИЮ!

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

9. "PF + почтовый сервер в DMZ..."  +/
Сообщение от iTango (ok) on 15-Апр-08, 13:55 
>Сети с адресом 10.10.10.10/24 НЕ СУЩЕСТВУЕТ.
>
>УЧИТЕ ТЕОРИЮ!

упс - ОЧЕПЯТКА...

10.10.10.0/24

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

10. "PF + почтовый сервер в DMZ..."  +/
Сообщение от mishanya email on 17-Авг-08, 16:16 
>подскажите пожайлуста, куда копать...

http://house.hcn-strela.ru/BSDCert/BSDA-course/apcs02.html#p...

копать внимательно в этом пункте
C.2.1.6.4. Перенаправление и отражение

проверено, работает

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

11. "PF + почтовый сервер в DMZ..."  +/
Сообщение от salimk (ok) on 07-Апр-14, 21:41 
int_if="bge0" # внутренний интерфейс, имеет адрес 192.168.0.254  192.168.0.0/24
dmz_if="bge1" # DMZ интерфейс, имеет адрес 10.0.1.254
ext_if1="bge3" # внешний интерфейс, имеет адрес XXX.XXX.XXX.XXX

int_net="192.168.0.0/24"
dmz_net="10.0.0.0/24"

mail_server="10.0.1.235"

nat on $ext_if1 inet from { $int_net, $dmz_net } \
to { !$int_net, !$dmz_net }  -> ($ext_if1)

nat on $dmz_if inet from $int_net to $dmz_net -> ($dmz_if)


rdr on $ext_if1 inet proto tcp from any to $ext_if1 port 25 -> $mail_server port 25
rdr on $ext_if1 inet proto tcp from any to $ext_if1 port 465 -> $mail_server port 465
rdr on $ext_if1 inet proto tcp from any to $ext_if1 port 993 -> $mail_server port 993
rdr on $ext_if1 inet proto tcp from any to $ext_if1 port 995 -> $mail_server port 995

block in log from any to any
block out log from any to any

pass out on $int_if proto tcp from any to any  flags S/SA modulate state
pass out on $int_if proto { udp, icmp } from any to any keep state

pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if1 proto { udp, icmp } from any to any keep state

pass out on $dmz_if proto tcp from any to any  flags S/SA modulate state
pass out on $dmz_if proto { udp, icmp } from any to any keep state


### Pass to mail_server
pass in on $ext_if1 proto tcp from any to $mail_server port 25
pass in on $ext_if1 proto tcp from any to $mail_server port 465
pass in on $ext_if1 proto tcp from any to $mail_server port 993
pass in on $ext_if1 proto tcp from any to $mail_server port 995
### DMZ mail_server ###
pass in on $dmz_if proto tcp from $mail_server to any port 25 keep state
pass in on $dmz_if proto tcp from $mail_server to any port 465 keep state
pass in on $dmz_if proto tcp from $mail_server to any port 993 keep state
pass in on $dmz_if proto tcp from $mail_server to any port 995 keep state

pass in on $int_if proto tcp from $int_net to any port 25
pass in on $int_if proto tcp from $int_net to any port 465
pass in on $int_if proto tcp from $int_net to any port 587
pass in on $int_if proto tcp from $int_net to any port 143
pass in on $int_if proto tcp from $int_net to any port 993
pass in on $int_if proto tcp from $int_net to any port 110
pass in on $int_if proto tcp from $int_net to any port 995


Вроде все пашет

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

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

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




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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