Bởi Denis Nuțiu
Quả mâm xôi của tôi, hoạt động như một máy chủ OpenVPN
Xin chào mọi người!
Trong bài viết ngắn này, tôi sẽ giải thích cách thiết lập máy chủ VPN (Mạng riêng ảo) của riêng bạn trên Raspberry PI với OpenVPN. Sau khi thiết lập máy chủ, chúng tôi sẽ thiết lập một máy chủ làm rối mã nguồn để ngụy trang lưu lượng truy cập cho biết rằng chúng tôi đang sử dụng VPN. Điều này sẽ giúp chúng tôi tránh được một số hình thức kiểm duyệt.
Tại sao nên sử dụng VPN?
Trước tiên, hãy nói về lý do bạn muốn sử dụng máy chủ VPN:
- Tránh người ở giữa tấn công. Nếu bạn có một người dùng độc hại trên mạng cục bộ — thậm chí là bạn cùng phòng của bạn — thì người đó có thể giám sát lưu lượng truy cập không được mã hóa của bạn và giả mạo nó.
- Trong trường hợp của tôi, ẩn hoạt động Internet của bạn với ISP (Nhà cung cấp dịch vụ Internet) hoặc trường đại học.
- Bỏ chặn dịch vụ. Trường đại học của tôi chặn tất cả các gói UDP (Giao thức gói dữ liệu người dùng). Điều này có nghĩa là tôi không thể sử dụng bất kỳ ứng dụng nào giao tiếp qua UDP. Tôi không thể sử dụng ứng dụng email, chơi trò chơi hay thậm chí sử dụng Git!
Tôi quyết định thiết lập VPN trên internet tại nhà bằng Raspberry Pi. Bằng cách này, tôi có thể kết nối với mạng gia đình của mình khi đang học tại trường Đại học. Nếu bạn cần máy chủ VPN ở quốc gia khác, bạn có thể mua máy chủ riêng ảo 5$/tháng từ DigitalOcean. Bạn có thể sử dụng liên kết giới thiệu của tôi để được giảm $10 — đó là hai tháng sử dụng VPN miễn phí. Nhưng bạn không cần phải sử dụng nó nếu bạn không muốn.
Cài đặt OpenVPN
Bước này thực sự dễ dàng vì chúng tôi sẽ sử dụng tập lệnh shell để thực hiện việc đó cho bạn. Vì vậy bạn chỉ cần “nhấn” next và kết thúc.
Quá trình cài đặt sẽ mất nhiều thời gian, tùy thuộc vào kích thước khóa bạn chọn. Trên Raspberry Pi 3 Model B của tôi, mất khoảng 3 giờ.
Vui lòng truy cập kho lưu trữ này và sau đó làm theo hướng dẫn
Cài đặt Angstan/OpenVPN
_OpenVPN-install - Thiết lập máy chủ OpenVPN của riêng bạn trên Debian, Ubuntu, Fedora CentOS và Arch Linux_github.com
Nếu bạn không biết địa chỉ IP máy chủ của mình, chỉ cần đặt 0.0.0.0 . Tôi đã chọn 443 cho cổng và TCP (Giao thức điều khiển truyền) cho giao thức.
Lưu ý :Điều này rất quan trọng vì trường đại học của tôi chỉ cho phép TCP/80 và TCP/443 cổng, phần còn lại bị chặn khá nhiều. Ngoài ra Obfsproxy chỉ hoạt động với TCP, vì vậy hãy đảm bảo bạn đã chọn TCP !
Sau khi tập lệnh kết thúc, bạn sẽ nhận được .ovpn tập tin. Nó có thể được nhập vào máy khách VPN yêu thích của bạn và mọi thứ sẽ hoạt động tốt.
Đang kiểm tra kết nối
Nhập tệp .ovpn trong máy khách VPN của bạn và thay đổi ip 0.0.0.0 đến ip cục bộ của Raspberry PI của bạn. Tùy thuộc vào cấu hình mạng của bạn, nó có thể có dạng192.168.*.* .
Lưu ý:Điều này sẽ chỉ hoạt động nếu bạn kết nối với cùng một WiFi với Pi.
Viscosity đã kết nối thành công với máy chủ VPN của tôi.
Tôi đã định cấu hình bộ định tuyến của mình để PI luôn nhận được địa chỉ IP dành riêng. Bạn có thể phải kiểm tra cài đặt bộ định tuyến nếu muốn thực hiện điều gì đó tương tự.
Nếu kết nối thành công, xin chúc mừng, giờ bạn đã có máy chủ VPN! Tuy nhiên, bạn chưa thể truy cập nó từ bên ngoài….
Nếu bạn chỉ muốn một máy chủ OpenVPN không có proxy làm rối mã nguồn thì bạn có thể chuyển sang phần Chuyển tiếp cổng .
Làm xáo trộn Cài đặt proxy
Obfs4 là một proxy xáo trộn. Nó ngụy trang lưu lượng truy cập internet của bạn trông giống như tiếng ồn. Ai đó theo dõi lưu lượng truy cập của bạn sẽ không thực sự biết bạn đang làm gì và điều đó sẽ bảo vệ bạn khỏi các cuộc tấn công thăm dò tích cực được sử dụng bởi Tường lửa vĩ đại của Trung Quốc.
Lưu ý:Phương pháp này sẽ không hiệu quả nếu đối thủ của bạn chỉ cho phép lưu lượng truy cập thuộc danh sách trắng :(
Hãy cài đặt máy chủ proxy ngay bây giờ.
- Cài đặt gói cần thiết:
apt-get update && apt-get install obfs4proxy
- Tạo thư mục chứa cấu hình.
sudo mkdir -p /var/lib/tor/pt_state/obfs4
- Tạo tệp cấu hình.
sudo nano /var/lib/tor/pt_state/obfs4/obfs4.config
Trong file cấu hình, bạn sẽ dán những thứ sau:
TOR_PT_MANAGED_TRANSPORT_VER=1TOR_PT_STATE_LOCATION=/var/lib/tor/pt_state/obfs4TOR_PT_SERVER_TRANSPORTS=obfs4TOR_PT_SERVER_BINDADDR=obfs4-0.0.0.0:444TOR_PT_ORPORT=127.0.0.1:443
TOR_PT_SERVER_BINDADDR là địa chỉ mà proxy sẽ lắng nghe các kết nối mới. Trong trường hợp của tôi là 0.0.0.0:444 — tại sao lại là 444 mà không phải 443? Chà, bởi vì tôi không muốn thay đổi cấu hình máy chủ OpenVPN hiện đang nghe trên 443. Ngoài ra, tôi sẽ ánh xạ địa chỉ này sau tới 443 bằng cách sử dụng Chuyển tiếp cổng.
TOR_PT_ORPORT sẽ trỏ đến máy chủ OpenVPN. Trong trường hợp của tôi, máy chủ của tôi chạy trên 127.0.0.1:443
- Tạo tệp dịch vụ SystemD.
sudo nano /etc/systemd/system/obfs4proxy.service
Sau đó dán nội dung sau vào đó:
[Unit]Description=Obfsproxy Server[Service]EnvironmentFile=/var/lib/tor/pt_state/obfs4/obfs4.configExecStart=/usr/bin/obfs4proxy -enableLogging true -logLevelStr INFO[Install]WantedBy=multi-user.target
- Bắt đầu proxy làm rối mã nguồn.
Bây giờ, hãy đảm bảo rằng OpenVPN đang chạy và chạy các lệnh sau để khởi động proxy và cho phép nó khởi động khi khởi động.
sudo systemctl start obfs4proxysudo systemctl enable obfs4proxy
- Lưu KEY chứng chỉ
Sau khi dịch vụ khởi động, hãy chạy lệnh sau và lưu KEY chứng chỉ.
cat /var/lib/tor/pt_state/obfs4/obfs4_bridgeline.txt
Khóa có dạng Bridge obfs4 <IP ADDRESS>:<PORT> <FIN**GER**PRINT> c ert=KEY iat-mode=0 . Bạn sẽ cần nó khi kết nối với VPN.
- Đang kiểm tra kết nối.
Mở máy khách VPN của bạn và thay đổi ip từ 443 thành 444 để kết nối với proxy thay vì máy chủ OpenVPN.
Sau đó, tìm tùy chọn Pluggable Transport trong ứng dụng khách OpenVPN của bạn và xem liệu nó có hỗ trợ obfs4 không .
Độ nhớt hỗ trợ các phương pháp Obfuscation khác nhau như:obfs2, obfs3, obfs4 và ScrambleSuit
Nếu mọi thứ đều hoạt động thì bạn đã sẵn sàng! Xin chúc mừng! Chỉ còn một số điều cần điều chỉnh nữa trước khi sử dụng VPN này từ thế giới bên ngoài.
Chuyển tiếp cổng
Để truy cập máy chủ OpenVPN từ bên ngoài, chúng ta cần bỏ chặn các cổng vì rất có thể chúng đã bị chặn. Như bạn nhớ, tôi đã bảo lưu địa chỉ IP PI trên bộ định tuyến của mình luôn là 192.168.1.125 vì vậy nó không thay đổi nếu PI ngắt kết nối hoặc nếu bộ định tuyến khởi động lại.
Bằng cách này, tôi đã xác định các quy tắc sau trong bảng Chuyển tiếp cổng của mình:
Trang cài đặt Chuyển tiếp cổng của TL-WR841N.
Cổng bên ngoài 443 sẽ trỏ đến cổng máy chủ của obfuscation 444. Nếu bạn không có máy chủ làm rối mã nguồn, hãy để lại 443->4 43.
Cổng 25 sẽ trỏ đến cổng SSH 22 của PI. Điều này chỉ nhằm mục đích thuận tiện cho tôi.
Trong trường hợp tôi muốn truy cập trực tiếp vào máy chủ OpenVPN mà không cần proxy làm rối mã nguồn, tôi đã tạo quy tắc 444-> 443
Cổng dịch vụ là BÊN NGOÀI cổng sẽ được sử dụng với PUBLIC của bạn Địa chỉ IP. Để tìm IP công cộng của bạn, hãy sử dụng dịch vụ như whatsmyip.com.
Cổng bên trong là BÊN TRONG cổng. Nó chỉ có thể được sử dụng khi bạn kết nối với mạng.
_Lưu ý:Quy tắc đầu tiên là chuyển hướng tất cả các kết nối từ PUBLIC_IP:443 tới 192.168.1.125:444 _
Thử nghiệm
- Tìm IP công cộng của bạn và thay thế IP cũ bằng IP công cộng trong tệp .ovpn hoặc trong ứng dụng khách VPN.
- Kết nối với VPN.
Thế thôi.
DNS động
Trong hầu hết các trường hợp, IP của bạn sẽ thay đổi vì đó là IP động. Một cách để khắc phục điều này là tạo một chương trình nhỏ trên PI để lưu IP của bạn và gửi email cho bạn mỗi ngày hoặc lâu hơn. Bạn cũng có thể lưu trữ IP trong cơ sở dữ liệu trực tuyến như Firebase.
Bộ định tuyến của tôi có cài đặt DNS động. Bằng cách này, tôi có thể sử dụng nhà cung cấp dịch vụ như NoIP và nhận được miền như example.no-ip.com nó sẽ luôn trỏ đến địa chỉ IP công cộng của tôi.
Trang cài đặt DDNS TL-WR841N
Tài nguyên khác:
- Khu vườn phương tiện di chuyển có thể cắm được của trẻ em
- Độ nhớt-Cản trở/
- https://www.pluggabletransports.info/transports/
Nếu bạn có bất kỳ câu hỏi nào hãy liên hệ với tôi trên Twitter.
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu