Як я можу переконатися, що весь TCP-трафік мого Mac проходить через проксі-сервер SOCKS5?


13

У мене є проксі-сервер SOCKS з портом.

Як я можу змусити MAC використовувати його? Які настройки я можу змінити в мережевих налаштуваннях?

Відповіді:


3

Чому системні налаштування -> мережа -> (Виберіть мережу в лівій частині вікна та виберіть Додатково внизу праворуч) -> Проксі (вкладка вгорі) не працює для вас?

введіть тут опис зображення


9
Це працює не для всіх додатків. Skype, Chrome та інші, здається, обходять ці налаштування - принаймні 10.10 ...
Ingwie Phoenix

Те, що ви сказали, є правдою. Про це навіть згадується в інших коментарях. Автор дав зрозуміти, що вони хочуть простого, тому я почав із простого, запитуючи, що відповідь, яку я опублікував, не допоможе їм. Очевидно, це працювало для них, бо вони його відібрали. Безпека не завжди відповідає 100% відповіді. Здебільшого йдеться про зниження ризику.
Еверетт

1
Термінал не може прийняти налаштування проксі для системної мережі socks5, але для програми все буде нормально.
E_Jovi

6

Якщо ви можете встановити собі SSH-сервер, то безкоштовна перекладка може тунелювати весь трафік TCP через з'єднання, виконуючи всю роботу брандмауера за вас.

Для пересилання всіх запитів TCP-трафіку та DNS на віддалений сервер SSH команда досить проста:

sshuttle --dns -vr ssh_server 0/0

Крім TCP та DNS, sshuttle не пересилає інші запити, такі як UDP, ICMP, ping тощо.

Для отримання додаткової інформації та прикладів дивіться статтю Використання Sshuttle у щоденній роботі .


Хоча запитувач не має SSH-сервера, який би використовував для цієї мети, я хотів би хоча б подякувати вам за те, що нагадали мені про цей чудовий інструмент та функціонал, який він пропонує. Простота в цьому синтаксисі є фантастичною, і вміння обробляти або iptables, або ipfw на бекенді - це дійсно особливість, яку варто оцінити з дахів.
0xDAFACADE

Це не перенаправляє весь трафік TCP, наприклад, якщо у вас працює VMWare, він обходить це.
Soheil

5

Хоча налаштування системних налаштувань проксі-сервера є гарним початком, ви також можете вивчити використання iptables, щоб переконатися, що весь трафік проходить через проксі. Деякі програми не використовують налаштування конфігурації для всіх систем (Firefox серед них), і тому обов'язково потрібно налаштувати свої правила не допускати прямих з'єднань і лише маршрутизувати трафік через проксі.

EDIT: Хоча я особисто використовую iptablesправила для управління можливим "витоком" з моєї VPN, я фактично помилявся, думаючи, що iptables можуть працювати безпосередньо з проксі-носками. Вам знадобиться щось на зразок tun2socks , щоб зробити віртуальний інтерфейс тунелю (наприклад, використання vpn ).

Після цього ви можете встановити сценарій iptables, подібний до наступного:

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
    echo "This script must be run as root" 1>&2
    exit 1
fi

# name of primary network interface (before tunnel)
PRIMARY=eth0

# gateway ip address (before tunnel - adsl router ip address)
# automatically determine the ip from the default route
GATEWAY=`route -n | grep $PRIMARY | egrep "^0\.0\.0\.0" | tr -s " " | cut -d" " -f2`

# provided by tun2socks: interface name
TUNNEL=tun0

# If you'd like, putting the tun2socks command here is a good idea.  It may or may not be necessary to do so, but either way is more convenient than running the two commands separately.

# iptables rules - important!

LOCAL_NET=192.168.0.0/16
#LOCAL_NET=$GATEWAY

# Flush all previous filter rules, you might not want to include this line if you already have other rules setup
iptables -t filter --flush

iptables -t filter -X MYVPN
iptables -t filter -N MYVPN

# Add local routes to routing table
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -host 23.21.163.237 dev eth0 gw 192.168.1.1

# Add ssh routes to routing table
ip route add table 128 to 192.168.1.0/24 dev eth0
ip route add table 128 default via 192.168.1.1

# Exceptions for local traffic & vpn server
iptables -t filter -A MYVPN -o lo -j RETURN
iptables -t filter -A MYVPN -o ${TUNNEL} -j RETURN
iptables -t filter -A MYVPN --dst 127.0.0.1 -j RETURN
iptables -t filter -A MYVPN --dst $LOCAL_NET -j RETURN
iptables -t filter -A MYVPN --dst ${SERVER} -j RETURN
iptables -t filter -A MYVPN --dst ${VPN_SERVER} -j RETURN

# Add extra local nets here as necessary

iptables -t filter -A MYVPN -j DROP

# MYVPN traffic leaving this host:
iptables -t filter -A OUTPUT -p tcp --syn -j MYVPN
iptables -t filter -A OUTPUT -p icmp -j MYVPN
iptables -t filter -A OUTPUT -p udp -j MYVPN

Звичайно, ви хочете, щоб цей скрипт відображав вашу конкретну мережу (тобто, якщо ви використовуєте щось на зразок підмережі 192.168.0.0/24, відрегулюйте відповідно). Крім того, він дуже тісно базується на сценарії, який я використовую з VPN, отже, всі згадує MYVPN або VPN - хоча ви не використовуєте VPN, tun2socksефективно веде себе так, як ніби є, тому все повинно працювати так само.

І особлива подяка за цю відповідь на Unix.SE за те, що я направляв мене в правильному напрямку, щоб відповісти на цю.

Знову редагуйте: Отже, схоже, що OS X насправді робив би це, ipfwа не iptables (вибачте, я здебільшого людина з Linux, і думав, що в OS X є iptables). Є еквіваленти, такі, що сценарій можна адаптувати, деякі з яких вказані тут . man ipfwмає встановити вас прямо на синтаксис. Я залишу оригінальний iptablesсценарій як шаблон, щоб ви могли побачити, що відбувається концептуально. WaterRoof видається так, що це може допомогти зробити ipfwтрохи більш зручним для користувачів; можуть бути доступні й інші передні кінці.


Я не хочу використовувати iptables, оскільки це занадто складно. Tun2socks виглядає так, що мені потрібні SSH та сервер. У мене просто IP та порт ... Як я можу просто використовувати IP та порт?
Олексій

tun2socksне вимагає SSH та сервера; приклад на їхньому сайті - це використання SSH для створення проксі-сервера SOCKS. Якщо у вас вже є проксі-сервер SOCKS, це зовсім непотрібно. І так, iptablesбув неправильний шлях з мого боку. OS X, базуючись на BSD, використовує, ipfwа не те iptables, що для ядра Linux. Що стосується того, що це ускладнюється, ви, можливо, зможете знайти інтерфейс, який налаштує його вам простіше у використанні, але я не маю досвіду з цього приводу. Це ускладнення на низькому рівні все одно має багато спільного з тим, чому він такий працездатний.
0xDAFACADE

Я додав для вас відповідь, щоб використовувати його у відповідь, якщо це полегшує навігацію ipfw.
0xDAFACADE

0

Існує ряд рішень. Жодна з них не є такою простою, як зміна деяких налаштувань: причина полягає в тому, що це перемагає всю ціль проксі-доступу, а саме - прокласти певний конкретний додаток іншим маршрутом (для цілей схованості, безпеки, захисту особи ...), поки виїжджаючи Ви отримуєте доступ до (нібито швидшого) місцевого маршруту.

Деякі з них слід відкинути через ваші вимоги, але дозвольте мені лише згадати їх заради повноти: VPN, тунель SSH, використання pfctl (фільтр пакетів та інтерфейс управління NAT). Крім того, Tor, хоча, звичайно, не призначений для використання, яке ви маєте на увазі, дозволяє вам прокладати весь трафік через їхні проксі.

Усі ці програми безкоштовні та потребують принаймні деякої винахідливості, щоб змусити їх працювати. З іншого боку, є додатки на оплату праці, де більшу частину роботи провів хтось інший, хоча і за ціною.

Проксікап

дозволяє перенаправляти мережеві з'єднання комп'ютера через проксі-сервери. Ви можете повідомити ProxyCap, які програми підключатимуться до Інтернету через проксі і за яких обставин. Це робиться через зручний інтерфейс, не потребуючи перенастроювання будь-якого з ваших Інтернет-клієнтів

Крім того, існує Proxifier для Mac (обережно: підтримується лише 10,8). котрий

дозволяє мережевим програмам, які не підтримують роботу через проксі-сервери, працювати через проксі-ланцюги та ланцюги SOCKS або HTTPS.


0

Перейдіть у розділ Налаштування-> Мережа Перевірте, чи немає блокування на цьому, натисніть на нього та введіть пароль свого облікового запису системного адміністратора. Потім Додатково-> Проксі-> Перевірте проксі-носки. Надайте налаштування проксі-сервера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.