Автор Тема: офис-сервер 4.0 невозможно читать почту мэйлером  (Прочитано 11560 раз)

Оффлайн Const

  • Глобальный модератор
  • *****
  • Сообщений: 2 653
  • Даже у плохого модератора есть свои плюсы…
а если ip динамический ???
Главное, раскрепощённая фантазия :)
Близкий по духу пример с динамическим IP.

Оффлайн bolshakov

  • Участник
  • *
  • Сообщений: 22
Доброго времени суток, давайте напишем пошаговую инструкцию для реализации правил для POP и SMTP в настройках брандмауэра через веб морду, а то если честно запутался окончательно...
для начала возьмём такую сеть: eth0 - статический ip (xxx.xxx.xxx.xxx) выдается через adsl модем выдаваемый провайдером, eth1 - (имеет ip 192.168.2.1) внутренняя сеть организации, ip адреса раздаются через dhcp... 
sqiud настроен на 3128 (без transparent).

Оффлайн nucleon

  • Участник
  • *
  • Сообщений: 123
насколько я понял, squid не транслирует почту (хотя жаль)
исходя из этого пришлось делать "проброс" через фаервол посредством NAT`а
по примеру pulink и Salomatin (смотрим на всякие там параметры и вставляем их в экспертном режиме фаервола)
однако! есть одна засада - даже, если правило выполнено верно оно может не работать пока не включен ipforwarding (вроде правильно написал) многие рекомендуют выставлять ее через перенаправление эха в фаил (естественно это уже не через альтератор, а как минимум SSH консоль) но в альтлинуксе это не сработает, так как есть скрипт управления фаерволом в котором и надо менять. если сделать эту процедуру через пере направление эха то при перезагрузке этот скрипт все вернет назад напаметры в то состояние которое указано в нем

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

Alexei_VM

  • Гость
но в альтлинуксе это не сработает, так как есть скрипт управления фаерволом в котором и надо менять.

Не знаю, о чем вы. Случайно не об этом?

[root@threebears sysconfig]# grep FORWARD /etc/sysconfig/network
FORWARD_IPV4=yes
#IPV6FORWARDING=yes|no


Оффлайн pulink

  • Участник
  • *
  • Сообщений: 11
Доброго времени суток, давайте напишем пошаговую инструкцию для реализации правил для POP и SMTP в настройках брандмауэра через веб морду, а то если честно запутался окончательно...
для начала возьмём такую сеть: eth0 - статический ip (xxx.xxx.xxx.xxx) выдается через adsl модем выдаваемый провайдером, eth1 - (имеет ip 192.168.2.1) внутренняя сеть организации, ip адреса раздаются через dhcp... 
sqiud настроен на 3128 (без transparent).

squid тут не причем, т.к. почта не ходит через него.
Разрешите не писать, как через веб-морду создавать правила? Потому как все сведется к "поставьте галочку там-то, выберите то-то". Что мне претит :) Не могу себя заставить так сделать :) Через веб-морду удобно смотреть, что вы ввели вручную.
Какой срок аренды ИП-адреса, полученного через DHCP? - Поставьте большое число, чтобы не менялся, например, 60 дней. И впишите выданный клиенту ИП, например, yyy.yyy.yyy.yyy.
-s yyy.yyy.yyy.yyy -o eth0 -j SNAT -p tcp --dport 25 --to-source xxx.xxx.xxx.xxx
-s yyy.yyy.yyy.yyy -o eth0 -j SNAT -p tcp --dport 110 --to-source xxx.xxx.xxx.xxx
Да, роутинг надо включить: файл /etc/net/sysctl.conf, строка net.ipv4.ip_forward, меняем 0 на 1. Если у вас сервер является шлюзом, то это необходимо было сделать сразу после установки.
« Последнее редактирование: 22.01.2009 06:06:34 от pulink »

Оффлайн nucleon

  • Участник
  • *
  • Сообщений: 123
и всетки вопрос остался открытым... что делать если  внешний шз выдается по DHCP и меняется ну скажем раз в сутки...
соответственно каждый раз правила проброса почты устаревают...
как-то не очень хочется скрипт писать ...(выход конечно, но все таки)
учиться никогда не поздно, мы учим нашу душу отдавая жизнь )

Оффлайн stasjaga

  • Участник
  • *
  • Сообщений: 1
Если ip динамический то тогда надо что то типа dindns ставить а в почте прописать хост....

Оффлайн shotsdv

  • Участник
  • *
  • Сообщений: 77
    • Мой персональный сайт
Если ip динамический то тогда надо что то типа dindns ставить а в почте прописать хост....
Для динамического ип достаточно в НАТе прописать такую строчку
-A POSTROUTING -o ppp1 -j MASQUERADE
а все нужные порты фильтровать
-A FORWARD -s 192.168.2.0/20 -p tcp -m multiport --dport 20,21,25,110,5005,3128 -i eth0 -j ACCEPT
-A FORWARD -d 192.168.2.0/20 -p tcp -m multiport --sport 20,21,25,110,5005,3128 -o eth0 -j ACCEPT

Оффлайн sasa13e

  • Участник
  • *
  • Сообщений: 11

Для динамического ип достаточно в НАТе прописать такую строчку
-A POSTROUTING -o ppp1 -j MASQUERADE
а все нужные порты фильтровать
-A FORWARD -s 192.168.2.0/20 -p tcp -m multiport --dport 20,21,25,110,5005,3128 -i eth0 -j ACCEPT
-A FORWARD -d 192.168.2.0/20 -p tcp -m multiport --sport 20,21,25,110,5005,3128 -o eth0 -j ACCEPT


где " в НАТе " если не секрет

Alexei_VM

  • Гость
где " в НАТе " если не секрет

google -> iptables

Оффлайн ~Arkey

  • Участник
  • *
  • Сообщений: 69
  • Debian user
А если такая проблема.
Пользователю необходимо получать (и отправлять) почту с определенного почтового сервера в интернете. И нужно сделать так, чтобы этот сервер (порты 25, 110) был виден как локальная машина, с любыми другими портами на pop и smtp. То есть Клиент обращается к 192.168.0.1:250 (smtp) и 192.168.0.1:1110 (pop) в локальной сети, а весь трафик переправляет на ip_server:25 и  ip_server:110 в интеренте. Собственно так у нас настроен UserGate но от винд на серверах медленно избавляемся.

Оффлайн Const

  • Глобальный модератор
  • *****
  • Сообщений: 2 653
  • Даже у плохого модератора есть свои плюсы…
Если две сетевые карточки, то проблемы не вижу.
Если одна, то тоже нет большой проблемы, разве что внутренняя сетка и внешняя не будут физически разделены. Что, вообще-то тоооолстая дыра.

Оффлайн ~Arkey

  • Участник
  • *
  • Сообщений: 69
  • Debian user
Если две сетевые карточки, то проблемы не вижу.
Если одна, то тоже нет большой проблемы, разве что внутренняя сетка и внешняя не будут физически разделены. Что, вообще-то тоооолстая дыра.

Жалко что для меня это не так очевидно.
Две сетевые карточки, да.
Пробовал вот так:
$IPTABLES -t nat -A PREROUTING -d $IP_LOC -p tcp --dport 250 -j DNAT --to-destination 93.158.134.38:25
$IPTABLES -t nat -A PREROUTING -d $IP_LOC -p tcp --dport 1100 -j DNAT --to-destination 87.250.251.37:110
$IPTABLES -t nat -A POSTROUTING -s 93.158.134.38 -o $IF_LOC -p tcp -j SNAT --to-source клиент:250
$IPTABLES -t nat -A POSTROUTING -s 87.250.251.37 -o $IF_LOC -p tcp -j SNAT --to-source клиент:1100

Где:
93.158.134.38 - smtp.yandex.ru
87.250.251.37 - pop.yandex.ru
Не вышло...
« Последнее редактирование: 06.10.2009 10:40:28 от ~Arkey »

Оффлайн Mikhail

  • Участник
  • *
  • Сообщений: 201
  • Не уверен - не тренди.
Я так понял, к уже имеющимся правилам добавить -sport 1100 и -sport 250
$IPTABLES -t nat -A POSTROUTING -s $NET_LOC -o $IF_INET  -p tcp -sport 250 --dport 25  -j SNAT --to-source $SMTP_INET
$IPTABLES -t nat -A POSTROUTING -s $NET_LOC -o $IF_INET  -p tcp -sport 1100 --dport 110 -j SNAT --to-source $POP_INET
И не должно было. Ты прочитай документацию, и переведи на русский язык что ты понаписал.
Ты хочешь, что бы весть трафик приходящий из локальной сети на 250 порт твоего сервера, был завернут на 25 порт другой машины. Я правильно понял задачу?
1) Выбор портов 250 и 1100 это плохая идея.
2) -s $NET_LOC переводится, адрес источника локальная сеть. Это правильно.
3) -o $IF_INET переводится как должен уйти через интефрейс $IF_INET. Но ты же хочешь, заварачивть пакеты адресуемые твоему серверу. Они никуда, ни через какой интерфес уходить не будут.
4) --sport 1100 Порт истоника 1100. В твоем случае полный бред. Порт будет случайный.
5) --dport 110 Порт приемника 110. Ты же говорил, что пакеты приходящии на 1100, а не на 110 порт должны заворачивтся.
6) -j SNAT --to-source $SMTP_INET Замененит адрес источника на $SMTP_INET. Если, судя по названию это адрес внешнего сервера. Если так, то это бред.

Вот как должен проходить пакет:
Условие: С адреса из локальной сети и любого порта, на адрес твоего сервера и на порт 110.
1) Поменять адрес и порт назначения, указав заначения для внешнего сервера.
2) Оправить этот пакет на интерфейс смотрящий наружу.
3) Поменять адрес (но не трогая порт!) источника, на адрес интерфейса смотрящего наружу.

http://ru.wikipedia.org/wiki/Iptables#.D0.A6.D0.B5.D0.BF.D0.BE.D1.87.D0.BA.D0.B8_2 тут найдешь отличную картинку и описание.
« Последнее редактирование: 06.10.2009 11:12:42 от Mikhail »
Понравился ответ? Прибавь репутации!

Оффлайн Mikhail

  • Участник
  • *
  • Сообщений: 201
  • Не уверен - не тренди.
$IPTABLES -t nat -A PREROUTING -d $IP_LOC -p tcp --dport 250 -j DNAT --to-destination 93.158.134.38:25
$IPTABLES -t nat -A POSTROUTING -s 93.158.134.38 -o $IF_LOC -p tcp -j SNAT --to-source клиент:250
С какого перепуга источником пакета стал 93.158.134.38?
У тебя $IF_LOC смотрит в интернет? Нет? Так с какого перепуга пакет должен быть отправлен через этот интерфейс?

Понравился ответ? Прибавь репутации!