Thứ sáu, 27/04/2018 | 00:00 GMT+7

Thiết lập server ban đầu với Ubuntu 18.04

Khi bạn lần đầu tiên tạo một server Ubuntu 18.04 mới, có một số bước cấu hình mà bạn nên thực hiện sớm như một phần của cài đặt cơ bản. Điều này sẽ tăng tính bảo mật và khả năng sử dụng cho server của bạn và sẽ tạo cho bạn một nền tảng vững chắc cho các hành động tiếp theo.

Lưu ý: Hướng dẫn bên dưới trình bày cách hoàn thành thủ công các bước mà ta đề xuất cho server Ubuntu 18.04 mới. Làm theo thủ công quy trình này có thể hữu ích để học một số kỹ năng quản trị hệ thống cơ bản và như một bài tập để hiểu đầy đủ các hành động đang được thực hiện trên server. Thay vào đó, nếu bạn muốn cài đặt và chạy nhanh hơn, bạn có thể chạy lệnh cài đặt server ban đầu để tự động hóa các bước này.

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, thì private key cho account của user gốc . 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 , hướng dẫn 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 tiếp tục và đăng nhập với quyền là user gốc bằng lệnh sau (thay thế phần được đánh dấu của lệnh bằng địa chỉ IP công khai 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 gốc 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 gốc .

Về 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 gốc , bạn không nên sử dụng nó một cách thường xuyên. Do quyền của account gốc 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 thay thế với phạm vi ảnh hưởng giảm bớt cho công việc hàng ngày. Ta sẽ hướng dẫn bạn cách gia tăng quyền lúc bạn cần chúng.

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

Khi bạn đã đăng nhập bằng quyền root , ta chuẩn bị thêm account user mới mà ta sẽ sử dụng để đăng nhập từ bây giờ.

Ví dụ này tạo một user mới có tên là sammy , nhưng bạn nên thay thế nó 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 gốc , ta có thể cài đặt “siêu user ” hoặc quyền gốc 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 những quyền này cho user mới , ta cần thêm user mới vào group sudo . Theo mặc định, trên Ubuntu 18.04, user thuộc 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ế chữ tô đậm với user 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 18.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.

Các ứng dụng khác nhau 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

Gõ “ 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 truy cập được chấp nhận. Bạn có thể tìm hiểu một số thao tác UFW phổ biến trong hướng dẫn này .

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 .

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 gốc 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 gốc 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 sẽ 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 18.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 gốc 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 gốc 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 gốc , 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 gốc 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 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 sẽ 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 đó).

Đi đâu từ đây?

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

Tự động thiết lập server ban đầu với Ubuntu 18.04
2018-04-27
Bắt đầu với kết xuất phía server bằng Nuxt.js
2018-04-16
Cách bảo vệ server của bạn trước lỗ hổng Meltdown và Spectre
2018-01-10
Sơ lược về lịch sử Linux
2017-10-27
Cách thiết lập Shiny Server trên Ubuntu 16.04
2017-10-25
Cách thiết lập server lưu trữ đối tượng bằng Minio trên Ubuntu 16.04
2017-08-30
Cách chạy server MongoDB an toàn với OpenVPN và Docker trên Ubuntu 16.04
2017-03-24
Kết xuất phía server cơ bản với Vue.js và Express
2017-03-14
Cách thiết lập server VPN IKEv2 với StrongSwan trên Ubuntu 16.04
2017-02-17
Cách cấu hình firewall Linux cho Docker Swarm trên CentOS 7
2017-01-11