Ngày đăng: 23 tháng 10 năm 2023
Khi tạo máy chủ Ubuntu 22.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 quá trình thiết lập ban đầu. Các bước này sẽ tăng cường tính bảo mật và khả năng sử dụng 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.
Để đăng nhập vào máy chủ của bạn, bạn sẽ cần biết địa chỉ IP công cộng của máy chủ. Bạn cũng sẽ cần mật khẩu hoặc private key cho tài khoản root user nếu bạn đã cài đặt SSH key để xác thực. 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, nó sẽ hướng dẫn chi tiết về quy trình này.
Nếu hiện tại bạn chưa kết nối với máy chủ của mình, hãy đăng nhập với tư cách root user bằng lệnh sau. Thay thế phần your_server_ip
đượ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:
- 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 máy chủ của bạn sử dụng xác thực bằng mật khẩu, hãy cung cấp mật khẩu gốc (root) của bạn để đăng nhập. Nếu bạn sử dụng SSH key được bảo vệ bằng cụm mật khẩu (passphrase), bạn có thể cần phải nhập cụm mật khẩu vào lần đầu tiên sử dụng khóa mỗi session. 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ần phải thay đổi mật khẩu gốc. Làm theo hướng dẫn để thay đổi mật khẩu nếu bạn nhận được lời nhắc.
Root user là người dùng quản trị trong môi trường Linux với các đặc quyền nâng cao. 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. Tài khoản root có thể thực hiện những thay đổi có tính hủy diệt, thậm chí là do vô tình.
Bước tiếp theo là thiết lập một 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 này, 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 khi bạn cần chúng.
Khi bạn đăng nhập bằng 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 tên là sammy, nhưng bạn nên thay thế tên đó bằng tên người dùng mà bạn thích:
- 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. Thông tin này không bắt buộc và bạn có thể nhấn ENTER
trong bất kỳ trường nào bạn muốn bỏ qua.
Bây giờ bạn có 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 bạn sẽ cần thực hiện các tác vụ quản trị với tư cách là root user.
Để tránh đă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 gì được gọi là đặc quyền superuser (siêu người dùng) hoặc root cho tài khoản thông thường của người dùng. Những đặc quyền này sẽ cho phép người dùng bình thường của bạn chạy các lệnh với đặc 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 bạn, bạn sẽ cần thêm người dùng vào nhóm hệ thống sudo. Theo mặc định trên Ubuntu 22.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 sammy
được đánh dấu bằng người dùng mới của bạn):
- usermod -aG sudo sammy
Bây giờ bạn có thể nhập sudo
trước các lệnh để chạy chúng với đặc quyền superuser khi đăng nhập với tư cách người dùng thông thường.
Máy chủ Ubuntu 22.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. Bạn 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 mình với UFW sau khi cài đặt. Những 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 bạn kết nối với máy chủ của mình, có hồ sơ được đăng ký với UFW.
Bạn có thể kiểm tra danh sách các cấu hình UFW đã cài đặt bằng cách nhập:
- ufw app list
OutputAvailable applications:
OpenSSH
Bạn sẽ 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 vào máy chủ của mình vào lần tiếp theo. Cho phép các kết nối này bằng cách gõ:
- ufw allow OpenSSH
Bây giờ kích hoạt tường lửa bằng cách gõ:
- 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õ:
- ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Tường lửa hiện đang chặn tất cả các kết nối ngoại trừ SSH. 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 mới vào máy chủ của mình. 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ủa chúng tôi.
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
với người dùng mới của mình, chúng tôi khuyên bạn nên duy trì đăng nhập bằng root. Nếu gặp sự cố khi kết nối, 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.
Đị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 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 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ở terminal session và sử dụng SSH với tên người dùng mới của bạn:
- 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:
- sudo command_to_run
Bạn sẽ nhận được lời 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 session (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 22.04 để tìm hiểu cách định cấu hình xác thực dựa trên khóa.
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 sẽ bị vô hiệu hóa đối với SSH. Để đăng nhập với tư cách người dùng thông thường bằng SSH key, bạn phải thêm bản sao public key cục bộ vào tệp ~/.ssh/authorized_keys
của người dùng mới.
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 bằng session hiện tại.
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
. Lệnh 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ỉ trong một lệnh duy nhất. Đả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:
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.
- rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Bây giờ, hãy mở terminal session 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:
- ssh sammy@your_server_ip
Bạn nên kết nối với máy chủ của mình bằng 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 có đặc quyền quản trị, hãy nhập sudo
trước lệnh như sau:
- 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 session (và định kỳ sau đó).
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ờ.
Nếu muốn làm quen hơn với các lệnh Linux, bạn có thể kiểm tra Primer Dòng lệnh Linux của chúng tôi.