Chuyển hướng lưu lượng truy cập bằng PF cùng với Chia sẻ Internet


8

Phiên bản ngắn:

Làm cách nào để chuyển hướng tất cả lưu lượng truy cập từ cổng en2 80/443 sang 127.0.0.1:8080 khi tôi đã bật Chia sẻ Internet trong OS X Mountain Lion (10.8)?

Một số nền tảng:

Tôi đang làm luận án thạc sĩ nơi tôi sẽ đánh giá bảo mật liên lạc cho các ứng dụng điện thoại thông minh khác nhau. Tôi đã chọn sử dụng MacBook Air mới của mình làm bộ định tuyến.

Tôi đã kết nối Air với Internet bằng USB Ethernet và thiết lập Chia sẻ Internet với Wifi. Điều này hoạt động tốt. Tôi có thể kết nối các thiết bị khác với Air thông qua wifi và truy cập Internet. Tuyệt quá!

Bây giờ tôi muốn chặn lưu lượng này và sửa đổi nó ngay lập tức. Tôi hình dung tôi cần một proxy để làm điều này nhưng tôi cần một cái trong suốt, nơi tôi không phải thực hiện bất kỳ cấu hình nào trên thiết bị. Tôi thấy rằng mitmproxy cung cấp chính xác các tính năng này. Vì vậy, tôi có nó chạy trên 127.0.0.1:8080, sẵn sàng chặn lưu lượng.

Thật không may, tôi bị kẹt khi cố gắng chuyển hướng lưu lượng truy cập của mình từ wifi (en2) trên cổng 80 và 443 sang 127.0.0.1:8080. Các tài liệu mitmproxy đề xuất một cấu hình cho pfctl nhưng nó không hoạt động. Tôi nhận thấy rằng Apple đã cung cấp một số cấu hình cho Chia sẻ Internet, cho phép NAT. Vì vậy, nếu tôi không sử dụng cấu hình của họ thì Internet Sharing sẽ ngừng hoạt động. Và khi tôi cố gắng thêm các dòng thứ tự vào cấu hình của chúng thì nó không có hiệu lực (đã thử một vài vị trí trong tệp /etc/pf.conf). Lưu lượng truy cập của tôi chỉ truyền qua Internet, bỏ qua mitmproxy.

Câu trả lời:


6

Tôi tìm thấy câu trả lời.

Tôi đã tải các quy tắc của mình như một phần của neo com.apple/100.InternetSharing/natpmp, đó là quy tắc được sử dụng để chia sẻ Internet.

Tệp mitm.pf.confnày chứa các quy tắc:

rdr on bridge0 proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr on bridge0 proto tcp from any to any port 443 -> 127.0.0.1 port 8080`

Tải nó bằng neo Chia sẻ Internet:

sudo pfctl -a com.apple/100.InternetSharing/natpmp -f mitm.pf.conf

0

Trong một tình huống tương tự, tôi đã sử dụng tường lửa để chuyển hướng lưu lượng truy cập từ một NIC sang proxy. Bạn có thể sử dụng một cái gì đó như thế:

$ sudo ipfw add fwd 127.0.0.1,8080 tcp from not me to any 80 in via en1
$ sudo ipfw add fwd 127.0.0.1,8080 tcp from not me to any 443 in via en1

Nếu làm việc ok cho tôi.

Bạn cũng có thể sử dụng chương trình WaterRoust miễn phí làm GUI để định cấu hình tường lửa. Nó không thêm bất cứ thứ gì vào lệnh ipsw, nó chỉ giúp bạn truy cập dễ dàng hơn vào tất cả các tùy chọn.

Trang này đã giúp tôi rất nhiều trong việc thiết lập cấu hình của mình:

http://lucumr.pocoo.org/2013/1/6/osx-wifi-proxy/


Tôi đã thử điều đó nhưng vì một số lý do nó không hoạt động. Nó hoàn toàn phá vỡ Chia sẻ Internet. Ngoài ra, tôi hiểu rằng Apple đang chuyển từ ipfw khỏi FreeBSD để ủng hộ pf từ OpenBSD.
Christoffer Reijer

Câu trả lời này chỉ hoạt động cho máy Mac cũ. Apple đã bỏ IPFW.
Brady
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.