у Вас есть несколько опций. Но сначала я предложил бы, чтобы Вы, возможно, сделали свою жизнь легче при помощи xcopy только скопировать каталоги и их соответствующие настройки ACL/Auditing.
Вы смогли продолжать cacls или использовать что-то еще...
Все это, но почему бы не человеческая часть и садится с людьми и спрашивает, кому нужен доступ к какой? Затем создайте новую структуру и полномочия на основе потребностей с помощью конвенций и документации.
Поскольку вы хотите, чтобы ваш сервер работал как маршрутизатор, вам необходимо проверить несколько вещей:
Во-первых, в ядре должна быть включена пересылка пакетов (по умолчанию это не так):
echo "1" > /proc/sys/net/ipv4/ip_forward
Вы также должны убедиться, что iptables разрешает пересылку трафика (посмотрите на вашу цепочку FORWARD).
Этого и правила DNAT должно быть достаточно, чтобы пакет перемещался в одном направлении. Однако, если вам нужен поток TCP, вы также должны убедиться, что у вас также есть упомянутые вами правила SNAT (в противном случае удаленный хост будет думать, что существует проблема, поскольку сервер в 2.2.2.3 отвечает на отправленный им пакет. как 1.1.1.3).
Между прочим, по соображениям производительности лучше использовать SNAT вместо MASQUERADE, если у вас статический IP.
Короткий ответ на ваш пересмотренный вопрос заключается в том, что есть два способа сделать это; оба требуют, чтобы вы удалили второй шаг NAT (который уничтожает информацию, которую вы ищете). Вашими опциями после этого являются:
1) Сделать сервер A следующим шагом для сервера B для рассматриваемого трафика, вот почему он работает для вашего маршрутизатора, как уже упоминалось. Это можно сделать, в порядке неуклюжести, сделав сервер A маршрутом по умолчанию для сервера B, или используя политику маршрутизации , или используя некоторые причудливые iptables, или используя туннель какого-нибудь типа.
2) "Вручную" реверсируя NAT сервера A на сервере B, что приводит к асимметричному потоку трафика (в общем случае, не рекомендуется). Что-то вроде iptables -t nat -I POSTROUTING -j SNAT -s 2.2.2.3 --to 1.1.1.3
Я на 100% уверен в варианте (1). Я на 90% уверен в (2).
Чтобы понять это, вам нужно понять поток трафика.
Теперь давайте представим, что случилось бы, если бы у вас не было второго NAT:
Для того, чтобы Client X понял пакет, он должен прибыть к Client X с тем же самым адресом источника, что и место назначения оригинального пакета.
Обычный способ, чтобы это произошло, это чтобы у сервера B была возможность обратить вспять NAT с предварительной маршрутизацией. Чтобы это произошло, вам нужно, чтобы пакет вернулся через него позже. В настоящее время вы делаете это, изменяя адрес источника пакета, но это уничтожает информацию, которую вы запрашиваете в вашем пересмотренном вопросе.
Так что первый шаг вашего ответа, вы не можете сделать второй шаг NAT (после маршрутизации SNAT): на сервере A запустите iptables -t nat -D POSTROUTING -j SNAT --to 1. 1.1.3
.
Теперь у вас осталась задача перевернуть первый шаг NAT.
Если это собирается сделать сервер B, вам нужно, чтобы сервер B принимал пакеты.
ip маршрут заменить по умолчанию через C
, ИЛИ ip маршрут добавить по умолчанию через таблицу C a; ip правило добавить из 2.2.2.3 таблицы a
.Если, однако, маршрутизатор в месте расположения сервера B не является особенно сложным (проверка пакетов и отклонение пакетов, которые не в правильной последовательности для известного потока трафика), у вас есть несколько более простой, если очень грубый, вариант: обратите NAT на сервере B, основываясь на вашем знании о том, что было сделано на сервере A: на сервере B iptables -t nat -I POSTROUTING -j SNAT -s 2. 2.2.3 --to 1.1.1.3
должны сделать это в предлагаемом примере. Это оставит систему отслеживания соединений Linux в A и B немного запутанной (серверы не смогут связать возвращаемый трафик с входящим, поэтому их отслеживание соединений оставит соединения в НЕЗАРЕГИСТРИРОВАННОМ состоянии), но это должно работать нормально для большинства трафика в сотни мегабит.
Проходя через поток трафика в последний раз в этом случае: