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

Исходное сообщение
"iptables и проброс портов"

Отправлено Студент , 10-Ноя-11 06:39 
Добрый день!

Есть два сервера:

№1 имеет IP адрес 193.125.50.201 и на нем работает почтовый сервер
№2 имеет IP адрес 193.125.50.204
Компы в локальной сети имеют адрес 192.168.х.х

Задача: сделать так, что бы при заходе из локальной сети на сервер №2 по 25-му порту, клиенты подключались к серверу №1. Правила iptables загружаются из файла.
Прописал следующее:

-A PREROUTING -d 193.125.50.204 -p tcp -m tcp --dport 25 -j DNAT --to-destination 193.125.50.201:25
-A POSTROUTING -d 193.125.50.201 -p tcp -m tcp --dport 25 -j SNAT --to-source 193.125.50.204

Вроде бы заработало, НО любой клиент, который подключается к серверу №2, определяется на сервере №1 как №2. Таким образом, настройка правил relay для клиентов по ip адресам становится невозможной. Как сделать так, что бы те, кто подключается на №2, оказывались на №1 но IP определялся клиента?


Содержание

Сообщения в этом обсуждении
"iptables и проброс портов"
Отправлено AlexAT , 10-Ноя-11 07:53 
> Вроде бы заработало, НО любой клиент, который подключается к серверу №2, определяется
> на сервере №1 как №2. Таким образом, настройка правил relay для
> клиентов по ip адресам становится невозможной. Как сделать так, что бы
> те, кто подключается на №2, оказывались на №1 но IP определялся
> клиента?

Убрать строку из POSTROUTING. Убедиться, что весь трафик от №1 к локальной сети следует через №2.


"iptables и проброс портов"
Отправлено 1 , 10-Ноя-11 07:54 
слишком много для телепатии оставил, но можно попробовать кашу из топора сварить:
- №2 делается как маршрутизатор между сетями 192.168.х.х и 193.125.50.20х
- клиенты должны подключаться по ip №1 через №2
- на №1 маршрутизация на сеть 192.168.х.х должна идти через №2
- твои правила iptables не нужны, максимум если ты хочешь только 25 порт заворачивать туда то можно давать метку каждому соединению на 25 порт и маршрутизировать пакеты только для соединений с меткой.

но если ты всё же распишешь топологию своей сети (именно как связанны 192.168.х.х, №1 и №2 ) то может быть решение будет немного другим


"iptables и проброс портов"
Отправлено AlexAT , 10-Ноя-11 08:00 
Еще можно маркировать трафик, вошедший с интерфейса, и направлять ответы на тот же интерфейс. Но это уже из области более серьезного пилотажа.

"iptables и проброс портов"
Отправлено Студент , 11-Ноя-11 07:14 
>[оверквотинг удален]
> Прописал следующее:
> -A PREROUTING -d 193.125.50.204 -p tcp -m tcp --dport 25 -j DNAT
> --to-destination 193.125.50.201:25
> -A POSTROUTING -d 193.125.50.201 -p tcp -m tcp --dport 25 -j SNAT
> --to-source 193.125.50.204
> Вроде бы заработало, НО любой клиент, который подключается к серверу №2, определяется
> на сервере №1 как №2. Таким образом, настройка правил relay для
> клиентов по ip адресам становится невозможной. Как сделать так, что бы
> те, кто подключается на №2, оказывались на №1 но IP определялся
> клиента?

Спасибо всем за ответы:)

Решили сделать из №2 маршрутизатор для №1.