Algo VPN là một gói phần mềm nguồn mở hoặc một tập lệnh Ansible được sử dụng để thiết lập WireGuard và IPsec VPN. Nó được Trail of Bits thiết kế để làm cho quá trình cài đặt VPN trở nên đơn giản nhưng vẫn an toàn. Algo VPN cho phép bạn kết nối từ bất kỳ thiết bị nào bao gồm Windows, Linux, OSX, Android và iOS. Algo VPN hỗ trợ nhiều nhà cung cấp đám mây bao gồm Amazon, Google Cloud, Vultr, DigitalOcean, Scalway, Linode và OpenStack.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập máy chủ VPN với Algo VPN trên máy chủ Ubuntu 20.04.
Sau khi tất cả các gói được cập nhật, hãy cài đặt các phụ thuộc khác bằng lệnh sau:
Tiếp theo, bạn sẽ cần tắt dịch vụ phân giải tên để dnsmasq hoạt động. Bạn có thể tắt dịch vụ này bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Tiếp theo, hãy thay đổi thư mục thành thư mục đã tải xuống và tạo môi trường ảo Python bằng lệnh sau:
Tiếp theo, hãy kích hoạt môi trường ảo bằng lệnh sau:
Tiếp theo, hãy cài đặt các phụ thuộc cần thiết bằng lệnh sau:
Sau khi tất cả các phụ thuộc được cài đặt, hãy cài đặt Algo VPN bằng cách chạy lệnh sau:
Bạn sẽ được yêu cầu chọn nhà cung cấp dịch vụ đám mây như hiển thị bên dưới:
Sau khi quá trình cài đặt hoàn tất thành công, bạn sẽ nhận được kết quả sau:
Sau khi cài đặt, bạn sẽ thấy tệp cấu hình cho từng cấu hình VPN bằng lệnh sau:
Bạn sẽ thấy tất cả cấu hình trong đầu ra sau:
Bạn có thể sử dụng bất kỳ tệp nào ở trên trên thiết bị khách hàng của mình để kết nối với máy chủ Algo VPN.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập máy chủ VPN với Algo VPN trên máy chủ Ubuntu 20.04.
Điều kiện tiên quyết
- Máy chủ chạy Ubuntu 20.04.
- Mật khẩu gốc được cấu hình cho máy chủ.
Bắt đầu
Trước tiên, hãy cập nhật các gói hệ thống của bạn lên phiên bản mới nhất bằng lệnh sau:
Mã:
apt-get update -y
Mã:
apt-get install git apparmor build-essential python3-dev python3-pip python3-setuptools python3-virtualenv libffi-dev libssl-dev -y
Mã:
systemctl disable systemd-resolved
systemctl stop systemd-resolved
unlink /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Cài đặt và cấu hình Algo VPN
Trước tiên, hãy tải xuống phiên bản mới nhất của Algo VPN từ kho lưu trữ Git bằng lệnh sau:
Mã:
git clone https://github.com/trailofbits/algo.git
Mã:
cd algo
python3 -m virtualenv --python=/usr/bin/python3 .env
Mã:
source .env/bin/activate
Mã:
python3 -m pip install -U pip virtualenv
python3 -m pip install -r requirements.txt
Mã:
./algo
Mã:
NHIỆM VỤ [Đặt phiên bản ansible bắt buộc thành sự thật] **********************************************************************************************ok: [localhost] => (item=ansible==2.9.7)NHIỆM VỤ [Xác minh Python đáp ứng các yêu cầu của Algo VPN] **********************************************************************************************ok: [localhost] => { "changed": false, "msg": "Tất cả các xác nhận đã thông qua"}NHIỆM VỤ [Xác minh Ansible đáp ứng các yêu cầu của Algo VPN] ***************************************************************************************************ok: [localhost] => { "changed": false, "msg": "Tất cả các khẳng định đã thông qua"}[CẢNH BÁO]: Đã tìm thấy biến sử dụng tên được đặt trước: no_logPLAY [Yêu cầu người dùng nhập dữ liệu] *******************************************************************************************************************TASK [Thu thập thông tin] ******************************************************************************************************************************ok: [localhost][Cloud prompt]Bạn muốn sử dụng nhà cung cấp nào? 1. DigitalOcean 2. Amazon Lightsail 3. Amazon EC2 4. Microsoft Azure 5. Google Compute Engine 6. Hetzner Cloud 7. Vultr 8. Scaleway 9. OpenStack (tối ưu hóa DreamCompute) 10. CloudStack (tối ưu hóa Exoscale) 11. Linode 12. Cài đặt vào máy chủ Ubuntu 18.04 hoặc 20.04 hiện có (dành cho người dùng nâng cao hơn)Nhập số nhà cung cấp mong muốn của bạn:[B]12[/b]Nhập 12 và nhấn Enter để thiết lập Algo VPN trên máy chủ Ubuntu 20.04. Bạn sẽ được hỏi một số câu hỏi như hiển thị bên dưới:CÁC NHIỆM VỤ [Đặt dữ kiện dựa trên dữ liệu đầu vào] ************************************************************************************************************************************************************************************************************ok: [localhost][Lời nhắc Cellular On Demand]Bạn có muốn máy khách IPsec macOS/iOS bật "Kết nối theo yêu cầu" khi kết nối với mạng di động không?[y/N][B]:y[/b]NHIỆM VỤ [Lời nhắc về Cellular On Demand] *********************************************************************************************************************************************************************************************************************ok: [localhost][Lời nhắc về Wi-Fi On Demand]Bạn có muốn máy khách IPsec macOS/iOS bật "Kết nối theo yêu cầu" khi kết nối với Wi-Fi không?[y/N][B]:y[/b]NHIỆM VỤ [Lời nhắc Wi-Fi On Demand] *********************************************************************************************************************************************************************************************************************ok: [localhost][Lời nhắc mạng Wi-Fi đáng tin cậy]Liệt kê tên của bất kỳ mạng Wi-Fi đáng tin cậy nào mà máy khách IPsec macOS/iOS không nên sử dụng "Kết nối theo yêu cầu"(ví dụ: mạng gia đình của bạn. Giá trị phân cách bằng dấu phẩy, ví dụ: HomeNet, OfficeWifi, AlgoWiFi):[B]HomeNet[/b]NHIỆM VỤ [Lời nhắc mạng Wi-Fi đáng tin cậy] *******************************************************************************************************************************************************************************************ok: [localhost][Lời nhắc mật mã tương thích]Bạn có muốn VPN hỗ trợ máy khách Windows 10 hoặc Linux Desktop không? (cho phép mật mã tương thích và trao đổi khóa, ít an toàn hơn)[y/N]:[B]y[/b]NHIỆM VỤ [Lời nhắc mật mã tương thích] ******************************************************************************************************************************************************************************************************ok: [localhost][Lời nhắc giữ nguyên khóa CA]Bạn có muốn giữ nguyên khóa CA không? (cần thiết để thêm người dùng trong tương lai, nhưng kém an toàn hơn)[y/N]:[B]y[/b]NHIỆM VỤ [Giữ lại lời nhắc khóa CA] *************************************************************************************************************************************************************************************************************************ok: [localhost][Lời nhắc chặn quảng cáo DNS]Bạn có muốn cài đặt trình phân giải DNS chặn quảng cáo trên máy chủ VPN này không?[y/N]:[B]y[/b]NHIỆM VỤ [Nhắc nhở chặn quảng cáo DNS] *************************************************************************************************************************************************************************************************************************ok: [localhost][Nhắc nhở đường hầm SSH]Bạn có muốn mỗi người dùng có tài khoản riêng để tạo đường hầm SSH không?[y/N]:[B]N[/b]Nhập địa chỉ IP của máy chủ của bạn: (hoặc sử dụng localhost để cài đặt cục bộ):[localhost]:[B]localhost[/b]NHIỆM VỤ [local : tạm dừng] **********************************************************************************************************************************ok: [localhost]NHIỆM VỤ [local : Thiết lập các sự kiện] ***************************************************************************************************************************ok: [localhost][local : tạm dừng]Chúng ta nên sử dụng người dùng nào để đăng nhập vào máy chủ? (lưu ý: yêu cầu đăng nhập không cần mật khẩu hoặc bỏ qua nếu bạn đang triển khai tới máy chủ cục bộ)[root]:[B]root[/b]Nhập địa chỉ IP công khai hoặc tên miền của máy chủ của bạn: (QUAN TRỌNG! Thông tin này được sử dụng để xác minh chứng chỉ)[B][45.58.38.120][/b]
Mã:
TASK [debug] *******************************************************************************************************************************************ok: [localhost] => { "msg": [ [ "\"# Xin chúc mừng! #\"", "\"# Máy chủ Algo của bạn đang chạy. #\"", "\"# Các tệp cấu hình và chứng chỉ nằm trong thư mục ./configs/. #\"", "\"# Truy cập https://whoer.net/ sau khi kết nối #\"", "\"# và đảm bảo rằng tất cả lưu lượng truy cập của bạn đều đi qua VPN. #\"", "\"# Bộ giải quyết DNS cục bộ 172.18.7.104 #\"", "" ], " \"# Mật khẩu khóa p12 và SSH cho người dùng mới là 7OEfSUZt0 #\"\n", " \"# Mật khẩu khóa CA là g5AvcHzZygjV@4AN #\"\n", " " ]}TÓM TẮT PHÁT *********************************************************************************************************************************************localhost : ok=125 changed=39 unreachable=0 failed=0 skipped=53 rescue=0 ignored=0
Mã:
ls configs/your-server-ip/wireguard/
Mã:
apple desktop.conf desktop.png laptop.conf laptop.png phone.conf phone.png user1.conf user1.png