Hướng dẫn cấu hình SELinux cấp phép cho Nextcloud
Hướng dẫn cấu hình SELinux cấp phép cho Nextcloud sau đây sẽ giúp bạn giải quyết sự cố. Mặc định SELinux chặn dịch vụ đám mây Nextcloud của bạn. Khi bạn đã bật SELinux trên bản phân phối Linux của mình, bạn có thể gặp sự cố về quyền sau khi cài đặt Nextcloud mới. Bancó thể thấy lỗi bị từ chối cấp phép trong nhật ký Nextcloud của bạn. Nếu truy cập vào nextcloud bạn có thể gặp thông báo:
Quyền truy cập nextcloud bị từ chối bởi SELinux
Cấp phép SELinux cho nextcloud
Các cài đặt sau sẽ hoạt động đối với hầu hết các hệ thống SELinux sử dụng cấu hình phân phối mặc định (/var/www/html). Chạy các lệnh này dưới quyền root. Bạn nhớ điều chỉnh đường dẫn tệp trong các ví dụ sau cho phù hợp với các cài đặt của bạn. Trong ví dụ này, tôi sử dụng thư mục cài đặt nextcloud là /var/www/html/nextcloud:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?' restorecon -Rv '/var/www/html/nextcloud/'
Gỡ bỏ cấp phép SELinux cho nextcloud
Ngược lại, khi bạn gỡ cài đặt Nextcloud, bạn cần xóa các nhãn thư mục của Nextcloud trong SELinux. Để thực hiện việc này, hãy thực hiện các lệnh sau với quyền root sau khi gỡ cài đặt Nextcloud:
semanage fcontext -d '/var/www/html/nextcloud/data(/.*)?' semanage fcontext -d '/var/www/html/nextcloud/config(/.*)?' semanage fcontext -d '/var/www/html/nextcloud/apps(/.*)?' semanage fcontext -d '/var/www/html/nextcloud/.htaccess' semanage fcontext -d '/var/www/html/nextcloud/.user.ini' restorecon -Rv '/var/www/html/nextcloud/'
Nếu bạn đã tùy chỉnh các chính sách SELinux và các ví dụ này có thể không hoạt động, bạn phải cấp cho máy chủ HTTP quyền ghi vào các thư mục này:
/var/www/html/nextcloud/data /var/www/html/nextcloud/config /var/www/html/nextcloud/apps
Bật cập nhật qua giao diện web
Để kích hoạt cập nhật qua giao diện web, bạn có thể cần điều này để cho phép ghi vào các thư mục:
setsebool httpd_unified on
Tắt cập nhật qua giao diện web
Khi cập nhật hoàn tất, hãy tắt quyền ghi để bảo mật:
Vì lý do bảo mật, bạn nên tắt quyền truy cập ghi vào tất cả các thư mục trong / var / www / (mặc định) bằng lệnh:
setsebool -P httpd_unified off
Cho phép truy cập vào cơ sở dữ liệu từ xa
Cần có cài đặt bổ sung này nếu cài đặt của bạn đang kết nối với cơ sở dữ liệu từ xa:
setsebool -P httpd_can_network_connect_db on
Cho phép truy cập vào máy chủ LDAP
Sử dụng cài đặt này để cho phép kết nối LDAP:
setsebool -P httpd_can_connect_ldap on
Cho phép truy cập vào mạng từ xa
Nextcloud yêu cầu quyền truy cập vào các mạng từ xa cho các chức năng như chia sẻ Máy chủ với Máy chủ, kho lưu trữ bên ngoài hoặc cửa hàng ứng dụng. Để cho phép quyền truy cập này, hãy sử dụng cài đặt sau:
setsebool -P httpd_can_network_connect on
Cho phép truy cập vào network memcache
Chú ý là cài đặt này không bắt buộc nếu httpd_can_network_connect đã được bật:
setsebool -P httpd_can_network_memcache on
Cho phép truy cập vào SMTP / sendmail
Nếu bạn muốn cho phép Nextcloud gửi thông báo e-mail qua sendmail, bạn cần sử dụng cài đặt sau:
setsebool -P httpd_can_sendmail on
Cho phép truy cập vào CIFS/SMB
Nếu bạn đã đặt thư mục dữ liệu của mình trên giao thức chia sẻ CIFS / SMB, hãy sử dụng cài đặt sau:
setsebool -P httpd_use_cifs on
Cho phép truy cập FuseFS
Nếu thư mục dữ liệu của bạn nằm trên Hệ thống tệp Fuse (ví dụ: EncFS, v.v.), cài đặt này cũng cần thiết:
setsebool -P httpd_use_fusefs on
Cho phép truy cập GPG cho Rainloop
Nếu bạn sử dụng ứng dụng ứng dụng khách webmail trên web rainloop hỗ trợ GPG / PGP, bạn có thể cần điều này:
setsebool -P httpd_use_gpg on
Chẩn đoán và xử lý sự cố – Troubleshooting
Để khắc phục sự cố chung của SELinux và các cấu hình của nó, hãy thử cài đặt gói phần mềm khắc phục sự cố và chạy lệnh sau để nhận báo cáo giúp bạn định cấu hình các cấu hình SELinux của mình.:
sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt
Một công cụ khác để khắc phục sự cố là bật một bộ quy tắc duy nhất cho thư mục Nextcloud của bạn:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud(/.*)?' restorecon -RF /var/www/html/nextcloud
Việc có bộ quy tắc chi tiết hơn như trong các ví dụ ở phần đầu sẽ bảo mật mạnh hơn nhiều. Bạn chỉ nên sử dụng bộ quy tắc này để kiểm tra và khắc phục sự cố. Nó có tác dụng tương tự như việc tắt SELinux, vì vậy không sử dụng nó trên các hệ thống quan trọng.
Cường Còng – Chúc các bạn vui vẻ!