Как избежать идентификации TCP/IP

Как избежать идентификации TCP/IP

У меня следующая настройка:

 +-----------+   SSH Tunnels Over Socks5 Proxy    +--------------+
 |           |                                    |              |
 | Linux PC  +------------------------------------+ Proxy Server |
 |           |                                    |              |
 +-----------+                                    +--------------+
                                                          |
                                                          | SSH Tunnels
                                             +-------------------------+
                                             |                         |
                                             |                         |
                                       +-----------+             +-----------+
                                       |           |             |           |
                                       |   PI A    |             |   PI B    |
                                       |           |             |           |
                                       +-----------+             +-----------+
                                             |                          |
                                             |  WAN / Internet          |  WAN / Internet
                                             |                          |
                                             v                          v

Во-первых: я не пытаюсь обойти функцию идентификации ОС, как обсуждалось ранее.здесьили в других вопросах на SuperUser. Я использую Linux для всей цепочки/стека и не против, чтобы меня так идентифицировали.

Фон: Я получаю доступ в Интернет в другой стране из-за цензуры. У меня есть два идентичных Raspberry PI (модель 3B+, клонированная SD-карта, только измененный IP для работы в соответствующих локальных сетях) в двух отдельных жилых помещениях (разные интернет-провайдеры). Я использую их независимо друг от друга, и они служат в качестве жилых прокси для доступа в Интернет.

Трафик направляется через PI через SSH-туннели. Эти SSH-туннели сами туннелируются через зашифрованный Socks5-туннель через прокси-сервер (он одинаков для обоих PI), чтобы скрыть их от местных внутренних цензоров/блокировки IP.

Пока это работает.

Проблема: Когда я провожу тесты наhttps://browserleaks.com/ipиhttps://doileak.comЯ получаю разные результаты для «PI A» и «PI B».

Для «PI A» я получаю MTU 1500 и тип подключения «Ethernet или модем», а для «PI B» я получаю MTU 1440 и тип подключения «универсальный туннель или VPN».

Я хочу, чтобы оба они были идентифицированы как тип соединения "ethernet или модем", чтобы скрыть тот факт, что они являются прокси. На основе моих исследований эти тесты, похоже, используют TCP/IP-отпечатки с p0f.

Интерфейсы обоих PI установлены на MTU 1500, также идентичны конфигурации iptables. У них одинаковое оборудование, SD-карта в "PI B" по сути является клоном "PI A". Оба PI напрямую подключены к своим соответствующим маршрутизаторам через ethernet. Кроме того, для Linux PC и Proxy-сервера MTU установлен на 1500 (хотя, если я не ошибаюсь, это не должно иметь значения).

Учитывая тот факт, что ИП настроены одинаково, что я упускаю?

PS: название, возможно, не идеальное, но я не уверен, как описать проблему в нескольких словах

решение1

MTU 1500, настроенный в PI A и PI B, является MTU по умолчанию для пакетов Ethernet. Этот MTUтолькомежду первым маршрутизатором (вашим интернет-маршрутизатором) и PI.

Маршрутизатор, к которому подключен PI (маршрутизатор A), подключается к следующему маршрутизатору (маршрутизатор B). Затем маршрутизатор B подключается к другому маршрутизатору (маршрутизатор C). И так далее. Этот маршрут заканчивается в пункте назначения (например, на сервере browserleaks.com). Этот маршрут зависит от вашего географического положения и немного случаен. Также он меняется со временем.

MTU между маршрутизатором A и маршрутизатором B, вероятно, >= 1500, но это не гарантировано. Если он меньше 1500, то ваши пакеты разделяются, как вы можете прочитатьздесь. Также браузер browserleaks.com затем отобразит меньший MTU.

Заключение:

браузерleaks.com отображает максимально поддерживаемый MTUна всем маршрутеот клиента к серверу.

Нормально, что вы получаете разные MTU для PI A и PI B, поскольку они, вероятно, используют разные маршруты.

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

traceroute browserleaks.com

Это список всех маршрутизаторов между вами и сервером (а также сервером). Запустите его один раз для каждого PI.

Также обратите внимание, что в IPv6 пакеты не могут быть разделены.

Связанный контент