Ваша настройка не полностью определена.
Я делаю это предположение:
PC A
уже находится в VPN и в подсети 192.168 ..
Таким образом, PC A
может нормально добраться до PC B
Точные адреса PC A
и PC B
в локальной подсети, к сожалению, не указаны.
Поскольку у вас нет контроля над PC B
вы должны создать переадресацию портов на PC A
для каждого порта, к которому вы хотите получить доступ на ПК B.
В Debian вы должны перенаправлять порты, используя iptables
.
У меня есть аналогичная настройка с машиной opensuse, которая пересылает RDP на PC B
через VPN. Это будет на PC A
.
pc_b=192.168...
macbook=10.8.0.6
case "$1" in
'start')
iptables -F FORWARD
iptables -t nat -F
iptables -P FORWARD DROP
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# VPN FORWARD of the RDP port (3389)
iptables -A FORWARD -p tcp -s $pc_b --sport 3389 -d $macbook -j ACCEPT
iptables -A FORWARD -p icmp -s $pc_b -d $macbook -j ACCEPT
iptables -A FORWARD -p tcp -d $pc_b --dport 3389 -s $macbook -j ACCEPT
iptables -A FORWARD -j REJECT
# RDP from VPN
iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 3389 \
-j DNAT --to-destination $pc_b
;;
'stop')
iptables -F FORWARD
iptables -t nat -F
iptables -P FORWARD ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
;;
'status')
iptables -t nat -L PREROUTING
;;
esac
Этот сценарий принимает start
, stop
и status
и может использоваться в rc.d как сценарий уровня запуска на PC A
tun0
- это интерфейс VPN.
Это запретит любой трафик между 192.168..
и VPN, за исключением явно открытых портов (3389 в этом примере).
Вам не нужно запрещать все другие переадресации, но я бы порекомендовал это.
Это также перенаправит доступ к 10.8.0.7:3389
на 192.168..:3389
.
Если вы не хотите использовать переадресацию портов, вам нужно как-то изменить маршрутизацию на PC B
Если у вас нет доступа к PC B
, вам необходимо направить трафик от шлюза по умолчанию PC B
к VPN. Одна возможность состоит в том, чтобы направить трафик для VPN от шлюза по умолчанию к PC A
.
Это работает только в том случае, если вы используете другую подсеть в местоположении macbook, чем та, которая используется между PC A
и PC B
Если вы используете какой-либо тип маршрутизатора с вашим macbook, у вас, вероятно, также есть подсеть 192.168 ...
Для этой настройки вы не используете предыдущий скрипт.
Тебе еще нужно
echo 1 > /proc/sys/net/ipv4/ip_forward
(так же, как sysctl -w net.ipv4.ipforward=1
)
Настройка маршрутизации зависит от операционной системы на шлюзе по умолчанию и вашего macbook.
В целом это работает так:
На MacBook (маршрут к PC B
):
route add 192.168.. gw 10.8.0.7
Это работает только в том случае, если для MacBook нет локальной подсети 192.168!
На шлюзе по умолчанию PC B
(маршрут к VPN через PC A
):
route add 10.8.0.6 gw 192.168..
Конечно, поскольку внутренние адреса подсетей PC A
и PC B
не задаются этим вопросом, я также не могу дать точную информацию о маршрутизации.