Как мне направить запасной сетевой интерфейс через SSH-туннель?

Вопрос или проблема

Я только что купил Raspberry Pi и хочу настроить беспроводной интерфейс ad hoc полностью через SSH-туннель, созданный с использованием другого беспроводного интерфейса. Я хочу сделать это, чтобы иметь защищенное и приватное соединение с интернетом в местах с公共ным Wi-Fi. Я знаю, что было бы проще сделать это на одном компьютере, но я хотел бы настроить это и на RPi, так как я использую его для других сетевых задач, когда пользуюсь интернетом, а затем просто подключиться к беспроводной сети с моего ноутбука/телефона. Это действительно поможет мне с моим iPhone, потому что он не поддерживает SSH-туннель локально. Как мне поступить? Заранее спасибо за всю вашу помощь.

Вам нужна удаленная машина с работающим ssh, к которой вы можете подключиться с Pi. Включите AllowTCPForwarding на удаленной машине, затем подключитесь с Pi и создайте SOCKS-прокси с помощью ssh-соединения. Затем настройте ваш iPhone на использование Pi в качестве прокси, и всё готово.

Но я вижу две проблемы: 1, вам придется сделать SOCKS-прокси доступным для других хостов в локальной сети. Вам может понадобиться настроить фильтрацию MAC-адресов в iptables, чтобы разрешить вашему телефону доступ, но заблокировать других пользователей на общественном Wi-Fi от нахождения и использования прокси. 2, последний раз, когда я проверял, устройства iOS не поддерживают SOCKS-прокси, однако обходной путь уже был опубликован здесь.

Однако помните, что это зашифрует трафик с вашего телефона в интернет, но трафик всё равно будет уязвим для перехвата кем-либо на той же беспроводной сети, потому что прокси находится на Pi.

На удаленной машине в /etc/ssh/sshd_config:

AllowTCPForwarding yes

Чтобы инициировать прокси с Pi:

ssh -g -D 8080 user@remote-host

Опционально вы можете использовать -v для устранения неполадок соединения и -N, чтобы предотвратить открытие оболочки после подключения.

источник: man ssh & man sshd_config

То, что он говорит, это то, что SSH “теперь” (в последние несколько лет) поддерживает VPN для бедных. С учетом сказанного, могу ли я настоятельно порекомендовать другое решение? В любом случае, кривая обучения относительно крутая, но если вы хотите защищенные коммуникации с сильным сообществом, огромным количеством документации и клиентами, которые работают почти на всем (Windows, Linux, Mac, iPhone, Android… вы понимаете), вам стоит обратить внимание на OpenVPN. Смотрите http://openvpn.net/index.php/open-source/documentation/howto.html для получения множества полезной информации для начинающих и не стесняйтесь подписываться на (очень полезный) почтовый список. Неудивительно, что также существует учебник по OpenVPN на Raspberry Pi: http://raspberrypihelp.net/tutorials/1-openvpn-server-tutorial.

Наконец, одно быстрое упоминание: OpenVPN также невероятно надежен; в отличие, скажем, от реализации Cisco IPSec моей компании (или SSH), OpenVPN очень хорошо восстанавливает соединение, что удобно для таких вещей, как телефоны, которые периодически теряют связь.

Я понимаю, что это технически не отвечает на ваш вопрос, но, как человек, который долго работает в IT, иногда важнее понять, что человек пытается достичь, чем буквально подходить к вопросу.

Ответ или решение

Чтобы настроить маршрутизацию с помощью SSH-туннеля для отдельного сетевого интерфейса на Raspberry Pi и обеспечения защищённого соединения с интернетом через общедоступные точки доступа Wi-Fi, выполните следующие шаги. Этот процесс позволит вам использовать ад-хок беспроводную сеть для подключения других устройств, таких как ваш iPhone, к защищённой интернет-сети через SSH-прокси, созданный на Pi.

Шаг 1: Настройка SSH-доступа на удалённом сервере

Убедитесь, что у вас есть удалённый сервер, с которым вы сможете установить SSH-соединение. На этом сервере необходимо включить параметр AllowTCPForwarding. Для этого:

  1. Подключитесь к удалённому серверу по SSH.

  2. Откройте файл конфигурации SSH-сервера:

    sudo nano /etc/ssh/sshd_config
  3. Найдите или добавьте строку:

    AllowTCPForwarding yes
  4. Сохраните файл и перезапустите SSH-сервер:

    sudo systemctl restart sshd

Шаг 2: Подключение Raspberry Pi к удалённому серверу и создание SOCKS-прокси

Теперь, когда SSH-сервер настроен, вы можете подключиться к нему с вашего Raspberry Pi и создать SOCKS-прокси.

  1. Подключитесь к вашему Raspberry Pi.

  2. Запустите следующую команду для создания SSH-туннеля:

    ssh -g -D 8080 user@remote-host
    • -g: позволяет другим хостам, находящимся в вашей локальной сети, обращаться к SOCKS-прокси.
    • -D 8080: создает SOCKS-прокси на порту 8080.
    • Замените user на имя пользователя на удалённом сервере, а remote-host на IP-адрес или доменное имя сервера.
  3. Опционально, добавьте флаг -N, чтобы не запускать удалённую оболочку, и -v для режима отладки:

    ssh -g -D 8080 -N -v user@remote-host

Шаг 3: Настройка Raspberry Pi для проксирования

Для подключения вашего iPhone к созданному SOCKS-прокси потребуется отрегулировать параметры сети. Однако вы должны учесть, что iOS не поддерживает SOCKS-прокси напрямую. Примените обходные пути, описанные в источниках, например, с помощью программного обеспечения или настройки VPN.

Шаг 4: Защита SOCKS-прокси

Чтобы ограничить доступ к прокси-серверу только для вашего устройства (например, iPhone), рассмотрите возможность настройки правил iptables:

  1. Установите iptables на Raspberry Pi:

    sudo apt-get install iptables
  2. Настройте правила:

    sudo iptables -A INPUT -p tcp --dport 8080 -s ваш_iPhone_IP -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

    Замените ваш_iPhone_IP на IP-адрес вашего устройства в локальной сети. Эти команды разрешают доступ к порту 8080 только для вашего iPhone и блокируют доступ для всех остальных устройств.

Шаг 5: Альтернативное решение – OpenVPN

Хотя маршрутизация через SSH-туннель решает поставленную задачу, настоятельно рекомендуется рассмотреть более надёжное и удобное решение, такое как OpenVPN. OpenVPN предоставляет высокую степень защиты и прост в использовании на различных устройствах. Для получения информации об установке OpenVPN на Raspberry Pi обратитесь к документации OpenVPN или найдите специальные руководства для Raspberry Pi.

Заключение

Следуя приведённым шагам, вы сможете обеспечить безопасное интернет-соединение для вашего iPhone через Raspberry Pi, используя SSH-туннель и SOCKS-прокси. Этот метод не только защитит ваши данные в общественных сетях Wi-Fi, но и позволит легко подключить другие устройства к Интернету через Raspberry Pi.

Оцените материал
Добавить комментарий

Капча загружается...