Really solved - Re: Solved - Re: SELinux policy to allow Dovecot to connect to Mysql
Robert Moskowitz
rgm at htt-consult.com
Tue Feb 5 22:50:51 EET 2019
This is an old issue, but I am building a new system and hit this
problem all over again.
This time, I asked for help from the SELinux list, as googling did not
find anything new. What resulted was a policy to allow dovecot to
connect to mysql.sock:
yum install policycoreutils
cat > dovecot_mysql.te << \EOF
policy_module(dovecot_mysql,1.0.0)
gen_require(`
type dovecot_t;
')
mysql_read_config(dovecot_t)
mysql_stream_connect(dovecot_t)
EOF
make -f /usr/share/selinux/devel/Makefile dovecot_mysql.pp
semodule -i dovecot_mysql.pp
IF you are using a TCP connection over 127.0.0.1, then it is simpler:
echo '(allow dovecot_t mysqld_port_t (tcp_socket (name_connect)))' >
dovecot-mysql.cil
semodule -i dovecot-mysql.cil
sesearch -A -s dovecot_t -c tcp_socket -p name_connect | grep sql
allow dovecot_t mysqld_port_t:tcp_socket name_connect;
allow dovecot_t postgresql_port_t:tcp_socket name_connect;
Enjoy!
On 4/7/17 11:12 AM, Robert Moskowitz wrote:
> I reread my sql.conf.ext files and realized they were actually
> connecting to localhost. So I did some googling, and found how to
> connect to the socket:
>
> connect = host=/var/lib/mysql/mysql.sock dbname=postfix user=postfix
> password=Postfix_Database_Password
>
> And all fixed. No more failures. Plus probably securer.
>
> On 04/07/2017 10:57 AM, Robert Moskowitz wrote:
>> The strange thing is that dovecot auth has no problem connecting to
>> mysql, but the quota query is what is failing.
>>
>> On 04/07/2017 10:43 AM, Robert Moskowitz wrote:
>>> As I have noted in previous messages, I been getting the following
>>> on my new mailserver:
>>>
>>> Apr 7 10:17:27 z9m9z dovecot: dict: Error: mysql(localhost):
>>> Connect failed to database (postfix): Can't connect to local MySQL
>>> server through socket '/var/lib/mysql/mysql.sock' (13) - waiting for
>>> 25 seconds before retry
>>>
>>> They go away when I setenforce 0. It is not a timing issue as I
>>> earlier thought.
>>>
>>> So I googled dovecot mysql selinux and the only worthwhile hit was:
>>>
>>> http://zszsit.blogspot.com/2012/12/dovecot-mysql-selinux-issue-on-centos6.html
>>>
>>>
>>> that provides a /etc/selinux/dovecot2mysql.te and other selinux stuff.
>>>
>>> Is there a simpler way like a setsbool option?
>>>
>>> With all the howtos on dovecot with mysql, it is interesting that
>>> none of them seem to have this problem. Maybe because they connect
>>> to mysql through TCP port 3306 which has ITS set of problems (like
>>> MariaDB defaults to not listening on TCP).
>>>
>>> thanks!
>>>
>>
>
More information about the dovecot
mailing list