Khi bạn lần đầu tạo một Server CentOS 7 mới, có một số bước cấu hình bạn nên thực hiện ngay từ đầu như một phần của quá trình thiết lập cơ bản. Điều này sẽ tăng cường bảo mật và khả năng sử dụng của máy chủ, đồng thời tạo nền tảng vững chắc cho các thao tác sau này.
Bước 1 — Đăng Nhập với quyền Root | Server CentOS 7
Để đă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ủ và mật khẩu cho tài khoản “root”. Nếu bạn chưa đăng nhập vào máy chủ, bạn có thể tham khảo hướng dẫn đầu tiên trong chuỗi bài viết Cách kết nối đến Droplet của bạn bằng SSH, hướng dẫn quy trình này chi tiết.
Nếu bạn chưa kết nối tới máy chủ, hãy đăng nhập với tư cách root ngay bây giờ bằng lệnh (thay phần được đánh dấu bằng địa chỉ IP công cộng của máy chủ của bạn):
ssh root@SERVER_IP_ADDRESS
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 máy chủ (nếu xuất hiện), sau đó 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 vào máy chủ bằng mật khẩu, bạn cũng sẽ được yêu cầu thay đổi mật khẩu root.
Về Tài Khoản Root
Tài khoản root là người dùng quản trị trong môi trường Linux với quyền hạn rất rộng. Vì quyền hạn cao của tài khoản root, bạn thực sự được khuyến cáo không nên sử dụng nó hàng ngày. Một phần sức mạnh của tài khoản root chính là khả năng thực hiện những thay đổi rất nguy hiểm, thậm chí có thể xảy ra do nhầm lẫn.
Do đó, bước tiếp theo là thiết lập một tài khoản người dùng thay thế với phạm vi quyền hạn hạn chế cho công việc hàng ngày. Chúng tôi sẽ hướng dẫn cách nâng quyền khi cần thiết.
Bước 2 — Tạo Tài Khoản Người Dùng Mới trên Server CentOS 7
Sau khi đăng nhập với tư cách root, chúng ta đã sẵn sàng thêm 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 ra một tài khoản người dùng mới có tên “demo” (bạn nên thay thế bằng tên người dùng mà bạn thích):
adduser demo
Tiếp theo, gán mật khẩu cho người dùng mới (một lần nữa, thay “demo” bằng tên người dùng mà bạn vừa tạo):
passwd demo
Nhập một mật khẩu mạnh và xác nhận lại mật khẩu đó.
Bước 3 — Quyền Root
Hiện tại, bạn đã có một 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 cần thực hiện các tác vụ quản trị.
Để tránh phải đăng xuất tài khoản thường và đăng nhập lại với tài khoản root, bạn có thể thiết lập quyền “super user” (hoặc quyền root) cho tài khoản thường. Điều này cho phép người dùng thông thường chạy các lệnh với quyền quản trị bằng cách thêm từ sudo vào trước mỗi lệnh.
Để cấp quyền này cho tài khoản người dùng mới, bạn cần thêm người dùng đó vào nhóm “wheel”. Mặc định trên CentOS 7, những người dùng thuộc nhóm “wheel” được phép sử dụng lệnh sudo.
Với tư cách root, chạy lệnh sau để thêm người dùng mới vào nhóm wheel (thay từ được đánh dấu bằng tên người dùng của bạn):
gpasswd -a demo wheel
Giờ đây, tài khoản 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 hệ thống này, hãy xem hướng dẫn về sudoers của chúng tôi.
Bước 4 — Thêm Xác Thực Public Key
(Khuyến nghị)
Bước tiếp theo để tăng cường bảo mật cho máy chủ là thiết lập xác thực bằng public key cho tài khoản người dùng mới. Việc này sẽ tăng cường bảo mật máy chủ bằng cách yêu cầu một private SSH key để đăng nhập.
Tạo Cặp Key
Nếu bạn chưa có một 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 đã có sẵn key mà bạn muốn sử dụng, bạn có thể bỏ qua bước này và 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 trên máy cục bộ 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 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 file và đường dẫn mặc định (hoặc nhập tên khác 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 passphrase, bạn sẽ có thể sử dụng private key để xác thực mà không cần nhập passphrase. Nếu nhập passphrase, bạn sẽ cần cả private key và passphrase để đăng nhập. Việc bảo vệ key bằng passphrase an toàn hơn, nhưng cả hai phương pháp đều an toàn hơn so với xác thực bằng mật khẩu thông thường.
Lệnh này 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 máy chủ của bạn!
Sao Chép Public Key
Sau khi tạo cặp SSH key, bạn sẽ muốn sao chép public key lên máy chủ mới. Chúng tôi có hai cách đơn giản để thực hiện điều này.
Lưu ý: Phương pháp ssh-copy-id sẽ không hoạt động trên DataOnline nếu bạn đã chọn SSH key khi tạo Droplet, vì DataOnline sẽ tắt xác thực bằng mật khẩu nếu có SSH key, và ssh-copy-id phụ thuộc 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 sử dụng Lựa chọn 2.
Lựa chọn 1: Sử Dụng ssh-copy-id
Nếu máy cục bộ của bạn có script ssh-copy-id, bạn có thể sử 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 tên người dùng và địa chỉ IP của máy chủ bạn muốn cài đặt key, như sau:
ssh-copy-id demo@SERVER_IP_ADDRESS
Lựa chọn 2: Cài Đặt Thủ Công Key
Giả sử bạn đã tạo cặp SSH key ở bước trước, hãy sử dụng lệnh sau trên terminal của máy cục bộ để in ra public key (id_rsa.pub):
cat ~/.ssh/id_rsa.pub
Lệnh này sẽ in ra public SSH key, trông giống 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 toàn bộ public key và sao chép vào clipboard.
Thêm Public Key cho Người Dùng Từ Xa Mới
Để kích hoạt việc sử dụng SSH key cho xác thực người dùng từ xa 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 tài khoản người dùng mới (thay thế tên người dùng của bạn):
su - demo
Bây giờ, bạn đã ở trong 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 hạn chế cho thư mục này bằng các lệnh sau:
mkdir .ssh chmod 700 .ssh
Tiếp theo, mở tệp authorized_keys
trong thư mục .ssh
bằng một trình soạn thảo văn bản. Chúng tôi sẽ sử dụng vi để chỉnh sửa tệp:
vi .ssh/authorized_keys
Nhấn i
để vào chế độ chèn, sau đó dán public key từ clipboard vào. Nhấn ESC để thoát khỏi chế độ chèn.
Nhập :x
rồi nhấn ENTER để lưu và thoát khỏi tệp.
Giới hạn quyền truy cập của tệp authorized_keys
bằng lệnh:
chmod 600 .ssh/authorized_keys
Nhập lệnh sau để trở lại tài khoản root:
exit
Giờ đây, bạn có thể đăng nhập SSH với tư cách người dùng mới, sử dụng private key làm phương thức xác thực.
Để tìm hiểu thêm về cách thức hoạt động của xác thực dựa trên key, hãy đọc hướng dẫn “Cách Tạo SSH Key trên Linux.”
Bước 5 — Cấu Hình SSH Daemon
Sau khi đã có tài khoản người dùng mới, chúng ta có thể tăng cường bảo mật cho máy chủ bằng cách chỉnh sửa cấu hình SSH daemon (chương trình cho phép đăng nhập từ xa) nhằm từ chối truy cập SSH từ xa cho tài khoản root.
Bắt đầu bằng cách mở tệp cấu hình bằng trình soạn thảo văn bản với tư cách root:
vi /etc/ssh/sshd_config
Trong tệp này, bạn có tùy chọn để vô hiệu hóa đăng nhập root qua SSH. Đây là một cài đặt an toàn hơn vì bây giờ bạn có thể truy cập máy chủ qua tài khoản người dùng thông thường và nâng quyền khi cần thiết.
Để vô hiệu hóa đăng nhập root từ xa, tìm dòng sau trong tệp:
/etc/ssh/sshd_config (trước khi chỉnh sửa)
#PermitRootLogin yes
Gợi ý: Để tìm dòng này, gõ /PermitRoot
rồi nhấn ENTER; con trỏ sẽ chuyển đến ký tự “P” của dòng đó.
Bỏ dấu “#” để bỏ comment (nhấn Shift-x để xóa ký tự “#”).
Di chuyển con trỏ đến phần “yes” (nhấn c
), sau đó thay thế “yes” bằng “no” bằng cách nhấn cw
, gõ “no” và nhấn ESC khi hoàn tất.
Sau khi chỉnh sửa, dòng này sẽ trông như sau:
/etc/ssh/sshd_config (sau khi chỉnh sửa)
PermitRootLogin no
Vô hiệu hóa đăng nhập root từ xa là một bước rất quan trọng trên mọi máy chủ!
Nhập :x
rồi nhấn ENTER để lưu và thoát khỏi tệp.
Tải Lại SSH
Sau khi thực hiện các thay đổi, bạn cần khởi động lại dịch vụ SSH để áp dụng cấu hình mới.
Nhập lệnh sau để tải lại SSH:
systemctl reload sshd
Trước khi đăng xuất, hãy thử kiểm tra cấu hình mới bằng cách mở một cửa sổ terminal mới và kết nối lại máy chủ. Lần này, thay vì sử dụng tài khoản root, hãy sử dụng tài khoản người dùng mới mà bạn đã tạo.
Với máy chủ đã cấu hình, kết nối bằng lệnh (thay thế thông tin phù hợp):
ssh demo@SERVER_IP_ADDRESS
Lưu ý: Nếu bạn sử dụng PuTTY để kết nối, hãy đảm bảo cập nhật số cổng của phiên làm việc cho phù hợp với cấu hình hiện tại của máy chủ.
Bạn sẽ được yêu cầu nhập mật khẩu của người dùng mới mà bạn đã thiết lập. Sau đó, bạn sẽ đăng nhập thành công với tài khoản người dùng mới.
Nhớ rằng, nếu cần chạy lệnh với quyền quản trị, hãy thêm từ “sudo” vào trước lệnh, ví dụ:
sudo command_to_run
Nếu mọi thứ hoạt động tốt, bạn có thể thoát phiên làm việc bằng cách gõ:
exit
Hướng Đi Tiếp Theo
Tại thời điểm này, bạn đã có một nền tảng vững chắc cho máy chủ của mình. Bạn có thể cài đặt bất kỳ phần mềm nào cần thiết trên máy chủ ngay bây giờ.
Nếu bạn chưa biết nên làm gì tiếp theo với máy chủ, hãy tham khảo bài viết tiếp theo trong chuỗi này “Các bước khuyến nghị bổ sung cho máy chủ CentOS 7 mới”. Bài viết này bao gồm các bước như kích hoạt fail2ban để giảm hiệu quả của các cuộc tấn công brute force, cài đặt tường lửa cơ bản, NTP, và swap files. Nó cũng cung cấp liên kết tới các hướng dẫn cài đặt các ứng dụng web phổ biến.
Nếu bạn chỉ muốn khám phá, hãy xem các hướng dẫn khác trong cộng đồng của chúng tôi để tìm thêm ý tưởng, ví dụ như cấu hình LAMP stack hoặc LEMP stack để phục vụ cho việc lưu trữ website.