Thứ sáu, 17/09/2021 | 00:00 GMT+7

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

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 ý 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

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ể 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ờ.


Tags:

Các tin liên quan

Cài đặt SSH Key trên Server Rocky linux 8
2021-09-17