NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
11/05/2023
Lượt xem

Hướng dẫn cài đặt Dante Proxy trên Ubuntu 20.04 cho các kết nối riêng tư

11/05/2023
10 phút đọc
Lượt xem

Đánh giá

5/5 - (191 bình chọn)

Máy chủ Proxy là một loại dịch vụ máy chủ có chức năng như một cổng kết nối giữa người dùng cuối và tài nguyên internet. Thông qua máy chủ Proxy, người dùng cuối có thể kiểm soát và giám sát lưu lượng truy cập web của họ cho nhiều mục đích khác nhau, bao gồm quyền riêng tư, bảo mật và lưu vào bộ nhớ đệm. Dante là một SOCKS Proxy mã nguồn mở, phổ biến, ổn định. Trong hướng dẫn này, Vietnix sẽ trình bày cách cài đặt và cấu hình Dante để cung cấp SOCKS Proxy trên máy chủ Ubuntu 20.04.

Yêu cầu để cài đặt Dante Proxy trên Ubuntu 20.04 cho các kết nối riêng tư

Để hoàn thành hướng dẫn này, bạn cần một máy chủ Ubuntu 20.04 và người dùng không phải root nhưng có quyền sudo.

Hướng dẫn này sử dụng tên miền là your_domain, tốt nhất bạn nên thay thế bằng tên miền hoặc địa chỉ IP của riêng bạn.

Hướng dẫn cài đặt Dante Proxy trên Ubuntu 20.04 cho các kết nối riêng tư
Hướng dẫn cài đặt Dante Proxy trên Ubuntu 20.04 cho các kết nối riêng tư

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

Dante là một máy chủ SOCKS Proxy. Trong đó, SOCKS là một giao thức ít được sử dụng rộng rãi hơn, nhưng hiệu quả hơn đối với một số ứng dụng ngang hàng (peer-to-peer applications) và được ưu tiên hơn HTTP đối với một số loại lưu lượng. Bắt đầu bằng cách chạy các lệnh sau với người dùng có quyền sudo trong phần điều kiện:

sudo apt update
sudo apt install dante-server

Dante sẽ tự động thiết lập một dịch vụ nền và bắt đầu sau khi được cài đặt. Tuy nhiên, trong lần chạy đầu tiên, dịch vụ sẽ không khởi động một cách chính xác và bắn ra một thông báo lỗi vì dịch vụ này được tải xuống với tất cả cấu hình các tính năng bị vô hiệu hóa. Bạn có thể xác minh trạng thái bằng cách sử dụng lệnh systemctl:

systemctl status danted.service
Output
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
     Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2021-12-15 21:48:22 UTC; 1min 45s ago
       Docs: man:danted(8)
             man:danted.conf(5)
   Main PID: 14496 (code=exited, status=1/FAILURE)
Dec 15 21:48:21 proxies systemd[1]: Starting SOCKS (v4 and v5) proxy daemon (danted)...
Dec 15 21:48:22 proxies systemd[1]: Started SOCKS (v4 and v5) proxy daemon (danted).
Dec 15 21:48:22 proxies danted[14496]: Dec 15 21:48:22 (1639604902.102601) danted[14496]: warning: checkconfig(): no socks authentication methods enabled.  This means all socks requests will be blocked after negotiation. Perhaps this is not intended?

Để khởi động thành công Dante, bạn cần kích hoạt chúng bằng cách thay đổi một số cấu hình trong tệp cấu hình Dante.

Mặc định, tệp cấu hình của Dante được lưu tại /etc/danted.conf. Bạn có thể mở tệp này bằng trình soạn thảo nano hoặc bất kỳ trình soạn thảo văn bản nào mà bạn yêu thích, bạn sẽ thấy một danh sách dài các cấu hình tùy chọn, tất cả chúng đều bị vô hiệu hóa.

Bạn có thể tùy chỉnh cấu hình thông qua tệp này và bật một số tùy chọn theo từng dòng, nhưng trên thực tế bạn nên xóa tệp cấu hình này, thay thế bằng cách tạo một tệp cấu hình mới khác sẽ hiệu quả hơn và dễ đọc hơn.

Bài viết sẽ hướng dẫn bạn cấu hình một cách dễ dàng, nếu không bạn luôn có thể xem lại cấu hình mặc định của Dante bằng cách xem lại cấu hình mặc định hoặc tải lại package Dante để cấu hình.

