Nội dung chính
Giới thiệu
Khi bạn lần đầu tiên tạo một server (máy chủ) Ubuntu 20.04 mới, 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 server của bạn, đồng thời tạo 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 để thiết lập server ubuntu của mình, bạn 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 – nếu bạn đã cài đặt khóa SSH để xác thực – khóa riêng tư cho tài khoản của người dùng root. 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 Droplets bằng SSH, trình bày chi tiết về quy trình này.
Nếu bạn chưa được 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à người dùng root 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):
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 của bạn để đăng nhập. Nếu bạn đang sử dụng khóa SSH đượ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. 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.
Về root
Người dùng root 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 của tài khoản root, bạn không nên sử dụng nó một cách thường xuyên. Điều này là do tài khoản root có thể thực hiện các thay đổi rất nguy hiểm, thậm chí là do tình cờ.
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 giảm bớt để sử dụng hàng ngày. Sau đó, chúng tôi sẽ hướng dẫn bạn cách tạm thời tăng các đặc quyền cho những lúc bạn cần.
Bước 2 – Tạo người dùng mới
Sau khi đăng nhập bằng quyền root, bạn sẽ có thể thêm tài khoản người dùng (username) mới. Trong tương lai, chúng tôi sẽ đăng nhập bằng tài khoản mới này thay vì 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ế người dùng đó bằng một tên người dùng mà bạn thích:
1 |
adduser sammy |
Bạn sẽ được hỏi một số câu hỏi, bắt đầu với 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 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ước 3 – Cấp đặc quyền quản trị
1 |
ufw app list |
Để tránh phải đăng xuất khỏi người dùng bình thường của chúng tôi và đăng nhập lại bằng tài khoản root, chúng tôi có thể thiết lập những gì được gọi là siêu người dùng hoặc đặc quyền root cho tài khoản bình thường của chúng tôi. Điều này sẽ cho phép người dùng bình thường của chúng tôi chạy các lệnh có đặ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 chúng tôi, chúng tôi 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 tư cách là người chủ, 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):
1 |
usermod -aG sudo sammy |
Bây giờ, 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ác đặc quyền của người dùng siêu cấp.
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 các kết nối đến một số dịch vụ nhất định. Chúng tôi 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 tôi kết nối với máy chủ của mình ngay bây giờ, có một hồ sơ được đăng ký với UFW.
Bạn có thể thấy điều này bằng cách nhập:
1 |
ufw app list |
Kết quả trả về như sau
1 2 3 |
Output Available applications: OpenSSH |
Chúng ta cần đảm bảo rằng tường lửa cho phép các kết nối SSH để chúng ta có thể đăng nhập lại vào lần sau. Chúng tôi có thể cho phép các kết nối này bằng cách nhập:
1 |
ufw allow OpenSSH |
Sau đó, chúng ta có thể kích hoạt tường lửa bằng cách gõ:
1 |
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 phép bằng cách nhập:
1 2 3 4 5 6 7 8 9 10 |
ufw status Kết quả trả về như sau: 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à đị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. Bạn có thể tìm hiểu một số thao tác UFW phổ biến trong hướng dẫn UFW Essentials của chúng tôi.
Bước 5 – Bậ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ờ chúng tôi có một người dùng thông thường để sử dụng hàng ngày, chúng tôi cần đảm bảo rằng chúng tôi có thể SSH trực tiếp vào tài khoản.
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 tư cách root. Nếu bạn đang sử dụng DigitalOcean Droplet và gặp sự cố với kết nối SSH root của mình, bạn có thể lấy lại quyền truy cập vào Droplet bằng Bảng điều khiển khôi phục.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 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 khóa SSH để 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ở terminal 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 của người dùng thông thường, bạn sẽ được đăng nhập. 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 nó như sau:
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 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 khóa SSH 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 khóa SSH trên Ubuntu 20.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 khóa SSH
Nếu bạn đã đăng nhập vào tài khoản root của mình bằng khóa SSH, thì xác thực mật khẩu sẽ bị vô hiệu hóa đối với SSH. Bạn sẽ cần thêm 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ủ, chúng tôi có thể sao chép tệp và cấu trúc thư mục đó vào tài khoản người dùng mới trong phiên hiện có của chúng 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à sử dụng lệnh rsync
. Thao tác này sẽ sao chép thư mục .ssh
của người dùng root, bảo toàn 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 khác với lệnh không có dấu gạch chéo. 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 (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 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ẽ ở sai vị trí và SSH sẽ không thể tìm thấy và sử dụng chúng.
1 |
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy |
1 |
ssh sammy@your_server_ip |
sudo
trước nó như sau:
1 |
sudo command_to_run |
sudo
lần đầu tiên mỗi phiên (và định kỳ sau đó).
Kết
Lúc này, bạn đã có một nền tảng vững chắc cho các lần thiết lập sau cho server ubuntu của mình rồi đó. 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ờ.
Hy vọng qua bài viết hướng dẫn thiết lập máy chủ với Ubuntu 20.04, 22.04 này sẽ giúp ích cho kiến thức cảu các bạn 1 phần nào đó để bảo mật máy chủ của mình 1 cách an toàn nhất có thể.
Tham thảo từ: digitalocean
Add Comment