Thiết Lập Máy Chủ Rocky Linux 9 bắt buộc phải làm ngay sau khi cài đặt

Rocky Linux 9

Khi bạn lần đầu tạo một máy chủ mới chạy Rocky Linux 9, có một số bước cấu hình mà bạn nên thực hiện ngay từ đầu như một phần của quá trình thiết lập ban đầu. Điều này sẽ giúp tăng cường bảo mật và khả năng sử dụng của máy chủ, đồng thời tạo nên một nền tảng vững chắc để phát triển các ứng dụng sau này.

Bước 1 — Đăng Nhập với Tư Cách Root

Để đăng nhập vào máy chủ, bạn cần biết địa chỉ IP công cộng của máy chủ. Bạn cũng cần mật khẩu hoặc, nếu bạn đã cài đặt SSH key để xác thực, cần có Private Key cho tài khoản root. Nếu bạn chưa đăng nhập vào máy chủ, bạn có thể tham khảo tài liệu của chúng tôi về cách kết nối với Droplet bằng SSH, tài liệu này trình bày chi tiết quy trình đó.

Nếu bạn chưa kết nối tới máy chủ, hãy đăng nhập với tư cách root ngay bây giờ bằng lệnh sau (thay phần được đánh dấu bằng địa chỉ IP công cộng của máy chủ của bạn):

ssh root@your_server_ip

Nhận cảnh báo về tính xác thực của máy chủ nếu xuất hiện. Nếu bạn sử dụng xác thực bằng mật khẩu, hãy nhập mật khẩu của root để đăng nhập. Nếu bạn sử dụng SSH key được bảo vệ bằng passphrase, bạn có thể sẽ được yêu cầu nhập passphrase vào lần đầu sử dụng key trong mỗi phiên làm việc. Nếu đây là lần đầu tiên bạn đăng nhập vào máy chủ bằng mật khẩu, bạn cũng có thể được yêu cầu thay đổi mật khẩu root.

Về Tài Khoản Root

Tài khoản root là người dùng quản trị trong môi trường Linux và có quyền hạn rất rộng. Vì quyền hạn cao của tài khoản root, bạn được khuyến cáo không nên sử dụng nó hàng ngày. Lý do là một phần sức mạnh của tài khoản root chính là khả năng thực hiện những thay đổi rất nguy hiểm, thậm chí có thể gây hậu quả nghiêm trọng nếu xảy ra nhầm lẫn.

Do đó, bước tiếp theo là thiết lập một tài khoản người dùng thay thế với phạm vi quyền hạn hạn chế hơn cho công việc hàng ngày. Tài khoản này vẫn có thể được nâng quyền khi cần thiết.

Bước 2 — Tạo Tài Khoản Người Dùng Mới

Sau khi đã đăng nhập với tư cách root, bạn có thể tạo một tài khoản người dùng mới mà bạn sẽ sử dụng để đăng nhập từ bây giờ.

Ví dụ dưới đây tạo ra một tài khoản người dùng mới có tên sammy; bạn có thể thay thế bằng bất kỳ tên người dùng nào bạn ưa thích:

adduser sammy

Tiếp theo, đặt một mật khẩu mạnh cho người dùng sammy:

passwd sammy

Bạn sẽ được yêu cầu nhập mật khẩu hai lần. Sau khi hoàn tất, tài khoản người dùng của bạn đã sẵn sàng sử dụng. Tuy nhiên, trước tiên bạn cần cấp thêm quyền cho người dùng này để sử dụng lệnh sudo – cho phép chạy các lệnh với quyền root khi cần thiết.

Bước 3 — Cấp Quyền Quản Trị

Hiện tại, bạn đã có một tài khoản người dùng mới với quyền hạn thông thường. Tuy nhiên, đôi khi bạn cần thực hiện các tác vụ quản trị.

Để tránh phải đăng xuất tài khoản thường và đăng nhập lại với tài khoản root, bạn có thể thiết lập quyền “superuser” (hoặc quyền root) cho tài khoản thường. Điều này cho phép người dùng thường chạy các lệnh với quyền quản trị bằng cách thêm từ sudo vào trước mỗi lệnh.

