Реализация перенаправления веб-трафика мобильного устройства с помощью программы SSH Tunnel | Статья в сборнике международной научной конференции

Автор:

Рубрика: 1. Информатика и кибернетика

Опубликовано в

VI международная научная конференция «Современные тенденции технических наук» (Казань, май 2018)

Дата публикации: 13.03.2018

Статья просмотрена: 23 раза

Библиографическое описание:

Бушев Ю. В. Реализация перенаправления веб-трафика мобильного устройства с помощью программы SSH Tunnel [Текст] // Современные тенденции технических наук: материалы VI Междунар. науч. конф. (г. Казань, май 2018 г.). — Казань: Молодой ученый, 2018. — С. 1-4. — URL https://moluch.ru/conf/tech/archive/300/13973/ (дата обращения: 19.11.2018).



SSH туннель — это виртуальный канал для передачи данных, базирующийся на зашифрованном SSH (Secure Shell) соединении. Он используется для организации VPN (Virtual Private Networks), а также для доступа к внутренним узлам сетевой инфраструктуры.

В статье мы рассмотрим, как при помощи программы SSH Tunnel можно настроить перенаправление Интернет трафика мобильного устройства, используя SSH сервер (1). Также, приведем примеры PAC-файлов для автоконфигурации прокси-подключения. Они определяют так называемый метод доступа: то, какой прокси-сервер должен использовать веб-браузер и другие интернет-приложения для доступа к конкретному URL-адресу.

Будем считать, что мы установили и настроили SSH сервер на операционной системе Linux (2), доступный по адресу: server9850.cloudapp.net.

Рис. 1. Экран настройки подключения

На Рис. 1 показан процесс создания и настройки нового SSH туннеля. При этом мы будем использовать метод аутентификации с закрытым ключом, так как это наиболее безопасный способ проверки пользователя на сегодняшний день.

Нам будет интересен динамический тип перенаправления портов, так как заранее мы не знаем какой ресурс понадобится пользователю. Для просмотра Интернет страниц будем использовать встроенный браузер Safari, предварительно указав локальный адрес до PAC файла в настройках Wi-Fi соединения iOS.

PAC-файл по умолчанию показана на Рис. 2. Он составлен таким образом, что абсолютно весь трафик устройства будет перенаправляться через SSH-туннель автоматически.

Рис. 2. Экран настройки PAC-файла

Основной смысл использования такого подхода заключается в том, что браузер (или операционная система) читает специальный файл, написанный на языке JavaScript, в котором определена всего одна функция:

function FindProxyForURL(url, host) {

// ...

}

где:

– url – полный URL запрашиваемого документа;

– host – имя хоста, извлекаемое из URL.

Функция возвращает строку, содержащую один или несколько способов доступа к запрашиваемому ресурсу. Формат строки может быть следующим:

– null – если строка null, то использовать прокси сервер не нужно;

– DIRECT – прямое соединение без использования прокси;

– PROXY host:port – определяет какой прокси сервер необходимо использовать;

– SOCKS host:port – определяет SOCKS сервер который необходимо использовать.

Теперь, предположим, что мы не хотим использовать перенаправление трафика для некоторых адресов, например, для yandex.ru. Для этого в начало функции FindProxyForURL добавим следующий код:

if (shExpMatch(url, "https://yandex.ru/*")) {

return "DIRECT";

}

Также, чтобы не использовать перенаправление для всех FTP серверов, добавим следующее:

if (url.substring(0, 4) === "ftp:") {

return "DIRECT";

}

Принимая во внимание тот факт, что локальные сервера (те, что входят в состав Wi-Fi сети к которой подключен девайс) недоступны через SSH сервер, необходимо создать для них специальное правило и добавить в функцию FindProxyForURL:

if (isInNet(myIpAddress(), "192.168.0.1", "255.255.255.0")) {

return "DIRECT";

}

Мы можем не только запрещать проксирование трафика, но и наоборот, задавать специальные правила для его перенаправления на другой прокси-сервер, например:

if (shExpMatch(url, "*hotmail.com*")) {

return "PROXY 127.0.0.1:8080; PROXY 127.0.0.1:9090";

}

В примере выше мы указали два прокси-сервера, в случае если первый не будет отвечать на запросы, будет использоваться второй.

Для работы с IP-адресами и получения текущей конфигурации сети в рамках PAC-файла нам доступны следующие функции (3):

– isPlainHostName(host) - возвращает true, если строка host не содержит точек (".");

– dnsDomainIs(host, domain) вернет true, если domain принадлежит host;

– localHostOrDomainIs(host, hostDomain) возвращает true, если строка host (имя хоста или домена) содержится в строке hostDomain;

– isResolvable(host) возвращает true, если возможно определить IP адрес для заданной строки host;

– isInNet(host, pattern, mask) возвращает true, если IP адрес или имя хоста в строке host соответствует шаблону pattern и маске mask;

– dnsResolve(host) возвращает IP адрес для заданного host;

– myIpAddress() возвращает IP адрес устройства;

– dnsDomainLevels(host) возвращает количество точек в строке host. Другими словами, уровень домена;

– shExpMatch(str, shellExp) вернет true, если строка str соответствует регулярному выражению в строке shellExp;

– weekdayRange(wd1 [, wd2 ][, "GMT"]) вернет true, если текущая дата или дата заданная в параметре GTM, соответствует заданному дню недели или диапазону дней. Дни недели записываются в закавыченной строке из следующих вариантов (SUN|MON|TUE|WED|THU|FRI|SAT);

– dateRange([day1] [,month1] [,year1] [,day2] [,month2] [,year2] [,"GMT"]) вернет true если текущая дата или дата заданная в параметре GTM попадает в указанный диапазон. Название месяца задается закавыченной строкой из следующих вариантов (JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC);

– timeRange(hour1, minute1, second1, hour2, minute2, second2 [, "GMT"]) Позволяет правилам основываться на времени; использовать прокси-сервер в определенные часы.

Таким образом, возможность полностью задать контент PAC-файла в приложении SSH Tunnel позволяет максимально гибко и точно настроить правила для перенаправления трафика и контролировать использование прокси-серверов в зависимости от сети устройства, запрашиваемого адреса и даже времени, в которое происходит запрос.

Литература:

  1. SSH Tunnel // Tunneling & Port Forwarding. URL: https://itunes.apple.com/us/app/ssh-tunnel/id1260223542 (дата обращения: 26.02.2018).
  2. OpenSSH // OpenSSH — Wikipedia. URL: https://en.wikipedia.org/wiki/OpenSSH (дата обращения: 03.03.2018)
  3. PAC Functions // FindProxyForURL. URL: https://findproxyforurl.com (дата обращения: 10.03.2018).
Основные термины (генерируются автоматически): SSH, PROXY, URL, GTM, SOCKS, сервер, имя хоста, строка, операционная система, APR.

Похожие статьи

Клиентские обнаружения веб-прокси из непривилегированных...

Чтобы исследовать этот вопрос, мы исследовали влияние ряда тестов на точность системы.

Мы изменили содержимое заголовка HTTP GET, помещая имя домена E1 в хост: поля и отправив

В противном случае, прокси-сервер не делает перенаправление. Литература

Системы сбора информации в аспекте кибербезопасности

Он поддерживает серверы Unix, сетевые устройства, хосты Windows.

Osquery представляет операционную систему как выскокопроизводительную реляционную базу данных.

К тому же это решение является открытой версией коммерческого инструмента с тем же именем.

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

Цель Synthetix - специализация кода для увеличения производительности операционных систем.

Эхо-тестирование (ping sweep) адресов, раскрытых с помощью DNS, позволяет увидеть, какие хосты реально работают в данной среде.

Протокол TACACS+ | Статья в журнале «Молодой ученый»

В командной строке на маршрутизаторе вводятся следующие команды: tacacs-server host 192.168.2.1 key secretkey. Это определило хост, который настроен как сервер AAA и ключ шифрования, ключ должен быть определен как на маршрутизаторе, так и на сервере, а если...

Введение в контейнеры, виртуальные машины и docker

Рис. 1. Архитектура виртуальной машины. Виртуальную машину, запускаемую на хосте, также часто называют «гостевой машиной».

Например, образ может содержать операционную систему Ubuntu c веб-сервером Nginx и приложением на ней.

Преимущества использования контейнерной архитектуры...

Далее, используя директиву RUN, мы можем исполнять любые команды, которые поддерживает операционная система образа, в итоге, на 10 строке устанавливаем NPM зависимости проекта.

Внедрение системы мониторинга метрик в серверное...

CPU Usage, system — время, затрачиваемое процессором на функции операционной системы, связанные с Node.js процессом

Memory Usage, heap total — общий размер сегмента памяти, предназначенного для хранения ссылочных типов, таких как объекты, строки и замыкания

Анализ системы мониторинга NetXMS | Статья в журнале...

Установка NetXMS. В качестве операционной системы для установки системы мониторинга был выбран Linux Debian 8.7.

Это определило хост, который настроен как сервер AAA и ключ шифрования, ключ должен быть...

Обсуждение

Социальные комментарии Cackle

Похожие статьи

Клиентские обнаружения веб-прокси из непривилегированных...

Чтобы исследовать этот вопрос, мы исследовали влияние ряда тестов на точность системы.

Мы изменили содержимое заголовка HTTP GET, помещая имя домена E1 в хост: поля и отправив

В противном случае, прокси-сервер не делает перенаправление. Литература

Системы сбора информации в аспекте кибербезопасности

Он поддерживает серверы Unix, сетевые устройства, хосты Windows.

Osquery представляет операционную систему как выскокопроизводительную реляционную базу данных.

К тому же это решение является открытой версией коммерческого инструмента с тем же именем.

Сетевые атаки. Виды. Способы борьбы | Статья в сборнике...

Цель Synthetix - специализация кода для увеличения производительности операционных систем.

Эхо-тестирование (ping sweep) адресов, раскрытых с помощью DNS, позволяет увидеть, какие хосты реально работают в данной среде.

Протокол TACACS+ | Статья в журнале «Молодой ученый»

В командной строке на маршрутизаторе вводятся следующие команды: tacacs-server host 192.168.2.1 key secretkey. Это определило хост, который настроен как сервер AAA и ключ шифрования, ключ должен быть определен как на маршрутизаторе, так и на сервере, а если...

Введение в контейнеры, виртуальные машины и docker

Рис. 1. Архитектура виртуальной машины. Виртуальную машину, запускаемую на хосте, также часто называют «гостевой машиной».

Например, образ может содержать операционную систему Ubuntu c веб-сервером Nginx и приложением на ней.

Преимущества использования контейнерной архитектуры...

Далее, используя директиву RUN, мы можем исполнять любые команды, которые поддерживает операционная система образа, в итоге, на 10 строке устанавливаем NPM зависимости проекта.

Внедрение системы мониторинга метрик в серверное...

CPU Usage, system — время, затрачиваемое процессором на функции операционной системы, связанные с Node.js процессом

Memory Usage, heap total — общий размер сегмента памяти, предназначенного для хранения ссылочных типов, таких как объекты, строки и замыкания

Анализ системы мониторинга NetXMS | Статья в журнале...

Установка NetXMS. В качестве операционной системы для установки системы мониторинга был выбран Linux Debian 8.7.

Это определило хост, который настроен как сервер AAA и ключ шифрования, ключ должен быть...

Задать вопрос