Cách ẩn lưu lượng OpenVPN của bạn bằng đường hầm SSH

đường hầm (2)
Vì vậy, bạn đã làm theo hướng dẫn của chúng tôi về cách thiết lập máy chủ VPN của riêng bạn bằng OpenVPN và máy chủ Amazon EC2 và nó hoạt động rất tốt. Đó là, cho đến khi nó đột nhiên bị chặn. Có thể bạn đã khởi động lại thể hiện và có một địa chỉ IP mới. Nó hoạt động tốt trở lại trong vài ngày nữa, sau đó bị chặn. Có vẻ như văn phòng, ISP hoặc chính phủ của bạn đang tích cực chặn các máy chủ OpenVPN. Vậy bạn làm gì?

Tường lửa cơ bản chặn các kết nối dựa trên cổng được sử dụng và địa chỉ IP đích, nhưng tường lửa tiên tiến hơn sử dụng kiểm tra gói sâu (DPI) và / hoặc kiểm tra gói trạng thái (SPI) để phân biệt giữa các loại thuật toán mã hóa và giao thức VPN khác nhau. Điều đó có nghĩa là họ có thể phát hiện lưu lượng OpenVPN và gắn cờ để quản trị viên có thể chặn máy chủ.

Có ba tùy chọn để giải quyết vấn đề này: proxy obfuscation, đường hầm SSL và đường hầm SSH. Trong hướng dẫn này, chúng tôi sẽ thảo luận về phần sau. SSH đường hầm kết thúc kết nối đã được mã hóa của bạn trong một lớp mã hóa khác để tường lửa có thể tạo ra sự khác biệt. Mỗi phương pháp này nên bỏ qua tường lửa DPI và SPI được đặt bởi các tập đoàn hoặc chính phủ nặng kiểm duyệt như China 2015.

OpenVPN qua SSH có một vài nhược điểm. Đầu tiên là một cú đánh hiệu suất do mã hóa kép. Thứ hai, dấu vân tay OpenVPN xông có thể không còn được phát hiện khi được tạo đường hầm thông qua SSH, nhưng một số tường lửa cũng chặn lưu lượng SSH. Đây là trường hợp đối với các dịch vụ như Netflix, tạm dừng sử dụng bất kỳ loại proxy được mã hóa, OpenVPN, SSH hoặc cách khác. Trong trường hợp này, chúng tôi khuyên bạn nên thiết lập Obfsproxy thay vào đó, điều này làm cho lưu lượng được mã hóa dường như là bình thường và không được mã hóa. Obfsproxy mạnh hơn nhiều vì lý do này, nhưng cũng phức tạp hơn để thiết lập và chạy.

Thật không may, Obfsproxy kết hợp với OpenVPN hiện chỉ hoạt động trên máy tính để bàn, cho đến nay chúng tôi biết. Đường hầm SSH có thể được sử dụng trên thiết bị di động Android hoặc iOS.

Hướng dẫn này giả định rằng bạn đã có một máy chủ OpenVPN hoạt động được thiết lập và có thể kết nối với nó bằng ứng dụng OpenVPN GUI hoặc OpenVPN Connect. Bạn cũng phải có thể SSH vào máy chủ của mình bằng Terminal trên Mac hoặc PuTTy trên PC. Đối với mục đích trình diễn, chúng tôi sẽ sử dụng PuTTy. Nếu bạn không có tất cả những gì đã thiết lập, vui lòng tham khảo hướng dẫn trước đây của chúng tôi.

Thiết lập OpenVPN qua SSH trên PC

Trong hướng dẫn cuối cùng của chúng tôi, chúng tôi đã thảo luận về cách thiết lập proxy SSH đơn giản, sau đó mở rộng trên đó để tạo một máy chủ VPN đầy đủ. Cách tiếp cận này kết hợp cả hai, có nghĩa là bạn đã có sẵn mọi thứ bạn cần.

Mở PuTTy và tải lên cấu hình máy chủ VPN của bạn. Trong thanh bên, điều hướng đến Kết nối > SSH > Địa đạo. Đảm bảo D8080 được bao gồm trong danh sách. Nếu không, hãy nhập 8080 vào cổng Cổng Nguồn và kiểm tra Tự động và Động. Sau đó nhấn Thêm. Bây giờ bạn có proxy SSH chạy qua cổng 8080. Bạn có thể lưu tệp này dưới dạng cấu hình phiên riêng nếu bạn muốn quay lại tab Phiên của cây điều hướng.

openvpn ssh putty 8080

Nhấp vào Mở và đăng nhập vào máy chủ của bạn. Hãy nhớ rằng trên Amazon Linux AMI mới hơn, tên người dùng là Ec ec2-user.

