Squid

Squid 中的 SELinux 和 ncsa_auth

  • May 31, 2011

我正在嘗試在帶有 Squid 3.1.12 的 CentOS 5.5 伺服器上啟用 SELinux,該伺服器通過 ncsa_auth 處理身份驗證。

當我關閉 SElinux 時一切正常,但當我啟用它時,Squid 在身份驗證外掛 ncsa_auth 上崩潰。

這是錯誤消息:

May 29 19:12:21 us squid[1458]: Squid Parent: child process 1493 started
May 29 19:12:21 us kernel: printk: 27 messages suppressed.
May 29 19:12:21 us kernel: type=1400 audit(1306696341.922:74): avc:  denied  { execute } for  pid=1494 comm="squid" name="ncsa_auth" dev=xvda1 ino=610563 scontext=root:system_r:squid_t:s0 tcontext=user_u:object_r:usr_t:s0 tclass=file
May 29 19:12:22 us (squid): The basicauthenticator helpers are crashing too rapidly, need help! 
May 29 19:12:22 us squid[1458]: Squid Parent: child process 1493 exited with status 1
May 29 19:12:22 us squid[1458]: Exiting due to repeated, frequent failures

當 SELinux 允許時,這些是我收到的警告:

May 29 19:25:27 us kernel: type=1400 audit(1306697127.741:81): avc:  denied  { execute } for  pid=1524 comm="squid" name="ncsa_auth" dev=xvda1 ino=610563 scontext=root:system_r:squid_t:s0 tcontext=user_u:object_r:usr_t:s0 tclass=file
May 29 19:25:27 us kernel: type=1400 audit(1306697127.741:82): avc:  denied  { execute_no_trans } for  pid=1524 comm="squid" path="/opt/squid-3.1.12/helpers/basic_auth/NCSA/ncsa_auth" dev=xvda1 ino=610563 scontext=root:system_r:squid_t:s0 tcontext=user_u:object_r:usr_t:s0 tclass=file

ncsa 身份驗證:

[bart@us NCSA]# ls -alZ ncsa_auth
-rwxrwxrwx  root root user_u:object_r:usr_t            ncsa_auth

認為他希望標籤是unconfined_u:system_r:squid_t:s0,但我不知道如何正確設置它。在我嘗試設置它之後:

chcon unconfined_u:system_r:squid_t:s0 ncsa_auth

我收到以下錯誤:chcon: failed to change context of ncsa_auth to unconfined_u:system_r:squid_t:s0: Invalid argument

我剛剛檢查了一個有 squid + ncsa_auth 工作的 CentOS 5.6 系統。我的權限/usr/lib64/squid/ncsa_auth

ls -lZ  /usr/lib64/squid/ncsa_auth
-rwsr-x---  root squid system_u:object_r:lib_t   /usr/lib64/squid/ncsa_auth

如果我將權限設置為/usr/lib64/squid/ncsa_auth與您相同,那麼我會收到與您完全相同的錯誤消息。

chown root:squid /usr/lib64/squid/ncsa_auth
chmod 4750 /usr/lib64/squid/ncsa_auth
chcon system_u:object_r:lib_t  /usr/lib64/squid/ncsa_auth

修復了我的系統上的問題。

引用自:https://serverfault.com/questions/275026