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

как пересылать запросы прокси с помощью iptables

У меня это schenario

 -----------------                   ----------------        ----------
| SERVER A        | ---(port:2128)> | PROXY          | ---> | INTERNET |
| (10.30.1.1)     |                 | (10.30.2.2)    |      -----------
 -----------------                   ----------------        

Теперь у меня есть СЕРВЕР B (10.31.1.1), который не может получить доступ к ПРОКСИ, но может получить доступ к СЕРВЕРУ А.

Мне нужно настроить СЕРВЕР А для приема запросов от СЕРВЕРА А и пересылки их на ПРОКСИ, чтобы он мог подключиться к Интернету.

Я пробовал через iptables вот так:

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -p tcp -i 10.30.1.1 --dport 3128 -d 10.30.2.2 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp -i 10.30.1.1 --dport 3128 -j DNAT --to 10.30.2.2:3128

но на СЕРВЕРЕ B я получил

Unable to connect to 10.30.1.1

Я не уверен, что достаточно хорошо все понял. Отфильтровал ли прокси-сервер 10.30.2.2 входной запрос и знал ли он, как маршрутизировать пакет?

В этом случае, я думаю, вам придется использовать опцию MASQUERADE для замены адреса отправителя:

iptables -t nat -I PREROUTING -p tcp -i 10.30.1.1 -s 10.31.1.1 -J MASQUERADE