Назад | Перейти на главную страницу

Туннелирование трафика из частной сети через общедоступную в Интернет

У меня 4 сервера со следующей конфигурацией:
Серверы 1 и 3 (веб-сервер, почтовый сервер соответственно): NIC1: общедоступная сеть, подключенная к Интернету
NIC2: частная сеть, связь между серверами.

Серверы 2 и 4 (БД и резервный сервер):
NIC: частная сеть, связь между серверами.

Я пытаюсь найти способ перенаправить трафик apt (только) с серверов 2 и 4 через один из двух серверов, подключенных в общедоступной сети к Интернету, чтобы мне не пришлось подключать эти два сервера к общедоступная сеть только для кв. Есть ли способы это сделать?

Большое спасибо.

Используйте прокси-сервер, установленный на сервере 1 или 3, настроенный для разрешения подключений к сайтам в sources.list с серверов частной сети. В качестве бонуса, если вы используете кеширующий прокси, такой как squid или approx вы будете использовать меньшую полосу пропускания для загрузки пакетов, общих для серверов.

Для обычные веб-прокси, такие как squid, вы можете установить $http_proxy переменную среды перед запуском apt или отредактируйте свой apt.conf файл (если вы используете сжатие Debian, похоже, что конфигурация разделена на разные файлы в /etc/apt/apt.conf.d/, добавьте новый файл) и установите

Acquire::http::Proxy "http://user:pass@yourproxyaddress:proxyport";

замените http на ftp, если вы используете зеркала ftp и прокси с поддержкой ftp.

Если вы используете ок, то вы редактируете клиентские sources.list чтобы указать на ваш приблизительный сервер вместо исходных зеркал вместо установки прокси в вашей оболочке или в apt.conf.

Если вы не хотите устанавливать прокси, вы можете использовать переадресацию портов ssh одним из нескольких способов:

1: изменить файл sources.list сервера 2/4 для использования http://localhost:8080/ для зеркал. Если у вас более одного зеркального хоста, вам нужно выбрать разные порты (например, 8081) для каждого из них. На server2 / 4 включите GatewayPorts в sshd_config Затем ssh с сервера 1 на сервер 2/4, используя

ssh -R 127.0.0.1:8080:http.us.debian.org:80 server2

Используйте несколько команд -R (например, -R 127.0.0.1:8081:security.debian.org:80), если есть несколько зеркал для туннелирования. Пока это ssh-соединение остается открытым, вы сможете использовать apt.

2. Используйте "динамический" SOCKS-прокси ssh и tsocks чтобы обеспечить поддержку SOCKS для apt-get. Для этого вам нужно будет выполнить ssh «назад» с server2 на server1, используя

ssh -D 8080 server1

в одном терминале затем работает tsocks apt-get update и т.д. в другом терминале. Вы установите информацию о сервере и порте в /etc/tsocks.conf и tsocks Программа-оболочка преобразует обычные HTTP-соединения в apt для использования прокси-сервера socks, предоставляемого ssh. Таким образом, вы не вносите никаких изменений в sources.list.