Xoay IP proxy không cần VPN: điểm ra nhìn thấy gì
Xoay các điểm ra proxy mà không cần VPN: proxy HTTP đọc được gì, phiên dính ngăn trạng thái hỏng thế nào và điểm ra nào bạn có thể biện hộ trong chính sách.
Việc xoay proxy và VPN thay đổi địa chỉ công khai của bạn ở các tầng khác nhau, và chính sự khác biệt đó quyết định điều gì bị rò rỉ. VPN đưa mọi gói tin vào một đường hầm, nên địa chỉ nguồn mà mục tiêu thấy là điểm cuối của đường hầm. Proxy nằm trên tầng mạng: chỉ những yêu cầu bạn gửi qua nó mới xuất hiện từ điểm ra, trong khi mọi thứ khác trên máy vẫn giữ địa chỉ thật. Làm đúng sự phân tách này biến việc xoay từ một ô đánh dấu thành một quyết định thiết kế.
Địa chỉ công khai thực sự đến từ đâu
Địa chỉ mà một mục tiêu thấy là nơi lưu lượng của bạn rời đi lần cuối, và trên kết nối gia đình thì đó là địa chỉ của nhà cung cấp trên router của bạn, không phải thứ gì đó máy sở hữu. Khởi động lại router có thể trả lại cùng một hợp đồng thuê, và đổi địa chỉ MAC của nó đôi khi tạo ra địa chỉ mới, nhưng cả hai đều không cho bạn bộ chọn quốc gia. VPN thay thế địa chỉ nguồn ở tầng IP, nên mọi gói tin từ máy, kể cả DNS và các bản cập nhật nền, đều rời khỏi điểm cuối của đường hầm. Proxy làm việc ở tầng cao hơn một bậc: nó nhận một yêu cầu, mở kết nối riêng tới mục tiêu, và chỉ yêu cầu đó xuất hiện từ điểm ra. Mọi thứ khác trên máy vẫn dùng địa chỉ thật.
Sự phân tách đó giải thích phần lớn những bất ngờ. Một tiện ích trình duyệt trỏ tới proxy chỉ thay đổi những gì trình duyệt gửi và không gì khác, nên ứng dụng thứ hai trên cùng máy chủ vẫn làm lộ địa chỉ gốc. VPN toàn hệ thống có chế độ hỏng ngược lại: nó bao phủ cả lưu lượng bạn muốn giữ cục bộ và chỉ đóng lại khi máy khách được cấu hình như vậy. Chọn giữa hai cách thực chất là chọn lưu lượng nào phải di chuyển.
Sau đó việc xoay áp dụng cho tầng bạn đã chọn. Với proxy, xoay nghĩa là yêu cầu tiếp theo dùng một điểm ra khác. Với VPN, nó nghĩa là phá bỏ và dựng lại đường hầm, chậm hơn và hiện ra như một lần kết nối lại nhìn thấy được.
Proxy HTTP đọc được gì và không đọc được gì
Với HTTP thường, proxy thấy một URI tuyệt đối trong dòng yêu cầu, mọi tiêu đề và phần thân. Nó có thể ghi lại tất cả và viết lại bất kỳ phần nào, đó là lý do một proxy miễn phí chèn tập lệnh vào phản hồi làm đúng điều giao thức cho phép. Xác thực dùng Proxy-Authorization, và thông tin đăng nhập thiếu hoặc sai tạo ra 407 Proxy Authentication Required thay vì lỗi kết nối.
Với HTTPS, máy khách gửi CONNECT host:port và proxy mở một đường hầm thô, sau đó nó thấy các byte đã mã hóa. Nó vẫn học tên máy chủ từ dòng CONNECT và thường từ trường SNI trong bắt tay TLS, nên việc ghi nhật ký ở mức tên máy chủ vẫn sống dù tải trọng thì không. Đọc tải trọng đòi hỏi kết thúc TLS bằng chứng chỉ mà máy khách tin cậy, đó là một sản phẩm khác với rủi ro khác. Và đặc tả ngữ nghĩa HTTP định nghĩa CONNECT là một yêu cầu đường hầm, đó là mô hình tinh thần đúng cho những gì một điểm ra có thể và không thể thấy.
curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'
Đầu ra chi tiết cho thấy dòng CONNECT trước mọi lưu lượng TLS, và đó là thời điểm proxy biết đích đến của bạn. Một proxy trả lời bằng 407 chưa bao giờ mở đường hầm, nên thử lại với cài đặt TLS khác sẽ không giúp gì.
Độ chi tiết của việc xoay quyết định cái gì sẽ hỏng
Xoay theo từng yêu cầu là thiết lập trông an toàn nhất và phá nhiều nhất. Cookie, token CSRF và phiên phía máy chủ gắn với một danh tính, và một danh tính thay đổi giữa lúc đăng nhập và lệnh gọi tiếp theo trông như bị chiếm phiên đối với mục tiêu. Nhiều nhà cung cấp cung cấp phiên dính bằng cách mã hóa nó trong tên người dùng của proxy, nên điểm ra giữ nguyên trong một khoảng thời gian đã chọn.
Chọn độ chi tiết theo nhiệm vụ, không theo mặc định của nhà cung cấp. Một trình thu thập lấy các trang độc lập có thể xoay theo từng yêu cầu, trong khi luồng thanh toán hoặc API đã xác thực phải giữ một điểm ra suốt cả luồng. Hai lệnh gọi dưới đây cho thấy một tên người dùng dính và một điểm cuối xoay đơn giản, và socks5h lược đồ phân giải tên tại proxy thay vì cục bộ.
curl -sS -x http://user-session-a1b2:[email protected]:8080 https://ifconfig.me
curl -sS -x socks5h://127.0.0.1:1080 https://ifconfig.me
DNS cục bộ là một rò rỉ âm thầm. Nếu máy khách phân giải tên trước khi kết nối, trình phân giải vẫn biết mọi máy chủ bạn ghé thăm dù yêu cầu HTTP đi ra ở nơi khác. Và socks5h hình thức và cách phân giải phía proxy tránh được điều đó, và dùng chúng không tốn gì.
Mục tiêu phân loại gì ngoài địa chỉ
Danh tiếng của địa chỉ là một đầu vào trong số nhiều. Các mục tiêu kết hợp ASN và nhãn trung tâm dữ liệu hay dân cư của nó, dấu vân tay TLS của máy khách, cài đặt HTTP/2, thứ tự tiêu đề, tốc độ yêu cầu và hình dạng điều hướng. Một điểm ra dân cư do trình duyệt không giao diện điều khiển có thể thất bại nơi một điểm ra trung tâm dữ liệu do phiên thật điều khiển đi qua.
Loại điểm ra quyết định bạn có thể tuyên bố trung thực điều gì về lưu lượng, và mỗi loại mang một chi phí khác nhau.
| Exit type | What the target sees | Main cost |
|---|---|---|
| Datacenter proxy | Hosting ASN, cheap, often pre-blocked | Low reputation, easy to detect |
| Residential network | A consumer ISP address belonging to someone else | Consent and terms-of-service exposure |
| Mobile carrier | A carrier NAT address shared by many subscribers | Price, plus shared blame for abuse |
| Your own cloud egress | An address you are accountable for | Recognisable, but defensible |
Một điểm ra dùng chung không trung lập. Mọi thứ khác chạy từ địa chỉ đó đều rơi vào cùng một xô danh tiếng, và một địa chỉ đã bị người thuê khác đốt cháy sẽ thất bại trước khi yêu cầu đầu tiên của bạn được đọc.
Chọn một điểm ra bạn có thể mô tả trong chính sách
Câu hỏi hữu ích không phải là làm sao che giấu địa chỉ mà là ai chịu trách nhiệm cho lưu lượng rời khỏi nó. Điểm ra đám mây của riêng bạn cho mỗi nhiệm vụ, một nhà cung cấp theo hợp đồng với thỏa thuận xử lý dữ liệu và thời hạn lưu trữ được công bố, và một VPN tự lưu trữ với một danh tính cho mỗi nhiệm vụ đều có thể mô tả trong một câu. Một danh sách miễn phí thì không, vì nhà điều hành của nó không có nghĩa vụ nào với bạn và có mọi động lực để ghi nhật ký.
Giữ giới hạn tốc độ của riêng bạn dưới mức mục tiêu chịu được, và chỉ thu thập những trường nhiệm vụ cần, để một sai sót vẫn nhỏ. Xoay nhanh hơn để thoát khỏi một chặn thường làm tăng tốc độ yêu cầu đã gây ra nó.
Hãy viết điểm ra đã chọn, khoảng thời gian xoay và người sở hữu nó vào cấu hình công việc trước lần chạy đầu tiên. Khi chặn đến, chính ghi chú đó cho bạn biết nên đổi điểm ra hay đổi hành vi.