---
title: "Thiết lập máy chủ ban đầu với Ubuntu 20.04"
description: "Thiết lập máy chủ ban đầu với Ubuntu 20.04"
url: https://cloudfly.vn/techblog/thiet-lap-may-chu-ban-dau-voi-ubuntu-2004
image: https://media.cloudfly.vn/posts/thiet-lap-may-chu-ban-dau-voi-Ubuntu-20.04.png
---

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

## Giới thiệu

Khi bạn tạo một máy chủ Ubuntu 20.04 mới lần đầu tiên, bạn nên thực hiện một số bước cấu hình quan trọng như một phần của thiết lập ban đầu. Các bước này sẽ tăng tính bảo mật và khả năng sử dụng cho máy chủ của bạn, đồng thời sẽ cung cấp cho bạn nền tảng vững chắc cho các hành động tiếp theo.

## Bước 1 — Đăng nhập với quyền root

Để đăng nhập vào máy chủ của bạn, bạn cần biết **địa chỉ IP công khai của máy chủ**. Bạn cũng sẽ cần mật khẩu hoặc — nếu bạn đã cài đặt SSH key để xác thực — private key cho tài khoản của **root** user. Nếu bạn chưa đăng nhập vào máy chủ của mình, bạn có thể làm theo hướng dẫn của chúng tôi về cách Kết nối với Droplets bằng SSH, hướng dẫn chi tiết về quy trình này.

Nếu bạn chưa kết nối với máy chủ của mình, hãy đăng nhập ngay bây giờ với tư cách là **root** user bằng lệnh sau (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):
```command
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 mật khẩu, hãy cung cấp mật khẩu **root** của bạn để đăng nhập. Nếu bạn đang sử dụng SSH key được bảo vệ bằng passphrase , bạn có thể được nhắc nhập passphrase vào lần đầu tiên bạn sử dụng khóa mỗi phiên. 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**.

## Giới thiệu về root

**Root** user là người dùng quản trị trong môi trường Linux có các đặc quyền rất rộng. Do các đặc quyền cao hơn của tài khoản **root**, bạn không nên sử dụng nó thường xuyên. Điều này là do tài khoản **root** có thể thực hiện những thay đổi rất có hại, thậm chí do vô tình.

Bước tiếp theo là thiết lập tài khoản người dùng mới với các đặc quyền được giảm bớt để sử dụng hàng ngày. Sau đó, chúng tôi sẽ chỉ cho bạn cách tạm thời nhận được các đặc quyền gia tăng cho những lúc bạn cần.

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

Khi bạn đã đăng nhập với quyền **root**, bạn sẽ có thể thêm tài khoản người dùng mới. Trong tương lai, chúng ta sẽ đăng nhập bằng tài khoản mới này thay vì tài khoản **root**.

Ví dụ này tạo một 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:
```custom_prefix(#)
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 mật khẩu mạnh và tùy chọn điền vào 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.

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

Bây giờ chúng ta có một tài khoản người dùng mới với các đặc quyền tài khoản thông thường. Tuy nhiên, đôi khi chúng ta có thể cần thực hiện các tác vụ quản trị.

Để tránh phải đăng xuất khỏi người dùng bình thường của chúng ta và đăng nhập lại bằng tài khoản **root**, chúng ta có thể thiết lập cái được gọi là đặc quyền superuser hoặc quyền **root** cho tài khoản bình thường của chúng ta. Điều này sẽ cho phép người dùng bình thường của chúng ta 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 các đặc quyền này cho người dùng mới của chúng ta, chúng ta cần thêm người dùng vào nhóm **sudo**. Theo mặc định, trên Ubuntu 20.04, người dùng là thành viên của nhóm **sudo** được phép sử dụng lệnh `sudo`.

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ên người dùng được đánh dấu bằng người dùng mới của bạn):
```command
usermod -aG sudo <^>sammy<^>
```

Giờ đây, khi đăng nhập với tư cách người dùng thông thường, bạn có thể nhập `sudo` trước các lệnh để chạy chúng với đặc quyền superuser.

## Bước 4 — Thiết lập Tường lửa Cơ bản

Máy chủ Ubuntu 20.04 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. Chúng ta có thể thiết lập tường lửa cơ bản bằng ứng dụng này.

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

Bạn có thể thấy điều này bằng cách gõ:
```custom_prefix(#)
ufw app list
```

```
[secondary_label Output]
Available applications:
  OpenSSH
```

Chúng ta cần đảm bảo rằng tường lửa cho phép kết nối SSH để có thể đăng nhập lại vào lần sau. Chúng ta có thể cho phép các kết nối này bằng cách gõ:
```custom_prefix(#)
ufw allow OpenSSH
```

Sau đó, chúng ta có thể kích hoạt tường lửa bằng cách gõ:
```custom_prefix(#)
ufw enable
```

Nhập `y` và nhấn `ENTER` để tiếp tục. Bạn có thể thấy rằng các kết nối SSH vẫn được cho phép bằng cách gõ:
```custom_prefix(#)
ufw status
```

```
[secondary_label 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ếu bạn cài đặt và thiết lập 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. Bạn có thể tìm hiểu một số thao tác UFW phổ biến trong hướng dẫn Khái quát về UFW của chúng tôi.

## Bước 5 - Kích hoạt External Access cho người dùng thông thường của bạn

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

<$>[note]
**Lưu ý:** Cho đến khi xác minh rằng bạn có thể đăng nhập và sử dụng `sudo` với người dùng mới của mình, chúng tôi khuyên bạn nên đăng nhập với quyền **root**. Bằng cách này, nếu bạn gặp sự cố, bạn có thể khắc phục sự cố và thực hiện bất kỳ thay đổi cần thiết nào với quyền **root**.
<$>

Quá trình thiết lập cấu hình quyền truy cập SSH cho người dùng mới của bạn phụ 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 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** của mình bằng mật khẩu, thì xác thực mật khẩu sẽ đượ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ở một 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:
```command
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 với quyền quản trị, hãy nhập `sudo` trước nó như thế này:
```command
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 keys thay vì sử dụng xác thực 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 keys trên Ubuntu 20.04 để tìm hiểu cách thiết lập 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 keys

Nếu bạn đã đăng nhập vào tài khoản **root** của mình bằng SSH keys, thì xác thực mật khẩu sẽ bị tắt cho SSH. Bạn sẽ cần thêm một bản sao khóa công khai cục bộ 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ì khóa công khai 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 chúng ta có thể sao chép cấu trúc thư mục và tệp đó vào tài khoản người dùng mới trong phiên hiện tại của chúng ta.

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à sử dụng lệnh `rsync`. Thao tác này sẽ sao chép thư mục `.ssh` của **root** user, giữ nguyên quyền và sửa đổi chủ sở hữu tệp, tất cả chỉ trong một lệnh. Đảm bảo thay đổi các phần được đánh dấu của lệnh bên dưới để khớp với tên người dùng thông thường của bạn:

<$>[note]
**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 và đích 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 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** sang 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.
<$>

```custom_prefix(#)
rsync --archive --chown=<^>sammy<^>:<^>sammy<^> ~/.ssh /home/<^>sammy<^>
```

Bây giờ, hãy mở một phiên cuối mới trên máy cục bộ của bạn và sử dụng SSH với tên người dùng mới của bạn:
```command
ssh <^>sammy<^>@<^>your_server_ip<^>
```

Bạn nên đă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. Hãy nhớ rằng, nếu bạn cần chạy một lệnh với quyền quản trị, hãy nhập `sudo` trước nó như thế này:
```command
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 đó).

## Đi đâu từ đây?

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ờ.
