Скажем, у меня есть два облачных сервера Rackspace или VPS, если на то пошло. Я хочу, чтобы моя установка была:
Поскольку Server1 уже виден в Интернете, я хочу, чтобы это был домен для моей почты. Допустим, у меня есть домен, записи MX которого указывают на «Server1.com», но у Server2 есть почтовый сервер. Итак, могу ли я каким-то образом заставить iptables пересылать пакеты на Server2, если они оба находятся в одной сети? Как это повлияет на аутентификацию пользователя на почтовом сервере?
P.S. В этой настройке я хочу, чтобы все не-веб-материалы за пределами Server1 освобождали память. Я также подумываю о том, чтобы вся база данных была на почтовом сервере (или мне нужен другой выделенный сервер для этого?)
Спасибо,
Рамон
Есть способы сделать это, например установить почтовый сервер пересылки на ваш веб-сервер.
Однако я бы просто указал MX-запись на mail.server.com и не беспокоился о перенаправлении. Потому что это привносит сложность, в которой на самом деле нет необходимости. Если что-то случится с вашей почтой, вам нужно будет принять во внимание взаимодействие вашего веб-сервера, правила пересылки, конфигурацию программного обеспечения и т. Д ... практическое правило состоит в том, что если вам не нужно усложнять это не надо.
Просто используйте почтовый сервер для обслуживания почты и не перенаправляйте вещи. Будь проще.
Я думаю, это кричит: «Зачем ты это делаешь ?!» Просто отредактируйте зону DNS server1.com и добавьте что-нибудь вроде mail.server1.com A [server2'sIPAddress]
и настройте mail.server1.com как запись MX для домена server1.com. Нет ничего, что говорило бы, что у сервера не может быть более одного имени или даже более одного домена. Имейте в виду, что если вы платите за пропускную способность, конвейерный трафик между серверами в основном удваивает ваше использование (все, что входит, возвращается обратно).
Теперь, если server2 недоступен в Интернете вообще, тогда вам нужно будет использовать какую-либо форму переадресации соединения. Я предполагаю, что вы используете Linux ... rinetd
довольно просто настроить. Вы настраиваете порты для прослушивания и куда эти порты должны идти. Все, что он делает, - всякий раз, когда кто-то подключается к нему, он подключается к настроенному серверу и передает данные туда и обратно. При любом виде пересылки следует иметь в виду, что, поскольку клиент думает, что он обращается к серверу server1, если вы используете SSL, сертификат SSL на сервере server2 должен соответствовать server1.
Вы можете сделать это с помощью iptables, который является частью ядра Linux. На вашем «общедоступном» сервере запустите:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 25 -j DNAT --to XXX.XXX.XX.XX:25
iptables -A INPUT -p tcp -m state --state NEW --dport 25 -i eth0 -j ACCEPT
где XXX.XXX.XX.XX - это IP-адрес сервера, который вы хотите перенаправить к. Возможно, вам придется изменить "eth0" на то, что называется на вашем устройстве.
Первое правило устанавливает пересылку, а второе правило гарантирует, что подключения к порту 25 принимаются на локальном сервере (т.е. необходимы обе команды).