Điều hướng đến tệp openvpn.conf của bạn và kiểm tra nội dung bằng các lệnh này

cd / etc / openvpn
mèo openvpn.conf

Điều này sẽ hiển thị nội dung của tệp cấu hình máy chủ OpenVPN của bạn. Nó sẽ giống như thế này:

cổng 1194
máy chủ proto tcp
dev tun1
ifconfig 10.4.0.1 10.4.0.2
máy chủ trạng thái-tcp.log
động từ 3
bí mật ovpn.key

cấu hình máy chủ openvpn ssh

Điều quan trọng là dòng thứ hai được đặt thành TCP, không phải UDP. Nếu bạn cần thay đổi nó, bạn có thể chỉnh sửa nó bằng lệnh này:

sudo nano openvpn.conf

Sau đó nhấp vào CTRL + O (chữ cái Chữ o, không phải không) để lưu tệp, sau đó CTRL + X để thoát trình chỉnh sửa.

Cấu hình máy khách

Trên máy cục bộ của bạn, điều hướng đến tệp cấu hình máy khách OpenVPN của bạn. Nếu bạn đã sử dụng thư mục cài đặt mặc định, đây sẽ là C: / Tệp chương trình / OpenVPN / config.

Tạo một bản sao của tệp cấu hình OpenVPN hiện tại của bạn từ hướng dẫn trước hoặc tạo một tệp mới. Tìm Notepad hoặc trình soạn thảo văn bản đơn giản khác và nhấp chuột phải vào nó để chạy với tư cách quản trị viên. Mở hoặc tạo tập tin cấu hình mới của bạn, trông giống như thế này:

proto tcp-client
từ xa localhost 1194
cổng 1194
dev tun1
bí mật ovpn.key
chuyển hướng cổng def1
ifconfig 10.4.0.2 10.4.0.1
vớ-proxy-thử lại
vớ-proxy 127.0.0.1 8080

Lưu ý dòng thứ hai từ xa của Nether sử dụng localhost thay vì IP máy chủ OpenVPN, cộng với hai dòng ở cuối cấu hình OpenVPN để sử dụng proxy SOCKS. Mọi thứ khác vẫn như trước.

Lưu tệp cấu hình mới của bạn vào thư mục cấu hình của thư mục OpenVPN của bạn.

Thiết lập ứng dụng

Bước cuối cùng là định cấu hình các ứng dụng của bạn để sử dụng proxy qua cổng 8080. Điều này tương tự như những gì chúng tôi đã làm với proxy SSH cơ bản từ hướng dẫn trước. Nhiều ứng dụng sẽ có một thiết lập proxy có sẵn trong cài đặt và một số ứng dụng thậm chí có thể tự động phát hiện nó. Nếu bạn cần thiết lập thủ công, ba thông tin bạn cần là:

  • Máy chủ: 127.0.0.1
  • Cảng: 8080
  • Loại proxy: SOCKS5 (hoặc SOCKS v5)

Dưới đây là hướng dẫn dành cho Firefox và Chrome:

Trong Firefox:

  • Chuyển đến Công cụ > Tùy chọn > Nâng cao > Mạng > Kết nối > Cài đặt > Cấu hình proxy thủ công
  • Đặt SOCKS Host là 127.0.0.1 và cổng là 8080 (hoặc bất cứ điều gì bạn đặt cổng đường hầm thành trên PuTTy).
  • Nhấn OK để lưu

