Hướng Dẫn Cấu Hình Máy Chủ Ubuntu 16.04: Tăng Bảo Mật và Hiệu Suất Ban Đầu

Hướng Dẫn Cấu Hình Máy Chủ Ubuntu 16.04: Tăng Bảo Mật và Hiệu Suất Ban Đầu

Khi bạn thiết lập một máy chủ Ubuntu 16.04 mới, có một số bước cấu hình cơ bản bạn cần thực hiện ngay từ ban đầu. Việc thực hiện những bước này không chỉ giúp tăng cường bảo mật cho hệ thống mà còn nâng cao khả năng sử dụng và hiệu suất của máy chủ. Bên cạnh đó, nó còn tạo ra một nền tảng ổn định và vững chắc cho những công việc và cấu hình phức tạp hơn sau này. Việc cấu hình này sẽ giúp bạn tránh được các vấn đề tiềm ẩn trong tương lai và đảm bảo rằng hệ thống hoạt động một cách mượt mà và an toàn, giúp bạn dễ dàng triển khai và quản lý các ứng dụng hoặc dịch vụ sau này.

Trước khi bắt đầu cấu hình máy chủ Ubuntu 16.04, việc chọn một VPS phù hợp là rất quan trọng. Với VPS giá rẻ, bạn có thể sở hữu máy chủ mạnh mẽ, tiết kiệm chi phí mà vẫn đảm bảo hiệu suất. Khám phá ngay các gói VPS giá rẻ tại DataOnline để khởi đầu dễ dàng!

Bước 1 – Đăng nhập Root

Để đăng nhập vào máy chủ, bạn cần biết địa chỉ IP công cộng của máy chủ. Bạn cũng cần mật khẩu hoặc, nếu bạn đã cài đặt SSH key để xác thực, thì Private Key của tài khoản “root”. Nếu bạn chưa từng đăng nhập vào máy chủ, bạn có thể làm theo hướng dẫn trong bài viết Cách kết nối với DataOnline Droplet của bạn bằng SSH” để biết chi tiết cách thực hiện quá trình này.

Nếu bạn chưa kết nối tới máy chủ, hãy đăng nhập với tài khoản root bằng lệnh sau (thay thế từ được tô đậm bằng địa chỉ IP công cộng của máy chủ):

ssh root@your_server_ip

Sau đó, hoàn tất quá trình đăng nhập bằng cách chấp nhận cảnh báo về tính xác thực của host (nếu có), rồi nhập thông tin xác thực của root (mật khẩu hoặc private key). Nếu đây là lần đầu tiên bạn đăng nhập bằng mật khẩu, bạn cũng sẽ được yêu cầu đổi mật khẩu root.

Về tài khoản Root

Tài khoản root là tài khoản quản trị trong môi trường Linux với các quyền hạn rất rộng. Do quyền hạn cao của tài khoản root, bạn nên hạn chế sử dụng nó hàng ngày, vì sức mạnh của tài khoản này cũng đồng nghĩa với khả năng gây ra những thay đổi hủy hoại một cách vô tình.

Bước tiếp theo là thiết lập một tài khoản người dùng thay thế với quyền hạn hạn chế cho các công việc hàng ngày. Chúng tôi sẽ hướng dẫn cách tăng quyền hạn khi cần thiết.

Bước 2 -Tạo tài khoản người dùng mới

Khi bạn đã đăng nhập với tài khoản root, hãy tạo tài khoản người dùng mới mà bạn sẽ sử dụng để đăng nhập từ bây giờ.

Ví dụ dưới đây tạo một người dùng tên “sammy”, bạn nên thay thế bằng tên người dùng mà bạn mong muốn:

adduser sammy

Lệnh này sẽ yêu cầu bạn nhập một số thông tin, bắt đầu từ mật khẩu tài khoản. Hãy nhập mật khẩu mạnh và, nếu muốn, điền thêm các thông tin khác (bạn có thể nhấn ENTER để bỏ qua bất kỳ trường nào không cần thiết).

Bước 3 – Cấp quyền Root

Hiện tại, bạn đã có tài khoản người dùng mới với quyền hạ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ị.

Để tránh phải đăng xuất khỏi tài khoản người dùng thông thường và đăng nhập lại với tài khoản root, bạn có thể cấu hình quyền “superuser” cho tài khoản thường của mình. Điều này cho phép người dùng chạy các lệnh với quyền quản trị bằng cách đặt từ “sudo” trước lệnh cần thực hiện.

Để cấp quyền này cho người dùng mới, bạn cần thêm tài khoản đó vào nhóm “sudo”. Theo mặc định, trên Ubuntu 16.04, các tài khoản thuộc nhóm “sudo” được phép sử dụng lệnh sudo.

Với tài khoản root, chạy lệnh sau (thay thế từ được tô đậm bằng tên người dùng mới của bạn):

usermod -aG sudo sammy

Giờ đây, người dùng của bạn có thể chạy các lệnh với quyền quản trị! Để biết thêm thông tin về cách hoạt động của sudo, bạn có thể tham khảo bài hướng dẫn về sudoers.

Nếu bạn muốn tăng cường bảo mật cho máy chủ, hãy tiếp tục các bước còn lại trong hướng dẫn này.

Bước 4 – Thêm xác thực Public Key

Bước tiếp theo để bảo mật máy chủ là thiết lập xác thực bằng Public Key cho người dùng mới của bạn. Việc này sẽ tăng cường bảo mật bằng cách yêu cầu có một Private SSH key để đăng nhập.

Tạo một cặp Key

Nếu bạn chưa có cặp SSH key (bao gồm Public Key và Private Key), bạn cần tạo một cặp mới. Nếu bạn đã có key muốn sử dụng, hãy chuyển sang bước “Sao Chép Public Key”.

Để tạo một cặp key mới, nhập lệnh sau tại terminal của máy tính cục bộ (tức là máy của bạn):

ssh-keygen

Giả sử tên người dùng cục bộ của bạn là “localuser”, bạn sẽ thấy đầu ra tương tự như sau:

ssh-keygen output
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

Nhấn ENTER để chấp nhận tên và đường dẫn mặc định (hoặc nhập tên mới nếu muốn). Tiếp theo, bạn sẽ được yêu cầu nhập passphrase để bảo vệ key. Bạn có thể nhập passphrase hoặc để trống.
Lưu ý: Nếu để trống, bạn có thể sử dụng Private Key để xác thực mà không cần nhập passphrase. Nếu có passphrase, bạn sẽ cần cả Private Key và passphrase để đăng nhập. Dù thế nào, cả hai cách này đều bảo mật hơn so với xác thực bằng mật khẩu cơ bản.

Lệnh trên sẽ tạo ra một Private Key có tên id_rsa và một Public Key có tên id_rsa.pub trong thư mục .ssh của thư mục home của localuser. Hãy nhớ rằng Private Key không được chia sẻ với bất kỳ ai không được phép truy cập vào máy chủ của bạn!

Sao chép Public Key

Sau khi tạo cặp SSH key, bạn cần sao chép Public Key lên máy chủ mới. Có hai cách đơn giản để thực hiện điều này.

Lưu ý: Phương pháp sử dụng ssh-copy-id sẽ không hoạt động trên DataOnline nếu bạn đã chọn SSH key trong lúc tạo Droplet, vì DataOnline sẽ vô hiệu hóa xác thực bằng mật khẩu khi có SSH key, và ssh-copy-id dựa vào xác thực bằng mật khẩu để sao chép key.

Nếu bạn đang sử dụng DataOnline và đã chọn SSH key khi tạo Droplet, hãy dùng Phương án 2 bên dưới.

Phương Án 1: Sử dụng ssh-copy-id

Nếu máy tính cục bộ của bạn có script ssh-copy-id, bạn có thể dùng nó để cài đặt Public Key cho bất kỳ người dùng nào mà bạn có thông tin đăng nhập.

Chạy script ssh-copy-id bằng cách chỉ định người dùng và địa chỉ IP của máy chủ, như sau:

ssh-copy-id sammy@your_server_ip

Sau khi nhập mật khẩu khi được yêu cầu, Public Key của bạn sẽ được thêm vào tệp .ssh/authorized_keys của người dùng từ xa. Bây giờ, Private Key tương ứng có thể được dùng để đăng nhập vào máy chủ.

Phương Án 2: Cài dặt Key thủ công

Giả sử bạn đã tạo cặp SSH key theo bước trước, sử dụng lệnh sau tại terminal của máy tính cục bộ để in Public Key (id_rsa.pub):

cat ~/.ssh/id_rsa.pub

Lệnh trên sẽ in ra Public SSH key, có định dạng tương tự như sau:

id_rsa.pub contents
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local

Chọn và sao chép Public Key vào clipboard của bạn.

Để bật sử dụng SSH key để xác thực cho người dùng mới, bạn cần thêm Public Key vào một tệp đặc biệt trong thư mục home của người dùng. Trên máy chủ, với tư cách root, nhập lệnh sau để chuyển sang người dùng mới (thay thế tên người dùng của bạn):

su - sammy

Bây giờ, bạn đang ở thư mục home của người dùng mới. Tạo một thư mục mới có tên .ssh và đặt quyền truy cập cho nó bằng các lệnh sau:

mkdir ~/.ssh
chmod 700 ~/.ssh

Tiếp theo, mở một tệp trong thư mục .ssh có tên authorized_keys bằng một trình soạn thảo. Ví dụ, sử dụng nano:

nano ~/.ssh/authorized_keys

Sau đó, dán Public Key mà bạn đã sao chép vào trình soạn thảo. Nhấn CTRL-X để thoát, sau đó nhấn Y để lưu các thay đổi và ENTER để xác nhận tên tệp.

Cuối cùng, đặt quyền truy cập cho tệp authorized_keys với lệnh:

chmod 600 ~/.ssh/authorized_keys

Để quay lại tài khoản root, nhập lệnh:

exit

Giờ đây, Public Key đã được cài đặt, và bạn có thể dùng SSH key để đăng nhập với người dùng mới.

Tiếp theo, chúng ta sẽ hướng dẫn cách tăng cường bảo mật máy chủ bằng cách vô hiệu hóa xác thực bằng mật khẩu.

Bước 5 – Vô hiệu hóa xác thực bằng mật khẩu

Giờ đây, khi người dùng mới có thể sử dụng SSH key để đăng nhập, bạn có thể tăng cường bảo mật cho máy chủ bằng cách vô hiệu hóa xác thực chỉ bằng mật khẩu. Điều này có nghĩa là, ngoài việc truy cập qua console, cách duy nhất để đăng nhập vào máy chủ là phải có Private Key tương ứng với Public Key đã cài đặt.

Lưu ý: Chỉ nên vô hiệu hóa xác thực bằng mật khẩu nếu bạn đã cài đặt Public Key cho người dùng theo bước bốn. Nếu không, bạn có thể tự khóa mình khỏi máy chủ!

Để vô hiệu hóa xác thực bằng mật khẩu, thực hiện các bước sau:

Với tư cách là root hoặc người dùng sudo mới, mở tệp cấu hình của SSH daemon:

sudo nano /etc/ssh/sshd_config

Tìm dòng có nội dung PasswordAuthentication, bỏ dấu # ở đầu dòng để bỏ ghi chú, sau đó thay đổi giá trị của nó thành “no”. Sau khi thay đổi, dòng đó sẽ trông như sau:

sshd_config - Disable password authentication
PasswordAuthentication no

Ngoài ra, có hai cài đặt quan trọng khác cho xác thực chỉ bằng key (và đã được đặt mặc định). Nếu bạn chưa từng chỉnh sửa tệp này, bạn không cần thay đổi:

sshd_config - Important defaults
PubkeyAuthentication yes
ChallengeResponseAuthentication no

Sau khi hoàn tất chỉnh sửa, lưu và đóng tệp (nhấn CTRL-X, sau đó YENTER).

Để tải lại SSH daemon, chạy lệnh:

sudo systemctl reload sshd

Xác thực bằng mật khẩu giờ đã bị vô hiệu hóa. Máy chủ của bạn bây giờ chỉ có thể truy cập bằng xác thực SSH key.

Bước 6 – Kiểm tra đăng nhập

Trước khi đăng xuất khỏi máy chủ, bạn nên kiểm tra lại cấu hình mới để chắc chắn rằng bạn có thể đăng nhập thành công qua SSH.

Mở một terminal mới trên máy tính cục bộ và đăng nhập vào máy chủ bằng tài khoản người dùng mới mà bạn đã tạo. Sử dụng lệnh sau (thay thế tên người dùng và địa chỉ IP của máy chủ):

ssh sammy@your_server_ip

Nếu bạn đã cài đặt xác thực bằng SSH key cho người dùng, Private Key sẽ được sử dụng để xác thực. Nếu không, bạn sẽ được yêu cầu nhập mật khẩu của người dùng.

Lưu ý về xác thực bằng key: Nếu bạn đã tạo cặp key với passphrase, bạn sẽ được yêu cầu nhập passphrase. Nếu cặp key không có passphrase, bạn sẽ được đăng nhập mà không cần nhập mật khẩu.

Sau khi xác thực, bạn sẽ đăng nhập với tư cách là người dùng mới. Nhớ rằng, nếu cần chạy lệnh với quyền root, hãy thêm “sudo” vào trước lệnh, như sau:

sudo command_to_run

Bước 7 – Thiết lập Firewall cơ bản

Máy chủ Ubuntu 16.04 có thể sử dụng UFW (Uncomplicated Firewall) để đảm bảo chỉ cho phép các kết nối đến những dịch vụ nhất định. Chúng ta có thể thiết lập một firewall cơ bản rất dễ dàng bằng ứng dụng này.

Các ứng dụng khác có thể tự đăng ký profile với UFW khi cài đặt. Các profile này cho phép UFW quản lý các ứng dụng theo tên. OpenSSH – dịch vụ cho phép chúng ta kết nối đến máy chủ – có một profile đã được đăng ký với UFW.

Bạn có thể kiểm tra bằng cách chạy:

sudo ufw app list
Output
Available applications:
  OpenSSH

Chúng ta cần đảm bảo rằng firewall cho phép kết nối SSH để có thể đăng nhập lại lần sau. Để cho phép kết nối này, chạy lệnh:

sudo ufw allow OpenSSH

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

sudo ufw enable

Nhấn “y” và ENTER để xác nhận. Bạn có thể kiểm tra rằng các kết nối SSH vẫn được phép bằng cách chạy:

sudo ufw status
Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Nếu bạn cài đặt và cấu hình thêm các dịch vụ khác, bạn sẽ cần điều chỉnh cài đặt firewall để cho phép các kết nối hợp lệ.

Hướng đi tiếp theo

Tại thời điểm này, bạn đã hoàn tất các bước cấu hình cơ bản cho máy chủ Ubuntu của mình, tạo ra một nền tảng ổn định và bảo mật. Với những thiết lập này, máy chủ của bạn đã sẵn sàng để hỗ trợ các ứng dụng và dịch vụ bạn cần triển khai. Bạn có thể tiếp tục cài đặt và cấu hình các phần mềm cần thiết, từ cơ sở dữ liệu, máy chủ web cho đến các công cụ phát triển hoặc ứng dụng sản xuất. Môi trường máy chủ hiện tại không chỉ đảm bảo tính bảo mật mà còn tối ưu hóa cho hiệu suất và khả năng mở rộng. Giờ đây, bạn có thể yên tâm triển khai các giải pháp kỹ thuật phức tạp, giúp công việc quản lý và vận hành hệ thống trở nên hiệu quả và dễ dàng hơn trong tương lai.

Sau khi thiết lập bảo mật cơ bản, bạn có thể tối ưu máy chủ Ubuntu 16.04 cho nhiều mục đích. Nếu bạn muốn thuê VPS chất lượng cao với hỗ trợ 24/7, hãy tham khảo danh mục thuê VPS của chúng tôi để tìm giải pháp phù hợp, giúp dự án của bạn vận hành mượt mà!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *