Thứ ba, 21/01/2020 | 00:00 GMT+7

Cách cài đặt Tinc và thiết lập VPN cơ bản trên Ubuntu 18.04

Tinc là một daemon Mạng riêng ảo (VPN) open-souce với các tính năng hữu ích như mã hóa, nén tùy chọn và định tuyến lưới tự động có thể định tuyến lưu lượng VPN trực tiếp giữa các server . Các tính năng này phân biệt tinc với các giải pháp VPN khác và làm cho nó trở thành lựa chọn tốt để tạo VPN từ nhiều mạng nhỏ, phân tán theo địa lý.

Trong hướng dẫn này, ta sẽ giới thiệu cho các bạn cách sử dụng tinc để tạo một VPN an toàn mà trên đó các server của bạn có thể giao tiếp như thể chúng ở trên một mạng local . Ta cũng sẽ trình bày cách sử dụng tinc để cài đặt một tunnel an toàn vào một mạng riêng. Ta sẽ sử dụng server Ubuntu 18.04, nhưng các cấu hình có thể được điều chỉnh để sử dụng với bất kỳ hệ điều hành nào khác.

Bàn thắng

Để đề cập đến nhiều trường hợp sử dụng, hướng dẫn này phác thảo cách kết nối một nút khách với VPN qua network interface riêng và một nút khác qua giao diện công cộng. Tuy nhiên, bạn có thể điều chỉnh cài đặt này cho phù hợp với nhu cầu của riêng mình. Bạn chỉ cần lập kế hoạch về cách bạn muốn các server của bạn truy cập lẫn nhau và điều chỉnh các ví dụ được trình bày trong hướng dẫn này theo nhu cầu của bạn . Nếu bạn đang điều chỉnh điều này cho phù hợp với cài đặt của bạn , hãy đảm bảo thay thế các giá trị được đánh dấu trong các ví dụ bằng các giá trị của bạn . Tuy nhiên, bạn có thể quan tâm đến việc làm theo hướng dẫn trước khi nó được viết đảm bảo rằng bạn hiểu các thành phần và quy trình liên quan trước khi sửa đổi các hướng dẫn này.

Để giúp mọi thứ rõ ràng, hướng dẫn này sẽ đề cập đến các server như sau:

  • server-01 : Tất cả các node VPN sẽ kết nối với máy này và kết nối phải được duy trì để có chức năng VPN phù hợp. Các server bổ sung có thể được cấu hình theo cách tương tự như server này để cung cấp dự phòng, nếu muốn
  • client-01 : Kết nối với nút VPN server -01 bằng network interface riêng của nó
  • client-02 : Kết nối với nút VPN server -01 qua network interface công cộng

Lưu ý : Bản thân Tinc không phân biệt giữa server (máy lưu trữ và cung cấp dịch vụ VPN) và client (máy kết nối và sử dụng mạng riêng an toàn), nhưng có thể hữu ích nếu bạn hiểu và hình dung cách thức hoạt động của tinc bằng cách nghĩ đến server của bạn như thế này.

Đây là sơ đồ của VPN mà ta muốn cài đặt :

 Cài đặt  Tinc VPN

Hộp màu xanh đại diện cho VPN của ta và màu hồng đại diện cho mạng riêng bên dưới. Cả ba server đều có thể giao tiếp trên VPN, ngay cả khi mạng riêng không thể truy cập vào máy khách-02 .

Yêu cầu

Nếu bạn muốn làm theo chính xác hướng dẫn này, hãy cung cấp hai server Ubuntu 18.04 ( server -01máy khách-01 ) trong cùng một trung tâm dữ liệu và bật mạng riêng trên mỗi server . Sau đó, tạo một server Ubuntu 18.04 khác ( client-02 ) trong một trung tâm dữ liệu riêng biệt. Mỗi server phải có một admin-user và một firewall được cấu hình với ufw . Để cài đặt điều này, hãy làm theo hướng dẫn cài đặt server ban đầu của ta cho Ubuntu 18.04 .

Ngoài ra, ở phần sau của hướng dẫn này, ta cần chuyển một vài file giữa mỗi máy bằng scp .Do đó, bạn cần tạo SSH key trên mỗi server của bạn , thêm cả SSH key của máy khách 01máy khách-02 vào file authorized_keys của server -01 , sau đó thêm SSH key của server -01 cho cả file tin authorized_keys của máy khách-01máy khách-02 . Để được trợ giúp cài đặt điều này, hãy xem hướng dẫn của ta về Cách cài đặt SSH key trên Ubuntu 18.04 .

