Làm cách nào để sử dụng OpenVPN thông qua tường lửa hạn chế?


13

Tôi hiện đang trong tình trạng cố gắng thiết lập OpenVPN trên VPS cá nhân, để kết nối chủ yếu thông qua tường lửa quá hạn chế. Tất cả các thiết lập được đề cập dưới đây hoạt động khi được sử dụng thông qua kết nối được tường lửa hợp lý.

Tôi đã thử:

  1. OpenVPN chạy trên cổng tiêu chuẩn
  2. OpenVPN chạy trên cổng 443 (Tôi khởi động OpenVPN theo cách thủ công từ dòng lệnh trên VPS và thấy rằng máy chủ báo cáo kết nối bị đóng gần như ngay lập tức, tôi cho rằng đây là kết quả của DPI trên tường lửa)
  3. STunnel chạy trên cổng 443 để truy cập OpenVPN và trốn DPI. Đây là thành công nhất và cho phép kết nối và truy cập internet thông qua VPN trong khoảng 10-20 giây, trước khi kết nối bị đóng.

Có bất cứ điều gì khác tôi có thể cố gắng?


1
Thưa ngài, nhà cung cấp "VPS cá nhân" nào mà bạn có thời gian như vậy để ngăn bạn chạy VPN?! Ngoài ra, không rõ ràng nếu bạn đang cố gắng sử dụng VPS làm máy chủ OpenVPN hoặc nếu bạn muốn biến nó thành máy khách?
allquixotic

Ái chà! Tôi cần phải có được rõ ràng hơn. Nhà cung cấp VPS là Linode và họ chắc chắn không chặn bất cứ điều gì. ;) Vấn đề là tôi đang kết nối với VPN từ máy khách (máy tính xách tay của tôi) có quyền truy cập internet bị tường lửa nghiêm trọng.
RL Stine

1
Một giải pháp VPN nói chung sẽ khá dễ dàng được phát hiện bởi bất kỳ thứ gì kiểm tra gói trạng thái, như bạn đã gợi ý. Việc ngắt kết nối mạnh mẽ có thể là do các phương pháp phân tích lưu lượng truy cập vào kết nối https của stunnel và sẽ "chờ một chút, các kết nối yêu cầu / phản hồi HTTP tiêu chuẩn không gần như trò chuyện!" - về bản chất bạn đang bị mắc kẹt. Bạn có thể thử proxy HTTPS; có thể một cái gì đó mà bạn chuyển yêu cầu dưới dạng HTTP (qua SSL) cho một servlet và nó sẽ chuyển tiếp yêu cầu của bạn ... o_O
allquixotic

3
Bạn có thể muốn ghi nhớ rằng bỏ qua các hạn chế được thực hiện bởi tường lửa của công ty có thể vi phạm chính sách của công ty. Tôi đề nghị bạn nói chuyện với quản trị viên tường lửa về vấn đề này.
Ansgar Wiechers

Câu trả lời:


11

Các kết nối bị cắt sau một khoảng thời gian đôi khi chỉ ra loại giới hạn byte mỗi giây. Hãy thử xem nếu làm chậm kết nối VPN của bạn hoạt động. Ngoài ra nếu bạn đã cấu hình OpenVPN cho UDP, hãy thử TCP (443 UDP có thể bị chặn trong khi 443 TCP có thể không bị phát hiện).

Truy cập một trang web nổi tiếng sử dụng SSL và kiểm tra chứng chỉ. Sau đó làm tương tự ở nhà. Nếu chúng không khớp thì vị trí của bạn đang sử dụng proxy SSL HTTPS trong suốt và thực sự có thể thấy lưu lượng HTTPS của bạn.

Có thể một cái gì đó không phải là cổng 443 không được theo dõi chặt chẽ. Hãy thử 22.

Nghe có vẻ ngu ngốc nhưng hãy thử làm điều đó qua cổng 80 và xem những gì bạn nhận được. Bạn cũng có thể thử thiết lập đường hầm HTTP giữa bạn và VPS để làm cho lưu lượng truy cập trông giống như các yêu cầu HTTP.

Nếu bạn cảm thấy điên, hãy thử iốt .


2
+1, nhưng đặc biệt là đối với iốt!
0xC0000022L

5

Tôi nghĩ rằng tôi biết tại sao các metode stunnel hành xử như vậy. Đó là vì bạn đã thiết lập một "tuyến đường tĩnh" cho máy chủ stunnel. Hãy để tôi giải thích điều đó. Khi bạn kết nối với máy chủ openvpn, nó sẽ thay đổi bảng định tuyến của bạn và định tuyến tất cả các gói của bạn qua máng vpn, ngoại trừ các gói openvpn. thực tế openvpn sẽ thêm một tuyến đường cho địa chỉ IP máy chủ của bạn. Nhưng khi bạn sử dụng stunnel để kết nối với máy chủ openvpn của mình, bạn sẽ kết nối openvpn với giao diện loopback và không có tuyến nào đến máy chủ của bạn bên ngoài vpn của bạn, vì vậy các gói stunnel muốn đến máy chủ và chúng sẽ chuyển đến vpn và các gói vpn của bạn làm choáng váng :)

Vì vậy, bạn cần thêm một tuyến đường đến ip máy chủ của bạn đi ra ngoài vpn (bộ định tuyến nhà của bạn).

Và đối với vấn đề với cổng phương thức 443 tôi muốn nói rằng có thể tường lửa của bạn sử dụng SPI hoặc DPI và có thể dễ dàng tạo các gói openvpn khác nhau từ các gói https (ssl). Vì vậy, cách tốt nhất là sử dụng stunnel hoặc nếu tường lửa chặn các gói ssl thì tốt hơn là sử dụng obfsproxy hoặc fteproxy để bỏ qua nó.

(tôi biết bài đăng đó là cũ nhưng tôi đã tìm kiếm câu trả lời về cùng một vấn đề trong nhiều tuần, vì vậy tôi muốn chia sẻ những gì tôi nói về điều này)


Điều này không cung cấp một câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ một tác giả, hãy để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào .
Ramhound

3

Câu trả lời của Reza Askari chính xác là câu trả lời cho câu hỏi thứ ba. Điều này đã xảy ra trên cả máy tính Linux và Android của tôi.

Trên máy tính, trước khi bạn kết nối với OpenVPN thông qua

sudo openvpn --config configFile.ovpn

Bạn nên thêm một quy tắc để xóa máy chủ stunnel khỏi đường hầm OpenVPN.

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

Sau đó kết nối với máy chủ OpenVPN của bạn. Khi hoàn tất, bạn có thể xóa quy tắc đó bằng cách:

sudo /sbin/ip route del stunnel_ip

Để làm cho mọi thứ dễ dàng hơn để bạn không quên, hãy tạo một tập lệnh shell sẽ thêm quy tắc và chạy OpenVPN, khi OpenVPN thoát, quy tắc sẽ bị xóa:

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

sudo openvpn --config configFile.ovpn

sudo /sbin/ip route del stunnel_ip

Trên Android, sử dụng ứng dụng khách "OpenVPN cho Android" của "Arne Schwabe" và "SSLDroid" của "Balint Kovacs".

Sau đó, trong ứng dụng khách OpenVPN, loại trừ "SSLDroid" khỏi cấu hình VPN đi qua stunnel.

Tôi rất muốn đưa ra câu trả lời hoặc nhận xét của Reza ở đó, nhưng quy tắc về điểm danh tiếng này đã ngăn cản tôi.


1

Tôi chưa bao giờ thử nó (vì vậy tôi biết nếu nó hoạt động!) Nhưng hãy bắn @ bằng cách sử dụng ssh đường hầm trên 443 và chạy OpenVPN của bạn qua đường hầm. Bạn có thể cần thêm một máy chủ từ xa để nghe trên 443 nếu bạn không có nhưng có một ví dụ ở đây http://www.anonyproz.com/openvpnsshtunnel.pdf để sử dụng dịch vụ proxy của họ [Ghi chú của biên tập viên: liên kết Wayback Machine này có thể an toàn hơn], nhưng đây cũng là Googlable:

https://www.google.com.vn/search?q=ssh%20tunnel%20openvpn .

Tôi cũng đã biết mọi người sử dụng phương pháp này như một proxy vì chủ nhân của họ đã chặn quyền truy cập vào các trang web việc làm như dice.com khi họ nổi tiếng.

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.