URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 80882
[ Назад ]

Исходное сообщение
"Как отсылать почту с другого IP адреса?"

Отправлено zkrvova , 24-Июн-08 16:25 
Значит есть сервер проходной, т.е. через него проходят пакеты клиентов. Но на серваке настроена почта. Вот надо чтоб почта уходила не через основной шлюз как пользовательский трафик, а с IP сервака, как это можно реализовать?

Например:

10.10.1.0/24 -> 10.1.0.1 -> 10.0.0.1 -> мир

В примере IP серые но это для примера, на самом деле IP реальные.

Сервак 10.1.0.1 должне отправлять почту с адреса 10.1.0.1, а не с 10.0.0.1


Содержание

Сообщения в этом обсуждении
"Как отсылать почту с другого IP адреса?"
Отправлено zkrvova , 24-Июн-08 17:00 
>[оверквотинг удален]
>
>Например:
>
>10.10.1.0/24 -> 10.1.0.1 -> 10.0.0.1 -> мир
>
>В примере IP серые но это для примера, на самом деле IP
>реальные.
>
>Сервак 10.1.0.1 должне отправлять почту с адреса 10.1.0.1, а не с 10.0.0.1
>

Забыл сказать, что на серваке есть серые (локальные) IP, и шлюз по умолчанию тоже локальный.


"Как отсылать почту с другого IP адреса?"
Отправлено hertz , 24-Июн-08 17:22 
Не до конца понял задачу. Т.е. тебе надо чтобы на 10.1.0.1 отлавливались соединения клиентов по 25 порту, выдергивались из них тексты сообщений и запихивались в очередь на отправку писем с сервера 10.1.0.1? Разве такое реализуемо? А если тебе надо чтобы просто соединения по 25 порту устанавливались от имени 10.1.0.1 а не 10.0.0.1 (где предположительно стоит SNAT), то просто сделай так чтобы соединения по 25 порту натились на 10.1.0.1 и не натились на 10.0.0.1


"Как отсылать почту с другого IP адреса?"
Отправлено zkrvova , 24-Июн-08 17:26 
>Не до конца понял задачу. Т.е. тебе надо чтобы на 10.1.0.1 отлавливались
>соединения клиентов по 25 порту, выдергивались из них тексты сообщений и
>запихивались в очередь на отправку писем с сервера 10.1.0.1? Разве такое
>реализуемо? А если тебе надо чтобы просто соединения по 25 порту
>устанавливались от имени 10.1.0.1 а не 10.0.0.1 (где предположительно стоит SNAT),
>то просто сделай так чтобы соединения по 25 порту натились на
>10.1.0.1 и не натились на 10.0.0.1

Обьясню получше

Сервер 10.1.0.1 имеет кроме серого IP ещё и белый IP например 99.99.99.9.
Шлюз по умолчанию 10.0.0.1, т.е. все пакеты идут на сервак 10.0.0.1 где натятся и уходят в мир.  А мне надо чтоб сервак отправлял почту через шлюз 99.99.99.1 т.е. через другой интерфейс.


"Как отсылать почту с другого IP адреса?"
Отправлено hertz , 24-Июн-08 18:41 
Тогда так, например:
1) создай еще одну таблицу маршрутизации где укажи defaultroute 99.99.99.1
2) сделай отбор в эту таблицу по MARK (ip rule from all fwmark 0x01 table mail)
3) в PREROUTING промаркируй пакеты с портом назначения 25

"Как отсылать почту с другого IP адреса?"
Отправлено hertz , 24-Июн-08 18:44 
Млин, походу я опять не так понял... я рассматриваю задачу с точки зрения что клиентская почта должна уходить с другого IP, а не почта от самих серваков. Если так, то смотри советы ниже.

"Как отсылать почту с другого IP адреса?"
Отправлено zkrvova , 25-Июн-08 13:06 
>Тогда так, например:
>1) создай еще одну таблицу маршрутизации где укажи defaultroute 99.99.99.1
>2) сделай отбор в эту таблицу по MARK (ip rule from all
>fwmark 0x01 table mail)
>3) в PREROUTING промаркируй пакеты с портом назначения 25

iptables -A PREROUTING -i eth1 -t mangle -p tcp --dport 25 -j MARK --set-mark 1
ip rule add fwmark 1 table mail


#ip route list table mail
default via 89.21.92.1 dev eth1


Вот что я делаю. только интерфейс на котором у меня реальный IP сделан алиесом eth1:9. Но я не думаб что в этом проблема.


"Как отсылать почту с другого IP адреса?"
Отправлено sadm , 24-Июн-08 18:31 
Для Postfix смотри в сторону smtp_bind_address.

"Как отсылать почту с другого IP адреса?"
Отправлено zkrvova , 24-Июн-08 18:35 
>Для Postfix смотри в сторону smtp_bind_address.

sendmail


"Как отсылать почту с другого IP адреса?"
Отправлено Gennadi , 25-Июн-08 20:35 
Postfix ????


/etc/postfix/transport

# EXAMPLES
#        In  order to deliver internal mail directly, while using a
#        mail relay for all other mail, specify a  null  entry  for
#        internal  destinations  (do not change the delivery trans-
#        port or the nexthop information) and  specify  a  wildcard
#        for all other destinations.
#
#             my.domain    :
#             .my.domain   :
#             *            smtp:outbound-relay.my.domain
#
#        In  order  to send mail for example.com and its subdomains
#        via the uucp transport to the UUCP host named example:
#
#             example.com      uucp:example
#             .example.com     uucp:example
#
#        When no nexthop host name is  specified,  the  destination
#        domain  name  is  used instead. For example, the following
#        directs mail for user@example.com via the  slow  transport
#        to  a  mail exchanger for example.com.  The slow transport
#        could be configured to run at most one delivery process at
#        a time:
#
#             example.com      slow:
#
#        When no transport is specified, Postfix uses the transport
#        that matches the address  domain  class  (see  DESCRIPTION
#        above).   The following sends all mail for example.com and
#        its subdomains to host gateway.example.com:
#
#             example.com      :[gateway.example.com]
#             .example.com     :[gateway.example.com]
#
#        In the above example, the [] suppress  MX  lookups.   This
#        prevents  mail  routing loops when your machine is primary
#        MX host for example.com.
#
#        In the case of delivery via SMTP, one  may  specify  host-
#        name:service instead of just a host:
#
#             example.com      smtp:bar.example:2025
#


"Как отсылать почту с другого IP адреса?"
Отправлено Gennadi , 25-Июн-08 20:55 
>Postfix ????

99.99.99.9 т.е. через другой интерфейс.

/etc/postfix/master.cf
99.99.99.9:smtp    inet    n    -    n    -    -    smtpd