> Задача. Есть сервер, на нём постфикс -- почтовый сервер мелкой
> организации. Есть удалённый сервер. На нём есть openvpn и можно делать
> что угодно, можно выделить отдельный IP с которого всё хотелось бы
> перенаправить на локальный сервер. Если есть отдельный айпи, то его можно выдать на тот конец опенвпн туннеля,
на сервере прописать маршрут к этому айпи в туннель (/sbin/ip route add 10.60.70.14 dev tap0 src 10.60.70.1 - айпишники тут можно писать "любые").
Чтобы роутер сервера слал пакеты для туннельного айпишника на сервер, надо заюзать арп-публикацию (/usr/sbin/arp -Ds $IP eth0 pub).
Таким образом реальник будет на локальном сервере.
> Хотелось бы такую маршрутизацию, чтоб всё попадающее на 25 порт
> удалённого сервера через VPN попадало на 25 порт локального сервера, к
> postfix. И наоборот тоже... И для всех остальных протоколов тоже.
> В принципе, это всё легко делается через iptables ... -j
> SNAT.
Не слушайте больше этого учителя.
Это делается через DNAT. И тогда не будет кривизны типа:
> Но тогда postfix видит в качестве ip-адресов отправителя VPN-адрес удалённого
> сервера. Что не позволяет нормально принимать спам и т.п. Да
> и других протоколов (ftp, ssh, http) это тоже слегка касается, иногда
> адрес отправителя важен.
> Как это можно всё сделать? Везде linux >= 2.6.18.
> Через iptables отметить (mark) нужные пакеты и через ip route посылать
> их в vpn и наоборот? Задача же, наверняка, типовая.
Типовая. Разбейте задачу на мелкие этапы, и добивайтесь работоспособности по частям.
Не забывайте использовать tcpdump и смотреть в логи.