If anyone else has a similar issue, the problem is with SELinux's built in 
policies.  Here is the Type Enforcement module I had to build and install.  
Just let me know if any questions:

------------------
module pdns_customized 1.0;

require {
        type proc_t;
        type usr_t;
        type pdns_t;
        type unreserved_port_t;
        class udp_socket name_bind;
        class file { map read };
}

#============= pdns_t ==============
allow pdns_t proc_t:file read;
allow pdns_t unreserved_port_t:udp_socket name_bind;
allow pdns_t usr_t:file map;
------------------

Sean

From: Pdns-users <pdns-users-boun...@mailman.powerdns.com> On Behalf Of Sean 
Lair via Pdns-users
Sent: Saturday, June 6, 2020 3:14 PM
To: pdns-users@mailman.powerdns.com
Subject: [Pdns-users] Error binding on UDP port 53 only when slave=yes

Please double check the sender's email address. The sender may not be who they 
claim to be. 
-----------------------------------------------------------------------
Hello!

Our Authorities PDNS servers are currently using native mode with MariaDB.  We 
are attempting to enabled slave=yes (in pdns.conf) but when we do so, we get 
the error below.  ***If we do not have slave=yes configured, then PDNS works 
fine (but not in slave mode of course).***

-----------------------------
Jun  6 19:57:54 ns1 systemd[1]: Starting PowerDNS Authoritative Server...
Jun  6 19:57:54 ns1 pdns_server[8154]: Loading 
'/usr/lib64/pdns/libgmysqlbackend.so'
Jun  6 19:57:54 ns1 pdns_server[8154]: This is a standalone pdns
Jun  6 19:57:54 ns1 pdns_server[8154]: Listening on controlsocket in 
'/var/run/pdns/pdns.controlsocket'
Jun  6 19:57:54 ns1 pdns_server[8154]: UDP server bound to 0.0.0.0:53
Jun  6 19:57:54 ns1 pdns_server[8154]: UDP server bound to [::]:53
Jun  6 19:57:54 ns1 pdns_server[8154]: TCP server bound to 0.0.0.0:53
Jun  6 19:57:54 ns1 pdns_server[8154]: TCP server bound to [::]:53
Jun  6 19:57:54 ns1 pdns_server[8154]: PowerDNS Authoritative Server 4.3.0 (C) 
2001-2020 PowerDNS.COM BV
Jun  6 19:57:54 ns1 pdns_server[8154]: Using 64-bits mode. Built using gcc 
8.3.1 20190507 (Red Hat 8.3.1-4) on Apr  9 2020 19:45:37 by mockbuild@localhost.
Jun  6 19:57:54 ns1 pdns_server[8154]: PowerDNS comes with ABSOLUTELY NO 
WARRANTY. This is free software, and you are welcome to redistribute it 
according to the terms of the GPL version 2.
Jun  6 19:57:54 ns1 pdns_server[8154]: [webserver] Listening for HTTP requests 
on 0.0.0.0:8081
Jun  6 19:57:54 ns1 pdns_server[8154]: Master/slave communicator launching
Jun  6 19:57:54 ns1 pdns_server[8154]: Creating backend connection for TCP
Jun  6 19:57:54 ns1 pdns_server[8154]: About to create 3 backend threads for UDP
Jun  6 19:57:54 ns1 pdns_server[8154]: Exiting because communicator thread died 
with error: Resolver binding to local UDP socket on 0.0.0.0: Permission denied
-----------------------------

It seems that when slave=yes is configured that PDNS drops its privilege level 
before opening it's sockets?  If I turn off SELinux we have no issues, but with 
SELinux ON w/o slave=yes we also work without issue...  Here is a line from our 
audit log, confirming that SELinux is blocking listening on port 53 - again 
this blocking only occurs if slave=yes.

-----------------------------
type=AVC msg=audit(1591472511.372:4842): avc:  denied  { name_bind } for  
pid=8081 comm="pdns/comm-main" src=14783 scontext=system_u:system_r:pdns_t:s0 
tcontext=system_u:object_r:unreserved_port_t:s0 tclass=udp_socket permissive=0
-----------------------------

Let me know if there is anything else I can provide to help. We are CentOS8 and 
PowerDNS Authoritative Server 4.3.0.

Thanks!
Sean

_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users

Reply via email to