Bước 1 - Cài đặt Tinc

Tinc có sẵn từ repository Ubuntu APT mặc định, nghĩa là ta có thể cài đặt nó chỉ bằng một vài lệnh.

Nếu gần đây bạn chưa làm như vậy, hãy chạy lệnh sau trên mỗi server để cập nhật index gói tương ứng của chúng:

Tất cả các server
  • sudo apt update

Sau đó cài đặt tinc trên mỗi server bằng cách chạy lệnh sau:

Tất cả các server
  • sudo apt install tinc

Như vậy, bạn đã cài đặt tinc trên mỗi server của bạn . Tuy nhiên, bạn cần thực hiện một số thay đổi đối với cấu hình của tinc trên mỗi máy để VPN của bạn hoạt động. Hãy bắt đầu với việc cập nhật server -01 .

Bước 2 - Cấu hình Server Tinc

Tinc yêu cầu mọi máy tính là một phần của VPN phải có ba thành phần cấu hình sau:

  • Tệp cấu hình tinc : Có ba file riêng biệt cấu hình daemon tinc:
    • tinc.conf , xác định tên mạng, thiết bị mạng mà VPN sẽ chạy và các tùy chọn VPN khác;
    • tinc-up , một tập lệnh kích hoạt thiết bị mạng được xác định trong tinc.conf sau khi tinc được khởi động;
    • tinc-down , hủy kích hoạt thiết bị mạng khi nào tinc dừng.
  • Cặp public key / riêng tư : Tinc sử dụng các cặp public key / riêng tư đảm bảo rằng chỉ những user có khóa hợp lệ mới có thể truy cập VPN.
  • Tệp cấu hình server : Mỗi máy (hoặc server ) trên VPN có file cấu hình riêng chứa địa chỉ IP thực của server và mạng con nơi tinc sẽ phục vụ nó

Tinc sử dụng tên mạng để phân biệt một VPN tinc với một VPN khác. Điều này hữu ích trong trường hợp bạn muốn cài đặt nhiều VPN, nhưng bạn nên sử dụng tên mạng ngay cả khi bạn chỉ cấu hình một VPN. Bạn có thể đặt cho VPN của bạn bất kỳ tên mạng nào bạn thích, nhưng để đơn giản hơn, ta sẽ gọi tên mạng VPN của netname .

Trên server -01 , tạo cấu trúc folder cấu hình cho VPN:

server -01
  • sudo mkdir -p /etc/tinc/netname/hosts

Sử dụng editor bạn muốn để tạo file tinc.conf . Ở đây, ta sẽ sử dụng nano :

server -01
  • sudo nano /etc/tinc/netname/tinc.conf

Thêm các dòng sau vào file trống. Các cấu hình này cấu hình một nút tinc có tên server_01 với network interface được gọi là tun0 sẽ sử dụng IPv4:

server-01: /etc/tinc/netname/tinc.conf
Name = server_01 AddressFamily = ipv4 Interface = tun0 

Cảnh báo: Lưu ý cách giá trị sau chỉ thị Name bao gồm dấu gạch dưới ( _ ) thay vì dấu gạch ngang ( - ). Điều này rất quan trọng, vì tinc yêu cầu giá trị Name chỉ chứa các ký tự chữ và số hoặc dấu gạch dưới. Nếu bạn sử dụng dấu gạch ngang ở đây, bạn sẽ gặp lỗi khi cố khởi động VPN sau trong hướng dẫn này.

Lưu file sau khi thêm các dòng này. Nếu bạn sử dụng nano , hãy làm như vậy bằng cách nhấn CTRL+X , Y , sau đó ENTER .

Tiếp theo, tạo file cấu hình server có tên server_01 trong folder con hosts . Cuối cùng, các node client sẽ sử dụng file này để giao tiếp với server -01 :

server -01
  • sudo nano /etc/tinc/netname/hosts/server_01

, hãy lưu ý tên của file này chứa dấu gạch dưới chứ không phải dấu gạch nối. Bằng cách này, nó phù hợp với chỉ thị Name trong file tinc.conf , điều này sẽ cho phép tinc tự động nối khóa RSA công khai của server vào file này khi ta tạo sau này.

Thêm các dòng sau vào file , đảm bảo bao gồm địa chỉ IP công cộng của server -01 :