Trong Chrome Proxy Switchy

  • Trang thiết lập sẽ xuất hiện ngay khi bạn cài đặt tiện ích mở rộng hoặc nhấp vào biểu tượng ở trên cùng bên phải của Chrome và nhấp vào Tùy chọn.
  • Đặt tên cho hồ sơ bất cứ điều gì bạn thích. Trong Cấu hình thủ công, đặt máy chủ SOCKS thành 127.0.0.1 và cổng thành 8080 (hoặc bất cứ điều gì bạn đặt cổng đường hầm thành trong PuTTy. Để trống mọi thứ khác.
  • Nhấn Save, sau đó nhấp vào biểu tượng một lần nữa để chọn hồ sơ proxy của bạn.

obfsproxy chrome proxy chuyển đổi

Bây giờ hãy kết nối với máy chủ của bạn trước bằng PuTTy bằng cấu hình ở trên, sau đó với VPN bằng tệp cấu hình mới mà chúng tôi đã tạo.

Bây giờ bạn đã được kết nối với internet với OpenVPN qua SSH!

Di động

Chúng tôi sẽ giải thích cách điều chỉnh đường hầm OpenVPN + SSH của bạn cho Android, mặc dù iOS không nên khác nhau.

Trước khi chúng tôi bắt đầu, có một vài cảnh báo. Đầu tiên, phương pháp này chỉ hoạt động để duyệt web. Điều đó bởi vì, không giống như máy tính để bàn, bạn có thể chỉ cần mở các cổng tùy ý trên thiết bị Android hoặc iOS. Điều đó có nghĩa là các cổng được sử dụng bởi các ứng dụng khác đã giành chiến thắng được chuyển qua proxy SSH. Để khắc phục điều này, bạn có thể root hoặc bẻ khóa thiết bị của mình và sử dụng một ứng dụng như ProxyDroid hoặc Cydia, ứng dụng Unix để định cấu hình proxy.

Đó là một hướng dẫn cho một ngày sau đó. Còn bây giờ, hãy để Lốc lên và chạy trên Android với Firefox. Bạn cần cài đặt các ứng dụng sau:

  • OpenVPN cho Android (lưu ý: KHÔNG OpenVPN Connect, điều này khó chọn hơn về xác thực)
  • ConnectBot hoặc ứng dụng thiết bị đầu cuối SSH tương đương (JuiceSSH tốt nhưng chi phí thêm cho các cổng chuyển tiếp)
  • Trình quản lý tệp như Trình chỉ huy tệp
  • Firefox hoặc trình duyệt khác cho phép bạn định cấu hình proxy

Bạn cũng sẽ yêu cầu một số phương tiện chuyển tập tin từ máy tính sang điện thoại. Một cáp USB là tốt. Tôi đã sử dụng thư mục đồng bộ hóa IBackup.

Xác định vị trí ovpn.key của bạn và tệp cấu hình .ovpn mà bạn đã tạo ở trên trên máy tính để bàn của mình và di chuyển chúng vào bộ nhớ trong hoặc thẻ SD của điện thoại. Đồng thời di chuyển tệp khóa .pem được cung cấp bởi máy chủ lưu trữ của bạn. Nó có thể nằm ở cùng một nơi với tệp .ppk của bạn mà bạn sử dụng để xác thực với PuTTy. Nếu bạn mất nó, bạn sẽ phải tạo một cái khác trên bảng điều khiển Amazon EC2 hoặc từ bất kỳ dịch vụ lưu trữ máy chủ nào bạn sử dụng.

Tùy chọn, bạn có thể lấy tệp cấu hình .ovpn tiêu chuẩn mà bạn sử dụng để kết nối mà không cần SSH. Sau đó, bạn có thể sử dụng VPN của mình với tất cả các ứng dụng thay vì chỉ trình duyệt và nó rất hữu ích để khắc phục sự cố.

Thiết lập ConnectBot

Chạy ConnectBot trên điện thoại của bạn. Nhấp vào ba dấu chấm ở góc trên cùng bên phải và đi tới Quản lý Pubkey. Nhấp vào dấu chấm một lần nữa trên trang tiếp theo và nhấp vào Nhập. Điều này sẽ khởi chạy trình quản lý tập tin bạn đã cài đặt. Tìm tệp .pem bạn vừa di chuyển vào điện thoại của mình và chọn nó. Bây giờ nó sẽ xuất hiện trong danh sách các khóa công khai có khóa màu đỏ bên cạnh. Nhấn vào nó để nó chuyển sang màu xanh lá cây. Nhấn nút quay lại để quay lại trang chính trên ConnectBot.

kết nối

Trong trường thiết bị đầu cuối phía dưới bên cạnh ssh, hãy nhập chi tiết SSH của bạn. Nó sẽ giống như thế này:

người dùng ec2 @: 22

Thay thế bằng địa chỉ IP của máy chủ OpenVPN của bạn. Nhấn phím enter để SSH vào máy chủ của bạn. Tất cả điều này nên được lưu lại để bạn giành chiến thắng phải nhập lại lần nữa, nhưng bạn có thể cần phải bật lại khóa công khai trong tương lai.

Khi bạn kết nối thành công, nhấn lại ba dấu chấm và ngắt kết nối. Hồ sơ của bạn phải được lưu trên màn hình chính của ConnectBot. Nhấn và giữ nút này để mở menu ngữ cảnh và nhấn vào cổng Chỉnh sửa chuyển tiếp. Trên trang tiếp theo, hãy nhấn vào ba dấu chấm và chọn Cổng Thêm cổng chuyển tiếp.

Đặt tên cho nó bất cứ điều gì bạn thích. Đặt Loại thành Động (SOCKS) và cổng nguồn thành 8080 (hoặc bất cứ thứ gì có trong dòng vớ-proxy của tệp cấu hình OpenVPN của bạn). Chạm vào tạo cổng chuyển tiếp.

ConnectBot đã sẵn sàng hoạt động, nhưng chúng tôi đã giành được kết nối. Trước tiên, hãy thiết lập OpenVPN.

OpenVPN cho thiết lập Android

Chạy OpenVPN cho Android.

Nhấp vào nút vuông với một mũi tên hướng xuống trên nó ở góc trên bên phải để nhập một hồ sơ. Điều hướng đến tập tin cấu hình .ovpn của bạn và chọn nó. Trên trang tiếp theo, nhấn nút có tên là Chọn Chọn.

openvpn cho Android

Lần này, điều hướng đến tệp ovpn.key của bạn và chọn nó. Nhấn nút lưu màu vàng ở góc dưới bên phải.

Hồ sơ mới của bạn sẽ xuất hiện trong danh sách trên màn hình chính của ứng dụng.

Trước khi chúng tôi kết nối, hãy kiểm tra kỹ lưỡng tường lửa máy chủ của chúng tôi. Đăng nhập vào AWS, chọn Instances và tô sáng máy chủ OpenVPN của bạn. Trong trường Nhóm bảo mật, bấm vào cái được sử dụng cho trường hợp này. Nhấp chuột phải vào nó và chọn Chỉnh sửa nội quy.

Thêm quy tắc TCP tùy chỉnh cho các cổng 22, 1194 và 8080, điều chỉnh khi cần thiết cho cấu hình cá nhân của bạn.

Bây giờ, đã đến lúc kết nối. Mở ConnectBot trước. Nhấn vào hồ sơ chúng tôi vừa tạo để SSH vào máy chủ của bạn. Hãy chắc chắn rằng pubkey đã được bật, nếu không, bạn sẽ gặp lỗi về mật khẩu. Sau khi bạn kết nối thành công, hãy chuyển sang ứng dụng OpenVPN. Nhấn vào hồ sơ của bạn ở đó để kết nối.

openvpn ssh android thành công

Ở cuối nhật ký OpenVPN bật lên khi bạn kết nối, bạn sẽ thấy một thông báo có nội dung KẾT NỐI, THÀNH CÔNG.

Lưu ý rằng vì chúng tôi sử dụng cùng một tệp .pem và .key như trên máy tính để bàn của chúng tôi, bạn chỉ có thể sử dụng các thông tin đăng nhập này trên một thiết bị tại một thời điểm. Hãy chắc chắn rằng bạn đã kết nối trên máy tính để bàn trước. Nếu bạn muốn kết nối đồng thời trên nhiều thiết bị, bạn sẽ cần tạo thông tin đăng nhập mới (.key và .pem) cho mỗi thiết bị.

Định cấu hình Firefox để sử dụng proxy

Cuối cùng, chúng ta cần cấu hình Firefox để sử dụng proxy. Chrome và Safari trên thiết bị di động don kèm theo các tùy chọn cấu hình proxy, đó là lý do tại sao chúng tôi khuyên dùng Firefox. Bạn có thể thử thiết lập proxy trong cài đặt wi-fi, nhưng sau đó, bạn sẽ phải thay đổi chúng mỗi khi bạn muốn kết nối mà không cần proxy.

cấu hình proxy firefox

Trong thanh URL của Firefox, hãy gõ vào about about: config. Trong thanh tìm kiếm trên trang đó, hãy nhập mạng mạng.proxy. Điều này sẽ đưa lên tất cả các lĩnh vực mà chúng tôi có liên quan. Nhập các cài đặt sau vào các trường được chỉ định:

  • mạng.proxy.socks: 127.0.0.1
  • network.proxy.socks_port: 8080 (hoặc bất cứ điều gì bạn đặt trong cấu hình OpenVPN và ConnectBot của bạn)
  • mạng.proxy.type: 1

Điều đó sẽ định tuyến lưu lượng truy cập trình duyệt Firefox qua thông qua OpenVPN và SSH. Bây giờ bạn có thể lướt web từ thiết bị di động thông qua VPN mà không sợ kiểm tra gói sâu!

Nếu bạn muốn kết nối thông qua proxy SSH mà không cần OpenVPN, chỉ cần SSH vào máy chủ của bạn với ConnectBot và don sắt kết nối với OpenVPN. Ngược lại, bạn có thể nhập tệp cấu hình không phải SSH .ovpn cơ bản của mình vào ứng dụng OpenVPN và kết nối với proxy SSH đó..

Đường hầm cung cấp bởi Jo.sau được cấp phép theo CC BY 2.0