Thứ năm, 23/04/2020 | 00:00 GMT+7

Thiết lập bảo mật server quan trọng với Ubuntu 20.04

Khi bạn lần đầu tiên tạo một server 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 cài đặt cơ bản. 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 server , bạn cần biết địa chỉ IP công cộng của server . Bạn cũng cần password hoặc - nếu bạn đã cài đặt SSH key để xác thực - private key cho account của user root . Nếu bạn chưa đăng nhập vào server , bạn có thể làm theo hướng dẫn về cách kết nối với Server 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 server , hãy đăng nhập ngay bây giờ với quyền là user 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 server):

  • ssh root@your_server_ip

Chấp nhận cảnh báo về tính xác thực của server nếu nó xuất hiện. Nếu bạn đang sử dụng xác thực password , hãy cung cấp password 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 (password bảo vệ) , bạn có thể được yêu cầu nhập passphrase (password bảo vệ) 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 server bằng password , bạn cũng có thể được yêu cầu thay đổi password root .

root

User root là admin-user trong môi trường Linux có các quyền rất rộng. Vì các quyền cao của account root , bạn không nên sử dụng nó một cách thường xuyên. Do quyền của account root có thể thực hiện lệnh rủi ro do vô tình hay cố ý. .

Bước tiếp theo là cài đặt một account user mới với các quyền giảm bớt để sử dụng hàng ngày. Sau đó, ta sẽ hướng dẫn bạn cách nhận được các quyền gia tăng chỉ lúc bạn cần chúng.

Bước 2 - Tạo user mới

Khi bạn đã đăng nhập với quyền root , ta chuẩn bị thêm account user mới. Trong tương lai, ta sẽ đăng nhập bằng account mới này thay vì root .

Ví dụ này tạo một user mới có tên là sammy , nhưng bạn nên thay thế user đó bằng một tên user bạn muốn :

  • adduser sammy

Bạn sẽ được hỏi một số câu hỏi, bắt đầu với password account .

Nhập một password 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 Quyền Quản trị

Bây giờ, ta có một account user mới với các quyền account thông thường. Tuy nhiên, đôi khi ta có thể cần thực hiện các việc quản trị (admin task) .

Để tránh phải đăng xuất khỏi user thường và đăng nhập lại bằng account root , ta có thể cài đặt siêu user hoặc quyền root cho account thường của bạn . Điều này sẽ cho phép user thường chạy các lệnh có quyền quản trị bằng cách đặt từ sudo trước mỗi lệnh.

Để thêm các quyền này cho user mới , ta cần thêm user vào group sudo . Theo mặc định, trên Ubuntu 20.04, user là thành viên của group sudo được phép sử dụng sudo .

Như là user root , hãy chạy lệnh này để thêm user mới của bạn vào group sudo (thay thế tên user nhấn mạnh với người sử dụng mới của bạn):

  • usermod -aG sudo sammy

Như vậy, khi đã đăng nhập với quyền là regular user , bạn có thể nhập sudo trước các lệnh để thực hiện các hành động với quyền của user siêu cấp.

Bước 4 - Cài đặt firewall cơ bản

Server Ubuntu 20.04 có thể sử dụng firewall UFW đảm bảo chỉ cho phép các kết nối đến một số dịch vụ nhất định. Ta có thể cài đặt firewall cơ bản rất dễ dàng bằng ứng dụng này.

Lưu ý: Nếu server đang chạy trên DigitalOcean, bạn có thể tùy chọn sử dụng Tường lửa cloud DigitalOcean thay vì firewall UFW. Bạn chỉ nên sử dụng một firewall tại một thời điểm để tránh các-luật xung đột có thể khó gỡ lỗi.

Các ứng dụng có thể đăng ký profile 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 ta kết nối với server ngay bây giờ, có một profile được đăng ký với UFW.

Bạn có thể thấy điều này bằng lệnh :

  • ufw app list
Output
Available applications:   OpenSSH 

Ta cần đảm bảo firewall cho phép kết nối SSH để có thể đăng nhập lại vào lần sau. Ta có thể cho phép các kết nối này bằng lệnh :

  • ufw allow OpenSSH

Sau đó, ta có thể kích hoạt firewall bằng lệnh :

  • 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 lệnh :

  • ufw status
Output
Status: 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 bạn cài đặt và cấu hình các dịch vụ bổ sung, bạn cần điều chỉnh cài đặt firewall để 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 .

Bước 5 - Bật quyền truy cập bên ngoài cho regular user

Bây giờ ta có một regular user để sử dụng hàng ngày, ta cần đảm bảo ta có thể SSH trực tiếp vào account .

Lưu ý: Cho đến khi xác minh bạn có thể đăng nhập và sử dụng sudo với user mới của bạ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 khi root . Nếu bạn đang sử dụng DigitalOcean Server và gặp sự cố với kết nối SSH root của bạn , bạn có thể đăng nhập vào Server bằng DigitalOcean Console .

Quá trình cấu hình quyền truy cập SSH cho user mới của bạn phụ thuộc vào việc account root của server sử dụng password hoặc SSH key để xác thực.

Nếu account root sử dụng xác thực password

Nếu bạn đã đăng nhập vào account root của mình bằng password , thì xác thực password được bật cho SSH. Bạn có thể SSH vào account user mới của bạn bằng cách mở một phiên terminal mới và sử dụng SSH với tên user mới của bạn:

  • ssh sammy@your_server_ip

Sau khi nhập password của regular user , bạn sẽ được đăng nhập. Lưu ý , 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ư sau:

  • sudo command_to_run

Bạn cần nhập password regular user 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 server, ta thực sự khuyên bạn nên cài đặt SSH key thay vì sử dụng xác thực password . Làm theo hướng dẫn về cách cài đặt SSH key trên Ubuntu 20.04 để tìm hiểu cách cấu hình xác thực dựa trên khóa.

Nếu account root sử dụng xác thực SSH key

Nếu bạn đã đăng nhập vào account root của mình bằng SSH key , thì xác thực password sẽ bị vô hiệu hóa cho SSH. Bạn cần thêm một bản sao của public key local của bạn vào file ~/.ssh/authorized_keys của user mới để đăng nhập thành công.

Vì public key của bạn đã có trong file ~/.ssh/authorized_keys của account root trên server , ta có thể sao chép file và cấu trúc folder đó vào account user mới trong phiên hiện có .

Cách đơn giản nhất để sao chép các file 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 .ssh của user root , bảo toàn quyền và sửa đổi chủ sở hữu file , 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 để trùng với tên regular user:

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 folder nguồn ( ~/.ssh ) không có dấu gạch chéo (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 ~/.ssh của account root vào ~/.ssh chính của user sudo thay vì sao chép toàn bộ cấu trúc thư ~/.ssh . Các file sẽ ở sai vị trí và SSH sẽ không thể tìm thấy và sử dụng chúng.

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

Bây giờ, hãy mở một phiên terminal mới trên máy local của bạn và sử dụng SSH với tên user mới của bạn:

  • ssh sammy@your_server_ip

Bạn phải đăng nhập vào account user mới mà không cần sử dụng password . Lưu ý , 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ư sau:

  • sudo command_to_run

Bạn cần nhập password regular user khi sử dụng sudo lần đầu tiên mỗi phiên (và định kỳ sau đó).

Tiếp theo?

Lúc này, bạn đã có một nền tảng vững chắc cho server . Bạn có thể cài đặt bất kỳ phần mềm nào bạn cần trên server ngay bây giờ.


Tags:

Các tin liên quan

Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên CentOS 7
2020-04-21
Cách theo dõi tình trạng server với Checkmk trên Ubuntu 18.04
2020-04-16
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên CentOS 8 [Quickstart]
2020-04-16
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên CentOS 8 [Quickstart]
2020-04-16
Cách cài đặt server phát nhạc trực tuyến Ampache trên Ubuntu 18.04
2020-04-08
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên CentOS 8
2020-04-07
Cách cài đặt Linux, Nginx, MariaDB, PHP ( LEMP) trên Debian 10
2020-03-30
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên CentOS 8
2020-02-24
Thiết lập server ban đầu với CentOS 8
2020-02-06
Cách thiết lập Nền tảng Cloud IDE server mã trên Ubuntu 18.04 [Quickstart]
2020-01-02