Cách biến Raspberry Pi thành travel router có VPN

Bạn có viết mật khẩu vào một tờ giấy rồi dán nó lên trán không? Chắc chắn là không rồi. Việc kết nối với mạng WiFi công cộng giống như làm điều ngu ngốc đó. Tuy nhiên, bạn chẳng còn lựa chọn nào khác nếu đang đi trên đường và vẫn muốn duy trì trạng thái kết nối. VPN có thể giúp cho bạn an toàn, nhưng mỗi thiết bị phải kết nối riêng, trừ khi bạn sử dụng travel router làm trung gian.

Nếu không có một trong những travel router tốt nhất thì cũng đừng lo lắng. Bạn đọc có thể xây dựng một router như vậy với Raspberry Pi. Raspberry Pi là sự lựa chọn hoàn hảo cho travel router VPN tự chế. Hãy đọc hướng dẫn sau đây để biết cách xây dựng một travel router được bảo mật bằng VPN.

Những thứ cần chuẩn bị

Để bắt đầu xây dựng travel router Raspberry Pi VPN, bạn sẽ cần:

  • Raspberry Pi (ưu tiên Pi 3 hoặc Raspberry Pi Zero W) có vỏ bảo vệ (case).
  • Một USB WiFi adapter (hoặc hai adapter nếu sử dụng Raspberry Pi cũ).
  • Thẻ nhớ microSD có dung lượng lưu trữ tối thiểu 8GB.
  • Đầu đọc thẻ SD.
  • Một nguồn điện
  • PC đã cài đặt SSH client
  • Đăng ký VPN có hỗ trợ OpenVPN

Có thể sử dụng các model Pi mà không tích hợp WiFi, nhưng bạn sẽ cần hai USB WiFi adapter hoặc một adapter có khả năng chạy ở cả chế độ điểm truy cập/quản lý (managed/access point mode) và chế độ máy khách (client mode).

Bạn cần cài đặt OpenWRT vào thẻ SD để biến nó thành một router hoàn chỉnh. Có thể sử dụng một bản phân phối Linux khác nếu thích, nhưng OpenWRT cung cấp giao diện web tiện dụng cho việc cấu hình khi ở xa.

Nếu sử dụng Windows, bạn cũng cần cài PuTTY cho Windows hoặc SSH client trước khi bắt đầu.

Các bước biến Raspberry Pi thành travel router có VPN

Bước 1: Cài đặt OpenWRT

Cài đặt OpenWRT

Đầu tiên, tải xuống firmware OpenWRT cho model Raspberry Pi. Bạn có thể tìm thấy những image mới nhất từ trang OpenWRT ​​wiki.

Giải nén file đã tải xuống bằng 7zip hoặc phần mềm giải nén file phù hợp khác, sau đó flash file IMG vào thẻ bằng Etcher

Công cụ này sẽ tự động phát hiện thẻ SD. Bạn chỉ cần chọn file image của mình, chọn ổ đĩa chính xác và sau đó nhấp vào Flash.

Sau khi hoàn thành, hãy đặt thẻ nhớ microSD vào Raspberry Pi và để nó khởi động.

Bước 2: Cấu hình ban đầu

Theo mặc định, OpenWRT mặc định có một địa chỉ IP tĩnh 192.168.1.1 (đây là IP cổng mặc định cho nhiều router). Bạn cần phải thay đổi điều này để ngăn chặn nguy cơ xảy ra xung đột. Kết nối Pi với PC bằng cáp Ethernet. Có thể cần đặt IP tĩnh trên PC trước.

Thay vì xử lý việc cấu hình bằng LuCI, giao diện web của OpenWRT, bạn nên thực hiện thủ công để đảm bảo cấu hình được đặt chính xác. Load PuTTY hoặc SSH client và kết nối với 192.168.1.1 trước tiên bằng tên người dùng root.

Bạn sẽ nhận được một cảnh báo bảo mật ban đầu trên kết nối đầu tiên. Chỉ cần nhấp vào Yes và tiếp tục. Việc đặt mật khẩu trong giai đoạn này là một ý tưởng không tồi. Hãy làm điều đó bằng cách gõ passwd ở cửa sổ terminal.

Cấu hình cài đặt mạng và tường lửa

Người dùng cần chỉnh sửa hai file, /etc/config/network/etc/config/firewall, trước khi tiếp tục. Bắt đầu bằng cách gõ lệnh sau để chỉnh sửa file:

vim /etc/config/network

Tiếp theo, nhấn I để chỉnh sửa văn bản và thêm vào các mục sau:

config interface 'loopback'
 option ifname 'lo'
 option proto 'static'
 option ipaddr '127.0.0.1'
 option netmask '255.0.0.0'
 
 config interface 'lan'
 option type 'bridge'
 option ifname 'eth0'
 option force_link '1'
 option proto 'static'
 option ipaddr '192.168.38.1'
 option netmask '255.255.255.0'
 option ip6assign '60'
 
 config interface 'wwan'
 option proto 'dhcp'
 option peerdns '0'
 option dns '8.8.8.8 8.8.4.4' ## Google DNS servers
 
 config interface 'vpnclient'
 option ifname 'tun0'
 option proto 'none'

Khi đã hoàn tất, hãy nhấn phím Esc và gõ :qw để lưu và thoát. Sau đó chuyển sang file cấu hình tường lửa:

vim /etc/config/firewall

Nhấn I để chỉnh sửa, sau đó tìm (hoặc thêm) một vùng cho phần WAN như sau:

config zone
 option name wan
 option network 'wan wan6 wwan'
 option input ACCEPT
 option output ACCEPT
 option forward REJECT
 option masq 1
 option mtu_fix 1

Nhập reboot và chờ Raspberry Pi khởi động lại với địa chỉ IP mới: 192.168.38.1.

Bước 3: Cập nhật và cài đặt gói

Tiếp theo, cần cập nhật OpenWRT. Để làm điều đó, bạn phải mượn chức năng WiFi nội bộ của Pi và thiết lập ban đầu để nó kết nối với mạng WiFi hiện tại. Có thể cần thay đổi địa chỉ IP tĩnh thành 192.168.38.2 hoặc một địa chỉ tương tự trong phạm vi đó để cho phép kết nối.

Sau khi kết nối, nhập địa chỉ IP của Raspberry Pi vào trình duyệt để truy cập bảng điều khiển quản trị OpenWRT. Sử dụng tên người dùng và mật khẩu để có quyền truy cập, sau đó vào phần Network > Wireless. Hiện tại bạn chỉ nhìn thấy một thiết bị WiFi, vì vậy hãy nhấp vào Scan để tìm mạng WiFi, rồi nhấn vào Join Network khi tìm thấy mạng.

Cần phải nhập mật khẩu WiFi trong WPA Passphrase, trước khi nhấn Submit.

Bây giờ, bạn sẽ thấy cài đặt kết nối cho WiFi của mình. Chuyển đến phần Advanced Settings và đặt Country Code phù hợp với vị trí hiện tại.

Kết nối lại với Pi bằng địa chỉ IP mới qua SSH (chấp nhận cảnh báo key bảo mật RSA). Bạn cũng phải cập nhật thiết bị của mình trước bằng cách nhập:

opkg update

Theo dõi và nhấn vào Y khi được nhắc.

Cài đặt driver WiFi USB

Sau khi cài đặt tất cả các bản cập nhật, hãy cài đặt mọi driver cần thiết cho USB WiFi adapter. Việc này là bắt buộc để kết nối với các WiFi hotspot (điểm truy cập WiFi) khi di chuyển. Cần cài đặt công cụ cần thiết cho các kết nối VPN bằng cách sử dụng OpenVPN, cũng như nano, một trình chỉnh sửa file terminal dễ sử dụng hơn.

Trong ví dụ dùng WiFi adapter chipset RT2870, vì vậy các lệnh sau cũng sẽ hoạt động nếu bạn có adapter tương tự:

opkg install kmod-rt2800-lib kmod-rt2800-usb kmod-rt2x00-lib kmod-rt2x00-usb kmod-usb-core kmod-usb-uhci kmod-usb-ohci kmod-usb2 usbutils openvpn-openssl luci-app-openvpn nano
 ifconfig wlan1 up
 reboot

Nếu không có WiFi adapter chipset RT2870 hoặc không chắc chắn adapter của mình là gì, hãy cắm WiFi adapter vào và nhập thông tin sau vào SSH terminal:

opkg install kmod-usb-core kmod-usb-uhci kmod-usb-ohci kmod-usb2 usbutils
 lsusb

Khi các file đã được cài đặt, danh sách các thiết bị được kết nối sẽ hiển thị. Tìm bất kỳ thiết bị nào liên quan đến adapter và các hướng dẫn cài đặt cho thiết bị đó.

Cài đặt driver

Bước 4: Thiết lập WiFi Access Point (Điểm truy cập WiFi)

Nếu USB WiFi adapter đã được kết nối, thì đã có thể thiết lập kết nối WiFi. Quay trở lại bảng điều khiển LuCI, trong phần Wireless, xóa cả hai kết nối mạng. Thiết bị radio0 là WiFi tích hợp còn radio1 là USB WiFi adapter.

Thiết lập WiFi tích hợp bằng cách nhấp vào Add. Đảm bảo những điều sau:

  • Mode được đặt thành Access Point
  • ESSID được đặt thành tên mạng được chọn, mặc định là OpenWRT
  • Network được đặt thành Lan
  • Trong Wireless Security, Encryption được đặt thành WPA2-PSK
  • Key được đặt thành mật khẩu phù hợp

Khi đã hoàn tất, hãy nhấn Save rồi quay lại menu Wireless. Làm theo các hướng dẫn từ trước đó cho kết nối ban đầu để đặt thiết bị radio1 (USB WiFi adapter) vào mạng hiện tại. Đây cũng là lúc người dùng sẽ cần quét và thay đổi mạng khi ở một vị trí mới.

Thiết lập điểm truy cập

Bây giờ, sẽ có hai kết nối WiFi đang chạy, một kết nối đóng vai trò là điểm truy cập cho các thiết bị WiFi và một kết nối đóng vai trò là kết nối Internet cho thiết bị tới mạng WiFi hiện tại. Hãy thử kết nối tới Pi với điện thoại thông minh hoặc máy tính xách tay để xem nó có hoạt động không.

Nếu nó hoạt động, ngắt kết nối Pi khỏi kết nối với PC bằng cáp Ethernet.

Bước 5: Kết nối với VPN và những thay đổi cuối cùng

Bạn cần một file cấu hình OpenVPN (OVPN) để kết nối Pi với nhà cung cấp và máy chủ VPN đã chọn. Nếu đã có file này, hãy upload nó lên Pi bằng cách sử dụng SCP client như WinSCP khi kết nối với tên người dùng và mật khẩu admin.

Đổi tên file thành vpnclient.ovpn và upload nó lên thư mục /etc/openvpn. Hoàn thành các hướng dẫn trên trang web của OpenWRT để thiết lập Pi cho các kết nối VPN. Thay đổi nhỏ duy nhất sẽ nằm trong phần 4 đối với thiết lập profile VPN client. Ở đây, không cần sử dụng công cụ cat ban đầu để chèn file vpnclient.ovpn, vì nó đã có sẵn.

Ngay sau khi hoàn thành việc này, kết nối VPN sẽ tự động kích hoạt. Kiểm tra địa chỉ IP đã thay đổi chưa. Nếu chưa, hãy khởi động lại Pi và kiểm tra kết nối có hoạt động không, bằng cách đi tới phần OpenVPN của LuCI, và tìm trong phần Services ở đầu bảng điều khiển. Nếu kết nối hoạt động, vpnclient sẽ được liệt kê ở trạng thái Yes trong cột Started.

Kết nối VPN

Bước 6: Đăng ký thiết bị trên WiFi công cộng

Pi gần như đã sẵn sàng ở giai đoạn này, nhưng nếu đã từng kết nối với mạng WiFi công cộng, thì người dùng biết rằng sẽ cần phải xác thực bằng cách sử dụng captive portal (captive portal là một trang web truy cập bằng trình duyệt web, được hiển thị cho người dùng mới kết nối trong mạng WiFi, trước khi họ được cấp quyền truy cập rộng hơn vào tài nguyên mạng), để trả tiền hoặc đăng ký thiết bị. Vì Pi hiện được thiết lập để tự động kết nối qua VPN, các cổng này thường sẽ bị chặn.

Để giải quyết vấn đề này, hãy đặt USB WiFi adapter khớp với địa chỉ MAC của thiết bị được sử dụng để kết nối và xác thực với mạng WiFi công cộng trước tiên, chẳng hạn như điện thoại thông minh. Tiếp theo, hãy nhập:

nano /etc/init.d/wan-changer

Trong cửa sổ chỉnh sửa, thêm phần sau (thay thế XX bằng địa chỉ MAC) và nhấn Ctrl + X, sau đó là Y để lưu.

#!/bin/sh /etc/rc.common
 
 START=10
 
 start() {
 uci set wireless.@wifi-iface[1].macaddr='XX:XX:XX:XX:XX:XX'
 uci commit network
 }

Cuối cùng, chạy các lệnh sau để đặt tập lệnh chạy tự động khi Pi khởi động:

chmod +x /etc/init.d/wan-changer
 /etc/init.d/wan-changer enable

Khởi động lại để kiểm tra mọi thứ có hoạt động tốt không. Nên kiểm tra xem có hiện tượng rò rỉ DNS nào không để đảm bảo kết nối VPN hoạt động chính xác. Hầu hết các nhà cung cấp VPN đều có một công cụ trợ giúp thực hiện điều này.

Raspberry Pi bây giờ sẽ được thiết lập và sẵn sàng hoạt động như một travel router VPN, nghĩa là bạn có thể lướt web an toàn trong bất kỳ khách sạn hoặc quán cà phê nào ghé qua. Nhờ bảng điều khiển LuCI, bạn có thể dễ dàng kết nối với bất kỳ mạng WiFi mới nào thông qua trình duyệt web của mình.

Xem danh sách các dịch vụ VPN tốt nhất của Quản Trị Mạng để tìm dịch vụ VPN phù hợp với nhu cầu của bạn.

Chúc bạn thực hiện thành công!

Thứ Sáu, 22/02/2019 17:04
52 👨 719