server-01: / etc / tinc / netname / hosts / server_01
Address = server-01_public_IP_address Subnet = 10.0.0.1/32 

Trường Address định cách các node khác sẽ kết nối với server này và Subnet chỉ định mạng con mà daemon này sẽ phục vụ. Lưu và đóng file .

Tiếp theo, tạo một cặp khóa RSA công khai và riêng tư cho server này bằng lệnh sau:

server -01
  • sudo tincd -n netname -K4096

Sau khi chạy lệnh này, bạn sẽ được yêu cầu nhập tên file nơi tinc sẽ lưu các khóa RSA công khai và riêng tư:

Output
. . . Please enter a file to save private RSA key to [/etc/tinc/netname/rsa_key.priv]: Please enter a file to save public RSA key to [/etc/tinc/netname/hosts/server_01]:

Nhấn ENTER để chấp nhận các vị trí mặc định tại mỗi dấu nhắc ; làm như vậy sẽ yêu cầu tinc lưu trữ private key trong một file có tên rsa_key.priv và nối public key vào file cấu hình server server_01 .

Tiếp theo, tạo tinc-up , tập lệnh sẽ chạy khi nào VPN netname được khởi động:

server -01
  • sudo nano /etc/tinc/netname/tinc-up

Thêm các dòng sau:

server-01: / etc / tinc / netname / tinc-up
#!/bin/sh ip link set $INTERFACE up ip addr add 10.0.0.1/32 dev $INTERFACE ip route add 10.0.0.0/24 dev $INTERFACE 

Đây là những gì mỗi dòng này làm:

  • ip link … : cài đặt trạng thái của network interface ảo của tinc là up
  • ip addr … : thêm địa chỉ IP 10.0.0.1 với mặt nạ mạng 32 vào network interface ảo của tinc, điều này sẽ khiến các máy khác trên VPN xem địa chỉ IP của server -0110.0.0.1
  • ip route … : thêm một tuyến đường ( 10.0.0.0/24 ) có thể truy cập được trên network interface ảo của tinc

Lưu file sau khi thêm các dòng này.

Tiếp theo, tạo một tập lệnh để xóa network interface ảo khi VPN của bạn bị dừng:

server -01
  • sudo nano /etc/tinc/netname/tinc-down

Thêm các dòng sau:

server-01: / etc / tinc / netname / tinc-down
#!/bin/sh ip route del 10.0.0.0/24 dev $INTERFACE ip addr del 10.0.0.1/32 dev $INTERFACE ip link set $INTERFACE down 

Những dòng này có tác động ngược lại với những dòng trong script tinc-up :

  • ip route … : xóa tuyến 10.0.0.0/24
  • ip addr … : xóa địa chỉ IP 10.0.0.1 khỏi network interface ảo của tinc
  • ip link … : đặt trạng thái của network interface ảo của tinc là không hoạt down

Lưu file , sau đó thực thi cả hai tập lệnh mạng mới này:

server -01
  • sudo chmod 755 /etc/tinc/netname/tinc-*

Bước cuối cùng của việc cấu hình server -01 , hãy thêm luật firewall sẽ cho phép lưu lượng truy cập qua cổng 655 , cổng mặc định của tinc:

server -01
  • sudo ufw allow 655

server-01 hiện đã được cấu hình đầy đủ và bạn có thể chuyển sang cài đặt các node client của bạn .

Bước 3 - Cấu hình các node client

Cả hai client của bạn sẽ yêu cầu một cấu hình hơi khác so với server , mặc dù quá trình này nhìn chung sẽ khá giống nhau.

Do cài đặt mà ta đang hướng tới trong hướng dẫn này, ta sẽ cấu hình client-01client-02 gần như giống nhau chỉ với một số khác biệt nhỏ giữa chúng. Do đó, nhiều lệnh được đưa ra trong bước này phải được chạy trên cả hai máy. Tuy nhiên, lưu ý nếu client-01 hoặc client-02 yêu cầu một lệnh cụ thể hoặc cấu hình đặc biệt, các lệnh đó sẽ được hiển thị trong một khối lệnh màu xanh lam hoặc màu đỏ, tương ứng.

Trên cả client-01 và client-02 , sao chép cấu trúc folder mà bạn đã tạo trên server-01 :

client-01 & client-02
  • sudo mkdir -p /etc/tinc/netname/hosts

