setroubleshoot:SELinux阻止了Squid(squid_t)绑定到端口5000错误和解决方案
时间:2020-01-09 10:42:49 来源:igfitidea点击:
我安装了Squid Proxy服务器,但是我收到如下错误:
Jul 14 15:09:02 server1 squid[5315]: Squid Parent: child process 5317 started
Jul 14 15:09:02 server1 squid[5317]: Cannot open HTTP Port
Jul 14 15:09:02 server1 squid[5315]: Squid Parent: child process 5317 exited due to signal 6
Jul 14 15:09:02 server1 setroubleshoot: SELinux is preventing the squid (squid_t) from binding to port 5000. For complete SELinux messages. run sealert -l 1cf3c788-35f7-4752-8439-92a1d0719466
我该如何解决这个问题?
Squid的默认端口是3128,您已将其更改为5000。
SELinux是RHEL/CentOS/Fedora的一部分,可防止在任何其他端口上运行squid。
执行以下命令以查看详细消息:
sealert -l 1cf3c788-35f7-4752-8439-92a1d0719466
输出示例:
sealert -l 1cf3c788-35f7-4752-8439-92a1d0719466
Summary:
SELinux is preventing the squid (squid_t) from binding to port 5000.
Detailed Description:
SELinux has denied the squid from binding to a network port 5000 which does not
have an SELinux type associated with it. If squid is supposed to be allowed to
listen on this port, you can use the semanage command to add this port to a port
type that squid_t can bind to. semanage port -l will list all port types. Please
file a bug report (http://bugzilla.redhat.com/bugzilla/enter_bug.cgi) against
the selinux-policy package. If squid is not supposed to bind to this port, this
could signal a intrusion attempt. If this system is running as an NIS Client,
turning on the allow_ypbind boolean, may fix the problem. setsebool -P
allow_ypbind=1.
Allowing Access:
If you want to allow squid to bind to this port semanage port -a -t PORT_TYPE -p
PROTOCOL 5000 Where PORT_TYPE is a type that squid_t can bind and PROTOCOL is
udp or tcp.
Additional Information:
Source Context root:system_r:squid_t
Target Context system_u:object_r:port_t
Target Objects None [ tcp_socket ]
Source squid
Source Path /usr/sbin/squid
Port 5000
Host server1.theitroad.com
Source RPM Packages squid-2.6.STABLE21-6.el5
Target RPM Packages
Policy RPM selinux-policy-2.4.6-279.el5
Selinux Enabled True
Policy Type targeted
MLS Enabled True
Enforcing Mode Enforcing
Plugin Name bind_ports
Host Name server1.theitroad.com
Platform Linux server1.theitroad.com 2.6.18-194.8.1.el5 #1
SMP Wed Jun 23 10:52:51 EDT 2010 x86_64 x86_64
Alert Count 5
First Seen Wed Jul 14 15:09:02 2010
Last Seen Wed Jul 14 15:09:15 2010
Local ID 1cf3c788-35f7-4752-8439-92a1d0719466
Line Numbers
Raw Audit Messages
host=server1.theitroad.com type=AVC msg=audit(1279138155.644:158): avc: denied { name_bind } for pid=5366 comm="squid" src=5000 scontext=root:system_r:squid_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket
host=server1.theitroad.com type=SYSCALL msg=audit(1279138155.644:158): arch=c000003e syscall=49 success=no exit=-13 a0=11 a1=7ffff9929280 a2=10 a3=7ffff992929c items=0 ppid=5315 pid=5366 auid=0 uid=23 gid=23 euid=0 suid=0 fsuid=0 egid=23 sgid=23 fsgid=23 tty=(none) ses=1 comm="squid" exe="/usr/sbin/squid" subj=root:system_r:squid_t:s0 key=(null)
但是,如何解决此问题并将Squid使用端口5000?
执行以下命令以为Squid服务添加新的SELinux端口映射:
# semanage port -a -t http_cache_port_t -p tcp 5000 # service squid start # chkconfig squid on # tail -f /var/log/messages

