SELinux - kis segitseg a log olvasasban

Sziasztok,

 

Nemreg tertem at Debianrol CentOS-re bizonyos rendszereimen. SELinux beallitassal bajlodok epp, a kerdesem, hogy az alabbi log szerint melyik reszekkel van gondja a rendszernek?

 

time->Tue Apr 21 08:35:01 2020
type=PROCTITLE msg=audit(1587450901.950:14482): proctitle=7068702D66706D3A20706F6F6C20777777
type=SYSCALL msg=audit(1587450901.950:14482): arch=c000003e syscall=42 success=no exit=-115 a0=c a1=7fb0df86a0e0 a2=10 a3=5e9e9415 items=0 ppid=1190 pid=27596 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="php-fpm" exe="/usr/sbin/php-fpm" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1587450901.950:14482): avc:  denied  { name_connect } for  pid=27596 comm="php-fpm" dest=21 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ftp_port_t:s0 tclass=tcp_socket permissive=1
----
time->Tue Apr 21 08:35:01 2020
type=PROCTITLE msg=audit(1587450901.955:14483): proctitle=7068702D66706D3A20706F6F6C20777777
type=SYSCALL msg=audit(1587450901.955:14483): arch=c000003e syscall=42 success=no exit=-115 a0=e a1=7fb0df9290b8 a2=10 a3=ff000 items=0 ppid=1190 pid=27596 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="php-fpm" exe="/usr/sbin/php-fpm" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1587450901.955:14483): avc:  denied  { name_connect } for  pid=27596 comm="php-fpm" dest=51442 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ephemeral_port_t:s0 tclass=tcp_socket permissive=1
----
time->Tue Apr 21 08:35:01 2020
type=PROCTITLE msg=audit(1587450901.981:14484): proctitle=7068702D66706D3A20706F6F6C20777777
type=SYSCALL msg=audit(1587450901.981:14484): arch=c000003e syscall=42 success=no exit=-115 a0=e a1=7fb0df9290b8 a2=10 a3=ff000 items=0 ppid=1190 pid=27596 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="php-fpm" exe="/usr/sbin/php-fpm" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1587450901.981:14484): avc:  denied  { name_connect } for  pid=27596 comm="php-fpm" dest=62637 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket permissive=1
----
time->Tue Apr 21 08:35:02 2020
type=PROCTITLE msg=audit(1587450902.562:14485): proctitle=7068702D66706D3A20706F6F6C20777777
type=SYSCALL msg=audit(1587450902.562:14485): arch=c000003e syscall=42 success=no exit=-115 a0=c a1=7fb0df86a0e0 a2=10 a3=5e9e9416 items=0 ppid=1190 pid=27596 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="php-fpm" exe="/usr/sbin/php-fpm" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1587450902.562:14485): avc:  denied  { name_connect } for  pid=27596 comm="php-fpm" dest=21 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ftp_port_t:s0 tclass=tcp_socket permissive=1
----
time->Tue Apr 21 08:35:06 2020
type=PROCTITLE msg=audit(1587450906.205:14486): proctitle=7068702D66706D3A20706F6F6C20777777
type=SYSCALL msg=audit(1587450906.205:14486): arch=c000003e syscall=42 success=no exit=-115 a0=e a1=7fb0df9290b8 a2=10 a3=142000 items=0 ppid=1190 pid=27596 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="php-fpm" exe="/usr/sbin/php-fpm" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1587450906.205:14486): avc:  denied  { name_connect } for  pid=27596 comm="php-fpm" dest=54097 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ephemeral_port_t:s0 tclass=tcp_socket permissive=1

 

Gondolom httpd es ftp kornyeken kell keresgelnem , csak nem tudom pontosan, melyik logikai kapcsolot billentsem on-ra. 

Hozzászólások

Ahogy latszik, eredendoen a PHP-FPM futasa soran van a gondja, a kontextus nem egyezik meg azzal, amit a SELinux var. Mivel ekore centralizalodnak a megfogott elemek, gyartanek ra egy policy-t, ahogy van, aztan nem fogja bantani. A http es ftp csak annyiban jatszik szerepet, hogy a php azok portjat akarja bind-olni, es a SELinux nem hagyja neki az eltero kontextus miatt.

Amit csinaltal, egy mukodo dolog, csak specifikus. Amikor nagyon egy "temakor" kore szervezodnek a hibak, tapasztalatom szerint jobb/tisztabb gyartani rajuk egy policy-t, mert egyben legeneralja, ami neked kell, azt beilleszted, illetve igeny szerint kiveszed az ervenyes policy-k kozul.

A gyartashoz: audit2allow -M modulnev < /var/log/audit/audit.log

Mielőtt policy-t gyártasz, próbáld ki, hogy a php-fpm-et a neki kiosztott proton használod, mert konkrétan az a baja:

avc:  denied  { name_connect } for  pid=27596 comm="php-fpm" dest=62637 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket permissive=1

Ha mindenképp ez a port kell, akkor engedélyezheted a "semanage port -a -t http_port_t -p tcp PORT_NUMBER" paranccsal. Alapból ide tud csatlakozni ("semanage port -l | grep http_port_t") CentOS 7 esetén:

http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000