Cài đặt bảo mật cơ bản cho Server Rocky linux 8
Rocky Linux là server phát triển từ Centos Linux. Lần đầu cài đặt server Rocky Linux 8 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 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.Bước 1 - Đăng nhập với quyền gốc
Để đă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 mật khẩu hoặc, nếu bạn đã cài đặt khóa SSH để xác thực, thì khóa riêng tư cho tài khoản của user gốc.
Nếu bạn chưa được kết nối với server, hãy đăng nhập với quyền user root ngay bây giờ bằng lệnh sau (thay thế phần được đánh dấu của lệnh 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 mật khẩu, hãy cung cấp mật khẩu gốc của bạn để đăng nhập. Nếu bạn đang sử dụng khóa SSH được bảo vệ bằng cụm mật khẩu, bạn có thể được yêu cầu nhập cụm mật khẩu 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 mật khẩu, bạn cũng có thể được yêu cầu thay đổi mật khẩu gốc .
Về gốc
User root là admin-user trong môi trường Linux và nó có các quyền rất rộng. Vì các quyền cao của tài khoản 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 tài khoản gốc có thể thực hiện lệnh rủi ro do vô tình hay cố ý..
Như vậy, bước tiếp theo là cài đặt một tài khoản user thay thế với phạm vi ảnh hưởng giảm bớt cho công việc hàng ngày. Tài khoản này sẽ vẫn có thể nhận được các quyền gia tăng khi cần thiết.
Bước 2 - Tạo user mới
Khi bạn đã đăng nhập bằng quyền root , bạn có thể tạo tài khoản 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 bất kỳ tên user nào bạn muốn:
- adduser sammy
Tiếp theo, đặt mật khẩu mạnh cho user sammy
:
- passwd sammy
Bạn cần nhập mật khẩu hai lần. Sau khi làm như vậy, user sẽ sẵn sàng sử dụng, nhưng trước tiên, ta sẽ cấp cho user này các quyền bổ sung để sử dụng sudo
. Điều này sẽ cho phép ta chạy các lệnh dưới quyền root khi cần thiết.
Bước 3 - Cấp quyền quản trị
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 công việc quản trị.
Để tránh phải đăng xuất khỏi regular user và đăng nhập lại bằng tài khoản gốc , ta có thể cài đặt “siêu user” hoặc quyền gốc cho tài khoản thông thường . Điều này sẽ cho phép regular user 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 các quyền này cho user mới , ta cần thêm user mới vào group bánh xe. Theo mặc định, trên Rocky Linux 8, user thuộc group bánh xe đượ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 wheel (thay thế chữ đánh dấu bằng tên user mới của bạn):
- usermod -aG wheel sammy
Bây giờ, 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 tường lửa cơ bản
Tường lửa cung cấp mức độ bảo mật cơ bản cho server. Các ứng dụng này có trách nhiệm từ chối lưu lượng truy cập đến mọi cổng trên server, ngoại trừ những cổng / dịch vụ mà bạn đã phê duyệt rõ ràng. Rocky Linux có một dịch vụ tên 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 firewalld
tường lửa chính sách.
Lần đầu tiên cài đặt firewalld
:
- dnf install firewalld -y
Cấu hình firewalld
mặc định cho phép kết nối ssh
, vì vậy ta có thể bật tường lửa ngay lập tức:
- systemctl start firewalld
Kiểm tra trạng thái của dịch vụ đảm bảo nó đã bắt đầu:
- systemctl status firewalld
● 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 ý nó vừa active
vừa enabled
, nghĩa là nó sẽ khởi động theo mặc định nếu server được khởi động lại.
Bây giờ dịch vụ đã được cài đặt và đang chạy, ta có thể sử dụng firewall-cmd
để lấy và đặt thông tin chính sách cho tường lửa.
Đầu tiên, hãy liệt kê những dịch vụ nào đã được phép:
- firewall-cmd --permanent --list-all
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ể bật theo tên, hãy nhập:
- firewall-cmd --get-services
Để thêm một dịch vụ được phép, hãy sử dụng --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 reload tường lửa:
- firewall-cmd --reload
Lưu ý 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 - Bật quyền truy cập bên ngoài cho regular user
Bây giờ ta có một user không phải root thường xuyên để sử dụng hàng ngày, ta cần đảm bảo ta có thể sử dụng nó để SSH vào server.
Lưu ý: Cho đến khi xác minh bạn có thể đăng nhập và sử dụng sudo
với user mới của bạn, bạn nên đăng nhập với quyền root . Bằng cách này, nếu bạn gặp sự cố, 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 khi root .
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 tài khoản gốc của server sử dụng mật khẩu hoặc khóa SSH để xác thực.
Nếu tài khoản gốc sử dụng xác thực mật khẩu
Nếu bạn đã đăng nhập vào tài khoản gốc của mình bằng mật khẩu , thì xác thực mật khẩu được bật cho SSH. Bạn có thể SSH vào tài khoản 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 mật khẩu 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 cần nhập mật khẩu 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 khóa SSH thay vì sử dụng xác thực mật khẩu . Làm theo hướng dẫn về cách cài đặt khóa SSH trên Rocky Linux 8 để 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 gốc sử dụng xác thực khóa SSH
Nếu bạn đã đăng nhập vào tài khoản gốc của mình bằng khóa SSH , thì xác thực mật khẩu sẽ bị vô hiệu hóa đối với SSH. Bạn cần thêm bản sao khóa công khai của bạn vào ~/.ssh/authorized_keys
của user mới để đăng nhập thành công.
Vì khóa công khai của bạn đã có trong ~/.ssh/authorized_keys
của tài khoản gốc trên server, ta có thể sao chép tệp và cấu trúc thư mục đó vào tài khoản user mới của bạn.
Cách đơn giản nhất để sao chép các tệp 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 tệp, 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 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 ~/.ssh
của tài khoản gốc vào thư mục chính sudo
thay vì sao chép toàn bộ cấu trúc thư ~/.ssh
Các tệp 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ờ, quay lại một thiết bị terminal mới trên máy cục bộ của bạn, hãy mở một phiên SSH mới với user không phải root của bạn:
- ssh sammy@your_server_ip
Bạn phải đăng nhập vào tài khoản user mới mà không cần sử dụng mật khẩu. 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 cần nhập mật khẩu regular user khi sử dụng sudo
lần đầu tiên mỗi phiên (và định kỳ sau đó).
Kết luận
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ờ.
Các tin liên quan
Cài đặt SSH Key trên Server Rocky linux 82021-09-17