o
    O6uf@  ã                   @   s6   d dl m Z  d dlmZmZmZ G dd„ deeƒZdS )é    )Úglob)ÚPluginÚRedHatPluginÚSoSPredicatec                   @   sh   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚIpazIdentity, policy, auditÚipa)ÚidentityÚapacheF)z/etc/ipa)ú
ipa-serverz
ipa-clientúfreeipa-serverzfreeipa-clientNc                 C   s>   |   d¡s|  d¡s|  d¡rdS |   d¡s|  d¡rdS dS )	z Get IPA server version z
pki-serverz/var/lib/pkiz/usr/share/doc/ipa-server-4.2.0Úv4z
pki-commonz/var/lib/pki-ca/Úv3N)Úis_installedÚpath_exists©Úself© r   ú8/usr/lib/python3/dist-packages/sos/report/plugins/ipa.pyÚcheck_ipa_server_version!   s   
ÿþ
ÿzIpa.check_ipa_server_versionc                    s*   t ‡ fdd„ˆ j› d�ˆ j› d�fD ƒƒS )z Check if any CA is installed c                 3   ó   � | ]}ˆ   |¡V  qd S ©N)r   )Ú.0Úpathr   r   r   Ú	<genexpr>/   ó   € 

ÿz#Ipa.ca_installed.<locals>.<genexpr>z/conf/ca/CS.cfgz/conf/CS.cfg)ÚanyÚpki_tomcat_dir_v4Úpki_tomcat_dir_v3r   r   r   r   Úca_installed,   s
   

þÿzIpa.ca_installedc                    s   t ‡ fdd„dD ƒƒS )z" Check if IPA server is installed c                 3   r   r   )r   )r   Úpkgr   r   r   r   8   r   z+Ipa.ipa_server_installed.<locals>.<genexpr>)r
   r   )r   r   r   r   r   Úipa_server_installed6   s   ÿzIpa.ipa_server_installedc                 C   s8   |dkr|   g d¢¡ dS |dkr|   g d¢¡ dS dS )z Collect PKI logs r   )
z!/var/log/pki/pki-tomcat/ca/debug*z!/var/log/pki/pki-tomcat/ca/systemz'/var/log/pki/pki-tomcat/ca/transactionsz(/var/log/pki/pki-tomcat/ca/selftests.logz"/var/log/pki/pki-tomcat/catalina.*ú/var/log/pki/pki-ca-spawn.*z"/var/log/pki/pki-tomcat/kra/debug*z"/var/log/pki/pki-tomcat/kra/systemz(/var/log/pki/pki-tomcat/kra/transactionsz/var/log/pki/pki-kra-spawn.*r   )z/var/log/pki-ca/debugz/var/log/pki-ca/systemz/var/log/pki-ca/transactionsz/var/log/pki-ca/selftests.logz/var/log/pki-ca/catalina.*r!   N)Úadd_copy_spec)r   Úipa_versionr   r   r   Úcollect_pki_logs<   s
   ÿzIpa.collect_pki_logsc                 C   sP  d| _ d| _d| _d| _|  ¡ }|  ¡ r)|  d¡ |  d|› d�¡ |  g d¢¡ |  ¡ r7|  d	¡ |  	|¡ |  g d
¢¡ |dkrI| j }| j}n| j}| j}|  
d|› d�¡ |  |› d�¡ |  ddddddddd|› d�|› d�|› d�g¡ |  
g d¢¡ t| dgd�}| j
d|dd � td!ƒD ]
}|  
d|› �¡ q”|  d"d#i¡ d S )$Nz/var/lib/pki/pki-tomcatz/var/lib/pki-caz/etc/pki/pki-tomcat/caz/etc/pki-cazIPA server install detectedzIPA version is [ú])z/var/log/ipaserver-install.logz"/var/log/ipaserver-kra-install.logz!/var/log/ipaserver-enable-sid.logz/var/log/ipareplica-install.logz"/var/log/ipareplica-ca-install.logz/var/log/ipa-custodia.audit.logz$CA is installed: retrieving PKI logs)z/var/log/ipaclient-install.logz/var/log/ipaupgrade.logz/var/log/krb5kdc.logz#/var/log/dirsrv/slapd-*/logs/accessz#/var/log/dirsrv/slapd-*/logs/errorsz/etc/dirsrv/slapd-*/dse.ldifz&/etc/dirsrv/slapd-*/schema/99user.ldifz
/etc/hostsz/etc/httpd/alias/*z/etc/named.*z/etc/ipa/ca.crtz/etc/ipa/default.confz/etc/ipa/kdcproxy/kdcproxy.confz$/etc/ipa/kdcproxy/ipa-kdc-proxy.confz/etc/ipa/kdcproxy.confz/root/.ipa/log/cli.logú#/var/lib/certmonger/requests/[0-9]*z/var/lib/certmonger/cas/[0-9]*z/var/lib/ipa/ra-agent.pemz/var/lib/ipa/certs/httpd.crtz/var/kerberos/krb5kdc/kdc.crtz(/var/lib/ipa/sysrestore/sysrestore.statez)/var/log/ipa/healthcheck/healthcheck.log*z/var/log/ipaepn.log*r   zcertutil -L -d z/aliasz/CS.cfgz/etc/pki/nssdb/key*z/etc/dirsrv/slapd-*/key*z/etc/dirsrv/slapd-*/pin.txtz/etc/dirsrv/slapd-*/pwdfile.txtz/etc/httpd/alias/ipasession.keyz/etc/httpd/alias/key*z/etc/httpd/alias/pin.txtz/etc/httpd/alias/pwdfile.txtz/etc/named.keytabz/alias/key*z/flatfile.txtz/password.conf)z"ls -la /etc/dirsrv/slapd-*/schema/z certutil -L -d /etc/httpd/alias/zpki-server cert-find --show-allz%pki-server subsystem-cert-validate caz klist -ket /etc/dirsrv/ds.keytabz%klist -ket /etc/httpd/conf/ipa.keytabz,klist -ket /var/lib/ipa/gssproxy/http.keytabÚ
certmonger)Úservicesúgetcert listÚgetcert_list)ÚpredÚtagsz/etc/dirsrv/slapd-*/z(/var/log/ipa/healthcheck/healthcheck.logÚfreeipa_healthcheck_log)r   r   Úpki_tomcat_conf_dir_v4Úpki_tomcat_conf_dir_v3r   r    Ú
_log_debugr"   r   r$   Úadd_cmd_outputÚadd_forbidden_pathr   r   Úadd_file_tags)r   r#   Úpki_tomcat_dirÚpki_tomcat_conf_dirÚgetcert_predÚcertdb_directoryr   r   r   ÚsetupU   s^   
	

ô
ÿÿ
þz	Ipa.setupc                 C   sH   d}d}|   d||¡ |  ddd¡ d}t|ƒD ]	}|   |dd	¡ qd S )
Nz(\s*arg \"password )[^\"]*z
\1********z/etc/named.confr)   z(pin=)'(\d+)'z\1'***'r&   z(key_pin=)(\d+)z\1***)Údo_file_subÚdo_cmd_output_subr   )r   ÚmatchÚsubstÚrequest_logsÚrequest_logr   r   r   Úpostproc¾   s   þþÿzIpa.postproc)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚ
ipa_serverÚ
ipa_clientÚfilesÚpackagesr   r   r.   r/   r   r   r    r$   r8   r?   r   r   r   r   r      s$    
ir   N)r   Úsos.report.pluginsr   r   r   r   r   r   r   r   Ú<module>   s   
