Я за брандмауэром, который разрешает только порты 80 и 443.
У меня дома есть сервер Ubuntu, на котором SSH-сервер работает на 443, и он отлично работает. Поэтому я могу туннелировать свой трафик за этот брандмауэр через SSH.
Однако я хочу установить VPN-соединение между компьютером за брандмауэром и сервером через SSH, чтобы ВСЕ интернет-соединения проходили через туннель без необходимости настраивать прокси для каждого приложения, которое мне нужно туннелировать.
Компьютер за брандмауэром использует Windows XP.
Это возможно?
Да кусок пирога!
Ваш WindowsXP-бокс должен стать маршрутом по умолчанию для всех ваших компьютеров. Я часто делаю это, используя похожую технику для туннелирования трафика через брандмауэр прокси HTTP.
Пара вещей, которые вам нужно сделать:
На вашем сервере ubuntu найдите файл sshd.conf и включите, если это еще не сделано, GatewayPorts yes
Установите Putty на свой компьютер WinXP и настройте соединение WinXP с вашим сервером Ubuntu и в разделе «Туннели» создайте несколько записей туннелей, убедившись, что установлен флажок «Локальные порты принимают подключения от других хостов», затем используйте несколько случайных непривилегированных портов. У вас должен получиться такой список:
L5000 1.2.3.4:443, где 5000 - это локальный порт, который вы слушаете, а 1.2.3.4 - ваш сервер ubuntu.
Теперь вам нужно включить службу маршрутизации и удаленного доступа в службах (щелкните правой кнопкой мыши «Мой компьютер», выберите управление и перейдите в раздел служб). После включения необходимо отредактировать следующий RegKey: HKEY_LOCAL_MACHINE> SYSTEM> CurrentControlSet> Services> Tcpip> Parameters и найти что-то вроде «IPEnableRouter». Дважды щелкните по нему, измените значение с 0 на 1 и перезагрузите компьютер.
После перезагрузки откройте командную строку и введите несколько команд:
netsh routing ip nat install netsh routing ip nat add interface "if-public" full (где if-public - это интерфейс, используемый для подключения к серверу ubuntu) netsh routing ip nat add interface "if-private" private
Должно быть очевидно, что ваша машина WinXP не может использовать DHCP; здесь вам понадобятся статические IP-адреса.
Возможно, это не совсем ответ на вопрос, но вы также можете создать динамический туннель ssh на экране конфигурации Connecction -> SSH -> Tunnels на PuTTY. Это создает прокси-сервер SOCKS на указанном вами порту, который, если вы измените настройки подключения к Интернету Windows, чтобы использовать его, любое приложение, которое им подчиняется, будет использовать прокси.