Я запускаю сервер с двумя внешними IPv4-адресами. IP-адрес A (IP-A) и IP-адрес B (IP-B).
Я хотел бы получить доступ к IP-A только через HTTPS-порт 443 и SSH-порт 22. IP-B не должен прослушивать входящий трафик.
Тогда я бы хотел, чтобы сервер использовал IP-B только для всего исходящего трафика. Или, по крайней мере, указать серверу использовать IP-B для исходящего трафика только для определенных команд.
1: I connect to the server over IP-A and call `ping example.com`
2: The server executes it and sends the ping requests outgoing from IP-B to example.com.
3: I can read the output of the command on my connection with IP-A
Потому что консоль управления, которую я буду использовать, находится на IP-A. Я хочу, чтобы IP-A не был напрямую связан с IP-B (по крайней мере, для внешнего мира). Вместо этого я хочу, чтобы example.com увидел «Я получил ping-запрос от IP-B». И когда кто-то подключается к IP-B, этот IP-адрес ничего не слушает. Пока IP-A в их логах нигде нет.
В конечном итоге я хотел бы добавить еще больше адресов и иметь возможность сообщать IP-A:
Есть мысли о том, как настроить описанный выше сценарий? В настоящее время я использую Ubuntu, но я открыт для предложений по другим дистрибутивам Linux.
Большинство сетевых инструментов, таких как ping, будут иметь возможность выбрать исходный IP-адрес, который они будут использовать для исходящих соединений, поэтому, например, с помощью ping вы можете использовать ping -I IP-B
.
Для все трафик, чтобы использовать IP-B, вам необходимо настроить первичный / первый IP-адрес для интерфейса, на который ваш маршрут по умолчанию указывает на IP-B. Что Linux делает, так это ищет маршрут для вашего пункта назначения, скажем, 8.8.8.8, видит, что в этом случае следует использовать маршрут по умолчанию, а затем, если источник пакета не указан, то есть 0.0.0.0, он заменит его на основной IP-адрес интерфейса, указывающего на это место назначения.
Однако, если вы в конечном итоге хотите добиться более точного управления исходным IP-адресом для любого трафика, исходящего на вашем сервере, вы захотите прочитать Расширенная маршрутизация и контроль трафика Linux HOWTO, а также поищите примеры того, как комбинировать это с netfilter / iptables fwmark, чтобы управлять таблицей маршрутизации, которую нужно искать, на основе правил брандмауэра, которые позволят вам направлять трафик категории B через маршрут по умолчанию, для которого IP-адрес B установлен как источник и так далее.
Ключевые слова для поиска - маршрутизация на основе политик (PBR).