Lưu trữ danh mục: Kiến Thức Về Website

Kubernetes là gì?

I. Kubernetes là gì?

Kubernetes, hay gọi tắt là k8s, là một bộ điều phối vùng chứa (container) mã nguồn mở. Ban đầu được phát triển bởi các kỹ sư tại Google, Kubernetes giải quyết nhiều vấn đề liên quan đến việc triển khai ứng dụng theo kiến trúc microservice. Kubernetes tự động xử lý việc mở rộng quy mô, tự phục hồi, cân bằng tải, cập nhật liên tục và các tác vụ khác mà trước đây vẫn quản lý và thực hiện một cách thủ công.

Kể từ khi Kubernetes trở thành một dự án mã nguồn mở và được quản lý bởi Cloud Native Computing Foundation vào năm 2014, cộng đồng phát triển đã chấp nhận những lợi ích của nó mang lại trong việc điều phối các hệ thống trên nền tảng container. 

II. Kubernetes làm được gì?

Kubernetes có nhiều tính năng giúp sắp xếp các container trên nhiều máy chủ, tự động hóa việc quản lý  và tối đa hóa việc sử dụng tài nguyên qua đó tăng hiệu quả sử dụng cơ sở hạ tầng. Các tính năng quan trọng bao gồm:

  • Auto-scaling : Tự động chia tỷ lệ các ứng dụng được chứa trong vùng chứa và tài nguyên của chúng lên hoặc xuống dựa trên mức sử dụng
  • Quản lý vòng đời: Tự động hóa việc triển khai và cập nhật với khả năng:
    • Quay lại các phiên bản trước
    • Tạm dừng và tiếp tục triển khai
  • Mô hình khai báo (Declarative model). Khai báo môt trạng thái mong muốn, sau đó Kukernetes sẽ duy trì trạng thái đó ở chế độ nền. Có thể khôi phục lại trạng thái trên khi gặp bất kỳ lỗi nào.
  • Khả năng phục hồi và tự phục hồi: tự động sắp xếp, tự động khởi động lại, tự động sao chép và tự động mở rộng quy mô cung cấp khả năng tự phục hồi của ứng dụng
  • Lưu trữ liên tục: Khả năng gắn kết và thêm storage tự động.
  • Cân bằng tải: Kubernetes hỗ trợ nhiều tùy chọn cân bằng tải có thể giải quyết mọi yêu cầu triển khai đa dạng.
  • Hỗ trợ DevSecOps: DevSecOps là một phương pháp bảo mật nâng cao giúp đơn giản và tự động hóa các hoạt động container trên cloud, tích hợp bảo mật trong suốt vòng đời của container và cho phép cung cấp các phần phần mềm an toàn, chất lượng cao nhanh chóng hơn.

III. Kiến trúc Kubernetes

Các container đóng gói môt ứng dụng ở dạng di động và dể dàng triển khai. Kiến trúc của Kubernetes được thiết kế để chạy các ứng dụng được container hóa. Một cụm Kubernetes bao gồm ít nhất một control plane và ít nhất một node worker (thường là một máy chủ vật lý hoặc một server ảo hóa).

Đơn vị nhỏ nhất cho một ứng dụng chạy trong Kubernetes là Pod, bao gồm một hoặc nhiều container. Các Pod chạy trên node worker.

Các thành phần trong Kubernetes cụ thể như sau:

  1. Control Plane
    Đây là thành phần giám sát, quản lý toàn cụm Kubernetes và phản hồi các sự kiện của cụm. Chúng có thể thực hiện việc lập lịch, mở rộng quy mô hoặc khởi động lại một pod bị lỗi. Các thành phần trong Control Plane bao gồm:
    • kube-apiserver: đảm nhận công việc của Kubernetes API, đóng vai trò font-end cho Kubernetes control plane
      kube-apiserver được thiết kế để thay đổi quy mô theo chiêu ngang, tức là có thể triển khai nhiều kube-apiserver và chạy cân bằng tải.
    • etcd: một loại cơ sở dữ liệu dạng key-value có tính sẳn sàng cao được sử dụng để lưu dữ liệu của cụm Kubernetes.
    • kube-scheduler: đảm nhận công việc theo dõi các Pod mới được tạo. Dựa vào yêu cầu về tài nguyên, ràng buộc về phần cứng, quan hệ, vị trí dữ liệu,… kube-scheduler sẽ chỉ định Node mà Pod sẽ được triển khai lên.
    • kube-controller-manager: thành phần sẽ chạy các tiến trình điều khiển. Về mặt logic, mỗi bộ điều khiển (controller) là một quy trình riêng biệt, nhưng để giảm độ phức tạp, tất cả chúng đều được biên dịch thành một tẹp nhị phân và chạy trong một quy trình duy nhất. Một số loại bộ điều khiển:
      • Node controller: chịu trách nhiệm thông báo và phản hồi khi các Node gặp sự cố.
      • Job controller: Theo dõi các đối tượng là các tác vụ chạy một lần, sau đó tạo Pod để chạy các tác vụ đó đến khi hoàn thành.
      • Endpoints controller: tham gia vào đối tượng Endpoint (kết nối Service và Pod)
      • Service Account & Token controller: tạo tài khoản mặc định, các token access API cho các namespace mới.
    • cloud-controller-manager: trình quản lý bộ điều khiển dành riêng cho cloud. Cho phép bạn có thể liên kết cụm Kubernetes của mình với API của các nhà cung cấp dịch vụ Cloud.
      Bộ điều khiển có các thành phần phụ thuộc nhà cung cấp dịch vụ Cloud:
      • Node controller: Để kiểm tra nhà cung cấp đám mây để xác định một Node bị xóa sau khi không phản hồi
      • Route controller: Để thiết lập định tuyến trong hạ tầng Cloud
      • Service controller: Để tạo, cập nhật và xóa bộ cân bằng tải của của dịch vụ Cloud.
  2. Node:
    Node chạy trên mọi node, nó cung cấp môi trường và duy trì các pod đang chạy.
    • kubelet: nó là một agent chạy trên mọi node trong cluster. Nó đảm bảo các container đang chạy và hoạt động tốt trong Pod.
    • kube-proxy: đây là một proxy chạy trên mỗi Node trong cluster.
      kube-proxy duy trì các quy tắc mạng trên các node, các quy tắc này cho phép giao tiếp đến các Pod từ mạng bên trong hoặc bên ngoài cluster Kubernetes.
    • container runtime: làm phần mềm chịu trách nhiệm chạy các container.
  3. Các thành phần hỗ trợ khác: các thanh phần này sử dụng tài nguyên Kubernetes (DaemonSet, Deployment, v.v.) để triển khai các tính năng hỗ trợ cho cụm, một số thành phần tiêu biểu bao gồm:
    • DNS: tất cả các cluster Kubernetes đều phải có cụm DNS, cùng với các máy chủ DNS khác trong sử dụng trong hạ tầng, nó sẽ phục vụ các bản ghi DNS cho các dịch vụ chạy trên Kubernetes.
    • Web UI (Dashboard): một bảng điều khiển trên nền web hỗ trợ người dùng quản lý và khắc phục sử cố trên cluster Kubernetes.
    • Container Resource Monitoring: ghi lai số liệu giám sát các container theo chuỗi thời gian vào cơ sở dữ liệu trung tâm, đồng thời cung cấp giao diện người dùng để xem dữ liệu đó.
    • Cluster-lever loggging: chịu trách nhiệm lưu log của container vào kho log trung tâm kèm với giao diện tìm kiếm và duyệt log.

Tài liệu tham khảo:
https://kubernetes.io/docs/concepts/overview/components/
https://www.vmware.com/topics/glossary/content/kubernetes.html

Hướng dẫn copy dữ liệu với lệnh rsync thông qua kết nối SSH

I. Rsync

Rsync (remote sync) là công cụ đồng bộ file, thư mục của Linux. Nó sử dụng thuật toán khi copy dữ liệu sao cho dữ liệu phải copy là nhỏ nhất (chỉ copy những gì thay đổi giữa nguồn và gốc), khi đồng bộ nó giữ nguyên mọi thuộc tính của file, thư mục (từ chủ sở hữu, quyền truy cập file …). Mặc định, trên hầu hết các phiên bản hệ điều hành Linux đều cung cấp sẳn công cụ này.

  • Rsync nhanh hơn SCP vì Rsync sử dụng giao thức remote-update, chỉ transfer những dữ liệu thay đổi mà thôi.
  • Rsync tiết kiệm băng thông do sử dụng phương pháp nén và giải nén khi transfer.

II. Cài đặt và sử dụng Rsync

  1. Cài đặt Rsync:

    SSH vào server linux và tiến hành cài đặt bằng lệnh sau.

    • Trên RedHat/CentOS
      # yum install rsync -y
      # systemctl start rsyncd
      # systemctl enable rsyncd
    • Trên Debian/Ubuntu
      #apt-get install rsync -y


  2. Sử dụng RSYNC để copy dữ liệu thông qua kết nối SSH
    • Mô hình:
      • Source Host: Máy chủ gửi dữ liệu
      • Destination Host: Máy chủ nhận dữ liệu
    • Cú pháp chung:
      rsync -option source_file username@destination_host:/destination_folder
    • Chú thích:
      • rsync: Lệnh rsync thực hiện
      • -option: Các tùy chọn phụ
      • source_file: File/Thư mục cần copy
      • username@destination_host: tên user và IP/hostname (Ví dụ root@45.252.252.252)
      • /destination_folder: Thư mục đích cần copy đến.
    • Một số tùy chọn quan trọng trong rsync:
      • -v: hiển thị trạng thái kết quả
      • -r: copy toàn bộ dữ liệu, nhưng không giữ thông tin quyền, sở hữu của file và thư mục.
      • -a: copy toàn bộ dữ liệu, đồng thời giữ nguyên được tất cả các thông tin về quyền, sở hữu, liên kết,.. của thư mục và file.
      • -z: nén dữ liệu khi transfer, tiết kiệm băng thông tuy nhiên tốn thêm một chút thời gian
      • -h: hiển thị kết quả đồng bộ dữ liệu một cách dễ đọc
      • -e ‘ssh -p PORT’: Tùy chọn khi sử dụng port ssh riêng (Ví dụ máy Đích port SSH là 22 bạn sẽ sử dụng là -e ‘ssh -p 2222’)
      • –delete: xóa dữ liệu ở destination nếu source không tồn tại dữ liệu đó.
      • –exclude: loại trừ ra những dữ liệu không muốn truyền đi, nếu bạn cần loại ra nhiều file hoặc folder ở nhiều đường dẫn khác nhau thì mỗi cái bạn phải thêm –exclude tương ứng.
    • Ví dụ thực tế:

      Ở ví dụ này, chúng ta sẽ tiến hành chép dữ liệu wordpress từ thư mục /home/doamins/vannhieu.com ở server 103.27.238.62  đến thư mục /home/domains/vannhieu123.com trên server 103.27.238.61, các bước thực hiện như sau:

      • Đảm bảo rsync đã được cài đặt trên cả 2 server.
      • SSh vào server 103.27.238.62 và thực hiên lệnh:
        rsync -P -avz /home/domains/vannhieu.com/*  103.27.238.61:/home/domains/vannhieu123.com/

        Trong đó:

        • sync: lệnh đồng bộ
        • -avzh: Các option đi kèm (Bạn có thể xem chú thích các option ở trên)
        • /home/domains/vannhieu.com/* : Thư mục Nguồn, đồng bộ toàn bộ các file và thư mục trong thư mục vannhieu.com (Dấu * có nghĩa là tất cả)
        • 103.27.238.61: Máy Đích, máy mà đồng bộ file đến
        • /home/domains/vannhieu123.com/: Thư mục máy đích, các file sẽ được lưu tại đây.
      • Nhập thông tin password của server để bắt đầu copy dữ liệu
      • Sau khi copy dữ liệu xong

Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách cách copy dữ liệu với lệnh RSYNC thông qua kết nối SSH. Chúc Quý khách thành công!

Hướng dẫn sử dụng lệnh curl để download file

I. Cài đặt CURL trên Linux

  • Để cài đặt curl trên Debian / Ubuntu và các dẫn xuất, hãy nhập như sau
    # sudo apt install curl
  • Để cài đặt curl trên RHEL, CentOS, Fedora và các dẫn xuất, hãy nhập như sau:
    # sudo yum install curl
  • Để cài đặt curl trên OpenSUSE và các dẫn xuất, hãy nhập như sau:
    # sudo zipper install curl

II. Cách sử dụng

  • Cú pháp chung của lệnh Curl trong Linux như sau:
    # curl [options] [URL...]
  • Trong đó:
    • Tham số URL là bắt buộc.
    • Tham số OPTIONS thì có thể có hoặc không.
      URL là đường dẫn trỏ đến thư viện / mã nguồn trên internet, thường là đường dẫn các website.
  • Ví dụ: Lấy thông tin mã nguồn của website longvan.net
    # curl longvan.net
    Lệnh sẽ trả kết quả về là nội dung mã HTML của website. Nếu bạn không chỉ rõ sử dụng phương thức HTTP hay HTTPS thì nó sẽ lấy giá trị mặc định là HTTP.

III. Download file với lệnh CURL

Để tải xuống một tệp với curl, sử dụng tùy chọn -o hoặc -O, theo sau là URL vào tệp.

  • Tùy chọn chữ thường -o cho phép bạn chỉ định tên của tệp đã lưu. Ví dụ sau, file lưu lại sẽ có tên là linux.tar.xz
    # curl -o linux.tar.xz https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz
  • Với tuỳ chọn chữ Hoa là -O lưu tệp với tên tệp gốc của nó. Ví dụ sau sẽ lưu file với tên là linux-5.5.3.tar.xz
    # curl -O https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz

Ngoài ra:

  • Với curl, bạn cũng có thể tải xuống các tệp từ máy chủ FTP được bảo vệ bằng mật khẩu, Ví dụ:
    #curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
  • Khi được sử dụng với tùy chọn -I curl sẽ hiển thị các tiêu đề HTTP của một URL đã cho

Như vậy, Long Vân đã hướng dẫn Quý khách cách sử dụng công cụ CURL để download file. Chúc quý khách thành công !

Sử dụng phần mềm PuTTY để truy cập SSH vào server

  1. Hướng dẫn cài đăt

    • Truy cập vào trang chủ hoặc trực tiếp đường dẫn dưới đây để tải phiên bản PuTTy mới nhất
      https://www.chiark.greenend.org.uk/~sgtatham/putty/
    • Chọn phiên bản tương tích
    • Sau khi tải về tiếp tục install như một ứng dụng thông thường.
  2. Sử dụng Putty để SSH tới server

    • Bước 1: Mở PuTTY SSH client.
    • Bước 2: Nhập thông tin Host Name và Port (hình dưới), và nhấn Open để thực hiện kết nối.
    • Bước 3: Nhập thông tin truy cập với:
      Dòng login as:  là nơi bạn nhập SSH username, và nhấn Enter.
      Tiếp theo là nhập thông tin mật khẩu và nhấn Enter để login vào server.

      Lưu ý:

      • Màn hình Putty sẽ không hiển thị bất bì ký tự gì khi nhập password, bạn chỉ cần nhập đúng password và nhấn Enter.
      • Trong trường hợp copy và paste password, bạn chỉ cần rê chuột vào màn hình chính của PuTTY và nhấn right-click, sau đó nhấn Enter.

Như vậy, Long Vân đã hướng dẫn Quý khách sử dụng PuTTY để kết nối SSH đến server linux. Chúc Quý khách thành công !

Hướng dẫn cài đặt Node Exporter trên Linux

  1. Bước 1: Tạo mới user sử dụng cho node exporter, thực hiện lệnh sau:
    # useradd -rs /bin/false nodeusr

    User mới được tạo có tên là nodeusr

  2. Bước 2: Download file exporter về máy chủ bằng lệnh sau:
    # wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0-rc.0/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
  3. Bước 3: Giải nén và chuyển file chạy đến thư mục /usr/local/bin
    # tar -xzvf node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
    # mv node_exporter-1.4.0-rc.0.linux-amd64/node_exporter /usr/local/bin/

  4. Bước 4: Tạo mới file systemd cho node_exporter để chay như một service với lệnh sau:
    vi /etc/systemd/system/node_exporter.service

    Thiết lập nội dung như sau và lưu lại:

    [Unit]
    Description=Node Exporter
    After=network.target

    [Service]
    User=nodeusr
    Group=nodeusr
    Type=simple
    ExecStart=/usr/local/bin/node_exporter

    [Install]
    WantedBy=multi-user.target
  5. Bước 5: Tải lại cấu hình systemd và start services node_exporter
    # systemctl daemon-reload
    # systemctl start node_exporter
    # systemctl enable node_exporter
    # systemctl status node_exporter

  6. Bước 6: Mở port node exporter (9100) trên Firewall
    • Ubuntu: thực hiện lệnh sau:
      # sudo ufw allow 9100
      # ufw status verbose

    • CentOS: thực hiện lệnh sau:
      # firewall-cmd --zone=public --add-port=9100/tcp --permanent
      # firewall-cmd --reload
      # firewall-cmd --list-all

    • Lưu ý: Với các server nằm bên trong mạng LAN cần public ra ngoài internet, quản trị viên phải NAT thêm port và cấu hình mở port trên firewall của hệ thống.
  7. Bước 8: Truy cập trang web  http://ip-address:9100/metrics sẽ thấy được metrics của server như sau

Như vậy, Long Vân đã hoàn thành hướng dẫn cài đặt Node Exporter trên hệ điều hành Linux. Chúc Quý khách thành công !

Hướng dẫn cài đặt cấu hình UFW trên Ubuntu

I. Hướng dẫn cài đăt:

Thông thường ufw sẽ được cài đặt mặc định trên hệ điều hành Ubuntu. Thực hiện lệnh sau để kiểm tra:

# ufw version

Trong một số trường hợp, nếu chưa có ufw, Quý khách có thể thực hiện theo các thao tác dưới đây.

  1. Bước 1: Truy cập đến server và cập nhật hệ thống và kiểm tra cài đặt
    # sudo apt update
    # sudo apt upgrade
  2. Bước 2: Cài đặt ufw
    • Chạy lệnh cài đăt ufw
      # sudo apt-get install ufw
      

  3. Bước 3: Kiểm tra hoạt động
    • Nếu kết quả kiểm tra ok thì quá trình cài đặt ufw đã hoàn thành.

II. Hướng dẫn kích hoạt UFW trên server:

  • Kích hoạt UFW sau khi cài đặt
    # sudo ufw enable
  • Kiểm tra khi kích hoạt UFW
    # sudo ufw status
  • Khôi phục firewall UFW về cấu hình mặc định
    # sudo ufw reset

III. Hướng dẫn cấu hình UFW:

  1. Cấu hình rule mặc định:
    • Sử dụng lệnh sudo ufw status verbose để kiểm tra cấu hình firewall mặc định. Bao gồm:
      • Chặn toàn bộ kết nối đến : deny (incoming)
      • Cho phép truy cập ra bên ngoài : allow (outgoing)
      • Chặn cấu hình routed: disable (routed)
    • Để điều chỉnh cấu hình cấu hình mặc định, thực hiện lệnh sau:
      # sudo ufw default [policy] [chain]

      Ví dụ: để cho phép truy cập từ bên ngoài

      # sudo ufw default allow incoming
  2. Cho phép các port cần truy cập vào server
    • Mặc định firewall ufw sẽ chặn toàn bộ kết nối đến server.
    • Để thực hiện mở một port (cổng) bất kỳ bạn có thể thực hiện cú pháp lệnh như sau:
      # sudo ufw allow [port]/[protocol]

      Ví dụ : mở các port 80, 443, 3306 và 8080

  3. Chặn truy cập đến một port.
    • Các port không được allow sẽ tự động chặn kết nối từ bên ngoài.
    • Ngoài ra, để chặn một port cụ thể có thể sử dụng cú pháp với tùy chọn deny như sau:
      # sudo ufw deny [port]/[protocol]

      Ví dụ : mình sẽ đóng port 80, 443

  4. Ngoài ra ufw cho phép thực hiện lệnh allow và deny với loại service cụ thể. Ví dụ: sử dụng mysql thay vì mởi port 3306, sử dụng http hay https thay vì các port 80, 443, cụ thể:

    # sudo ufw deny mysql
    # sudo ufw allow http
    # sudo ufw allow https

  5. Cho phép môt IP hoặc một range IP truy cập đến server.
    • Cho phép một truy cập
      # sudo ufw allow from $Your_IP

      Ví dụ:  cho phép, mở IP 172.20.1.125 trên ufw như sau.

      # sudo ufw allow from 172.20.1.125

    • Chặn truy cập từ một IP
      sudo ufw deny from $Your_IP

      Ví dụ:  chặn truy cập từ IP 172.20.1.126 như sau.

      sudo ufw deny from 172.20.1.126

  6. Cho phép IP kèm port nhất định vào server

    • Lệnh cho phép một IP hoặc một range IP truy cập đến một Port cụ thể trên server:
    • Cú pháp:
      sudo ufw allow from [ip/range-ip] to any port [port-number]
    • Ví dụ: câu lệnh cho phép IP 192.168.72.1 truy cập đến port 22 và 3306
      sudo ufw allow from 192.168.72.1 to any port 22
      sudo ufw allow from 192.168.72.1 to any port 3306

  7. Xóa bỏ rule firewall cấu hình trước đó.
    • Kiểm tra các rule hiện có với số định danh. Lệnh:
      sudo ufw status numbered

    • Xác định chính xác rule muốn xóa với số định danh tương ứng
    • Thực hiện lệnh xóa rule với lệnh:
      sudo ufw delele [number]

      Ví dụ: thực hiện xóa rule cho phép truy cập đến port SSH (22) với lệnh

      sudo ufw delete 7

  8. Bật hoặc tắt ipv6 trên firewal UFW

    • Trong trường hợp server sử dụng IPv6, cần đảm bảo rằng IPv6 được bật trong UFW. 
    • Mở file cấu hình UFW ở /etc/default/ufw và tiến hành điều chỉnh.

      Nếu dòng IPV6=no bạn hãy chuyển sang YES để kích hoạt và ngược lại nếu muốn tắt thì chọn no.

    • Sau cùng sử dụng lệnh sau để reload lại cấu hình
      # sudo ufw reload

Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách cách cài đặt và cấu hình firewall UFW, chúc Quý khách thành công !

Hướng dẫn cài đặt và sử dụng RCLONE để kết nối đến S3 trên Ubuntu 22.04

I. Tổng quan

Rclone là một chương trình dòng lệnh, mã nguồn mở, đa luồng để quản lí lưu trữ trên cloud hoặc các phương thức lưu trữ có độ trễ cao khác. Nó đi kèm với các chức năng như rsync, truyền tệp, mã hóa, lưu cache, union mount, mount. Theo trang web chính thứ, Rclone hiện hỗ trợ đến 50 backends bao gồm cả Amazone và Google Drive.

Rclone thường được biết với 2 câu lệnh thường dùng là rclone sync và rclone mount , cho phép người dùng tương tác trực tiếp với dữ liệu trên bộ nhớ đám mây như chính trên máy của họ bằng các công cụ có sẵn trên máy. Việc truyền dữ liệu thông qua rclone được tối ưu hóa để có thể truyền tốt hơn qua các kết nối với độ trễ cao.

Trong nội dung bài viết này, Long Vân sẽ hướng dẫn bạn cách cài đặt và sử dụng Rcloud để kết nối đến S3 Cloud Storage của Long Vân, môi trường thực hiện trên trên điều hành Ubuntu 22.04.

II. Cài đặt Rclone trên Ubuntu 22.04

Việc cài đặt Rlone tương đối dể dang với hai bước sau:

  1. Bước 1: Update hệ điều hành với hai lệnh sau
    # apt-get update
    # apt-get upgrade 
  2. Bước 2: Chạy lệnh sau để cài đặt Rclone :
    # curl https://rclone.org/install.sh | sudo bash

III. Cấu hình Rclone sau khi cài đặt xong

  1. Thực hiện lênh sau để tiến hành cài đặt
    # rclone config 
  2. Chọn n “New remote ” để tạo một kết nối mới.
  3. Sau đó khai báo name> s3 ( ở đây s3 là tên mình đặt có thể dùng tên khác theo ý muốn).
  4. Chọn kiểu storage kết nối là “Amazon S3 Compliant …” tương ứng với tùy chọn số 5
  5. Tiếp tục chọn đơn vị cung cấp S3 Storage là “Any other S3 compatible provider“, tùy phiên bản rclone mà các tùy chọn này có thể có số thứ tự khác nhau.
  6. Nhấn 1 để chọn cách nhập thông tin xác thực, sau đó tiếp tục nhập access_key và secret_access_key đã được cung cấp.

  7. Ở tùy chọn region, nhấn chọn 1. Sau đó tiếp tục nhập endpoint tương ứng của dịch vụ S3 Cloud Storage: s3-hcm-r1.longvan.net

  8. Ở tùy chọn location_constraint, có thể nhập thông tin địa điểm hoặc bỏ qua.
  9. Trong tùy chọn acl (phân quyền truy cập), chọn 1 – FULL CONTROLL (private)

  10. Sau đó, rclone sẽ hỏi bạn về việc tùy chỉnh các cấu hình nâng cao hơn. Trong trường hợp cần cấu hình chi tiết, bạn có thể chọn y để tiến tục, hoặc nhấn n để hoàn thành phần cấu hình.
  11. Cuối cùng Rclone sẽ show lại các thông tin đã cấu hình. Nhấn Enter, hoặc y để hoàn thành.
    •  

Như vậy, trong bài viết này Long Vân đã hoàn thành hướng dẫn các bạn cài đặt cài rclone và sử dụng nó để kết nối đến S3 Cloud Storage của Long Vân. Chúc các bạn thành công.

 

Hướng dẫn cài đặt OpenVPN trên Ubuntu 20.04

I. OpenVPN là gì?

OpenVPN được biết tới là chương trình mã nguồn mở VPN hoàn toàn miễn phí. OpenVPN cũng được xem là giải pháp tốt nhất cho những người muốn có 1 kết nối an toàn và bảo mật giữa 2 hệ thống mạng với nhau.

Với OpenVPN cho phép các kết nối point to point an toàn trong các cấu hình được định tuyến hoặc bắc cầu và các phương tiện truy cập từ xa. Nó sử dụng giao thức bảo mật tùy chỉnh dựa trên SSL/TLS để thiết lập kết nối được mã hóa trên Internet.

II. Cài đặt OpenVPN

Yêu cầu:

  • Máy chủ Linux (Ở bài viết này mình sẽ cài đặt tren Ubuntu bản 20.04)
  • IP Public

Các bước thực hiện:

  1. Bước 1: Cập nhật hệ thống
    Chạy lệnh update để cập nhật mới hệ thống.
    root@root:~# sudo apt update

    Tiếp theo chạy lênh upgrade để cập nhật phiên bản mới nhất

    root@root:~# sudo apt upgrade
  2. Bước 2: Tải và cài đặt OpenVPN từ Script
    Đảm bảo server đã có sẳn wget, hoặc Quý khách có thể cài đặt bằng lệnh sau.
    root@root:~# apt install wget

    Tiến hành tải file cài file cài đặt.

    root@root:~# wget https://git.io/vpn -O openvpn-ubuntu-install.sh

  3. Bước 3: Tiến hành cài đặt
    • Cấp quyền run cho file cài đặt vừa download về
      root@root:~# chmod +x openvpn-ubuntu-install.sh
    • Thực hiện cài đặt với lệnh
      root@root:~# bash openvpn-ubuntu-install.sh
    • Nhập các tùy chọn theo hướng dẫn
  4. Quá trình cài đặt hoàn thành.

III. Quản lý User trong Open VPN server

  1. Tạo thêm User
    • Để tạo thêm User VPN, tiếp tục chạy lệnh
      root@root:~# bash openvpn-ubuntu-install.sh
    • Trong giao diện quản lý Open VPN, chọn tùy chọn 1) Add a new client.
    • Sau đó nhập tên của User cần tạo
    • Chờ quá trình tạo user hoàn thành.
  2. Trong giao diện quản lý Open VPN ở trên cũng có thể thực hiện việc xóa những user không còn sử dụng.

III. Cài đặt VPN Client

  1. Bước 1: Download và cài đặt ứng dụng VPN Client từ https://openvpn.net/downloads/openvpn-connect-v3-windows.msi 
  2. Bước 2: Download file OVPN, có thể thực hiện bằng hai cách:
    1. Cách 1: Sử dụng WinSCP hoặc một ứng dụng SSH có hỗ trợ download file, để download file OVPN trong folder /root/
    2. Cách 2: mở truy cập và download thông qua giao diện web.
      Lưu ý: việc mở truy cập để download file OVPN thông qua giao diện web sẽ không an toàn. Do đó, cần thiết phải giới hạn truy cập (cho phép 1 IP truy cập vào port 8000) trên firewall trước khi tiến hành.
      • Thực hiện cho phép truy cập trên firewall đối với port 8000
        root@root:~# sudo ufw allow from [IP_address] to any port 8000  

        Với [IP_address] là IP bạn đang sử dụng.

      • Bật HTTP với Open VPN bằng lệnh
        root@root:~#  cd /root && python3 -m http.server
      • Lúc này ta sẽ truy cập web bằng server-ip:8000 và tải về máy file OVPN.
  3. Bước 3: Di chuyển file OVPN vào bên trong folder C:Program FilesOpenVPN Connect trên máy client.
  4. Bước 4: Import file config bằng cách chọn File > Browse, chọn file .opvn vừa rồi, sau đó nhấn Open

  5. Bước 5: Trong cửa sổ làm việc, nhấn nhấn CONNECT để kết nối VPN.

Như vậy, Long Vân đã hoàn thành hướng dẫn cài đặt và cấu hình Open VPN trên server Ubuntu 22.04. Chúc Quý khách thành công!

 

Hướng dẫn cấu hình OpenVPN trên firewall pfSense

System-Cert. Manager

I. Tổng quan:

OpenVPN là một hệ thống mạng riêng ảo (VPN) thực hiện các kỹ thuật tạo ra các kết nối point-to-point
hoặc site-to-site an toàn. Cho phép các bên xác thực với nhau bằng cách sử dụng khóa chia sẻ (pre-shared key), chứng chỉ (certificates) hoặc tên người dùng/mật khẩu. Khi sử dụng trong cấu hình multi client-server, nó cho phép máy chủ phát hành một chứng chỉ xác thực cho mỗi client. Nó sử dụng thư viện mã hóa OpenSSL cũng như giao thức TLS một cách rộng rãi đồng thời có nhiều tính năng kiểm soát và bảo mật.

Trong bài viết này, Long Vân sẽ hướng dẫn các bạn cấu hình OpenVPN trên firewall Pfsense.

Một số lưu ý:

  • Đầu tiên cần đảm bảo firewall pfSense đã được cài đặt và hoạt động với các interface bao gồm WAN và LAN.
  • Một số thiết lập không được đề cập đến trong hướng dẫn, các bạn có thể để mặc định.
  • Hướng dẫn này sẽ sử dụng cả hai phương thức xác thực bao gồm mật khẩu và chứng chỉ.

III. Cấu hình trên pfsense server.

  1. Bước 1: Tạo một Certificate Authority – CA
    • Vào menu System > Cert. Manager
      System-Cert. Manager
    • Nhấn phím Add để tạo mới một CA.
      CAs
    • Nhập tên nhận diện cho chứng chỉ CA.
    • Đặt phương thức (Method) là Create an internal Certificate Authority
    • Chọn Key Type. (RSA, ECDSA ..)
    • Đặt độ dài của khóa Key length (2048, 4096, …)
    • Chọn thuật toán mã hóa Digest Algorithm (sha256, sha512, …)
    • Đặt tên chung Common Name (internal-ca, own-ca, …)
    • Save để lưu, như vậy CA đã được tạo hoàn tất.
  2. Bước 2: Tạo chứng chỉ cho server – Server Certificate

    • Vào menu System > Cert. Manager.
    • Truy cập tab Certificates ở sub-menu
    • Chọn Add/Sign ở bên tay phải dưới cùng
    • Điều chỉnh phương thức (Method) là  Create an internal Certificate Authority.
    • Nhâp Descriptive name.
    • Đặt Key length và Digest Algorithm giống với CA đã tạo
    • Chỉnh thời hạn Lifetime365 ngày hoặc tùy chỉnh không quá 398 ngày.
    • Đặt Common Name.
    • Thiết đặt Certificate TypeServer Certificate
    • Save để lưu, như vậy Server Certificate đã được tạo hoàn tất.
  3. Bước 3: Tạo user OpenVPN
    • Vào menu System > User Manager
    • Chọn nút Add và nhập Username Password cho người dùng của bạn
    • Nhấn Save để lưu, như vậy người dùng OpenVPN đã được tạo hoàn tất sau đó sẽ được chuyển về giao diện ban đầu.
    • Thiết lập phương thức xác thực theo chứng chỉ hoặc mật khẩu, có thể chọn cả hai (icon edit chì để chỉnh sửa)
    • Chọn Add -> User Certificate và nhập bổ sung
    • Đặt phương thức (Method -> Create an internal Certificate)
    • Chọn Key length, Type và Digest Algorithm giống với CA đã tạo trước đó.
    • Đặt thời gian hết hạn Lifetime 365 ngày.
    • Kiểm tra Certificate Type được chọn là chứng chỉ người vừa tạo (User Certificate)
    • Save để lưu và hoàn tất liên kết với chứng chỉ người dùng với OpenVPN user (User Certificate – OpenVPN user)
    • Ấn Save vậy đã hoàn tất thiết lập tạo tài khoản người dùng cho OpenVPN.
  4. Bước 4: Tạo máy chủ VPN – OpenVPN Server
    • Chọn thẻ VPNOpenVPN.
    • Chọn Add
      • Thông tin chung
        1. Server mode – chọn Remote Access (SSL/TLS + User Auth)
        2. Local port , chọn port kết nối, trong bài hướng dẫn này là 1194
        3. Nhập nội dung mô tả – Description
      • Cài đặt mật mã – Cryptographic Settings
        1. Chọn sử dụng TLS Key và tự động bật Automatically generate a TLS Key
        2. Trong Peer Certificate Authority chọn CA đã tạo trước đó.
        3. Chọn Server Certificate đã tạo.
        4. Chọn 4096 cho DH Parameter Length
        5. Thiết lập Auth digest algorithm RSA-SHA512 (512-bit)

      • Cài đặt đường hầm VPN – Tunnel Setting
        1. Tạo subnet trong IPv4 Tunnel Network 10.0.2.0/8
        2. Để trống IPv6 Tunnel Network
        3. Bật cổng chuyển hướng Redirect IPv4 Gateway
      • Cấu hình nâng cao – Advenced Configuration
        1. Bật UDP Fast I/O
        2. Chọn IPv4 Only trong Gateway creation. chọn Both nếu sử dụng IPv4, IPv6
    • Nhấn Save để lưu lai để cập nhật cấu hình
  5. Bước 5: Xác minh cấu hình máy chủ
    • Chọn menu Status > System Logs
    • Chọn tab OpenVPN
    • Kiểm tra log sẽ hiển thị Initialization Sequence Completed nếu đã hoàn thành.
  6. Bước 6: Cấu hình cho phép truy cập trong VPN
    • Chọn menu Firewall > Rules
    • Chọn OpenVPN
    • Chọn Add đầu tiên để thêm.
    • Address Family chọn chỉ IPv4
    • Protocol chọn Any
    • Source chọn Network với range IP đã thiết lập ở bước 4
    • Nhập mô tả, nhấn SaveAppy Changes để lưu lại cấu hình.
  7. Bước 7: Cấu hình cho phép truy cập vào VPN
    • Chọn menu Firewall > Rules
    • Chọn tab WAN
    • Nhấn chọn Add để thêm rule mới
    • Thiết lập Address FamilyIPv4
    • Chọn Source any
    • Chọn Protocol là UDP
    • Với Destination Port Range nhập port OpenVPN đã thiết lập trước đó là 1194
    • Nhập mô tả, nhấn Save Apply Changes để lưu lại cấu hình
  8.  Bước 8: Cài đặt tiện ích OpenVPN Client Export Utility, là tiện ích hỗ trợ export ra VPN Client

    • Chọn System > Package Manager
    • chọn Available Packages trong sub-menu
    • Tìm tiện ích mở rộng openvpn-client-export và chọn install để cài đặt
    • Nhấn chọn confirm xác nhận cài đặt.
    • Khi cài đặt hoàn thành sẽ hiển thị Success trong giao diện Package Installer
  9. Bước 9: Export gói cài đặt VPN Client
    • Chọn VPN > OpenVPN
    • Chọn Client Export ở sub-menu
    • Chọn đúng máy chủ OpenVPN cạnh Remote Access Server
    • Nếu sử dụng Dynamic DNS để truy cập mạng WAN pfSense, chọn Other và chọn Host Name Resolution (Thiết lập này cho phép truy cập mạng WAN pfSense bằng tên thay vì bằng IP, sẽ không mất quyền truy cập máy chủ OpenVPN nếu ISP thay đổi IP hay mạng WAN
    • Nếu không sử dụng hãy chọn Host Name Resulation thành Interface IP Address

    • Kéo xuống dưới đến vị trí user muốn download file cài đặt VPN Client, và chọn tải về file cài đặt phù hợp.
  10. Bước 10: Kiểm tra sử dụng kết nối OpenVPN
    • Chạy cài đặt file VPN Client đã download về.
    • Sau khi kết nối thành công tới OpenVPN

    • Thông tin network – khi kết nối đến OpenVPN

Như vậy Long Vân đã hoàn tất hướng dẫn Quý khách cấu hình OpenVPN trên firewall pfSense, Chúc Qúy khách thành công!

Triển khai server Docker dễ dàng với CasaOS

I. CasaOS là gì?

CasaOS là một phần mềm mã nguồn mở được xây dựng trên hệ sinh thái docker. Nó có thể đơn giản hóa quá trình triển khai và quản lý ứng dụng container.

CasaOS được phát hành bởi IceWhale Technology vào năm 2021. CasaOS nhằm mục đích xác định lại trải nghiệm kỹ thuật số đám mây riêng cho người dùng và nhà phát triển thông qua dân chủ hóa dữ liệu và cho phép mọi người đưa mục tiêu đó lên một quy mô mới.

II. Các tính năng của CasaOS

  • Quản lý tất các tệp trong FILES.
  • Chia sẻ file qua mạng.
  • Dễ dàng cài đặt và quản lý nhiều các docker container.
  • Tự do thêm ổ đĩa và không gian mở rộng.
  • Bảo vệ dữ liệu riêng tư của bạn

III. Triển khai CasaOS

  1. Truy cập SSH vào server và chạy lệnh sau:
    curl -fsSL https://get.casaos.io | sudo bash
  2. Quá trình cài đặt hoàn toàn tự động. Sau khi hoàn thành, truy cập và đường dẫn http://[ip-address]  và tạo user đăng nhập.
  3. Giao diện của CasaOS khi truy cập thành công.
  4. Đến đây, Quý khách đã có thể sử dụng các chức năng trên CasaOS cũng như cài đặt thêm các ứng dụng từ App Store sẳn có.

IV. Cài đặt Nextcloud trên CasaOS

  1. Trong giao diện làm việc của CasaOS, truy cập App Store và tìm ứng dụng Nextcloud, nhấn install để cài đặt.
  2. Sau khi hoàn thành việc cài đặt, biểu tượng Nextcloud sẽ hiển thị trong phần Apps.
  3. Chọn vào biểu tượng Nextcloud để truy cập ứng dụng.

Quý khách có thể tham khảo thêm tài liệu về ứng dụng tại:

  • https://casaos.io/
  • https://wiki.casaos.io/

Như vậy, Long Vân đã hoàn thành giới thiệu cho Quý khách về ứng dụng CasaOS. Hy vọng bài viết sẽ hữu ích đối với hệ thống của Quý khách. Chúc Quý khách thành công.