Khởi tạo bảo mật Server Ubuntu 20.04
Lần đầu cài server Ubuntu 20.04, ta nên thực hiện một số bước cấu hình quan trọng để thiết lập cơ bản. Các bước này tăng bảo mật và hữu dụng cho server, đồng thời tạo nền tảng vững chắc cho các hoạt động tiếp theo.Bước 1 - Đăng nhập với quyền root
Để đăng nhập vào server, ta cần biết địa chỉ IP công cộng của server . Ta cũng sẽ cần password hoặc nếu đã cài đặt khóa SSH để xác thực , ta cần private key cho tài khoản user root.
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 tư cách là user root bằng lệnh sau (thay thế phần được đánh dấu 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 bằng password, hãy cung cấp password root để đăng nhập. Nếu đang sử dụng khóa SSH được bảo vệ bằng cụm password, bạn có thể được yêu cầu nhập cụm password. 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 .
Về root
User root là user quản trị trong môi trường Linux có các quyền rất rộng. Do các quyền cao của tài khoản root , bạn không nên sử dụng nó thường xuyên vì diều đó có thể gây rủi ro vô tình hay cố ý.
Tiếp theo là tạo tài khoản user mới với các quyền giảm bớt để sử dụng hàng ngày. Khi cần ta có thể gia tăng quyền, sẽ có hướng dẫn sau ở đây.
Bước 2 - Tạo user mới
Khi đã đăng nhập bằng quyền root , ta chuẩn bị tạo tài khoản user mới. Sau đó taa 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 user mới có tên là sammy, 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 tài khoản.
Nhập một password mạnh và điền thông tin bổ sung nào nếu bạn muốn, không bắt buộc và ta có thể nhấn ENTER
bỏ qua.
Bước 3 - Cấp quyền admin
Bây giờ, ta đã có một tài khoản user mới với các quyền tài khoản thông thường. Tuy nhiên, đôi khi ta có thể cần thực hiện các việc admin.
Để tránh phải đăng xuất khỏi user thường và đăng nhập lại bằng tài khoản root , ta có thể thiết lập những gì được gọi là superuser hoặc quyền root cho tài khoản thường . Điều này sẽ cho phép user thường chạy các lệnh có quyền admin bằng cách đặt sudo
trước mỗi lệnh.
Để thêm các quyền này cho user mới của ta, ta cần thêm user vào nhóm sudo. Theo mặc định, trên Ubuntu 20.04, user là thành viên của nhóm sudo được phép sử dụng sudo
.
Như là root, chạy lệnh này để thêm user mới vào nhóm sudo (thay thế tên user với user mới ):
- usermod -aG sudo sammy
Bây giờ, khi đăng nhập với tư cách là user thường , ta có thể nhập sudo
trước các lệnh để thực hiện các hành động với quyền supperuser.
Bước 4 - Thiết lập firewall cơ bản
Server Ubuntu 20.04 có thể sử dụng firewall UFW để cho phép các kết nối với một số dịch vụ nhất định. Ta có thể thiết lập firewall cơ bản dễ dàng.
Lưu ý: ta 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ó sửa.
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, 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
Available applications:
OpenSSH
Ta cần đảm bảo rằng 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 đó, kích hoạt firewall bằng cách gõ:
- ufw enable
Nhập y
và nhấn ENTER
để tiếp tục. Ta sẽ thấy rằng các kết nối SSH vẫn được phép bằng lệnh:
- ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Vì firewall 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 sẽ 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 user thường
Bây giờ ta có một user thường để sử dụng hàng ngày, ta cần đảm bảo có thể SSH trực tiếp vào tài khoản.
Lưu ý: Cho đến khi có thể đăng nhập và sử dụng sudo
với user mới , bạn nên đăng nhập bằng quyền root . Bằng cách này, nếu gặp sự cố, ta có thể khắc phục và thực hiện thay đổi với tư cách root.
Quá trình cấu hình quyền truy cập SSH cho user mới phụ thuộc vào việc tài khoản root của server sử dụng password hay khóa SSH để xác thực.
Nếu tài khoản root sử dụng xác thực password
Nếu bạn đã đăng nhập vào tài khoản root bằng password , thì xác thực password được bật cho SSH. Bạn có thể SSH vào tài khoản user mới bằng cách mở một phiên đầu cuối mới và sử dụng SSH với tên user mới :
- ssh sammy@your_server_ip
Sau khi nhập password của user thường, bạn sẽ đăng nhập. Nhớ rằng, nếu bạn cần chạy một lệnh có quyền admin, hãy nhập sudo
trước nó như sau:
- sudo command_to_run
Bạn sẽ được yêu cầu nhập password user thường khi sử dụng sudo
lần đầu tiên mỗi phiên.
Để tăng cường bảo mật cho server, bạn nên thiết lập khóa SSH thay vì sử dụng xác thực password . Bạn có thể làm theo hướng dẫn về cách thiết lập khóa SSH 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 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 bằng khóa SSH , thì xác thực password có thể bị vô hiệu hóa đối với SSH. Bạn sẽ cần thêm một bản sao của khóa công khai cục bộ vào file ~/.ssh/authorized_keys
của user mới để đăng nhập thành công.
Vì khóa công khai đã có trong file ~/.ssh/authorized_keys
của tài khoản root trên server, ta có thể sao chép file và cấu trúc thư mục đó vào tài khoản user mới trong phiên hiện tại.
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 để khớp với tên user thường:
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 các nguồn 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 có 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 ~/.ssh
của tài khoản 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.
- rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Tiếp theo, mở một phiên đầu cuối mới trên máy cục bộ và sử dụng SSH với tên user mới :
- ssh sammy@your_server_ip
Nên đăng nhập vào tài khoản user mới mà không cần sử dụng password. Lưu ý, nếu cần chạy một lệnh có quyền admin, hãy nhập sudo
trước lệnh:
- sudo command_to_run
Bạn sẽ được yêu cầu nhập password user thường khi sử dụng sudo
lần đầu tiên mỗi phiên (và định kỳ sau đó).
Kết luận
Chúc mừng bạn, bạn đã cấu hình cơ bản và chắc chắn cho server. Bạn có thể cài đặt bất kỳ phần mềm tiếp theo ngay bây giờ.
Các tin trước
Cài đặt MySQL trên Ubuntu 18.04 2020-04-21 Cài đặt và bảo mật phpMyAdmin trên Ubuntu 18.04 2020-04-21 Cài đặt Webserver Apache trên CentOS 7 2019-05-29 So sánh SQLite , MySQL , PostgreSQL 2019-03-19 Cài đặt và sử dụng Docker trên Ubuntu 16 2018-10-19 Cài đặt và sử dụng Composer trên Ubuntu 18.04 2018-10-16 Cài đặt WordPress với LAMP trên Ubuntu 18.04 2018-07-06 Chuyển folder dữ liệu Mysql tới vị trí mới trên Ubuntu 18.04 2018-07-06 Cài đặt và Sử dụng Docker với Ubuntu 18.04 2018-07-05 Cài đặt Firewall với UFW trên Ubuntu 18.04 2018-07-05