o
    id                     @   sZ   d dl mZmZmZmZ d dlZG dd deZG dd deeZG dd deeeZdS )	    )PluginRedHatPluginDebianPluginUbuntuPluginNc                   @   s4   e Zd ZdZdZdZdZdd Zdd Zd	d
 Z	dS )PostfixzPostfix smtp serverpostfix)mailservicesr   c                 C   s   g d}g }zBt | dd/}| D ] }|drq|d}|d  |v r4||d  d  qW d    W |S 1 sAw   Y  W |S |     Y S )N)lmtp_tls_dkey_filelmtp_tls_eckey_filelmtp_tls_key_filesmtp_tls_dkey_filesmtp_tls_eckey_filesmtp_tls_key_filesmtpd_tls_dkey_filesmtpd_tls_eckey_filesmtpd_tls_key_file"tls_legacy_public_key_fingerprintstlsproxy_tls_dkey_filetlsproxy_tls_eckey_filetlsproxy_tls_key_filesmtpd_tls_dh1024_param_filesmtpd_tls_dh512_param_filetlsproxy_tls_dh1024_param_filetlsproxy_tls_dh512_param_file/etc/postfix/main.cfr#=r      )open	path_join	readlines
startswithsplitstripappend)selfforbid_attributesfpcffilelinewords r.   </usr/lib/python3/dist-packages/sos/report/plugins/postfix.pyforbidden_ssl_keys_files   s    

		z Postfix.forbidden_ssl_keys_filesc              
   C   s  d}g }d}t d}z`t| ddM}| D ]>}t dd|}||}|d u r,q|d }||v rW|d	 }	t	|	d
krEq|	
|rR|	t	|d  }	||	 qW d    W |S 1 sdw   Y  W |S  ty }
 zd|
jd
  }| | W Y d }
~
|S d }
~
ww )N)lmtp_sasl_password_mapssmtp_sasl_password_mapspostscreen_dnsbl_reply_mapsmtp_sasl_auth_cache_namezhash:z
^(.*)=(.*)r   r   z#.* r       r   zError parsing main.cf: )recompiler!   r"   r#   submatchgroupr&   lenr$   r'   	Exceptionargs
_log_error)r(   r)   r*   prefixoption_formatr+   r,   option	attributefilepathemsgr.   r.   r/   forbidden_password_files9   s>   



z Postfix.forbidden_password_filesc                 C   sH   |  dg | ddg | g d | |   | |   d S )Nz/etc/postfix/postconfmailq)z/etc/postfix/*.keyz/etc/postfix/*.crtz/etc/postfix/ssl/)add_copy_specadd_cmd_outputadd_forbidden_pathr0   rG   r(   r.   r.   r/   setup]   s   zPostfix.setupN)
__name__
__module____qualname__
short_descplugin_nameprofilespackagesr0   rG   rN   r.   r.   r.   r/   r      s    #$r   c                       s$   e Zd ZdZdZ fddZ  ZS )RedHatPostfix)z/etc/rc.d/init.d/postfixr
   c                    s   t t|   | d d S )Nz	/etc/mail)superrV   rN   rJ   rM   	__class__r.   r/   rN   t   s   zRedHatPostfix.setup)rO   rP   rQ   filesrU   rN   __classcell__r.   r.   rX   r/   rV   o   s    rV   c                       s    e Zd ZdZ fddZ  ZS )DebianPostfixr
   c                    s   t t|   d S )N)rW   r\   rN   rM   rX   r.   r/   rN   }   s   zDebianPostfix.setup)rO   rP   rQ   rU   rN   r[   r.   r.   rX   r/   r\   y   s    r\   )	sos.report.pluginsr   r   r   r   r7   r   rV   r\   r.   r.   r.   r/   <module>   s
   a