Thực hiện lệnh xóa tệp cấu hình mặc định bằng lệnh sau:

sudo rm /etc/danted.conf

Bây giờ, bạn mở một tệp cấu hình mới bằng trình soạn thảo văn bản nano hoặc trình soạn thảo văn bản yêu thích của bạn. Với trình soạn thảo nano, bạn thực hiện câu lệnh:

sudo nano /etc/danted.conf

Tất nhiên ban đầu, tệp cấu hình sẽ trống rỗng. Sau đó, thực hiện thêm các nội dung cấu hình sau:

logoutput: syslog
user.privileged: root
user.unprivileged: nobody

# The listening network interface or address.
internal: 0.0.0.0 port=1080

# The proxying network interface or address.
external: eth0

# socks-rules determine what is proxied through the external interface.
socksmethod: username

# client-rules determine who can connect to the internal interface.
clientmethod: none

client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
}

Bây giờ, cấu hình máy chủ SOCKS Proxy này đã có thể sử dụng được, chạy trên cổng mặc định 1080. Bạn cũng có thể chia nhỏ phần còn lại của tệp cấu hình này theo từng dòng như sau:

  • logoutput đề cập đến cách mà Dante sẽ ghi lại các kết nối, trong trường hợp này là sử dụng ghi nhật ký hệ thống thông thường.
  • user.privileged cho phép Dante có quyền root để kiểm tra quyền.
  • user.unprivileged không cấp cho máy chủ bất kỳ quyền nào để thao tác dịch vụ với tư cách là người dùng không có đặc quyền, vì điều này là không cần thiết khi không cấp nhiều quyền chi tiết.
  • internal chỉ định cổng mà dịch vụ đang chạy và địa chỉ IP nào có thể kết nối đến Dante.
  • external chỉ định network interface nào được sử dụng cho các kết nối bên ngoài, theo mặc định trên hầu hết các máy chủ là eth0. Tuy nhiên có thể khác đối với cấu hình máy chủ của bạn. Bạn có thể kiểm tra bằng câu lệnh ifconfig -a để xem network interface nào đảm nhiệm nhiệm vụ kết nối bên ngoài nhé.

Phần còn lại của các chi tiết cấu hình đảm bảo xử lý các phương pháp xác thực, sẽ được đề cập trong phần tiếp theo. Đừng quên mở cổng 1080 và cho phép hoạt động thông qua tường lửa nếu bạn đang sử dụng ufw bằng câu lệnh:

sudo ufw allow 1080

Lúc này, bạn có thể khởi động lại Dante và kết nối với dịch vụ. Tuy nhiên, khi khởi động Dante, tức là bạn sẽ có một máy chủ SOCKS mở cho toàn bộ không gian mạng có thể kết nối đến. Điều này làm tăng nguy cơ máy chủ của bạn sẽ bị tấn công bởi bất kỳ máy tính nào. Vì vậy, trước tiên bạn sẽ học cách bảo mật nó.

Bước 2: Thực hiện bảo mật Dante

Dante sẽ sử dụng các tài khoản người dùng Linux thông thường để xác thực bằng cơ chế xác thực ngang hàng (peer authentications). Điều này là rất hữu ích nhưng mật khẩu được sử dụng cho kết nối đó sẽ được gửi qua văn bản bằng định dạng thông thường (tức chưa được mã hóa). Vì vậy, điều quan trọng là phải tạo một người dùng SOCKS chuyên dụng đảm bảo được tính kết nối riêng tư.

Để làm điều đó, bạn sẽ sử dụng lệnh useradd với cờ chỉ định không cho phép người dùng đăng nhập bằng shell, sau đó đặt mật khẩu cho tài khoản đó:

sudo useradd -r -s /bin/false your_dante_user
sudo passwd your_dante_user

Bạn cũng nên tránh đăng nhập vào tài khoản này qua kết nối không dây không an toàn hoặc chia sẻ máy chủ quá rộng rãi.

Dante hỗ trợ các phương pháp xác thực khác, nhưng các kết nối bên ngoài (ví dụ: ứng dụng, tiện ích mở rộng,…) kết nối với SOCKS Proxy sẽ chỉ được hỗ trợ xác thực tên người dùng và mật khẩu, vì vậy bạn có thể giữ nguyên cấu hình người dùng.

Một cách khác được khuyên dùng là hạn chế địa chỉ IP cụ thể truy cập. Tuy không phải là tùy chọn mang đến hiệu quả tốt nhất, nhưng với sự kết hợp của các công nghệ được sử dụng, có thể nói đây là một tùy chọn hợp lý. Bạn có thể học cách hạn chế quyền truy cập vào các địa chỉ IP cụ thể bằng ufw và điều này cũng có thể thực hiện trực tiếp trong Dante bằng cách chỉnh sửa tệp /etc/danted.conf như sau:

sudo nano /etc/danted.conf
…
client pass {
    from: your_ip_address/0 to: 0.0.0.0/0
}

Có thể thêm vào nhiều địa chỉ IP trong một khối cấu hình bằng cách sử dụng ký hiệu CIDR (CIDR notation) hoặc chỉ cần thêm một vài khối cấu hình client pass {} khác:

client pass {
    from: your_ip_address/0 to: 0.0.0.0/0
}
client pass {
    from: another_ip_address/0 to: 0.0.0.0/0

}

Lúc này, bạn có thể thoải mái khởi động lại Dante để áp đặt các thay đổi cấu hình của mình bằng câu lệnh:

sudo systemctl restart danted.service

Thực hiện kiểm tra trạng thái dịch vụ, bạn sẽ thấy Dante hoạt động mà không có bất kỳ lỗi nào:

systemctl status danted.service
Output
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
     Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enable>
     Active: active (running) since Thu 2021-12-16 18:06:26 UTC; 24h ago

Thiết lập Dante Proxy là giải pháp hoàn hảo để đảm bảo tính riêng tư, bảo vệ dữ liệu và ổn định của hệ thống. Tuy nhiên, để VPS vận hành ổn định, mượt mà và đạt hiệu quả tối đa thì tốc độ cũng là một yếu tố quan trọng cần được chú trọng.

Hiện tại Vietnix đang cung cấp các gói VPS tốc độ cao, đa dạng cấu hình, tính năng hiện đại, bảo mật cao gồm: VPS NVMe, VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS GPU với nhiều mức giá khác nhau.

Nhanh tay liên hệ Vietnix để được tư vấn gói VPS tốc độ cao phù hợp với nhu cầu ngay hôm nay.

Bước 3: Đảm bảo kết nối thông qua Dante

Để chứng minh máy chủ Dante đã hoạt động bình thường, thực hiện gửi một dòng lệnh curl, lệnh này phổ biến giúp thực hiện kiểm tra các yêu cầu tài nguyên web ( web request) khác nhau. Tóm lại, khi muốn xác minh xem một yêu cầu kết nối tài nguyên web có hoạt động hay không, bạn phải luôn kiểm tra trước với curl. Công cụ này được cài đặt theo mặc định trên tất cả các hệ điều hành như Windows, macOSUnix/Linux hiện đại, vì vậy bạn có thể mở bất kỳ giao diện dòng lệnh nào để chạy lệnh này:

curl -v -x socks5://your_dante_user:your_dante_password@your_server_ip:1080 http://www.google.com/
Output
*   Trying 138.197.103.77...
* TCP_NODELAY set
* SOCKS5 communication to www.google.com:80
* SOCKS5 connect to IPv4 142.250.189.228 (locally resolved)
* SOCKS5 request granted.
* Connected to 138.197.103.77 (138.197.103.77) port 1080 (#0)
> GET / HTTP/1.1
...

Thông tin đăng nhập mà bạn đã sử dụng cho lệnh curl giờ đây sẽ hoạt động với bất kỳ yêu cầu nào khác mà bạn muốn sử dụng đối với máy chủ proxy SOCKS này.

Lời kết

Trong hướng dẫn này, bạn đã học cách triển khai một mã nguồn mở đầu cuối, kiểm soát lưu lượng truy cập mà không tốn phí hoặc ít chi phi với Dante. Mong rằng, từ thao tác với proxy, bạn sẽ biết cách bảo vệ môi trường internet của mình, ngăn chặn, loại bỏ các nguồn thông tin độc hại, nguy hiểm. Nếu có bất kỳ thắc mắc nào, hãy để lại bình luận bên dưới để mọi người cùng thảo luận nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
2 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Chung
Khách
Chung
1 năm trước

Cho mình hỏi, sau khi sử dụng lệnh “systemctl status danted.service’ thì làm sao để thoát nội dung này ra ạ?

test
Khách
test
3 tháng trước
Trả lời  Chung

Nhấn tổ hợp phím Ctrl + C nhé bạn

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG