Menu

8/16/25

Tạo ssl local cho ESXI 8 Host



Để thay thế chứng chỉ SSL mặc định của ESXi bằng một chứng chỉ đáng tin cậy hơn, bạn cần thực hiện các bước sau: 

1. Chuẩn bị

  • Tạo CSR (Certificate Signing Request): CSR là một tệp tin chứa thông tin của máy chủ và khóa công khai (public key). Bạn cần sử dụng một công cụ như OpenSSL để tạo CSR.
  • Có CA (Certificate Authority): Bạn có thể sử dụng một CA nội bộ (internal CA) của công ty hoặc một CA công cộng (public CA) như Let's Encrypt, DigiCert, GlobalSign, v.v. để ký (sign) CSR. >> Mình đã xây dựng CA server trên windows 2019
  • Sử dụng SSH/Shell để tải chứng chỉ và khóa lên ESXi.

2. Các bước thực hiện

  1. Kết nối SSH vào máy chủ ESXi: Bật dịch vụ SSH trên ESXi từ giao diện web hoặc console.
  2. Tạo thư mục làm việc: mkdir /tmp/certs
  3. Tạo CSR và Private Key:

openssl req -new -newkey rsa:2048 -nodes -keyout /tmp/certs/esxi.key -out /tmp/certs/esxi.csr -config san.cnf

Trong đó, nội dung file san.cnf như sau:

[req]

distinguished_name = req_distinguished_name

req_extensions = v3_req

prompt = no


[req_distinguished_name]

C = VN

ST = Binh Duong

L = Ben Cat

O = Homelab

OU = IT

CN = esxi01.homelab.local

 

[v3_req]

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

extendedKeyUsage = serverAuth

subjectAltName = @alt_names

 

[alt_names]

DNS.1 = esxi01.homelab.local

IP.1 = 192.168.1.111

    • Các thông tin cần điền khi tạo CSR

      1. Country Name (2 letter code): Tên quốc gia viết tắt bằng 2 chữ cái.
        • Ví dụ: VN
      2. State or Province Name (full name): Tên tỉnh hoặc thành phố.
        • Ví dụ: Binh Duong
      3. Locality Name (eg, city): Tên địa phương (thành phố).
        • Ví dụ: Ben Cat
      4. Organization Name (eg, company): Tên tổ chức hoặc công ty.
        • Ví dụ: Homelab
      5. Organizational Unit Name (eg, section): Tên bộ phận.
        • Ví dụ: IT
      6. Common Name (CN): Đây là trường quan trọng nhất. Bạn phải nhập tên miền đầy đủ (FQDN) của host ESXi. Nếu bạn truy cập host bằng tên esxi01.homelab.local, thì đây chính là Common Name.
        • Ví dụ: esxi01.homelab.local
      7. Email Address: Địa chỉ email liên hệ.
        • Ví dụ: admin@homelab.local
      8. A challenge password: Mật khẩu tùy chọn để bảo vệ CSR. Bạn có thể để trống.
      9. An optional company name: Tên công ty tùy chọn. Bạn có thể để trống.
  1. Gửi CSR tới CA:
    • Gửi file esxi.csr cho CA nội bộ hoặc công cộng để ký.
    • Sau khi CA ký, bạn sẽ nhận được một file chứng chỉ (thường có định dạng .crt).
  2. Tải chứng chỉ và khóa lên ESXi:
    • Sử dụng SCP hoặc WinSCP/FileZilla để tải file esxi.key (private key) và file chứng chỉ đã được ký (ví dụ: esxi.cer) vào thư mục /tmp/certs trên ESXi.
  3. Thay thế chứng chỉ:
    • Chuyển đến thư mục chứa chứng chỉ: cd /etc/vmware/ssl
    • Sao lưu chứng chỉ cũ: mv rui.crt rui.crt.bak và mv rui.key rui.key.bak
    • Copy chứng chỉ mới:

cp /tmp/certs/esxi.cer rui.crt

cp /tmp/certs/esxi.key rui.key

  1. Đặt lại quyền (Permissions):

chmod 400 rui.key - Đảm bảo khóa riêng được bảo mật tối đa, chỉ có chủ sở hữu mới được đọc.

chmod 644 rui.crt - Cho phép mọi người đọc file chứng chỉ công khai, nhưng chỉ chủ sở hữu mới có quyền thay đổi.

  1. Khởi động lại các dịch vụ:

/etc/init.d/hostd restart

/etc/init.d/vpxa restart

Lệnh này sẽ khởi động lại các dịch vụ quản lý trên ESXi và áp dụng chứng chỉ mới.

    • Tải Chứng chỉ Root CA

      1. Mở trình duyệt web trên máy tính Windows client.

      2. Truy cập vào trang web cấp phát chứng chỉ của CA Server: http://<IP_hoặc_Tên_Máy_Chủ_CA>/certsrv.

      3. Trên trang web, chọn Download a CA certificate, certificate chain, or CRL.

      4. Ở màn hình tiếp theo, chọn Download CA certificate để tải file chứng chỉ gốc (.cer).


      Cài đặt Chứng chỉ Root CA trên máy client

      1. Mở file .cer vừa tải về. Một cửa sổ Certificate sẽ hiện ra.

      2. Nhấn vào nút Install Certificate....

      3. Chọn Local Machine để chứng chỉ được cài đặt cho tất cả người dùng trên máy tính. Nhấn Next.

      4. Ở màn hình Certificate Store, chọn Place all certificates in the following store.

      5. Nhấn Browse..., sau đó chọn Trusted Root Certification Authorities.

      6. Nhấn OK, sau đó Next.

      7. Nhấn Finish để hoàn tất quá trình cài đặt. 

3. Kiểm tra kết quả

  • Truy cập lại giao diện web của ESXi.
  • Trình duyệt sẽ hiển thị biểu tượng khóa an toàn (padlock) và không còn cảnh báo về chứng chỉ không đáng tin cậy nữa.
  • Nhấp vào biểu tượng khóa để xem chi tiết chứng chỉ, bạn sẽ thấy chứng chỉ của bạn đã được CA đáng tin cậy ký.

8/15/25

Dựng CA server chứng thực ssl local cho EXSI, Vcenter

 



Bước 1: Cài đặt và cấu hình Standalone CA

  1. Mở Server Manager:

    • Sau khi đăng nhập vào máy chủ Windows Server 2019, mở Server Manager từ thanh Start Menu.

  2. Thêm Roles và Features:

    • Chọn Manage ở góc trên cùng bên phải, sau đó chọn Add Roles and Features.

    • Cửa sổ Before You Begin hiện ra, bạn nhấn Next.

    • Chọn Role-based or feature-based installation và nhấn Next.

    • Chọn máy chủ hiện tại từ danh sách Server Selection và nhấn Next.

  3. Chọn Role

    • Tại màn hình Server Roles, tìm và tích chọn vào Active Directory Certificate Services.

    • Khi có một cửa sổ pop-up hiện ra yêu cầu thêm các tính năng liên quan, bạn nhấn Add Features.

    • Tiếp tục nhấn Next.

  4. Chọn Role Services

    • Tại màn hình Role Services, bạn sẽ thấy nhiều tùy chọn.

    • Hãy tích chọn vào Certificate AuthorityCertificate Authority Web Enrollment. Đây là hai dịch vụ cần thiết để có thể yêu cầu chứng chỉ qua trình duyệt web.

    • Nhấn Next và sau đó Install để bắt đầu quá trình cài đặt.


Bước 2: Cấu hình Standalone CA và Web Enrollment

Sau khi cài đặt xong, bạn sẽ thấy một biểu tượng cảnh báo màu vàng trên thanh công cụ của Server Manager.

  1. Bắt đầu cấu hình:

    • Nhấp vào biểu tượng cảnh báo và chọn Configure Active Directory Certificate Services.

  2. Chọn Role Service to Configure:

    • Tại màn hình này, bạn sẽ thấy danh sách các dịch vụ bạn đã cài đặt. Tích chọn cả Certificate AuthorityCertificate Authority Web Enrollment. Nhấn Next.

  3. Setup Type:

    • Đây là bước quan trọng nhất. Bạn phải chọn Standalone CA thay vì Enterprise CA.

    • Nhấn Next.

  4. CA Type:

    • Chọn Root CA. Vì đây là CA duy nhất và cao nhất trong hệ thống của bạn.

    • Nhấn Next.

  5. Private Key:

    • Chọn Create a new private key để tạo khóa riêng mới.

    • Nhấn Next.

  6. Cryptography for CA:

    • Giữ nguyên các cài đặt mặc định: CSP (Cryptographic Service Provider), Hash Algorithm (khuyến nghị SHA256), và Key length (khuyến nghị 2048 hoặc 4096).

    • Nhấn Next.

  7. CA Name:

    • Nhập tên cho CA của bạn. Ví dụ: homelab-CA. Tên này sẽ xuất hiện trên tất cả các chứng chỉ do CA này cấp.

    • Nhấn Next.

  8. Validity Period:

    • Đặt thời gian hiệu lực cho chứng chỉ Root CA (ví dụ: 5 năm).

    • Nhấn Next.

  9. Certificate Database:

    • Giữ nguyên vị trí lưu trữ mặc định.

    • Nhấn Next.

  10. Confirmation:

    • Kiểm tra lại tất cả các cài đặt và nhấn Configure để hoàn tất.

  11.  Xuất chứng chỉ gốc (Root CA) để sau này cài đặt cho các máy client

    • Mở Certification Authority từ Administrative Tools trên máy chủ CA.

    • Nhấp chuột phải vào tên CA, chọn Properties, sau đó View Certificate.

    • Trong tab Details, nhấp vào Copy to File để xuất chứng chỉ gốc dưới dạng RootCA_Homelab.cer.

    • Chuyển file này sang các máy client (máy tính cá nhân, laptop) và cài đặt nó vào kho lưu trữ Trusted Root Certification Authorities.


Bước 3: Đăng ký chứng chỉ cho vCenter và ESXi

Sau khi CA Server đã hoạt động, bạn sẽ sử dụng trang web Certificate Authority Web Enrollment để tạo và cấp chứng chỉ.

  1. Trên vCenter/ESXi:

    • Nếu bạn muốn tạo CSR thông qua giao diện web, bạn sẽ cần thực hiện các bước sau:

      1. Đăng nhập vào vCenter Server qua trình duyệt web.

      2. Vào menu Administration > Certificate Management.

      3. Chọn mục Machine SSL Certificate.

      4. Nhấn vào nút Actions và chọn Generate Certificate Signing Request.

      5. Trong cửa sổ mới hiện ra, bạn sẽ được yêu cầu điền các thông tin:

        • Organization: homelab

        • Organization Unit: IT

        • Country: VN

        • State/Province: Binh Duong

        • Locality: Ben Cat

        • Common Name: vcenter.homelab.local

        • Email: admin@homelab.local

        • Subject Alternative Name (Optional): SAN:DNS=vcenter.homelab.local,IP=192.168.1.13

      6. Nhấn Generate để tạo CSR. Giao diện sẽ hiển thị nội dung của CSR, bạn cần sao chép toàn bộ nội dung này và lưu lại.

  2. Gửi CSR đến CA Server:

    • Sử dụng trình duyệt web trên bất kỳ máy tính nào có thể truy cập được đến CA Server của bạn, truy cập vào địa chỉ: http://<IP_hoặc_Tên_Máy_Chủ_CA>/certsrv

    • Bạn sẽ được yêu cầu đăng nhập bằng tài khoản có quyền truy cập.

    • Sau khi đăng nhập, chọn Request a certificate > advanced certificate request.

    • Sao chép toàn bộ nội dung của CSR đã tạo ở bước trên và dán vào khung Base-64-encoded certificate request.

    • Trong phần Certificate Template, chọn Web Server.

    • Nhấn Submit.

  3. Xử lý yêu cầu trên CA Server:

    • Mở Certificate Authority từ Server Manager > Tools trên CA Server.

    • Trong khung bên trái, chọn Pending Requests.

    • Nhấp chuột phải vào yêu cầu vừa gửi, chọn All Tasks > Issue.

  4. Tải chứng chỉ về:

    • Quay lại trang web http://<IP_hoặc_Tên_Máy_Chủ_CA>/certsrv trên trình duyệt.

    • Chọn View the status of a pending certificate request 

      >>Saved-Request Certificate (8/15/2025 9:58:57 PM)
       > > Base 64 encoded hoặc DER encoded. >> save file CA đã ký
  5. Cài đặt chứng chỉ trên vCenter/ESXi:

    • Certificate Management >> import & Replace Certificate >>Replace with external CA certificate where CSR is generated from vCenter Server (private key embedded) >>Machine SSL Certificate ( chọn file CA đã ký) >>Chain of trusted root certificates (chọn file Root CA từ CA server) 

Tải Chứng chỉ Root CA

  1. Mở trình duyệt web trên máy tính Windows client.

  2. Truy cập vào trang web cấp phát chứng chỉ của CA Server: http://<IP_hoặc_Tên_Máy_Chủ_CA>/certsrv.

  3. Trên trang web, chọn Download a CA certificate, certificate chain, or CRL.

  4. Ở màn hình tiếp theo, chọn Download CA certificate để tải file chứng chỉ gốc (.cer).


Cài đặt Chứng chỉ Root CA trên máy client

  1. Mở file .cer vừa tải về. Một cửa sổ Certificate sẽ hiện ra.

  2. Nhấn vào nút Install Certificate....

  3. Chọn Local Machine để chứng chỉ được cài đặt cho tất cả người dùng trên máy tính. Nhấn Next.

  4. Ở màn hình Certificate Store, chọn Place all certificates in the following store.

  5. Nhấn Browse..., sau đó chọn Trusted Root Certification Authorities.

  6. Nhấn OK, sau đó Next.

  7. Nhấn Finish để hoàn tất quá trình cài đặt.

Truy cập vcenter để kiểm tra xem đã được trust chưa nhé!

Reset password root user in Vcenter

Hướng dẫn chi tiết từng bước để đặt lại mật khẩu tài khoản root của vCenter Server (VCSA) khi bạn không nhớ mật khẩu, thực hiện trực tiếp từ ESXi Host.

1. Tạo snapshot (đề phòng)

  • Trước khi thực hiện bất kỳ thay đổi nào, hãy tạo một snapshot của máy ảo vCenter Server để có thể quay lại trạng thái ban đầu nếu có sự cố.

2. Truy cập console và khởi động lại máy ảo

  1. Đăng nhập vào giao diện web của ESXi Host nơi vCenter Server đang chạy.

  2. Trong danh sách máy ảo, nhấp vào máy ảo vCenter Server.

  3. Ở menu bên trái, chọn Console để mở giao diện console của máy ảo.

  4. Khởi động lại máy ảo vCenter Server bằng cách nhấp vào nút Reset hoặc Power Off rồi Power On.

3. Sửa đổi tham số khởi động GRUB

  1. Khi máy ảo bắt đầu khởi động và màn hình Photon OS xuất hiện, nhanh chóng nhấn phím "e" để vào menu GRUB.

  2. Bạn sẽ thấy một màn hình chỉnh sửa với một số dòng lệnh. Sử dụng các phím mũi tên để di chuyển xuống dòng bắt đầu bằng chữ linux.

  3. Di chuyển con trỏ đến cuối dòng này và thêm đoạn code sau vào cuối, cách nhau bằng một dấu cách:

    rw init=/bin/bash
    
  4. Nhấn F10 để khởi động máy ảo với các tham số mới. 

4. Đặt lại mật khẩu root

  1. Sau khi hệ thống khởi động, nó sẽ đưa bạn đến một dấu nhắc lệnh.

  2. Nhập lệnh sau để đặt lại mật khẩu:

    passwd
    
  3. Nhập mật khẩu root mới của bạn và xác nhận lại.

  4. Khi quá trình hoàn tất, bạn cần gỡ bỏ phân vùng bằng lệnh:

    umount /
    
  5. Cuối cùng, gõ lệnh sau để khởi động lại máy ảo:

    reboot -f
    

Sau khi vCenter Server khởi động lại, bạn có thể đăng nhập bằng tài khoản root và mật khẩu mới bạn vừa đặt.

8/13/25

Maintenance mode in EXSI 8

 


Maintenance Mode (Chế độ bảo trì) là một trạng thái đặc biệt của một host ESXi, cho phép bạn thực hiện các công việc bảo trì trên host đó một cách an toàn mà không làm ảnh hưởng đến các máy ảo đang chạy.

Khi một host ESXi được đặt vào Maintenance Mode, nó sẽ thực hiện các hành động sau:

  1. Di chuyển các máy ảo: Nếu host nằm trong một cluster và tính năng vMotion được kích hoạt, vCenter sẽ tự động di chuyển tất cả các máy ảo đang chạy trên host đó sang các host ESXi khác trong cluster. Điều này giúp đảm bảo các máy ảo tiếp tục hoạt động mà không bị gián đoạn.

  2. Ngăn cấm khởi động máy ảo: Host sẽ không cho phép bất kỳ máy ảo nào mới được bật nguồn.

  3. Ngăn cấm tác vụ mới: Host sẽ không chấp nhận các tác vụ mới (như thêm máy ảo, di chuyển tài nguyên,...) từ vCenter.

Mục đích chính của Maintenance Mode:

  • Bảo trì không gián đoạn (Zero-Downtime Maintenance): Cho phép bạn thực hiện các công việc như nâng cấp phần mềm (patching), cập nhật phần cứng, hoặc trong trường hợp của bạn là gỡ host ra khỏi vCenter, mà không cần tắt nguồn máy ảo.

  • Bảo vệ dữ liệu: Đảm bảo không có dữ liệu nào bị mất hoặc hỏng do host bị tắt đột ngột.

  • Tăng tính ổn định của Cluster: Báo hiệu cho vCenter biết host này không thể sử dụng để chạy máy ảo, giúp vCenter quản lý và phân bổ tài nguyên hợp lý hơn cho các host còn lại.

Nói một cách đơn giản, Maintenance Mode giống như việc bạn treo biển "Đang sửa chữa, vui lòng sử dụng lối đi khác" cho một con đường. Các phương tiện đang đi trên con đường đó sẽ được chuyển sang đường khác, và không ai được phép đi vào con đường đang sửa chữa.

Move VMs trong EXSI 8 (không có thời gian downtime)

B1, Xác định VMnetwork mà VM đang dùng, và nơi lưu trữ datastore



B2, Chọn VM >> Migrate


B3, ping VM để monitor trong quá trình move VM






B4, kiểm tra và xác nhận thay đổi datastore, vmnetwork.















Upload máy ảo VM từ Wmworkstation lên EXSI hay Vcenter

    B1,
 B2,

B3,



B4, xong





Mô hình dựng EXSI 8 trên Wmworkstation

 


Mô hình phía dưới cho A Minh group 7NetLab vẽ lại





8/9/25

Cài wmware-tool trên win 11 trong EXSI 8

 B1, click vào máy ảo >> install vmware tool 

 
B2, Mở cửa sổ windows explorer bạn sẽ thầy CD cài vmware tool đã được map sẵn trong win 11, chỉ việc click vào và cài thôi



8/8/25

Cài win 11 trong vCenter (EXSI 8)

Bước 1, Tạo Cluster trong Vcenter

Bước 2,  Thêm V-TMP mới (lưu ý bước này nhớ bỏ chọn checkbox: Use Key provider only with TPM protected EXSI)

Bước 3, Backup và sao lưu V-TMP và password, vậy là bạn đã có thể cài win 11 bình thường ròi!



Trong vCenter, V-TMP (Virtual Trusted Platform Module) được sử dụng để cung cấp tính năng bảo mật dựa trên TPM cho máy ảo, chẳng hạn như mã hóa ổ đĩa hoặc xác thực phần cứng. Dựa trên việc bạn đã xuất file và sao chép mật khẩu, đây là cách sử dụng và mục đích sau này:

  1. Cách sử dụng V-TMP trong vCenter:
    • Sau khi tạo V-TMP và liên kết với key provider, bạn cần gắn nó vào máy ảo. Trong "Edit Settings" của máy ảo, thêm TPM 2.0 và chọn key provider đã tạo.
    • File V-TMP (thường là file .vTPM) và mật khẩu sẽ được sử dụng để bảo vệ khóa mã hóa. Khi khởi động máy ảo, vCenter sẽ yêu cầu mật khẩu này để kích hoạt TPM.
  2. Mục đích sau này:
    • Mã hóa ổ đĩa: V-TMP cho phép sử dụng tính năng mã hóa của VMware (như vSphere VM Encryption) để bảo vệ dữ liệu máy ảo.
    • Khôi phục hoặc di chuyển máy ảo: File V-TMP và mật khẩu là cần thiết khi bạn di chuyển máy ảo sang host khác hoặc khôi phục sau lỗi. Lưu trữ an toàn file và mật khẩu để tránh mất dữ liệu.
    • Tuân thủ bảo mật: TPM giúp đáp ứng các yêu cầu bảo mật, như xác thực phần cứng hoặc tuân thủ quy định (VD: FIPS).

Hãy lưu file V-TMP và mật khẩu ở nơi an toàn (như hệ thống quản lý khóa hoặc ổ cứng mã hóa), vì mất chúng sẽ khiến bạn không thể truy cập dữ liệu mã hóa.

8/6/25

Enable ssh with root user in almalinux

 By default, SSH root login is disabled on AlmaLinux for security reasons. To enable it, you need to edit the SSH daemon's configuration file.

1. Edit the SSH Configuration File

vi /etc/ssh/sshd_config.d/mycf.conf

2. Add the PermitRootLogin Directive

PermitRootLogin yes

3. Save and Close the File

  • If you're using nano, press Ctrl + X, then Y, and then Enter to save the changes.


4. Restart the SSH Service

For the changes to take effect, you must restart the sshd service.

sudo systemctl restart sshd

Now, you should be able to log in to your AlmaLinux server as the root user via SSH. However, it is strongly recommended that you use a non-root user for daily administration and only use the sudo command when necessary, as enabling root SSH can pose a significant security risk.

Check logs: [root@vnpt ~]#  journalctl -u sshd


Đặt IP tĩnh trên almalinux

 Để đặt địa chỉ IP tĩnh trên AlmaLinux, bạn có thể chỉnh sửa file cấu hình mạng bằng cách sử dụng trình soạn thảo văn bản như nano hoặc vi. Dưới đây là hướng dẫn chi tiết các bước thực hiện.

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

1. Tìm tên interface mạng

Đầu tiên, bạn cần tìm tên của interface mạng mà bạn muốn đặt IP tĩnh. Bạn có thể sử dụng lệnh sau:

Bash
ip a

Lệnh này sẽ hiển thị danh sách tất cả các interface mạng trên hệ thống của bạn. Thông thường, tên interface sẽ bắt đầu bằng enp, ens, hoặc eth. Ví dụ, enp0s3.

1. Xem tên card mạng

nmcli connection show

2. Cấu hình IP tĩnh

Thay thế enp0s3 bằng tên card mạng của bạn và các thông số IP phù hợp.

sudo nmcli connection modify enp0s3 ipv4.method manual

sudo nmcli connection modify enp0s3 ipv4.addresses 192.168.1.100/24

sudo nmcli connection modify enp0s3 ipv4.gateway 192.168.1.1

sudo nmcli connection modify enp0s3 ipv4.dns "8.8.8.8, 8.8.4.4"

3. Áp dụng thay đổi

sudo nmcli connection up enp0s3

4. Kiểm tra

ip a


Dựng DNS server trên Almalinux

 Mục tiêu:

  • Cài đặt và cấu hình BIND trên AlmaLinux.

  • Tạo một zone cho homelab.local để phân giải các host trong mạng nội bộ của bạn.

  • Cấu hình DNS server để lắng nghe trên địa chỉ IP của nó.

  • Cấu hình firewall để cho phép truy cập DNS.

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

Trước tiên, hãy cập nhật hệ thống và cài đặt gói bindbind-utils.

sudo dnf update -y
sudo dnf install bind bind-utils -y

Bước 2: Cấu hình BIND

File cấu hình chính của BIND là /etc/named.conf. Chúng ta sẽ chỉnh sửa file này và tạo các file zone.

Chỉnh sửa /etc/named.conf

Mở file cấu hình chính:

sudo nano /etc/named.conf

Bạn cần tìm và thay đổi một số dòng sau:

  1. listen-on port 53: Thay đổi 127.0.0.1 thành địa chỉ IP của máy chủ DNS của bạn hoặc any để nó lắng nghe trên tất cả các interface. Ví dụ, nếu IP của bạn là 192.168.1.100:

    listen-on port 53 { 127.0.0.1; 192.168.1.100; };
    

    Hoặc nếu bạn muốn nó lắng nghe trên tất cả các IP:

    listen-on port 53 { any; };
    
  2. allow-query: Cho phép các client trong mạng của bạn gửi truy vấn. Thay đổi localhost thành dải mạng của bạn. Ví dụ:

    allow-query { localhost; 192.168.1.0/24; };
    
  3. Thêm zone cho homelab.local: Thêm một block zone vào cuối file để định nghĩa zone mới của chúng ta.

    zone "homelab.local" IN {
        type master;
        file "homelab.local.zone";
        allow-update { none; };
    };
    
  4. Thêm zone cho phân giải ngược (Reverse Zone): Để các client có thể phân giải IP thành tên miền, bạn cần tạo một zone phân giải ngược. Giả sử dải mạng của bạn là 192.168.1.0/24, bạn sẽ định nghĩa zone như sau:

    zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "homelab.local.rev";
        allow-update { none; };
    };
    

    Lưu ý: Tên zone phải là dải mạng của bạn viết ngược lại, cộng thêm .in-addr.arpa.

Sau khi chỉnh sửa xong, file /etc/named.conf của bạn có thể trông giống như thế này (đã rút gọn):

options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { none; };
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    recursing-file "/var/named/data/named.recursing";
    secroots-file "/var/named/data/named.secroots";
    allow-query { any; };
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    ...
};

logging { ... };

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

zone "homelab.local" IN {
    type master;
    file "homelab.local.zone";
    allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "homelab.local.rev";
    allow-update { none; };
};

Tạo file zone forward /var/named/homelab.local.zone

File này sẽ chứa các bản ghi phân giải tên miền thành địa chỉ IP.

sudo nano /var/named/homelab.local.zone

Nội dung file:

$TTL 86400
@       IN      SOA     ns1.homelab.local. admin.homelab.local. (
                2023080601      ; Serial
                3600            ; Refresh
                1800            ; Retry
                604800          ; Expire
                86400           ; Minimum TTL
)

        IN      NS      ns1.homelab.local.

ns1     IN      A       192.168.1.100       ; IP của DNS Server
router  IN      A       192.168.1.1         ; IP của router
web     IN      A       192.168.1.101       ; Một máy chủ web

Giải thích:

  • $TTL: Thời gian tồn tại mặc định của bản ghi.

  • @ IN SOA: Bản ghi "Start of Authority" (SOA), định nghĩa máy chủ DNS chính cho zone này.

  • ns1.homelab.local.: Tên máy chủ DNS của bạn.

  • admin.homelab.local.: Email của quản trị viên (dấu @ được thay bằng dấu chấm).

  • Serial: Số phiên bản của file cấu hình. Mỗi khi bạn thay đổi file, hãy tăng số này lên.

  • @ IN NS: Bản ghi Name Server, chỉ định máy chủ DNS cho zone này.

  • ns1 IN A 192.168.1.100: Bản ghi "A" (Address) phân giải tên ns1 thành địa chỉ IP 192.168.1.100.

Tạo file zone reverse /var/named/homelab.local.rev

File này sẽ chứa các bản ghi phân giải IP thành tên miền.

sudo nano /var/named/homelab.local.rev

Nội dung file:

$TTL 86400
@       IN      SOA     ns1.homelab.local. admin.homelab.local. (
                2023080601      ; Serial
                3600            ; Refresh
                1800            ; Retry
                604800          ; Expire
                86400           ; Minimum TTL
)

        IN      NS      ns1.homelab.local.

100     IN      PTR     ns1.homelab.local.
1       IN      PTR     router.homelab.local.
101     IN      PTR     web.homelab.local.

Giải thích:

  • 100 IN PTR ns1.homelab.local.: Bản ghi "PTR" (Pointer) phân giải IP 192.168.1.100 (chỉ viết phần cuối của IP) thành tên miền ns1.homelab.local..

Đặt quyền sở hữu cho các file zone

Sau khi tạo, bạn cần đảm bảo BIND có thể đọc được các file này.

sudo chown named:named /var/named/homelab.local.zone
sudo chown named:named /var/named/homelab.local.rev

Bước 3: Kiểm tra cấu hình và khởi động BIND

Kiểm tra cú pháp cấu hình

Sử dụng lệnh named-checkconfnamed-checkzone để kiểm tra các file cấu hình.

sudo named-checkconf
sudo named-checkzone homelab.local /var/named/homelab.local.zone
sudo named-checkzone 1.168.192.in-addr.arpa /var/named/homelab.local.rev

Nếu không có lỗi, các lệnh này sẽ không trả về gì hoặc hiển thị thông báo OK.

Khởi động và kích hoạt dịch vụ BIND

sudo systemctl start named
sudo systemctl enable named
sudo systemctl status named
sudo systemctl reload named

Đảm bảo dịch vụ đang chạy (trạng thái active (running)).

Bước 4: Cấu hình Firewall

Mở cổng 53 (cổng mặc định của DNS) trên firewall để cho phép các client truy cập.

sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

Bước 5: Kiểm tra hoạt động của DNS server

Bạn có thể kiểm tra trực tiếp trên máy chủ DNS bằng cách thay đổi file /etc/resolv.conf hoặc sử dụng các công cụ như dig.

# Sử dụng dig để kiểm tra
dig @127.0.0.1 ns1.homelab.local
dig @127.0.0.1 web.homelab.local
dig @127.0.0.1 -x 192.168.1.101

Nếu bạn thấy các bản ghi ANSWER SECTION trả về đúng, DNS server của bạn đã hoạt động.

Bước 6: Cấu hình Client để sử dụng DNS server

Trên các máy client trong mạng của bạn, hãy cấu hình DNS server thành địa chỉ IP của máy chủ DNS bạn vừa dựng (192.168.1.100).

  • Trên Linux: Chỉnh sửa file /etc/resolv.conf hoặc cấu hình trong NetworkManager.

    sudo nano /etc/resolv.conf
    

    Thêm dòng sau:

    nameserver 192.168.1.100
    
  • Trên Windows/macOS: Vào cài đặt mạng và thay đổi DNS server.

Sau khi cấu hình, bạn có thể kiểm tra từ máy client:

ping web.homelab.local

Lệnh này sẽ ping đến 192.168.1.101 nếu cấu hình DNS của bạn chính xác.