Để cấp quyền này cho tài khoản người dùng mới, bạn cần thêm người dùng vào nhóm wheel. Mặc định trên Rocky Linux 9, những người dùng thuộc nhóm wheel được phép sử dụng lệnh sudo.

Với tư cách root, chạy lệnh sau để thêm người dùng mới vào nhóm wheel (thay từ được đánh dấu bằng tên người dùng của bạn):

usermod -aG wheel sammy

Bây giờ, khi đăng nhập với tài khoản người dùng thông thường, bạn có thể gõ sudo trước các lệnh để thực hiện các tác vụ với quyền quản trị.

Bước 4 — Thiết Lập Tường Lửa

Tường lửa cung cấp một mức độ bảo mật cơ bản cho máy chủ của bạn. Các ứng dụng tường lửa có nhiệm vụ từ chối lưu lượng truy cập đến mọi cổng trên máy chủ của bạn, ngoại trừ những cổng/dịch vụ mà bạn đã cho phép rõ ràng. Rocky Linux cung cấp một dịch vụ có tên firewalld để thực hiện chức năng này. Công cụ firewall-cmd được sử dụng để cấu hình các chính sách tường lửa của firewalld.

Trước tiên, cài đặt firewalld:

dnf install firewalld -y

Cấu hình mặc định của firewalld cho phép kết nối SSH, vì vậy bạn có thể bật tường lửa ngay lập tức:

systemctl start firewalld

Kiểm tra trạng thái của dịch vụ để đảm bảo rằng nó đã khởi động:

systemctl status firewalld

Output

● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago
       Docs: man:firewalld(1)
   Main PID: 15060 (firewalld)
      Tasks: 4 (limit: 10938)
     Memory: 28.1M
        CPU: 6.127s
     CGroup: /system.slice/firewalld.service
             └─15060 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

Lưu ý rằng dịch vụ hiện đang ở trạng thái active và enabled, có nghĩa là nó sẽ tự động khởi động nếu máy chủ được khởi động lại.

Bây giờ, khi dịch vụ đã hoạt động, bạn có thể sử dụng tiện ích firewall-cmd để lấy và thiết lập thông tin chính sách cho tường lửa.

Đầu tiên, hãy liệt kê các dịch vụ đã được cho phép:

firewall-cmd --permanent --list-all

Output

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Để xem thêm các dịch vụ khác mà bạn có thể kích hoạt theo tên, gõ:

firewall-cmd --get-services

Để thêm một dịch vụ mà bạn muốn cho phép, sử dụng cờ --add-service:

firewall-cmd --permanent --add-service=http

Lệnh này sẽ thêm dịch vụ http và cho phép lưu lượng TCP đến cổng 80. Cấu hình sẽ được cập nhật sau khi bạn tải lại tường lửa:

firewall-cmd --reload

Hãy nhớ rằng, bạn sẽ cần mở các cổng hoặc dịch vụ cụ thể trên tường lửa cho bất kỳ dịch vụ bổ sung nào mà bạn cài đặt sau này.

Bước 5 — Cho Phép Truy Cập Từ Bên Ngoài Cho Tài Khoản Người Dùng Thường

Sau khi đã tạo tài khoản người dùng không phải root cho công việc hàng ngày, bạn cần đảm bảo rằng bạn có thể SSH đăng nhập trực tiếp vào tài khoản đó.

Lưu ý: Cho đến khi bạn xác minh rằng có thể đăng nhập và sử dụng sudo với tài khoản người dùng mới, bạn nên duy trì đăng nhập với tư cách root. Bằng cách này, nếu có vấn đề xảy ra, bạn có thể khắc phục và thực hiện các thay đổi cần thiết với tư cách root. Nếu bạn đang sử dụng Droplet trên DataOnline và gặp sự cố với kết nối SSH của root, bạn có thể đăng nhập vào Droplet thông qua DataOnline Console.

Quá trình cấu hình truy cập SSH cho tài khoản người dùng mới phụ thuộc vào việc tài khoản root của máy chủ sử dụng mật khẩu hay SSH keys để xác thực.

Nếu Tài Khoản Root Sử Dụng Xác Thực Mật Khẩu

Nếu bạn đã đăng nhập vào tài khoản root bằng mật khẩu, xác thực mật khẩu sẽ được bật cho SSH. Bạn có thể đăng nhập SSH vào tài khoản người dùng mới bằng cách mở một phiên terminal mới và sử dụng lệnh SSH với tên người dùng mới:

ssh sammy@your_server_ip

Sau khi nhập mật khẩu của tài khoản người dùng thường, bạn sẽ được đăng nhập. Nhớ rằng, nếu bạn cần chạy lệnh với quyền quản trị, hãy gõ sudo trước lệnh, ví dụ:

sudo command_to_run

Bạn sẽ được yêu cầu nhập mật khẩu của tài khoản người dùng thường khi sử dụng sudo lần đầu trong mỗi phiên (và định kỳ sau đó).

Để tăng cường bảo mật cho máy chủ, bạn nên thiết lập SSH keys thay vì sử dụng xác thực mật khẩu. Hãy theo dõi hướng dẫn cài đặt SSH keys trên Rocky Linux 9 để biết cách cấu hình xác thực dựa trên key.

Nếu Tài Khoản Root Sử Dụng Xác Thực SSH Key

Nếu bạn đã đăng nhập vào tài khoản root bằng SSH keys, thì xác thực mật khẩu đã bị tắt cho SSH. Bạn sẽ cần thêm một bản sao Public Key của bạn vào tệp ~/.ssh/authorized_keys của tài khoản người dùng mới để đăng nhập thành công.

Vì Public Key của bạn đã có sẵn trong tệp ~/.ssh/authorized_keys của tài khoản root trên máy chủ, bạn có thể sao chép tệp và cấu trúc thư mục đó sang tài khoản người dùng mới.

Phương pháp đơn giản nhất để sao chép các tệp với đúng quyền sở hữu và phân quyền là sử dụng lệnh rsync. Lệnh này sẽ sao chép thư mục .ssh của root, bảo toàn quyền truy cập và thay đổi chủ sở hữu của các tệp, tất cả chỉ trong một lệnh. Hãy đảm bảo thay thế các phần được đánh dấu bằng tên người dùng thông thường của bạn:

Lưu ý: Lệnh rsync phân biệt các nguồn và đích kết thúc bằng dấu gạch chéo (trailing slash) khác với không có dấu gạch chéo. Khi sử dụng lệnh rsync dưới đây, hãy chắc chắn rằng thư mục nguồn (~/.ssh) không có dấu gạch chéo ở cuối (kiểm tra để đảm bảo bạn không sử dụng ~/.ssh/). Nếu bạn vô tình thêm dấu gạch chéo, rsync sẽ sao chép nội dung của thư mục ~/.ssh của root vào thư mục home của người dùng sudo, thay vì sao chép toàn bộ cấu trúc thư mục .ssh. Các tệp sẽ bị đặt sai vị trí và SSH sẽ không thể tìm thấy cũng như sử dụng chúng.

rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Bây giờ, trên máy tính cục bộ của bạn, mở một phiên SSH mới với tài khoản người dùng không phải root:

ssh sammy@your_server_ip

Bạn sẽ được đăng nhập vào tài khoản người dùng mới mà không cần mật khẩu. Nhớ rằng, nếu cần chạy lệnh với quyền quản trị, hãy gõ sudo trước lệnh, ví dụ:

sudo command_to_run

Bạn sẽ được yêu cầu nhập mật khẩu của tài khoản người dùng thông thường khi sử dụng sudo lần đầu trong mỗi phiên (và định kỳ sau đó).

Kết Luận

Tại thời điểm này, bạn đã có một nền tảng vững chắc cho máy chủ của mình. Bạn có thể cài đặt bất kỳ phần mềm nào cần thiết trên máy chủ ngay bây giờ. Ví dụ, bạn có thể bắt đầu bằng việc cài đặt máy chủ web Nginx.

Tham khảo cách cài đặt Nginx trên Rocky Linux 9

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *