Làm cách nào tôi có thể đảm bảo tất cả lưu lượng TCP của máy Mac của tôi đều đi qua proxy SOCKS5?


12

Tôi có một proxy SOCKS với một cổng.

Làm thế nào tôi có thể làm cho MAC của tôi sử dụng nó? Tôi thay đổi cài đặt nào trong cài đặt mạng?

Câu trả lời:


3

Tại sao không phải là tùy chọn hệ thống -> mạng -> (Chọn mạng ở phía bên trái của cửa sổ và chọn Nâng cao ở dưới cùng bên phải) -> Proxy (tab ở trên cùng) hoạt động cho bạn?

nhập mô tả hình ảnh ở đây


9
Điều đó không làm việc cho tất cả các ứng dụng. Skype, Chrome và những người khác dường như bỏ qua các cài đặt này - ít nhất là vào ngày 10.10 ...
Ingwie Phoenix

Những gì bạn nói là đúng. Nó thậm chí còn được đề cập trong các ý kiến ​​khác. Tác giả nói rõ rằng họ muốn đơn giản, vì vậy tôi bắt đầu đơn giản bằng cách hỏi câu trả lời tôi đăng sẽ không hiệu quả với họ. Rõ ràng nó làm việc cho họ vì họ đã chọn nó. Bảo mật không phải lúc nào cũng là câu trả lời 100%. Hầu hết thời gian là về giảm thiểu rủi ro.
Everett

1
Terminal không thể áp dụng cài đặt proxy vớ hệ thống 5, nhưng ứng dụng rộng sẽ ổn.
E_Jovi

5

Mặc dù cài đặt cài đặt proxy toàn hệ thống là một khởi đầu tốt, bạn cũng có thể muốn xem xét việc sử dụng iptables để đảm bảo rằng tất cả lưu lượng truy cập đều đi qua proxy. Một số ứng dụng không sử dụng cài đặt cấu hình toàn hệ thống (Firefox trong số chúng) và do đó bắt buộc bạn phải điều chỉnh quy tắc của mình không cho phép kết nối trực tiếp và chỉ định tuyến lưu lượng truy cập thông qua proxy.

EDIT: Trong khi cá nhân tôi sử dụng iptablescác quy tắc để quản lý "rò rỉ" tiềm năng từ VPN của mình, ban đầu tôi thực sự bị nhầm lẫn khi nghĩ rằng iptables có thể hoạt động trực tiếp với proxy vớ. Bạn sẽ cần một cái gì đó như tun2socks để tạo giao diện đường hầm ảo (chẳng hạn như sử dụng vpn).

Theo đó, bạn có thể thiết lập một tập lệnh iptables tương tự như sau:

#!/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

Đương nhiên, bạn sẽ muốn tạo tập lệnh này phản ánh mạng cụ thể của mình (nghĩa là, nếu bạn đang sử dụng một cái gì đó như mạng con 192.168.0.0/24, hãy điều chỉnh cho phù hợp). Ngoài ra, nó rất chặt chẽ dựa trên tập lệnh tôi sử dụng với VPN, do đó, tất cả các đề cập MYVPN hoặc VPN - trong khi bạn không sử dụng VPN, tun2sockshoạt động hiệu quả như thể bạn là vậy, vì vậy mọi thứ sẽ hoạt động như nhau.

Và đặc biệt cảm ơn câu trả lời này tại Unix.SE đã giúp tôi đi đúng hướng để trả lời câu hỏi này.

EDIT một lần nữa: Vì vậy, có vẻ như OS X thực sự sẽ làm điều này với ipfwchứ không phải iptables (xin lỗi, tôi chủ yếu là một người linux và nghĩ rằng OS X có sẵn iptables). Có những sự tương đương như vậy mà kịch bản có thể được điều chỉnh, một số trong đó được chỉ ra ở đây . man ipfwnên đặt bạn thẳng vào cú pháp. Tôi sẽ để lại iptableskịch bản gốc dưới dạng mẫu để bạn có thể thấy những gì đang diễn ra theo khái niệm. WaterRoust có vẻ như có thể giúp sử ipfwdụng thân thiện hơn với người dùng một chút; kết thúc khác có thể là có sẵn là tốt.


Tôi không muốn sử dụng iptables vì ​​nó quá phức tạp. Tun2socks có vẻ như tôi cần SSH và một máy chủ. Tôi chỉ có một IP và một cổng ... Làm thế nào tôi có thể sử dụng IP và cổng?
Alex

tun2sockskhông yêu cầu SSH và máy chủ; ví dụ trên trang web của họ là sử dụng SSH để tạo proxy SOCKS ở vị trí đầu tiên. Nếu bạn đã có proxy SOCKS, điều đó hoàn toàn không cần thiết. Và vâng, iptableslà một cách sai về phía tôi. OS X, dựa trên BSD, sử dụng ipfwchứ không phải iptables, dành cho nhân Linux. Vì nó phức tạp, bạn có thể tìm thấy một lối vào sẽ thiết lập nó cho bạn theo cách dễ sử dụng hơn, nhưng tôi không có kinh nghiệm về vấn đề này. Nó đang phức tạp ở mức độ thấp dù sao cũng có liên quan đến lý do tại sao nó có khả năng cho công việc như vậy.
0xDAFACADE

Tôi đã thêm một lối vào để bạn sử dụng vào câu trả lời nếu nó giúp việc điều hướng ipfwdễ dàng hơn.
0xDAFACADE

5

Nếu bạn có thể đặt cho mình một máy chủ SSH, thì sshript miễn phí có thể tạo đường hầm cho tất cả lưu lượng TCP thông qua kết nối, thực hiện tất cả các công việc tường lửa cho bạn.

Để chuyển tiếp tất cả lưu lượng TCP và yêu cầu DNS đến máy chủ SSH từ xa, lệnh này đủ đơn giản:

sshuttle --dns -vr ssh_server 0/0

Bên cạnh TCP và DNS, sshript không chuyển tiếp các yêu cầu khác như UDP, ICMP, ping, v.v.

Để biết thêm thông tin và ví dụ, xem bài viết Sử dụng Sshript trong công việc hàng ngày .


Mặc dù người hỏi không có máy chủ SSH để sử dụng cho mục đích này, nhưng ít nhất tôi muốn cảm ơn bạn đã nhắc nhở tôi về công cụ tuyệt vời này và chức năng mà nó mang lại. Sự đơn giản trong cú pháp đó thật tuyệt vời và có thể xử lý iptables hoặc ipfw trên phần phụ trợ thực sự là một tính năng đáng khen ngợi từ các mái nhà.
0xDAFACADE

Điều này không chuyển hướng tất cả lưu lượng TCP, ví dụ nếu bạn có VMWare đang chạy thì nó sẽ bỏ qua điều này.
Soheil

0

Có một số giải pháp có sẵn. Không có cách nào đơn giản như thay đổi một số cài đặt: lý do là điều này đánh bại toàn bộ mục tiêu ủy quyền, đó là định tuyến một số ứng dụng cụ thể thông qua một tuyến khác (vì mục đích tàng hình, bảo mật, bảo vệ danh tính ...) trong khi rời khỏi bạn truy cập vào tuyến đường địa phương (được cho là nhanh hơn).

Một số sẽ bị loại bỏ vì yêu cầu của bạn, nhưng hãy để tôi đề cập đến chúng vì mục đích hoàn chỉnh: VPN, đường hầm SSH, sử dụng pfctl (bộ lọc gói và giao diện điều khiển NAT). Ngoài ra, Tor, mặc dù chắc chắn không được thiết kế cho mục đích sử dụng mà bạn có trong đầu, cho phép bạn định tuyến tất cả lưu lượng truy cập thông qua proxy của họ .

Tất cả các ứng dụng này đều miễn phí và đòi hỏi nhiều nhất là sự khéo léo để đưa chúng đi. Mặt khác, có những ứng dụng trả tiền, trong đó phần lớn công việc đã được thực hiện bởi người khác, mặc dù ở một mức giá.

Proxycap

cho phép bạn chuyển hướng kết nối mạng của máy tính thông qua các máy chủ proxy. Bạn có thể nói với ProxyCap những ứng dụng nào sẽ kết nối với Internet thông qua proxy và trong hoàn cảnh nào. Điều này được thực hiện thông qua giao diện thân thiện với người dùng mà không cần phải cấu hình lại bất kỳ ứng dụng khách Internet nào của bạn

Ngoài ra, có Proxifier cho Mac (cẩn thận: chỉ hỗ trợ tối đa 10.8). mà

cho phép các ứng dụng mạng không hỗ trợ làm việc thông qua các máy chủ proxy hoạt động thông qua proxy và chuỗi SOCKS hoặc HTTPS.


0

Đi tới Tùy chọn-> Mạng Xem nếu có khóa trên đó, nhấp vào đó và cung cấp mật khẩu tài khoản quản trị viên hệ thống của bạn. Sau đó Nâng cao-> Proxy-> Kiểm tra trên Proxy Proxy. Cung cấp cài đặt proxy của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.