Khi bạn tạo một máy chủ CentOS mới, có một số bước cấu hình mà bạn nên thực hiện ngay từ đầu như một phần của thiết lập cơ bản. DataOnline sẽ hướng dẫn Bạn cài đặt ban đầu cho máy chủ CentOS. Điều này sẽ tăng cường tính bảo mật và khả năng sử dụng của máy chủ, đồng thời cung cấp một nền tảng vững chắc cho các hành động tiếp theo.
Thiết Lập Máy Chủ Ban Đầu với CentOS
- Đăng Nhập CentOS với Quyền Root
- Tạo Người Dùng CentOS Mới
- Cấp Quyền Quản Trị CentOS
- Thiết Lập Tường Lửa Cơ Bản cho CentOS
- Kích Hoạt Truy Cập Ngoại Vi cho CentOS
Bước 1 — Đăng Nhập CentOS với Quyền Root
Để đăng nhập vào máy chủ của bạn, bạn cần biết địa chỉ IP công cộng của máy chủ. Bạn cũng sẽ cần mật khẩu hoặc, nếu bạn đã cài đặt khóa SSH để xác thực, khóa riêng tư cho tài khoản người dùng root. Nếu bạn chưa đăng nhập vào máy chủ của mình, bạn có thể muốn làm theo tài liệu của chúng tôi về cách kết nối với Droplet của bạn bằng SSH, trong đó bao gồm quá trình này một cách chi tiết.
Nếu bạn chưa kết nối với máy chủ của mình, hãy đăng nhập với tư cách người dùng root bằng lệnh sau (thay thế phần được đánh dấu trong lệnh bằng địa chỉ IP công cộng của máy chủ của bạn):
ssh root@your_server_ip
Về Root
Người dùng root là người dùng quản trị trong môi trường Linux và có các đặc quyền rất rộng. Do cá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. Điều này là do một phần sức mạnh đi kèm với tài khoản root là khả năng thực hiện các thay đổi rất phá hoại, ngay cả khi vô tình.
Vì vậy, 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 ảnh hưởng hạn chế hơn cho công việc hàng ngày. Tài khoản này vẫn có thể tăng quyền khi cần thiết.
Bước 2 — Tạo Người Dùng Mới
Khi bạn đã đăng nhập với tư cách root, bạn có thể tạo tài khoản người dùng mới mà chúng ta sẽ sử dụng để đăng nhập từ bây giờ.
Ví dụ này tạo một người dùng mới có tên là sammy, nhưng bạn nên thay thế nó bằng bất kỳ tên người dùng nào bạn thích:
adduser sammy
Tiếp theo, đặt một mật khẩu mạnh cho người dùng sammy
:
passwd sammy
Bạn sẽ được nhắc nhập mật khẩu hai lần. Sau khi làm điều này, người dùng của bạn sẽ sẵn sàng để sử dụng, nhưng trước tiên chúng ta sẽ cấp cho người dùng này các đặc quyền bổ sung để sử dụng lệnh sudo
. Điều này sẽ cho phép chúng ta chạy các lệnh với quyền root khi cần thiết.
Bước 3 — Cấp Quyền Quản Trị
Bây giờ, chúng ta đã có một tài khoản người dùng mới với các đặc quyền tài khoản thông thường. Tuy nhiên, đôi khi chúng ta có thể cần thực hiện các tác vụ quản trị.
Để tránh phải đăng xuất khỏi người dùng thông thường của chúng ta và đăng nhập lại với tư cách tài khoản root, chúng ta có thể thiết lập cái gọi là “quyền siêu người dùng” hoặc quyền root cho tài khoản thông thường của chúng ta. Điều này sẽ cho phép người dùng thông thường của chúng ta chạy các lệnh với đặc quyền quản trị bằng cách đặt từ sudo
trước mỗi lệnh.
Để thêm các đặc quyền này cho người dùng mới của chúng ta, chúng ta cần thêm người dùng mới vào nhóm wheel. Theo mặc định, trên CentOS, những người dùng thuộc nhóm wheel được phép sử dụng lệnh sudo
.
Với quyền root, chạy lệnh này để thêm người dùng mới của bạn vào nhóm wheel (thay thế từ được đánh dấu bằng tên người dùng mới của bạn):
usermod -aG wheel sammy
Bây giờ, khi đăng nhập với tư cách người dùng thông thường của bạn, bạn có thể gõ sudo
trước các lệnh để thực hiện các hành động với quyền siêu người dùng.
Bước 4 — Thiết Lập Tường Lửa Cơ Bản
Tường lửa cung cấp một mức độ bảo mật cơ bản cho máy chủ của bạn. Các ứng dụng này chịu trách nhiệm từ chối lưu lượng truy cập đến mọi cổng trên máy chủ của bạn, ngoại trừ các cổng/dịch vụ mà bạn đã chấp thuận rõ ràng. CentOS có một dịch vụ gọi là firewalld
để thực hiện chức năng này. Một công cụ gọi là firewall-cmd
được sử dụng để cấu hình các chính sách tường lửa của firewalld
.
Lưu ý: Nếu máy chủ của bạn đang chạy trên DataOnline, bạn có thể tùy chọn sử dụng Cloud Firewalls DataOnline thay vì
firewalld
. Chúng tôi khuyên bạn chỉ nên sử dụng một tường lửa tại một thời điểm để tránh các quy tắc xung đột có thể khó gỡ lỗi.
Đầu tiên, cài đặt firewalld
:
dnf install firewalld -y
firewalld
cho phép các kết nối ssh
, vì vậy chúng ta có thể bật tường lửa ngay lập tức:systemctl start firewalld
systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
Lưu ý rằng nó vừa active
(đang hoạt động) vừa enabled
(được kích hoạt), có nghĩa là nó sẽ tự động khởi động khi máy chủ khởi động lại.
Bây giờ dịch vụ đã hoạt động, chúng ta có thể sử dụng tiện ích firewall-cmd
để lấy và thiết lập thông tin chính sách cho tường lửa.
Đầu tiên, hãy liệt kê các dịch vụ đã được cho phép:
firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Để xem các dịch vụ bổ sung mà bạn có thể kích hoạt bằng tên, hãy gõ:
firewall-cmd --get-services
--add-service
:firewall-cmd --permanent --add-service=http
Điều này sẽ thêm dịch vụ http
và cho phép lưu lượng TCP đến cổng 80
. Cấu hình sẽ cập nhật sau khi bạn tải lại tường lửa:
firewall-cmd --reload
Hãy nhớ rằng bạn sẽ phải mở tường lửa một cách rõ ràng (với các dịch vụ hoặc cổng) cho bất kỳ dịch vụ bổ sung nào mà bạn có thể cấu hình sau này.
Bước 5 — Kích Hoạt Truy Cập Ngoại Vi cho Người Dùng Thông Thường của Bạn
Bây giờ chúng ta đã có một người dùng thông thường không phải root để sử dụng hàng ngày, chúng ta cần đảm bảo rằng chúng ta có thể sử dụng nó để SSH vào máy chủ của chúng ta.
Lưu ý: Cho đến khi xác minh rằng bạn có thể đăng nhập và sử dụng sudo
với người dùng mới của bạn, chúng tôi khuyên bạn nên duy trì đăng nhập với tư cách root. Bằng cách này, nếu bạn gặp vấn đề, 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 với quyền root. Nếu bạn đang sử dụng Droplet của DataOnline và gặp vấn đề với kết nối SSH root của bạn, bạn có thể đăng nhập vào Droplet bằng cách sử dụng Console của DataOnline.
Quá trình cấu hình truy cập SSH cho người dùng mới của bạn phụ thuộc vào việc tài khoản root của máy chủ sử dụng mật khẩu hay khóa SSH để xác thực.
Nếu Tài Khoản Root Sử Dụng Xác Thực Bằng Mật Khẩu
Nếu bạn đăng nhập vào tài khoản root của bạn bằng mật khẩu, thì xác thực bằng mật khẩu được kích hoạt cho SSH. Bạn có thể SSH vào tài khoản người dùng 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 người dùng mới của bạn:
ssh sammy@your_server_ip
sudo
trước nó như thế này:sudo command_to_run
sudo
lần đầu tiên trong mỗi phiên (và định kỳ sau đó).Để tăng cường bảo mật cho máy chủ của bạn, chúng tôi khuyến nghị mạnh mẽ việc thiết lập khóa SSH thay vì sử dụng xác thực bằng mật khẩu. Làm theo hướng dẫn của chúng tôi về cách thiết lập khóa SSH trên CentOS để 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 Bằng Khóa SSH
Nếu bạn đăng nhập vào tài khoản root của bạn bằng khóa SSH, thì xác thực bằng mật khẩu bị vô hiệu hóa cho SSH. Bạn sẽ cần thêm một bản sao khóa công khai của bạn vào tệp ~/.ssh/authorized_keys
của người dùng mới để đăng nhập thành công.
Vì khóa công khai của bạn đã có trong tệp ~/.ssh/authorized_keys
của tài khoản root trên máy chủ, chúng ta có thể sao chép tệp và cấu trúc thư mục đó vào tài khoản người dùng mới của chúng ta.
Cách đơn giản nhất để sao chép các tệp với quyền sở hữu và quyền chính xác là sử dụng lệnh rsync
. Điều này sẽ sao chép thư mục .ssh
của người dùng root, bảo toàn các quyền và thay đổi chủ sở hữu tệp, tất cả trong một lệnh duy nhất. Hãy chắc chắn thay đổi các phần được đánh dấu trong lệnh dưới đây để phù hợp với tên người dùng thông thường của bạn:
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 những nguồn và đích không có dấu gạch chéo. Khi sử dụng rsync
bên dưới, hãy chắc chắn rằng thư mục nguồn (~/.ssh) không bao gồm 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 thư mục ~/.ssh của tài khoản root vào thư mục chính của người dùng sudo
thay vì sao chép toàn bộ cấu trúc thư mục ~/.ssh. Các tệp sẽ ở sai vị trí và SSH sẽ không thể tìm và sử dụng chúng.
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Bây giờ, quay lại một terminal mới trên máy cục bộ của bạn, mở một phiên SSH mới với người dùng không phải root của bạn:
ssh sammy@your_server_ip
Bạn sẽ được đăng nhập vào tài khoản người dùng mới mà không cần sử dụng mật khẩu. Hãy nhớ rằng, nếu bạn cần chạy một lệnh với quyền quản trị, hãy gõ sudo
trước nó như thế này:
sudo command_to_run
Bạn sẽ được nhắc nhập mật khẩu của người dùng thông thường khi sử dụng sudo
lần đầu tiên trong mỗi phiên (và định kỳ sau đó).
Kết Luận – Cài đặt ban đầu cho Máy Chủ với Hệ điều hành CentOS
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 bạn cần trên nó ngay bây giờ.