Sau đó tạo file tinc.conf :

client-01 & client-02
  • sudo nano /etc/tinc/netname/tinc.conf

Thêm các dòng sau vào file trên cả hai máy:

client-01 & client-02 /etc/tinc/netname/tinc.conf
Name = node_name AddressFamily = ipv4 Interface = tun0 ConnectTo = server_01 

Đảm bảo thay thế node_name bằng tên của nút client tương ứng. , hãy đảm bảo tên này sử dụng dấu gạch dưới ( _ ) thay vì dấu gạch ngang.

Lưu ý file này chứa một ConnectTo chỉ trỏ đến server_01 , trong khi server-01 ‘s tinc.conf file không bao gồm chỉ thị này. Bằng cách không bao gồm câu lệnh ConnectTo trên server -01 , nghĩa là server -01 sẽ chỉ lắng nghe các kết nối đến. Điều này phù hợp với cài đặt của ta vì nó sẽ không kết nối với bất kỳ máy nào khác.

Lưu và đóng file .

Tiếp theo, tạo file cấu hình server lưu trữ trên mỗi nút client . , hãy đảm bảo tên file được viết bằng dấu gạch dưới thay vì dấu gạch nối:

client-01 & client-02
  • sudo nano /etc/tinc/netname/hosts/node_name

Đối với client-01 , hãy thêm dòng này:

client-01: / etc / tinc / netname / hosts / client_01
Subnet = 10.0.0.2/32 

Đối với client-02 , hãy thêm dòng này:

client-02: / etc / tinc / netname / hosts / client_02
Subnet = 10.0.0.3/32 

Lưu ý mỗi client có một mạng con khác nhau mà tinc sẽ phục vụ. Lưu và đóng file .

Tiếp theo, tạo các cặp khóa trên mỗi client :

client-01 & client-02
  • sudo tincd -n netname -K4096

như bạn đã làm với server-01, khi được yêu cầu chọn file để lưu trữ các khóa RSA, hãy nhấn ENTER để chấp nhận các lựa chọn mặc định.

Sau đó, tạo tập lệnh bắt đầu network interface trên mỗi client :

client-01 & client-02
  • sudo nano /etc/tinc/netname/tinc-up

Đối với client-01 , hãy thêm các dòng sau:

client-01: / etc / tinc / netname / tinc-up
#!/bin/sh ip link set $INTERFACE up ip addr add 10.0.0.2/32 dev $INTERFACE ip route add 10.0.0.0/24 dev $INTERFACE 

Đối với máy khách-02 , hãy thêm thông tin sau:

client-02: / etc / tinc / netname / tinc-up
#!/bin/sh ip link set $INTERFACE up ip addr add 10.0.0.3/32 dev $INTERFACE ip route add 10.0.0.0/24 dev $INTERFACE 

Lưu và đóng từng file .

Tiếp theo, tạo tập lệnh dừng network interface trên mỗi client :

client-01 & client-02
  • sudo nano /etc/tinc/netname/tinc-down

Trên client-01 , thêm nội dung sau vào file trống:

client-01: / etc / tinc / netname / tinc-down
#!/bin/sh ip route del 10.0.0.0/24 dev $INTERFACE ip addr del 10.0.0.2/32 dev $INTERFACE ip link set $INTERFACE down 

Trên client-02 , thêm phần sau ::

client-02: / etc / tinc / netname / tinc-down
#!/bin/sh ip route del 10.0.0.0/24 dev $INTERFACE ip addr del 10.0.0.3/32 dev $INTERFACE ip link set $INTERFACE down 

Lưu file .

Làm cho các tập lệnh mạng có thể thực thi được bằng cách chạy lệnh sau trên mỗi client :

client-01 & client-02
  • sudo chmod 755 /etc/tinc/netname/tinc-*

Cuối cùng, mở cổng 655 trên mỗi client :

client-01 & client-02
  • sudo ufw allow 655

Đến đây, các node khách hầu như đã được cài đặt xong. Họ vẫn cần public key mà ta đã tạo trên server -01 ở bước trước để xác thực kết nối với VPN.

Bước 4 - Phân phối key

Mỗi nút muốn giao tiếp trực tiếp với một nút khác phải trao đổi public key , nằm bên trong file cấu hình server . Trong trường hợp của ta , server -01 cần trao đổi public key với các node khác.

Khóa trao đổi giữa server -01 và client -01

