Sudo là một ứng dụng cho phép bạn có được quyền root hoặc quyền quản trị viên trên các hệ điều hành Linux và Unix. Sudo thường được cài đặt theo mặc định trên các bản phân phối Linux, bạn cũng có thể thiết lập quyền người dùng thông qua tệp /etc/sudoers và cho phép những người dùng không có quyền thực thi các lệnh cụ thể với tư cách là người dùng root.
Sudo có thể được cấu hình theo nhiều cách. Bạn có thể thiết lập sudo trên máy tính/máy chủ cục bộ hoặc thiết lập sudo tập trung thông qua phần mềm của bên thứ ba. Đối với ví dụ này, bạn sẽ sử dụng máy chủ FreeIPA để thiết lập triển khai sudo tập trung.
FreeIPA được tích hợp nhiều công cụ giúp công việc của quản trị viên dễ dàng hơn, bao gồm tích hợp sudo. Bạn có thể thiết lập quyền truy cập sudo đầy đủ cho người dùng FreeIPA và thiết lập sudo cho các lệnh cụ thể, bao gồm quy tắc HBAC (Kiểm soát truy cập dựa trên máy chủ) cũng như Nhóm lệnh Sudo.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách tích hợp Sudoers và FreeIPA với hai tình huống. Bạn cũng sẽ học cách sử dụng cơ bản tiện ích lệnh 'ipa' để quản lý người dùng, nhóm người dùng, nhóm máy chủ, Quy tắc Sudo, Quy tắc HBAC và Nhóm lệnh Sudo. Phần này cũng đề cập đến cách thiết lập và tích hợp dịch vụ SSSD với Sudo và FreeIPA trên máy khách.
Ví dụ này sử dụng hai máy chủ Rocky Linux với các chi tiết sau:
Khi các yêu cầu trên đã sẵn sàng, hãy bắt đầu tích hợp Sudoers với FreeIPA.
Dưới đây là các bước bạn phải thực hiện để tích hợp Sudoers với FreeIPA Server:
Ví dụ này sử dụng người dùng FreeIPA 'rocky', nhập lệnh 'ipa' sau để đảm bảo rằng người dùng 'rocky' có sẵn trên máy chủ FreeIPA.
Đầu ra '1 người dùng phù hợp' xác nhận rằng người dùng 'rocky' có sẵn trên máy chủ FreeIPA.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22403%22%20height=%22417%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để đăng nhập vào máy khách FreeIPA bằng tên người dùng 'rocky'. Điều này sẽ đảm bảo rằng người dùng có thể kết nối với máy khách FreeIPA. Trong ví dụ này, máy chủ có tên 'client.hwdomain.lan' được sử dụng làm máy khách FreeIPA.
Nhập mật khẩu cho người dùng 'rocky'. Sau khi đăng nhập vào máy khách, hãy nhập lệnh sau để xác định người dùng hiện tại.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Nhập lệnh 'sudo su' sau để có quyền truy cập root hoặc các đặc quyền. Sau khi nhập mật khẩu, bạn sẽ nhận được lỗi như 'rocky không có trong tệp sudoers. Sự cố này sẽ được báo cáo.'
Nhập lệnh sau 'authselect' để bật 'sudo' trên dịch vụ SSSD. Bạn phải bật tính năng 'sudo' trên SSSD để người dùng FreeIPA có thể thực hiện lệnh 'sudo' trên máy khách.
Tiếp theo, khởi động lại dịch vụ SSSD thông qua tiện ích lệnh systemctl sau. Sau đó, hãy xác minh dịch vụ SSSD để đảm bảo rằng dịch vụ đang chạy.
Đầu ra 'active (running)' xác nhận rằng dịch vụ SSSD đang chạy trên máy khách.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22350%22%3E%3C/svg%3E
Cuối cùng, hãy nhập lệnh sau để hiển thị danh sách các tính năng được bật trên nguồn xác thực hiện tại. Trên máy khách FreeIPA, SSSD được bật theo mặc định làm nguồn xác thực.
Trong phần 'Tính năng được bật', bạn sẽ thấy tham số 'with-sudo'. Điều này xác nhận rằng tính năng 'sudo' được bật trên cấu hình xác thực SSSD.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22380%22%20height=%22173%22%3E%3C/svg%3E
Trong phần này, bạn sẽ tích hợp Sudo với FreeIPA bằng cách tạo Quy tắc Sudo. Trước tiên, bạn sẽ thiết lập nhóm người dùng, sau đó bạn sẽ thiết lập Quy tắc Sudo cho phép bất kỳ người dùng nào trong nhóm cụ thể truy cập và thực thi Sudo.
Trên máy chủ FreeIPA, nhập lệnh sau để tạo nhóm mới có tên là 'sysadmin' trên máy chủ FreeIPA. Sau đó, xác minh thông tin chi tiết của nhóm 'sysadmin'.
Đầu ra 'Added group "sysadmin"' xác nhận rằng nhóm mới đã được tạo trên máy chủ FreeIPA. Sau khi lệnh 'ipa group-find' được thực thi, bạn sẽ nhận được kết quả như sau '1 group matches', nghĩa là nhóm 'sysadmin' đã được thêm vào và khả dụng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22603%22%20height=%22420%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để tạo một Sudo Rule mới có tên là 'sysadmin_sudo'. 'ipa sudorule-add' là một tiện ích có thể được sử dụng để thêm sudo rule vào máy chủ FreeIPA. Ngoài ra, bạn đang tạo một quy tắc sudo mới với một số tham số '--hostcat=all --runasusercat=all --runasgroupcat=all --cmdcat=all' cho phép quy tắc này thực thi sudo trên mọi máy khách và bất kỳ người dùng hoặc nhóm nào sẽ là một phần của quy tắc 'sysadmin_sudo'.
Đầu ra 'Đã thêm Quy tắc Sudo "sysadmin_sudo"' xác nhận rằng quy tắc sudo mới đã được tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22685%22%20height=%22295%22%3E%3C/svg%3E
Bây giờ hãy nhập lệnh sau để thêm nhóm 'sysadmin' vào quy tắc sudo 'sysadmin_sudo'. Điều này sẽ cho phép bất kỳ người dùng FreeIPA nào trong nhóm 'sysadmin' thực hiện lệnh sudo trên mọi máy khách FreeIPA.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22642%22%20height=%22272%22%3E%3C/svg%3E
Xác minh thông tin chi tiết của quy tắc sudo 'sysadmin_sudo' bằng lệnh sau. Trên phần 'User Grous', bạn sẽ thấy nhóm 'sysadmin' được thêm vào và có sẵn trên 'sysadmin_sudo'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22486%22%20height=%22210%22%3E%3C/svg%3E
Cuối cùng, nhập lệnh sau để thêm người dùng FreeIPA 'rocky' vào nhóm 'sysadmin'. Sau đó, xác minh thông tin chi tiết của nhóm 'sysadmin' để đảm bảo rằng người dùng của bạn đã được thêm vào.
Trong phần chi tiết của nhóm 'sysadmin', bạn sẽ thấy người dùng 'rocky' được thêm vào và nhóm này cũng là một phần của quy tắc sudo 'sysadmin_sudo'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22571%22%20height=%22392%22%3E%3C/svg%3E
Tại đây điểm, bây giờ bạn đã cấu hình và cho phép người dùng 'rocky' thông qua nhóm 'sysadmin' và Sudo Rule 'sysadmin_sudo' để thực thi Sudo trên tất cả các máy khách. Ở bước tiếp theo, bạn sẽ xác minh tích hợp của Sudo với máy chủ FreeIPA.
Nhập lệnh sau để kết nối với máy khách FreeIPA 'client.hwdomain.lan' bằng cách sử dụng người dùng 'rocky'. Khi được nhắc, hãy nhập mật khẩu cho người dùng 'rocky'.
Sau khi đăng nhập vào máy khách, hãy thực hiện lệnh sau để xác định người dùng hiện tại của bạn. Bạn sẽ thấy rằng mình đã đăng nhập với tư cách là người dùng 'rocky'.
Bây giờ hãy nhập lệnh 'sudo' bên dưới để xác minh quyền root 'sudo' cho người dùng FreeIPA 'rocky'. Khi được nhắc, hãy nhập mật khẩu cho người dùng 'rocky'.
Khi thao tác thành công, bạn sẽ thấy dấu nhắc shell của mình được đổi thành 'root@hostname ...'. Điều này xác nhận rằng bạn hiện đã được cấp quyền root và đã đăng nhập với tư cách là người dùng root.
Xác định người dùng hiện tại của bạn bằng lệnh bên dưới. Bạn sẽ thấy rằng hiện tại bạn đang đăng nhập với tư cách là người dùng 'root'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22334%22%3E%3C/svg%3E
Với điều này, bạn đã tích hợp thành công Sudoers với máy chủ FreeIPA. Bất kỳ người dùng nào trong nhóm 'sysadmin' giờ đây có thể thực thi lệnh 'sudo' và có được quyền root trên mọi máy khách.
Trong ví dụ này, bạn sẽ thiết lập một người dùng mới có tên là 'max' có thể đăng nhập vào máy khách 'client.hwdomain.lan' qua SSH và thực thi Sudo nhưng đối với một số lệnh để quản lý LEMP Stack.
Để thực hiện được điều này, bạn sẽ cần thực hiện các bước sau:
Tạo người dùng FreeIPA mới có tên là 'max' bằng cách nhập lệnh 'ipa user-add' bên dưới. Nhập mật khẩu cho người dùng mới của bạn khi được nhắc và lặp lại.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22633%22%20height=%22533%22%3E%3C/svg%3E
Bây giờ hãy xác minh thông tin chi tiết của người dùng 'max' bằng lệnh sau. Bạn sẽ thấy cấu hình chi tiết mặc định của người dùng 'max'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22355%22%20height=%22414%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để thêm nhóm mới 'systemadmin'. Sau đó, thêm người dùng 'max' vào nhóm 'sysadmin'.
Xác minh cấu hình chi tiết của nhóm 'systemadmin' bằng lệnh sau. Bạn sẽ thấy người dùng 'max' được thêm vào và có sẵn trên nhóm 'systemdadmin'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22633%22%20height=%22180%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22596%22%20height=%22309%22%3E%3C/svg%3E
Để đảm bảo rằng người dùng mới có thể đăng nhập vào máy khách, hãy nhập lệnh ssh sau. Trong ví dụ này, người dùng 'max' sẽ đăng nhập vào máy khách 'client.hwdomain.lan'.
Khi được nhắc, hãy nhập mật khẩu của bạn. Sau đó, bạn cũng sẽ được yêu cầu thay đổi mật khẩu mặc định. VẬY hãy nhập mật khẩu hiện tại của bạn, sau đó nhập mật khẩu mới và lặp lại.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22287%22%3E%3C/svg%3E
Sau khi đăng nhập, hãy xác định người dùng hiện tại của bạn bằng lệnh sau.
Bạn sẽ thấy rằng bạn đã đăng nhập với tư cách là người dùng 'max' 'client.hwdomain.lan'.
Kiểm tra danh sách các máy chủ khả dụng trên FreeIPA bằng lệnh sau. Lệnh này sẽ hiển thị cho bạn danh sách các máy có sẵn trên FreeIPA. Trong ví dụ này, hai máy chủ 'ipa.hwdomain.lan' và 'client.hwdomain.lan' có sẵn trên máy chủ FreeIPA.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22375%22%3E%3C/svg%3E
Bây giờ hãy tạo một nhóm máy chủ mới có tên là 'appserver'. Sau đó, thêm máy chủ 'client.hwdomain.lan' vào nhóm máy chủ 'appserver'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22476%22%20height=%22142%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22720%22%20height=%22255%22%3E%3C/svg%3E
Xác minh nhóm máy chủ chi tiết 'appserver' bằng lệnh bên dưới. Bạn sẽ thấy máy chủ 'client.hwdomain.lan' được thêm vào và có sẵn trên nhóm máy chủ 'appserver'.
Trong phần này, bạn sẽ vô hiệu hóa quy tắc HBAC mặc định và thiết lập một quy tắc HBAC tùy chỉnh có tên là 'operation_admin' cho phép người dùng 'max' hoặc nhóm 'systemadmin' quản trị bất kỳ máy chủ nào trong nhóm máy chủ 'appserver' thông qua SSH. Ngoài ra, người dùng hoặc nhóm này sẽ có thể chạy lệnh 'sudo' và 'sudo -l'.
Nhập lệnh sau để vô hiệu hóa quy tắc HBAC mặc định 'allow_all'. Sau đó, hãy xác minh thông tin chi tiết của quy tắc HBAC 'allow_all'.
Đầu ra 'Quy tắc HBAC đã tắt "allow_all" xác nhận quy tắc đã bị tắt. Ngoài ra, trên phần 'Đã bật', bạn sẽ thấy giá trị được thay đổi thành 'false'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22615%22%20height=%22292%22%3E%3C/svg%3E
Khi quy tắc HBAC mặc định 'allow_all' bị vô hiệu hóa, không người dùng nào có thể đăng nhập vào máy khách.
Tiếp theo, tạo một quy tắc HBAC tùy chỉnh mới có tên là 'operation_admin' bằng cách sử dụng 'ipa hbacrule-add' sau lệnh.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22496%22%20height=%22164%22%3E%3C/svg%3E
Bây giờ hãy thêm nhóm máy chủ 'appserver' thông qua lệnh 'ipa hbacrule-add-host' và nhóm người dùng 'sysadmin' thông qua lệnh 'ipa hbacrule-add-user' vào quy tắc HBAC 'operation_admin'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22708%22%20height=%22374%22%3E%3C/svg%3E
Tiếp theo, thêm các dịch vụ như 'sshd, sudo và su vào quy tắc HBAC 'operation_admin'. Bất kỳ máy chủ hoặc nhóm máy chủ nào trong quy tắc HBAC 'operation_admin' sẽ bị ảnh hưởng và được phép truy cập hoặc chạy các lệnh này.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22386%22%3E%3C/svg%3E
Xác minh thông tin chi tiết của quy tắc HBAC 'operation_admin' bằng lệnh sau. Bạn sẽ thấy ba dịch vụ 'sshd', 'sudo' và 'su-l' được thêm vào và có sẵn trên 'operation_admin'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22484%22%20height=%22173%22%3E%3C/svg%3E
Tại tại thời điểm này, chỉ những người dùng/nhóm trong quy tắc 'operation_admin' mới có thể đăng nhập vào máy khách. Người dùng 'rocky' không thể đăng nhập vào máy khách 'client.hwdomain.lan', nhưng người dùng 'max' có thể đăng nhập vào 'client.hwdomain.lan'. Điều này là do người dùng 'max' là một phần của nhóm 'systemadmin', được áp dụng cho quy tắc HBAC 'operation_admin'.
Đăng nhập với tư cách là người dùng 'rocky' sẽ được xác định bởi máy khách.
Đăng nhập với tư cách là người dùng 'max' được phép vì nó là một phần của 'systemadmin' nhóm.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E
Nhập lệnh sau để thêm Quy tắc Sudo mới có tên là 'systemadmin_sudo'. Trong ví dụ này, bạn đang tạo một quy tắc sudo mới sẽ chỉ được áp dụng cho người dùng và nhóm có tham số '--runasusercat=all --runasgroupcat=all'. Với điều này, không phải tất cả các lệnh đều có thể chạy với sudo hoặc với tư cách là root và quy tắc này có thể được áp dụng cho các máy khách hoặc máy chủ cụ thể.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22518%22%20height=%22252%22%3E%3C/svg%3E
Bây giờ hãy nhập lệnh bên dưới để thêm nhóm người dùng 'systemdadmin' và nhóm máy chủ 'appserver' vào quy tắc sudo 'systemadmin_sudo'. Với điều này, 'systemadmin_sudo' sẽ chỉ được áp dụng cho người dùng trong nhóm 'systemadmin' và phần máy chủ/máy khách của 'appserver'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22739%22%20height=%22451%22%3E%3C/svg%3E
Đối với ví dụ này, bạn sẽ xác định một số lệnh trên FreeIPA sẽ được sử dụng để bắt đầu và khởi động lại dịch vụ LEMP Stack. Sau đó, bạn sẽ tạo một nhóm lệnh Sudo mới có tên là 'systemadmin_cmds' và thêm các lệnh của bạn vào đó. Cuối cùng, bạn sẽ chỉ định Nhóm lệnh Sudo 'systemadmin_cmds' cho Quy tắc Sudo 'systemadmin_sudo'.
Nhập lệnh sau để thêm các lệnh mới vào máy chủ FreeIPA. Trong ví dụ này, bạn sẽ thêm các lệnh có thể được sử dụng để quản lý LEMP Stack. Bạn có thể khởi động và khởi động lại các dịch vụ Nginx, MariaDB và PHP-FPM.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22635%22%20height=%22750%22%3E%3C/svg%3E
Tiếp theo, thêm một nhóm lệnh sudo mới có tên là 'systemadmin_cmds'. Sau đó, thêm tất cả các lệnh được sử dụng để quản lý LEMP Stack vào nhóm lệnh sudo 'systemadmin_cmds'.
Đầu ra 'Added Sudo Command Group "systemdadmin_cmds"' xác nhận rằng nhóm lệnh sudo mới đã được tạo. Ngoài ra, đầu ra 'Số lượng thành viên đã thêm 6' xác nhận rằng bạn đã thêm 6 lệnh vào nhóm lệnh sudo 'systemdadmin_cmds'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22184%22%3E%3C/svg%3E
Cuối cùng, nhập lệnh sau để thêm nhóm lệnh sudo 'systemadmin_cmds' vào quy tắc sudo 'systemadmin_sudo'. Với điều này, người dùng trong quy tắc sudo 'systemadmin_sudo' sẽ có thể thực hiện 6 lệnh sudo có sẵn trong nhóm lệnh sudo 'systemadmin_cmds'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22247%22%3E%3C/svg%3E
Đăng nhập vào client.hwdomain.lan với người dùng 'max' bằng lệnh ssh sau. Nhập mật khẩu khi được nhắc.
Sau khi đăng nhập, hãy nhập lệnh sau để xác định người dùng hiện tại của bạn. Bạn sẽ thấy rằng bạn đã đăng nhập với tư cách là người dùng 'max'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để khởi động lại dịch vụ LEMP Stack. Khi được nhắc, hãy nhập mật khẩu cho người dùng 'max'. Hoạt động này sẽ thành công vì người dùng 'max' được phép thực thi các lệnh này dưới dạng 'sudo'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22586%22%20height=%22174%22%3E%3C/svg%3E
Bây giờ nếu bạn thử lệnh 'systemctl stop', hoạt động này sẽ không thành công và bạn sẽ gặp lỗi như 'Xin lỗi, người dùng max hiện được phép thực thi ... với tư cách là root trên client.hwdomain.lan'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22156%22%3E%3C/svg%3E
Với thao tác này, bạn đã hoàn tất việc cấu hình Sudoers với máy chủ FreeIPA để cho phép các lệnh cụ thể được thực thi dưới dạng sudo hoặc as root.
Ngoài ra, bạn cũng đã học cách cấu hình cơ bản của dịch vụ SSSD và tích hợp nó với Sudo thông qua máy chủ FreeIPA.
Với triển khai Sudo này, bạn có thể triển khai hai kịch bản này trên máy chủ triển khai của mình. Để tìm hiểu thêm, hãy truy cập tài liệu chính thức của FreeIPA và Sudoer.
Sudo có thể được cấu hình theo nhiều cách. Bạn có thể thiết lập sudo trên máy tính/máy chủ cục bộ hoặc thiết lập sudo tập trung thông qua phần mềm của bên thứ ba. Đối với ví dụ này, bạn sẽ sử dụng máy chủ FreeIPA để thiết lập triển khai sudo tập trung.
FreeIPA được tích hợp nhiều công cụ giúp công việc của quản trị viên dễ dàng hơn, bao gồm tích hợp sudo. Bạn có thể thiết lập quyền truy cập sudo đầy đủ cho người dùng FreeIPA và thiết lập sudo cho các lệnh cụ thể, bao gồm quy tắc HBAC (Kiểm soát truy cập dựa trên máy chủ) cũng như Nhóm lệnh Sudo.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách tích hợp Sudoers và FreeIPA với hai tình huống. Bạn cũng sẽ học cách sử dụng cơ bản tiện ích lệnh 'ipa' để quản lý người dùng, nhóm người dùng, nhóm máy chủ, Quy tắc Sudo, Quy tắc HBAC và Nhóm lệnh Sudo. Phần này cũng đề cập đến cách thiết lập và tích hợp dịch vụ SSSD với Sudo và FreeIPA trên máy khách.
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, máy chủ FreeIPA phải được cài đặt và cấu hình đầy đủ. Bạn có thể tìm thấy hướng dẫn về Debian, Ubuntu và Rocky Linux tại đây:- https://www.howtoforge.com/how-to-add-ubuntu-system-to-freeipa-server/
- https://www.howtoforge.com/how-to-install-freeipa-on-rocky-linux-9/
- https://www.howtoforge.com/how-to-install-freeipa-server-with-docker-on-debian/
Ví dụ này sử dụng hai máy chủ Rocky Linux với các chi tiết sau:
Mã:
Hostname IP Address Used as
--------------------------------------------------
ipa.hwdomain.lan 192.168.5.20 FreeIPA Server
client.hwdomain.lan 192.168.5.75 FreeIPA Client
Cho phép người dùng FreeIPA thực thi đầy đủ Sudo
Trước tiên, bạn sẽ học cách tích hợp Sudoer với máy chủ FreeIPA bằng cách tạo Quy tắc Sudo cụ thể cho phép người dùng thực thi 'sudo'. Trong ví dụ này, bạn sẽ thiết lập một người dùng FreeIPA hiện có tên là 'rocky' để có thể thực thi lệnh 'sudo' trên mọi máy khách và có được quyền root.Dưới đây là các bước bạn phải thực hiện để tích hợp Sudoers với FreeIPA Server:
- Xác minh người dùng và kết nối
- Bật tính năng Sudo trên dịch vụ SSSD (trên máy khách)
- Thiết lập Quy tắc Sudo
- Xác minh Tích hợp Sudoers
Xác minh Người dùng và Kết nối FreeIPA
Trong phần này, bạn sẽ xác minh và đảm bảo rằng người dùng FreeIPA 'rocky' có sẵn trên máy chủ FreeIPA và đảm bảo rằng người dùng có thể kết nối với máy khách 'client.hwdomain.lan'.Ví dụ này sử dụng người dùng FreeIPA 'rocky', nhập lệnh 'ipa' sau để đảm bảo rằng người dùng 'rocky' có sẵn trên máy chủ FreeIPA.
Mã:
ipa user-find rocky
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22403%22%20height=%22417%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để đăng nhập vào máy khách FreeIPA bằng tên người dùng 'rocky'. Điều này sẽ đảm bảo rằng người dùng có thể kết nối với máy khách FreeIPA. Trong ví dụ này, máy chủ có tên 'client.hwdomain.lan' được sử dụng làm máy khách FreeIPA.
Mã:
ssh [emailprotected]
Mã:
whoami
id
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Nhập lệnh 'sudo su' sau để có quyền truy cập root hoặc các đặc quyền. Sau khi nhập mật khẩu, bạn sẽ nhận được lỗi như 'rocky không có trong tệp sudoers. Sự cố này sẽ được báo cáo.'
Mã:
sudo su
Bật tính năng Sudo trên dịch vụ SSSD
Trước khi thiết lập Sudoers với FreeIPA, bạn phải bật tính năng 'with-sudo' trên dịch vụ SSSD trên máy khách. Trong phần này, bạn sẽ bật tính năng SSSD 'sudo' thông qua tiện ích 'authselect'. Vì vậy, hãy đảm bảo chạy các lệnh này trên máy khách 'client.hwdomain.lan'.Nhập lệnh sau 'authselect' để bật 'sudo' trên dịch vụ SSSD. Bạn phải bật tính năng 'sudo' trên SSSD để người dùng FreeIPA có thể thực hiện lệnh 'sudo' trên máy khách.
Mã:
sudo authselect enable-feature with-sudo
Mã:
sudo systemctl restart sssd
sudo systemctl status sssd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22350%22%3E%3C/svg%3E
Cuối cùng, hãy nhập lệnh sau để hiển thị danh sách các tính năng được bật trên nguồn xác thực hiện tại. Trên máy khách FreeIPA, SSSD được bật theo mặc định làm nguồn xác thực.
Mã:
authselect current
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22380%22%20height=%22173%22%3E%3C/svg%3E
Thiết lập Quy tắc Sudo
Sudo là ứng dụng cho phép bạn thực thi lệnh với tư cách là người dùng root hoặc bạn cũng có thể nhận được người dùng root cùng với nó. Theo mặc định, Freeipa hỗ trợ Sudo và cung cấp tiện ích dòng lệnh để tích hợp Sudo với máy chủ FreeIPA.Trong phần này, bạn sẽ tích hợp Sudo với FreeIPA bằng cách tạo Quy tắc Sudo. Trước tiên, bạn sẽ thiết lập nhóm người dùng, sau đó bạn sẽ thiết lập Quy tắc Sudo cho phép bất kỳ người dùng nào trong nhóm cụ thể truy cập và thực thi Sudo.
Trên máy chủ FreeIPA, nhập lệnh sau để tạo nhóm mới có tên là 'sysadmin' trên máy chủ FreeIPA. Sau đó, xác minh thông tin chi tiết của nhóm 'sysadmin'.
Mã:
ipa group-add --desc='Sysadmin Team' sysadmin
ipa group-find sysadmin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22603%22%20height=%22420%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để tạo một Sudo Rule mới có tên là 'sysadmin_sudo'. 'ipa sudorule-add' là một tiện ích có thể được sử dụng để thêm sudo rule vào máy chủ FreeIPA. Ngoài ra, bạn đang tạo một quy tắc sudo mới với một số tham số '--hostcat=all --runasusercat=all --runasgroupcat=all --cmdcat=all' cho phép quy tắc này thực thi sudo trên mọi máy khách và bất kỳ người dùng hoặc nhóm nào sẽ là một phần của quy tắc 'sysadmin_sudo'.
Mã:
ipa sudorule-add sysadmin_sudo \
--hostcat=all --runasusercat=all --runasgroupcat=all --cmdcat=all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22685%22%20height=%22295%22%3E%3C/svg%3E
Bây giờ hãy nhập lệnh sau để thêm nhóm 'sysadmin' vào quy tắc sudo 'sysadmin_sudo'. Điều này sẽ cho phép bất kỳ người dùng FreeIPA nào trong nhóm 'sysadmin' thực hiện lệnh sudo trên mọi máy khách FreeIPA.
Mã:
ipa sudorule-add-user sysadmin_sudo --group sysadmin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22642%22%20height=%22272%22%3E%3C/svg%3E
Xác minh thông tin chi tiết của quy tắc sudo 'sysadmin_sudo' bằng lệnh sau. Trên phần 'User Grous', bạn sẽ thấy nhóm 'sysadmin' được thêm vào và có sẵn trên 'sysadmin_sudo'.
Mã:
ipa sudorule-show sysadmin_sudo
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22486%22%20height=%22210%22%3E%3C/svg%3E
Cuối cùng, nhập lệnh sau để thêm người dùng FreeIPA 'rocky' vào nhóm 'sysadmin'. Sau đó, xác minh thông tin chi tiết của nhóm 'sysadmin' để đảm bảo rằng người dùng của bạn đã được thêm vào.
Mã:
ipa group-add-member --user=rocky sysadmin
ipa group-show sysadmin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22571%22%20height=%22392%22%3E%3C/svg%3E
Tại đây điểm, bây giờ bạn đã cấu hình và cho phép người dùng 'rocky' thông qua nhóm 'sysadmin' và Sudo Rule 'sysadmin_sudo' để thực thi Sudo trên tất cả các máy khách. Ở bước tiếp theo, bạn sẽ xác minh tích hợp của Sudo với máy chủ FreeIPA.
Xác minh tích hợp Sudoers với FreeIPA
Trong phần này, bạn sẽ đảm bảo rằng tích hợp Sudo với FreeIPA đang hoạt động. Điều này có thể đạt được bằng cách đăng nhập vào máy khách với tư cách là người dùng 'rocky', sau đó thực thi lệnh 'sudo' để có được quyền root.Nhập lệnh sau để kết nối với máy khách FreeIPA 'client.hwdomain.lan' bằng cách sử dụng người dùng 'rocky'. Khi được nhắc, hãy nhập mật khẩu cho người dùng 'rocky'.
Mã:
ssh [emailprotected]
Mã:
id
whoami
Mã:
sudo id
sudo su
Xác định người dùng hiện tại của bạn bằng lệnh bên dưới. Bạn sẽ thấy rằng hiện tại bạn đang đăng nhập với tư cách là người dùng 'root'.
Mã:
id
whoami
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22334%22%3E%3C/svg%3E
Với điều này, bạn đã tích hợp thành công Sudoers với máy chủ FreeIPA. Bất kỳ người dùng nào trong nhóm 'sysadmin' giờ đây có thể thực thi lệnh 'sudo' và có được quyền root trên mọi máy khách.
Cho phép người dùng FreeIPA thực thi Sudo cho các lệnh cụ thể
Đối với kịch bản này, bạn sẽ thiết lập một người dùng FreeIPA mới có thể đăng nhập vào máy khách và thực thi Sudo cho các lệnh cụ thể.Trong ví dụ này, bạn sẽ thiết lập một người dùng mới có tên là 'max' có thể đăng nhập vào máy khách 'client.hwdomain.lan' qua SSH và thực thi Sudo nhưng đối với một số lệnh để quản lý LEMP Stack.
Để thực hiện được điều này, bạn sẽ cần thực hiện các bước sau:
- Tạo người dùng và nhóm FreeIPA
- Tạo máy chủ Nhóm
- Tạo Quy tắc HBAC (Kiểm soát truy cập dựa trên máy chủ)
- Tạo Quy tắc Sudo
- Tạo Nhóm lệnh Sudo
- Xác minh Tích hợp Sudo với FreeIPA
Tạo Người dùng và Nhóm FreeIPA
Trước tiên, bạn sẽ cần tạo và xác định một người dùng và nhóm cụ thể. Trong ví dụ này, bạn sẽ tạo một người dùng mới 'max' và nhóm người dùng 'systemadmin' trên máy chủ FreeIPA. Bạn cũng sẽ xác minh người dùng mới 'max' để đảm bảo rằng người dùng có thể truy cập và đăng nhập vào máy khách 'client.hwdomain.lan'.Tạo người dùng FreeIPA mới có tên là 'max' bằng cách nhập lệnh 'ipa user-add' bên dưới. Nhập mật khẩu cho người dùng mới của bạn khi được nhắc và lặp lại.
Mã:
ipa user-add max --first=Max --last=Rods --password
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22633%22%20height=%22533%22%3E%3C/svg%3E
Bây giờ hãy xác minh thông tin chi tiết của người dùng 'max' bằng lệnh sau. Bạn sẽ thấy cấu hình chi tiết mặc định của người dùng 'max'.
Mã:
ipa user-find max
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22355%22%20height=%22414%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để thêm nhóm mới 'systemadmin'. Sau đó, thêm người dùng 'max' vào nhóm 'sysadmin'.
Mã:
ipa group-add --desc='System Admin Team' systemadmin
ipa group-add-member --user=max systemadmin
Mã:
ipa group-show systemadmin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22633%22%20height=%22180%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22596%22%20height=%22309%22%3E%3C/svg%3E
Để đảm bảo rằng người dùng mới có thể đăng nhập vào máy khách, hãy nhập lệnh ssh sau. Trong ví dụ này, người dùng 'max' sẽ đăng nhập vào máy khách 'client.hwdomain.lan'.
Mã:
ssh [emailprotected]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22287%22%3E%3C/svg%3E
Sau khi đăng nhập, hãy xác định người dùng hiện tại của bạn bằng lệnh sau.
Mã:
id
whoami
Tạo Nhóm máy chủ
Sau khi tạo người dùng và nhóm, bây giờ bạn sẽ tạo và thiết lập Nhóm máy chủ trên FreeIPA. Bạn sẽ tạo một nhóm máy chủ mới có tên là 'appserver' và thành viên của nhóm này sẽ là 'client.hwdomain.lan'.Kiểm tra danh sách các máy chủ khả dụng trên FreeIPA bằng lệnh sau. Lệnh này sẽ hiển thị cho bạn danh sách các máy có sẵn trên FreeIPA. Trong ví dụ này, hai máy chủ 'ipa.hwdomain.lan' và 'client.hwdomain.lan' có sẵn trên máy chủ FreeIPA.
Mã:
ipa host-find
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22375%22%3E%3C/svg%3E
Bây giờ hãy tạo một nhóm máy chủ mới có tên là 'appserver'. Sau đó, thêm máy chủ 'client.hwdomain.lan' vào nhóm máy chủ 'appserver'.
Mã:
ipa hostgroup-add appserver
ipa hostgroup-add-member appserver --hosts=client.hwdomain.lan
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22476%22%20height=%22142%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22720%22%20height=%22255%22%3E%3C/svg%3E
Xác minh nhóm máy chủ chi tiết 'appserver' bằng lệnh bên dưới. Bạn sẽ thấy máy chủ 'client.hwdomain.lan' được thêm vào và có sẵn trên nhóm máy chủ 'appserver'.
Mã:
ipa hostgroup-show appserver
Tạo quy tắc HBAC (Kiểm soát truy cập dựa trên máy chủ)
Sau khi tạo Nhóm máy chủ 'appserver', bây giờ bạn sẽ thiết lập Quy tắc HBAC (Kiểm soát truy cập dựa trên máy chủ) trên máy chủ FreeIPA. Với Quy tắc HBAC, bạn có thể thiết lập và xác định các chính sách hạn chế quyền truy cập vào máy chủ hoặc dịch vụ dựa trên người dùng đang cố gắng đăng nhập và nhóm của người dùng đó, máy chủ mà họ đang cố gắng truy cập (hoặc Nhóm máy chủ của máy chủ đó) và (tùy chọn) dịch vụ đang được truy cập.Trong phần này, bạn sẽ vô hiệu hóa quy tắc HBAC mặc định và thiết lập một quy tắc HBAC tùy chỉnh có tên là 'operation_admin' cho phép người dùng 'max' hoặc nhóm 'systemadmin' quản trị bất kỳ máy chủ nào trong nhóm máy chủ 'appserver' thông qua SSH. Ngoài ra, người dùng hoặc nhóm này sẽ có thể chạy lệnh 'sudo' và 'sudo -l'.
Nhập lệnh sau để vô hiệu hóa quy tắc HBAC mặc định 'allow_all'. Sau đó, hãy xác minh thông tin chi tiết của quy tắc HBAC 'allow_all'.
Mã:
ipa hbacrule-disable allow_all
ipa hbacrule-show allow_all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22615%22%20height=%22292%22%3E%3C/svg%3E
Khi quy tắc HBAC mặc định 'allow_all' bị vô hiệu hóa, không người dùng nào có thể đăng nhập vào máy khách.
Tiếp theo, tạo một quy tắc HBAC tùy chỉnh mới có tên là 'operation_admin' bằng cách sử dụng 'ipa hbacrule-add' sau lệnh.
Mã:
ipa hbacrule-add operation_admin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22496%22%20height=%22164%22%3E%3C/svg%3E
Bây giờ hãy thêm nhóm máy chủ 'appserver' thông qua lệnh 'ipa hbacrule-add-host' và nhóm người dùng 'sysadmin' thông qua lệnh 'ipa hbacrule-add-user' vào quy tắc HBAC 'operation_admin'.
Mã:
ipa hbacrule-add-host operation_admin --hostgroup appserver
ipa hbacrule-add-user operation_admin --group systemadmin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22708%22%20height=%22374%22%3E%3C/svg%3E
Tiếp theo, thêm các dịch vụ như 'sshd, sudo và su vào quy tắc HBAC 'operation_admin'. Bất kỳ máy chủ hoặc nhóm máy chủ nào trong quy tắc HBAC 'operation_admin' sẽ bị ảnh hưởng và được phép truy cập hoặc chạy các lệnh này.
Mã:
ipa hbacrule-add-service operation_admin --hbacsvcs=sshd
ipa hbacrule-add-service operation_admin --hbacsvcs=sudo --hbacsvcs=su-l
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22386%22%3E%3C/svg%3E
Xác minh thông tin chi tiết của quy tắc HBAC 'operation_admin' bằng lệnh sau. Bạn sẽ thấy ba dịch vụ 'sshd', 'sudo' và 'su-l' được thêm vào và có sẵn trên 'operation_admin'.
Mã:
ipa hbacrule-show operation_admin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22484%22%20height=%22173%22%3E%3C/svg%3E
Tại tại thời điểm này, chỉ những người dùng/nhóm trong quy tắc 'operation_admin' mới có thể đăng nhập vào máy khách. Người dùng 'rocky' không thể đăng nhập vào máy khách 'client.hwdomain.lan', nhưng người dùng 'max' có thể đăng nhập vào 'client.hwdomain.lan'. Điều này là do người dùng 'max' là một phần của nhóm 'systemadmin', được áp dụng cho quy tắc HBAC 'operation_admin'.
Đăng nhập với tư cách là người dùng 'rocky' sẽ được xác định bởi máy khách.
Mã:
ssh [emailprotected]
Mã:
ssh [emailprotected]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E
Tạo Quy tắc Sudo
Trong phần này, bạn sẽ tạo và thiết lập Quy tắc Sudo mới trên FreeIPA. Sau đó, bạn cũng sẽ gán Quy tắc Sudo này cho nhóm cụ thể 'systemadmin' và nhóm máy chủ 'appserver'.Nhập lệnh sau để thêm Quy tắc Sudo mới có tên là 'systemadmin_sudo'. Trong ví dụ này, bạn đang tạo một quy tắc sudo mới sẽ chỉ được áp dụng cho người dùng và nhóm có tham số '--runasusercat=all --runasgroupcat=all'. Với điều này, không phải tất cả các lệnh đều có thể chạy với sudo hoặc với tư cách là root và quy tắc này có thể được áp dụng cho các máy khách hoặc máy chủ cụ thể.
Mã:
ipa sudorule-add systemadmin_sudo \
--runasusercat=all --runasgroupcat=all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22518%22%20height=%22252%22%3E%3C/svg%3E
Bây giờ hãy nhập lệnh bên dưới để thêm nhóm người dùng 'systemdadmin' và nhóm máy chủ 'appserver' vào quy tắc sudo 'systemadmin_sudo'. Với điều này, 'systemadmin_sudo' sẽ chỉ được áp dụng cho người dùng trong nhóm 'systemadmin' và phần máy chủ/máy khách của 'appserver'.
Mã:
ipa sudorule-add-user systemadmin_sudo --group systemadmin
ipa sudorule-add-host systemadmin_sudo --hostgroup appserver
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22739%22%20height=%22451%22%3E%3C/svg%3E
Tạo lệnh Sudo Nhóm
Sau khi Quy tắc Sudo được tạo, bây giờ bạn sẽ thiết lập và xác định Nhóm lệnh Sudo trên FreeIPA. Với điều này, bạn có thể liên kết nhiều lệnh với một số Nhóm lệnh Sudo cụ thể, sau đó bạn có thể áp dụng nhóm lệnh Sudo cho Quy tắc Sudo cụ thể.Đối với ví dụ này, bạn sẽ xác định một số lệnh trên FreeIPA sẽ được sử dụng để bắt đầu và khởi động lại dịch vụ LEMP Stack. Sau đó, bạn sẽ tạo một nhóm lệnh Sudo mới có tên là 'systemadmin_cmds' và thêm các lệnh của bạn vào đó. Cuối cùng, bạn sẽ chỉ định Nhóm lệnh Sudo 'systemadmin_cmds' cho Quy tắc Sudo 'systemadmin_sudo'.
Nhập lệnh sau để thêm các lệnh mới vào máy chủ FreeIPA. Trong ví dụ này, bạn sẽ thêm các lệnh có thể được sử dụng để quản lý LEMP Stack. Bạn có thể khởi động và khởi động lại các dịch vụ Nginx, MariaDB và PHP-FPM.
Mã:
ipa sudocmd-add "/usr/bin/systemctl start nginx"
ipa sudocmd-add "/usr/bin/systemctl restart nginx"
ipa sudocmd-add "/usr/bin/systemctl start php-fpm"
ipa sudocmd-add "/usr/bin/systemctl restart php-fpm"
ipa sudocmd-add "/usr/bin/systemctl start mariadb"
ipa sudocmd-add "/usr/bin/systemctl restart mariadb"
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22635%22%20height=%22750%22%3E%3C/svg%3E
Tiếp theo, thêm một nhóm lệnh sudo mới có tên là 'systemadmin_cmds'. Sau đó, thêm tất cả các lệnh được sử dụng để quản lý LEMP Stack vào nhóm lệnh sudo 'systemadmin_cmds'.
Mã:
ipa sudocmdgroup-add systemadmin_cmds
ipa sudocmdgroup-add-member systemadmin_cmds \
--sudocmds "/usr/bin/systemctl start nginx" \
--sudocmds "/usr/bin/systemctl restart nginx" \
--sudocmds "/usr/bin/systemctl start php-fpm" \
--sudocmds "/usr/bin/systemctl restart php-fpm" \
--sudocmds "/usr/bin/systemctl start mariadb" \
--sudocmds "/usr/bin/systemctl restart mariadb"
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22184%22%3E%3C/svg%3E
Cuối cùng, nhập lệnh sau để thêm nhóm lệnh sudo 'systemadmin_cmds' vào quy tắc sudo 'systemadmin_sudo'. Với điều này, người dùng trong quy tắc sudo 'systemadmin_sudo' sẽ có thể thực hiện 6 lệnh sudo có sẵn trong nhóm lệnh sudo 'systemadmin_cmds'.
Mã:
ipa sudorule-add-allow-command systemadmin_sudo --sudocmdgroups systemadmin_cmds
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22247%22%3E%3C/svg%3E
Xác minh tích hợp Sudoers với FreeIPA
Để xác minh việc triển khai Sudo và tích hợp với FreeIPA trong trường hợp này, bạn sẽ đăng nhập vào 'client.hwdomain.lan' thông qua người dùng mới 'max'. Sau đó, bạn sẽ thực hiện một số lệnh sẽ được sử dụng để quản lý các dịch vụ LEMP Stack.Đăng nhập vào client.hwdomain.lan với người dùng 'max' bằng lệnh ssh sau. Nhập mật khẩu khi được nhắc.
Mã:
ssh [emailprotected]
Mã:
id
whoami
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Tiếp theo, nhập lệnh sau để khởi động lại dịch vụ LEMP Stack. Khi được nhắc, hãy nhập mật khẩu cho người dùng 'max'. Hoạt động này sẽ thành công vì người dùng 'max' được phép thực thi các lệnh này dưới dạng 'sudo'.
Mã:
sudo /usr/bin/systemctl restart nginx
sudo /usr/bin/systemctl restart php-fpm
sudo /usr/bin/systemctl restart mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22586%22%20height=%22174%22%3E%3C/svg%3E
Bây giờ nếu bạn thử lệnh 'systemctl stop', hoạt động này sẽ không thành công và bạn sẽ gặp lỗi như 'Xin lỗi, người dùng max hiện được phép thực thi ... với tư cách là root trên client.hwdomain.lan'.
Mã:
sudo /usr/bin/systemctl stop nginx
sudo /usr/bin/systemctl stop php-fpm
sudo /usr/bin/systemctl stop mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22156%22%3E%3C/svg%3E
Với thao tác này, bạn đã hoàn tất việc cấu hình Sudoers với máy chủ FreeIPA để cho phép các lệnh cụ thể được thực thi dưới dạng sudo hoặc as root.
Kết luận
Bài hướng dẫn này hướng dẫn bạn cách tích hợp Sudoers với máy chủ FreeIPA. Bạn cũng đã học một số lệnh cơ bản của tiện ích 'ipa' để quản lý người dùng, nhóm, nhóm máy chủ, quy tắc sudo, quy tắc HBAC (Kiểm soát truy cập dựa trên máy chủ) và nhóm lệnh sudo. Bạn đã học cách tích hợp cơ bản Sudoers với máy chủ FreeIPA với hai kịch bản khác nhau: Cho phép người dùng thực thi sudo cho tất cả các lệnh và máy chủ và cho phép người dùng chạy sudo chỉ với các lệnh cụ thể trên các máy chủ/máy khách cụ thể.Ngoài ra, bạn cũng đã học cách cấu hình cơ bản của dịch vụ SSSD và tích hợp nó với Sudo thông qua máy chủ FreeIPA.
Với triển khai Sudo này, bạn có thể triển khai hai kịch bản này trên máy chủ triển khai của mình. Để tìm hiểu thêm, hãy truy cập tài liệu chính thức của FreeIPA và Sudoer.