Khi bạn lần đầu tạo một máy chủ Debian 11 mới, có một số bước cấu hình cần thực hiện ngay từ đầu như một phần của việc thiết lập cơ bản. Điều này sẽ tăng cường bảo mật và tính khả dụng của máy chủ, đồng thời tạo nền tảng vững chắc cho các thao tác sau này.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách đăng nhập vào máy chủ với tư cách là người dùng root, tạo một tài khoản người dùng mới có quyền quản trị (admin), và thiết lập một tường lửa cơ bản.
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 có mật khẩu hoặc, nếu bạn đã cài đặt SSH key để xác thực, cần có Private Key của tài khoản root. Nếu bạn chưa từng đăng nhập vào máy chủ, bạn có thể tham khảo hướng dẫn của chúng tôi về cách kết nối tới Droplet bằng SSH, hướng dẫn này sẽ giải thích chi tiết quá 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 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ề độ 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 đăng nhập bằng mật khẩu, bạn có thể sẽ đượ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ới quyền hạn rất rộng. Do quyền hạn cao của tài khoản root, bạn không nên sử dụng nó thường xuyên. Lý do là sức mạnh của tài khoản root cho phép thực hiện những thay đổi rất nguy hiểm, thậm chí có thể xảy ra do nhầm lẫn.
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ế cho công việc hàng ngày. Sau này, chúng ta sẽ giải thích cách để 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, chúng ta đã sẵn sàng thêm tài khoản người dùng mới mà từ giờ bạn sẽ sử dụng để đăng nhập.
Ví dụ dưới đây tạo ra một tài khoản người dùng mới có tên là sammy, nhưng bạn nên thay thế bằng tên người dùng mà bạn thích:
adduser sammy
Bạn sẽ được hỏi một vài câu hỏi, bắt đầu từ việc nhập mật khẩu cho tài khoản.
Nhập một mật khẩu mạnh và, nếu muốn, điền thêm thông tin bổ sung theo ý bạn. Điều này không bắt buộc và bạn có thể nhấn ENTER để bỏ qua bất kỳ trường nào.
Tiếp theo, chúng ta sẽ thiết lập tài khoản người dùng mới này với quyền quản trị.
Bước 3 — Cấp Quyền Quản Trị
Hiện tại, bạn đã tạo ra 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, chúng ta 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 đặt từ sudo trước lệnh.
Để thêm quyền này cho người dùng mới, chúng ta cần thêm tài khoản đó vào nhóm sudo. Mặc định trên Debian 11, các người dùng thuộc nhóm sudo đượ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 sudo (thay thế từ được đánh dấu bằng tên người dùng mới của bạn):
usermod -aG sudo sammy
Bây giờ, khi đăng nhập với tài khoản người dùng thường, bạn có thể gõ sudo trước các lệnh để chạy lệnh đó với quyền quản trị.
Bước 4 — Thiết Lập Tường Lửa Cơ Bản
Máy chủ Debian có thể sử dụng tường lửa để đảm bảo chỉ một số kết nối nhất định tới các dịch vụ cụ thể được cho phép. Trong hướng dẫn này, chúng ta sẽ cài đặt và sử dụng tường lửa UFW để thiết lập các chính sách tường lửa và quản lý ngoại lệ.
Chúng ta có thể sử dụng trình quản lý gói apt để cài đặt UFW. Cập nhật danh mục gói cục bộ để lấy thông tin mới nhất về các gói có sẵn, sau đó cài đặt phần mềm tường lửa UFW bằng cách nhập:
apt update apt install ufw
Lưu ý: Nếu máy chủ của bạn đang chạy trên DataOnline, bạn có thể sử dụng DataOnline Cloud Firewalls thay vì tường lửa UFW. Chúng tôi khuyến nghị chỉ sử dụng một tường lửa duy nhất tại một thời điểm để tránh các quy tắc mâu thuẫn gây khó khăn trong việc gỡ lỗi.
Các profile (hồ sơ) tường lửa cho phép UFW quản lý các tập hợp quy tắc tường lửa được đặt tên cho các ứng dụng đã cài đặt. Một số phần mềm phổ biến đã được tích hợp sẵn các profile với UFW, và các gói cài đặt có thể đăng ký thêm profile với UFW trong quá trình cài đặt. Dịch vụ OpenSSH – dịch vụ cho phép bạn kết nối tới máy chủ – có một profile tường lửa mà chúng ta có thể sử dụng.
Để liệt kê tất cả các profile ứng dụng có sẵn, nhập:
ufw app list
Output
Available applications: . . . OpenSSH . . .
Chúng ta cần đảm bảo tường lửa cho phép các kết nối SSH để lần sau có thể đăng nhập lại. Cho phép các kết nối này bằng cách nhập:
ufw allow OpenSSH
Sau đó, kích hoạt tường lửa bằng cách nhập:
ufw enable
Nhập y và nhấn ENTER để tiếp tục. Bạn có thể kiểm tra lại rằng kết nối SSH vẫn được cho phép bằng cách nhập:
ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Hiện tại, tường lửa đang chặn tất cả các kết nối ngoại trừ SSH. Nếu bạn cài đặt và cấu hình thêm các dịch vụ khác, bạn sẽ cần điều chỉnh cài đặt tường lửa để cho phép lưu lượng hợp lệ đi vào. Bạn có thể tìm hiểu thêm về các thao tác cơ bản với UFW trong hướng dẫn “UFW Essentials” của chúng tôi.
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 đã có tài khoản người dùng thường dùng cho công việc hàng ngày, chúng ta cần đảm bảo rằng có thể đăng nhập SSH 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, chúng tôi khuyến nghị giữ đăng nhập với tư cách root. Bằng cách này, nếu gặp sự cố, bạn có thể khắc phục và thay đổi cần thiết với tư cách root. Nếu bạn sử dụng Droplet trên DataOnline và gặp vấn đề với kết nối SSH của root, bạn cũng có thể đăng nhập vào Droplet bằng DataOnline Console.
Quá trình cấu hình truy cập SSH cho 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 key để 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, thì xác thực mật khẩu đang đượ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ủ, chúng tôi khuyến nghị bạn thiết lập SSH key thay vì sử dụng xác thực mật khẩu. Hãy theo dõi hướng dẫn của chúng tôi về cách cài đặt SSH key trên Debian 11 để 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 key, 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ục bộ của mình 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ủ, chúng ta 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 trong phiên làm việc hiện tại bằng lệnh cp. Sau đó, điều chỉnh quyền sở hữu của các tệp bằng lệnh chown.
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 của bạn:
cp -r ~/.ssh /home/sammy chown -R sammy:sammy /home/sammy/.ssh
Lệnh cp -r
sao chép toàn bộ thư mục sang thư mục home của người dùng mới, và lệnh chown -R
thay đổi quyền sở hữu của thư mục đó (và tất cả các tệp bên trong) thành tên người dùng:nhóm (trên Debian, một nhóm có cùng tên với người dùng được tạo mặc định).
Bây giờ, mở một phiên terminal mới và đăng nhập qua SSH với tên người dùng mới:
ssh sammy@your_server_ip
ạn sẽ được đăng nhập vào tài khoản người dùng mới mà không cần sử dụng 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 khi sử dụng sudo lần đầu trong mỗi phiên (và định kỳ sau đó).
Hướng Đi Tiếp Theo
Tại thời điểm này, bạn đã có nền tảng vững chắc cho máy chủ của mình. Bây giờ, 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ủ.