Trên máy khách-01 , sao chép file cấu hình server của nó sang server -01 . Bởi vì cả máy khách-01 server -01 đều ở trong cùng một trung tâm dữ liệu và cả hai đều được bật mạng riêng, bạn có thể sử dụng địa chỉ IP riêng của máy chủ01 tại đây:

khách hàng-01
  • scp /etc/tinc/netname/hosts/client_01 sammy@server-01_private_IP:/tmp

Sau đó, trên server-01 , sao chép file cấu hình máy client-01 vào folder /etc/tinc/ netname /hosts/ :

server -01
  • sudo cp /tmp/client_01 /etc/tinc/netname/hosts/

Sau đó, trong khi vẫn ở trên server -01 , hãy sao chép file cấu hình server của nó sang máy khách-01 :

server -01
  • scp /etc/tinc/netname/hosts/server_01 user@client-01_private_IP:/tmp

Trên máy khách-01 , sao chép file của server -01 vào vị trí thích hợp:

khách hàng-01
  • sudo cp /tmp/server_01 /etc/tinc/netname/hosts/

Trên máy khách-01 , hãy chỉnh sửa file cấu hình server lưu trữ của server -01 để trường Address được đặt thành địa chỉ IP riêng của server -01 . Bằng cách này, client-01 sẽ kết nối với VPN qua mạng riêng:

khách hàng-01
  • sudo nano /etc/tinc/netname/hosts/server_01

Thay đổi Address thị Address chỉ để trỏ đến địa chỉ IP riêng của server -01 :

client-01: / etc / tinc / netname / hosts / server_01
Address = server-01_private_IP Subnet = 10.0.0.1/32 

Lưu và thoát. Bây giờ ta hãy chuyển sang nút còn lại của ta , client-02 .

Khóa trao đổi giữa server -01 và client -02

Trên máy khách-02 , sao chép file cấu hình server của nó vào server -01 :

khách hàng-02
  • scp /etc/tinc/netname/hosts/client_02 sammy@server-01_public_IP:/tmp

Sau đó, trên server -01 , sao chép file cấu hình server client_02 vào vị trí thích hợp:

server -01
  • sudo cp /tmp/client_02 /etc/tinc/netname/hosts/

Sau đó, sao chép file cấu hình server lưu trữ của server -01 sang máy khách-02 :

server -01
  • scp /etc/tinc/netname/hosts/server_01 user@client-02_public_IP:/tmp

Trên máy khách-02 , sao chép file của server -01 vào vị trí thích hợp:

khách hàng-02
  • sudo cp /tmp/server_01 /etc/tinc/netname/hosts/

Giả sử bạn chỉ cài đặt hai nút client , bạn đã hoàn thành việc phân phối public key . Tuy nhiên, nếu bạn đang tạo một VPN lớn hơn, bây giờ là thời điểm tốt để trao đổi khóa giữa các node khác đó. Lưu ý nếu bạn muốn hai nút giao tiếp trực tiếp với nhau (không có server chuyển tiếp giữa), chúng cần phải trao đổi file cấu hình khóa / server của chúng và chúng cần có khả năng truy cập vào các network interface thực của nhau. Ngoài ra, bạn chỉ cần sao chép file cấu hình của từng server lưu trữ vào mọi nút trong VPN.

Bước 5 - Kiểm tra cấu hình

Trên mỗi nút, bắt đầu bằng server -01 , hãy bắt đầu tinc bằng lệnh sau:

Tất cả các server
  • sudo tincd -n netname -D -d3

Lệnh này bao gồm cờ -n , chỉ đến tên mạng cho VPN của ta , netname . Điều này hữu ích nếu bạn đã cài đặt nhiều VPN và bạn cần chỉ định VPN nào bạn muốn bắt đầu. Nó cũng bao gồm cờ -D , ngăn chặn tinc bị tách và tách ra, cũng như vô hiệu hóa cơ chế khởi động lại tự động của tinc. Cuối cùng, nó bao gồm cờ -d , cho tinc chạy ở chế độ gỡ lỗi, với mức gỡ lỗi là 3 .

Lưu ý: Khi nói đến daemon tinc, mức gỡ lỗi 3 sẽ hiển thị mọi yêu cầu được trao đổi giữa hai server bất kỳ, bao gồm yêu cầu xác thực, trao đổi khóa và cập nhật danh sách kết nối. Mức gỡ lỗi cao hơn hiển thị nhiều thông tin hơn về lưu lượng mạng, nhưng hiện tại ta chỉ quan tâm đến việc liệu các node có thể giao tiếp với nhau hay không, vì vậy mức 3 đủ. Tuy nhiên, trong kịch bản production , bạn cần thay đổi mức gỡ lỗi thấp hơn để không làm đầy đĩa với các file log .

Bạn có thể tìm hiểu thêm về các cấp độ gỡ lỗi của tinc bằng cách xem lại tài liệu chính thức .

Sau khi khởi động daemon trên mỗi nút, bạn sẽ thấy kết quả với tên của mỗi nút khi chúng kết nối với server -01 . Bây giờ, hãy kiểm tra kết nối qua VPN.

Trong một cửa sổ riêng biệt, trên client-02 , ping địa chỉ IP VPN của client-01 . Ta đã chỉ định đây là 10.0.0.2 , trước đó:

khách hàng-02
  • ping 10.0.0.2

Ping sẽ hoạt động chính xác và bạn sẽ thấy một số kết quả gỡ lỗi trong các cửa sổ khác về kết nối trên VPN. Điều này cho thấy rằng máy khách-02 có thể giao tiếp qua VPN thông qua server -01 đến máy khách-01 . Nhấn CTRL+C để thoát ping.

Bạn cũng có thể sử dụng các giao diện VPN để thực hiện bất kỳ giao tiếp mạng nào khác, như kết nối ứng dụng, sao chép file và SSH.

Trên mỗi cửa sổ gỡ lỗi tinc daemon, thoát khỏi daemon bằng cách nhấn CTRL+\ .

Bước 6 - Cấu hình Tinc để khởi động khi server khởi động

Server Ubuntu sử dụng systemd làm trình quản lý hệ thống mặc định để kiểm soát các quá trình chạy . Do đó, ta có thể kích hoạt netname VPN tự động khởi động khi server khởi động bằng một lệnh systemctl .

Chạy lệnh sau trên mỗi nút để đặt tinc VPN khởi động khi nào máy khởi động:

Tất cả các server
  • sudo systemctl enable tinc@netname

Tinc được cấu hình để bắt đầu khi server khởi động trên mỗi máy của bạn và bạn có thể điều khiển nó bằng lệnh systemctl . Nếu bạn muốn bắt đầu nó ngay bây giờ, hãy chạy lệnh sau trên mỗi nút của bạn:

Tất cả các server
  • sudo systemctl start tinc@netname

Lưu ý : Nếu bạn có nhiều VPN, bạn bật hoặc khởi động từng VPN cùng một lúc, như sau:

Tất cả các server
  • sudo systemctl start tinc@natename_01 tinc@netname_02 … tinc@netname_n

Cùng với đó, tinc VPN của bạn đã được cấu hình đầy đủ và chạy trên từng nút của bạn.

Kết luận

Đến đây bạn đã xem qua hướng dẫn này, bạn sẽ có một nền tảng tốt để xây dựng VPN đáp ứng nhu cầu của bạn. Tinc rất linh hoạt và bất kỳ nút nào cũng có thể được cấu hình để kết nối với bất kỳ nút nào khác (mà nó có thể truy cập qua mạng) để nó có thể hoạt động như một mạng VPN mà không cần dựa vào một nút riêng lẻ.


Tags:

Các tin liên quan

Cách thiết lập Nền tảng Eclipse Theia Cloud IDE trên Ubuntu 18.04
2020-01-06
Cách sử dụng Ansible để cài đặt và thiết lập WordPress với LAMP trên Ubuntu 18.04
2019-12-31
Cách cài đặt WordPress với OpenLiteSpeed trên Ubuntu 18.04
2019-12-18
Cách sử dụng Ansible để cài đặt và thiết lập LAMP trên Ubuntu 18.04
2019-12-17
Cách sử dụng Ansible để cài đặt và thiết lập LEMP trên Ubuntu 18.04
2019-12-05
Cách cài đặt và sử dụng TimescaleDB trên Ubuntu 18.04
2019-12-04
Cách lấy chứng chỉ Let's Encrypt bằng Ansible trên Ubuntu 18.04
2019-11-14
Cách cài đặt MongoDB trên Ubuntu 16.04
2019-10-13
Cách thêm và xóa người dùng trên Ubuntu 18.04
2019-09-12
Cách cài đặt và bảo mật Grafana trên Ubuntu 18.04
2019-09-05