Thiết lập máy chủ ban đầu với Ubuntu 18.04

Ngày đăng: November 28, 2023

Giới thiệu

Sau khi tạo máy chủ Ubuntu 18.04 mới, bạn nên thực hiện một số bước cấu hình như một phần của quá trình thiết lập máy chủ ban đầu nhằm tăng tính bảo mật và tạo điều kiện thuận lợi cho việc quản lý sau này.

Hướng dẫn này sẽ hướng dẫn bạn một số quy trình mà bạn nên hoàn thành sớm để tạo nền tảng vững chắc cho máy chủ mới của mình trước khi chuyển sang cài đặt và định cấu hình bất kỳ phần mềm hoặc dịch vụ nào.

Bước 1 - Đăng nhập bằng Root

Các máy chủ mới được cài đặt thường chỉ thiết lập tài khoản root và đó là tài khoản bạn sẽ sử dụng để đăng nhập vào máy chủ của mình lần đầu tiên.

Root user là người dùng quản trị có đặc quyền rất rộng. Do các đặc quyền nâng cao của tài khoản root nên bạn không nên sử dụng nó thường xuyên. Điều này là do một phần sức mạnh vốn có của tài khoản root có khả năng thực hiện những thay đổi có tính hủy diệt, thậm chí là do vô tình. Vì lý do đó, phương pháp được khuyến nghị là thiết lập một người dùng hệ thống thông thường và cấp cho người dùng này quyền sudo để nó có thể chạy các lệnh quản trị với một số hạn chế nhất định. Trong bước tiếp theo, bạn sẽ thiết lập một người dùng như vậy.

Để bắt đầu, bạn sẽ cần đăng nhập vào máy chủ của mình. Đảm bảo bạn biết địa chỉ IP công cộng của máy chủ. Để xác thực, bạn sẽ cần mật khẩu của tài khoản hoặc SSH private key (khóa riêng SSH) cho tài khoản của root user, trong trường hợp bạn đã thiết lập SSH key để xác thực trong máy chủ. Nếu bạn chưa đăng nhập vào máy chủ của mình, bạn có thể muốn làm theo hướng dẫn của chúng tôi về cách kết nối với Droplet của bạn bằng SSH.

Nếu bạn chưa kết nối với máy chủ của mình, hãy tiếp tục và đăng nhập với tư cách root user bằng lệnh sau. Đảm bảo thay thế phần được đánh dấu của lệnh bằng địa chỉ IP công cộng của máy chủ của bạn:

  1. ssh root@your_server_ip

Chấp nhận cảnh báo về tính xác thực của máy chủ nếu nó xuất hiện. Nếu bạn đang sử dụng xác thực bằng mật khẩu, hãy cung cấp mật khẩu root để đăng nhập. Ngoài ra, nếu bạn đang sử dụng SSH key được bảo vệ bằng cụm mật khẩu, bạn có thể được nhắc nhập cụm mật khẩu vào lần đầu tiên bạn sử dụng khóa mỗi phiên (session). Ngoài ra, 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 nhắc thay đổi mật khẩu root.

Trong bước tiếp theo, bạn sẽ thiết lập tài khoản người dùng hệ thống mới với các đặc quyền bị giảm bớt và định cấu hình người dùng này để chạy các lệnh quản trị thông qua sudo.

Bước 2 - Tạo người dùng mới

Khi bạn đã đăng nhập bằng root, bạn có thể tạo một người dùng mới sẽ là người dùng hệ thống thông thường của bạn kể từ bây giờ.

Ví dụ sau tạo một người dùng mới tên là sammy, nhưng bạn nên thay thế nó bằng tên người dùng bạn chọn:

  1. adduser sammy

Bạn sẽ được hỏi một số câu hỏi, bắt đầu bằng mật khẩu tài khoản.

Nhập mật khẩu mạnh và tùy ý điền bất kỳ thông tin bổ sung nào nếu bạn muốn. Điều này là không bắt buộc và bạn chỉ cần nhấn ENTER vào bất kỳ trường nào bạn muốn bỏ qua.

Trong bước tiếp theo, bạn sẽ thiết lập đặc quyền sudo cho người dùng này. Điều này sẽ cho phép người dùng thực thi các tác vụ quản trị với tư cách là root user thông qua chương trình sudo.

Bước 3 - Cấp đặc quyền quản trị

Bây giờ bạn có một tài khoản người dùng mới với các đặc quyền thông thường. Tuy nhiên, đôi khi, bạn sẽ cần thực hiện các tác vụ quản trị, như quản lý máy chủ, chỉnh sửa tệp cấu hình hoặc khởi động lại máy chủ.

Để tránh phải đăng xuất khỏi người dùng thông thường và đăng nhập lại bằng tài khoản root, bạn có thể thiết lập những đặc quyền được gọi là “superuser” hoặc quyền root cho tài khoản thông thường của mình. Điều này sẽ cho phép người dùng thông thường của bạn chạy các lệnh với đặc quyền quản trị bằng cách thêm tiền tố vào mỗi lệnh bằng từ sudo.

Để thêm các đặc quyền này cho người dùng mới, bạn cần thêm người dùng mới vào nhóm sudo. Theo mặc định trên Ubuntu 18.04, người dùng thuộc nhóm sudo được phép sử dụng lệnh sudo.

Lệnh sau sẽ sửa đổi cài đặt người dùng mặc định, bao gồm nhóm sudo trong danh sách các nhóm mà người dùng đã thuộc về. Hãy chú ý đến đối số -a, viết tắt của từ append (bổ sung). Nếu không có tùy chọn này, các nhóm hiện tại mà người dùng được liên kết sẽ được thay thế bằng sudo, điều này sẽ gây ra những hậu quả không mong muốn. Đối số -G yêu cầu usermod thay đổi cài đặt nhóm của người dùng.

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

  1. usermod -aG sudo sammy

Người dùng hệ thống của bạn hiện đã được thiết lập. Trong bước tiếp theo, bạn sẽ định cấu hình tường lửa cơ bản cho máy chủ của mình.

Bước 4 - Thiết lập tường lửa cơ bản

UFW (Uncomplicated Firewall) là một công cụ cấu hình tường lửa đi kèm với máy chủ Ubuntu. Bạn có thể sử dụng tường lửa UFW để đảm bảo chỉ cho phép kết nối với một số dịch vụ nhất định trên máy chủ của mình.

Các ứng dụng có thể đăng ký hồ sơ của mình với UFW sau khi cài đặt. Các cấu hình này cho phép UFW quản lý cài đặt cho mỗi ứng dụng theo tên. OpenSSH, dịch vụ cho phép bạn kết nối với máy chủ của mình ngay bây giờ, có hồ sơ được đăng ký trong UFW.

Chạy lệnh sau để có danh sách tất cả các cấu hình hiện có:

  1. ufw app list
Output
Available applications: OpenSSH

Bạn cần đảm bảo rằng tường lửa cho phép kết nối SSH để bạn có thể đăng nhập lại vào lần sau. Bạn có thể cho phép các kết nối này bằng cách gõ:

  1. ufw allow OpenSSH

Sau đó, bạn có thể kích hoạt tường lửa bằng:

  1. ufw enable

Gõ “y” và nhấn ENTER để tiếp tục. Bạn có thể thấy các kết nối SSH vẫn được cho phép bằng cách gõ:

  1. ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

Vì tường lửa hiện đang chặn tất cả các kết nối ngoại trừ SSH, nên nếu cài đặt và định cấu hình các dịch vụ bổ sung, bạn sẽ cần điều chỉnh cài đặt tường lửa để cho phép lưu lượng truy cập được chấp nhận. Bạn có thể tìm hiểu một số thao tác UFW phổ biến trong hướng dẫn Những điều cơ bản về UFW: Các quy tắc và lệnh tường lửa phổ biến.

Bước 5 - Kích hoạt quyền truy cập bên ngoài cho người dùng thông thường của bạn

Bây giờ bạn đã có người dùng thông thường để sử dụng hàng ngày, bạn cần đảm bảo rằng bạn có thể SSH trực tiếp vào tài khoản.

Lưu ý: Cho đến khi xác minh rằng bạn có thể đăng nhập và sử dụng sudo làm người dùng mới, chúng tôi khuyên bạn nên duy trì đăng nhập bằng root. Bằng cách này, nếu gặp sự cố, bạn có thể khắc phục sự cố và thực hiện mọi thay đổi cần thiết với quyền root.

Quá trình định cấu hình quyền truy cập SSH cho người dùng mới của bạn tùy thuộc vào việc tài khoản root của máy chủ của bạn 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, điều đó có nghĩa là xác thực mật khẩu đã được bật cho SSH. Bạn có thể SSH vào tài khoản người dùng mới của mình bằng cách mở phiên cuối mới và sử dụng SSH với tên người dùng mới của bạn:

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

Để tăng cường bảo mật cho máy chủ của bạn, chúng tôi thực sự khuyên bạn nên thiết lập SSH key thay vì sử dụng xác thực bằng mật khẩu. Làm theo hướng dẫn của chúng tôi về cách thiết lập SSH key trên Ubuntu 18.04 để tìm hiểu cách định cấu hình xác thực dựa trên khóa.

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, có thể tính năng xác thực mật khẩu đã bị tắt đối với SSH. Bạn sẽ cần thêm bản sao local public key của mình vào tệp ~/.ssh/authorized_keys của người dùng mới để đăng nhập thành công.

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

Cách đơn giản nhất để sao chép các tệp có quyền sở hữu và quyền chính xác là bằng lệnh rsync. Thao tác này sẽ sao chép thư mục .ssh của root user, giữ nguyên các quyền và sửa đổi chủ sở hữu tệp, tất cả chỉ bằng một lệnh duy nhất. Đảm bảo thay đổi các phần được đánh dấu của lệnh sau để khớp với tên người dùng thông thường của bạn:

Lưu ý: Lệnh rsync xử lý các nguồn và đích, kết thúc bằng dấu gạch chéo ở cuối, khác với các nguồn không có dấu gạch chéo ở cuối. Khi sử dụng rsync bên dưới, hãy đảm bảo rằng thư mục nguồn (~/.ssh) không bao gồm dấu gạch chéo ở cuối (kiểm tra để đảm bảo rằng bạn không sử dụng ~/.ssh/).

Nếu bạn vô tình thêm dấu gạch chéo vào lệnh, rsync sẽ sao chép nội dung của thư mục ~/.ssh của tài khoản root vào thư mục chính của sudo user, thay vì sao chép toàn bộ cấu trúc thư mục ~/.ssh. Các tệp sẽ ở sai vị trí và SSH sẽ không thể tìm và sử dụng chúng.

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

Bây giờ, hãy mở một phiên cuối mới và thử đăng nhập bằng tên người dùng mới của bạn:

  1. ssh sammy@your_server_ip

Bạn sẽ có thể đăng nhập vào tài khoản người dùng mới mà không bị nhắc nhập mật khẩu SSH của người dùng từ xa để xác thực. Nếu SSH key của bạn được thiết lập bằng keyphrase, bạn có thể được yêu cầu mở khóa SSH key bằng cách cung cấp mật khẩu đó khi bạn sử dụng khóa lần đầu tiên trong phiên cuối.

Hãy nhớ rằng, nếu bạn cần chạy một lệnh có đặc quyền quản trị, hãy nhập sudo trước lệnh như thế này:

  1. sudo command_to_run

Bạn sẽ được nhắc nhập mật khẩu người dùng thông thường của mình khi sử dụng sudo lần đầu tiên 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 bạn cần trên máy chủ của mình ngay bây giờ.

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời