
    -_gI                     l    d dl Z d dlmZmZmZmZ  G d de      Z G d dee      Z G d deee      Zy)	    N)PluginRedHatPluginDebianPluginUbuntuPluginc                   .    e Zd ZdZdZdZdZd Zd Zd Z	y)	PostfixzPostfix smtp serverpostfix)mailservicesr	   c                    g d}g }	 t        | j                  d      dd      5 }|j                         D ]`  }|j                  d      r|j	                  d      }|d   j                         |v s<|j                  |d	   j	                         d          b 	 d
d
d
       |S # 1 sw Y   |S xY w# t        $ r Y |S w xY w)zi list of attributes defining a location of a SSL key file
        we must forbid from collection
        )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UTF-8encoding#=r      N)open	path_join	readlines
startswithsplitstripappend	Exception)selfforbid_attributesfpathscffilelinewordss         </usr/lib/python3/dist-packages/sos/report/plugins/postfix.pyforbidden_ssl_keys_filesz Postfix.forbidden_ssl_keys_files   s    
& 	dnn%;<c&( ;+1",,. ;Ds+  JJsOEQx~~'+<<eAhnn&6q&9:;; ;   		s5   B1 AB$2'B$B1 $B.)B1 .B1 1	B>=B>c                    d}g }d}t        j                  d      }	 t        | j                  d      dd      5 }|j	                         D ]  }t        j
                  dd	|      }|j                  |      }|.|j                  d      j                         }||v sR|j                  d      j                         }	t        |	      dk(  r|	j                  |      r|	t        |      d
 }	|j                  |	        	 d
d
d
       |S # 1 sw Y   |S xY w# t        $ r.}
d|
j                  d    }| j                  |       Y d
}
~
|S d
}
~
ww xY w)z% Get the list of password to exclude )lmtp_sasl_password_mapssmtp_sasl_password_mapspostscreen_dnsbl_reply_mapsmtp_sasl_auth_cache_namezhash:z
^(.*)=(.*)r   r    r!   r"   z#.* Nr&      r   zError parsing main.cf: )recompiler'   r(   r)   submatchgroupr,   lenr*   r-   r.   args
_log_error)r/   r0   r1   prefixoption_formatr2   r3   option	attributefilepatherrmsgs               r5   forbidden_password_filesz Postfix.forbidden_password_files;   sN   
 

=1	!dnn%;<c&( 0+1",,. 0D66%T2D*006F~  !'Q 5 5 7I $55#)<<?#8#8#:x=A-$#..v6'/F'=Hh/#000 100 	  	!+CHHQK=9COOC  		!s<   D A"DA D>D DD D 	E#EEc                     | j                  dg       | j                  ddg       | j                  g d       | j                  | j                                | j                  | j	                                y )Nz/etc/postfix/postconfmailq)z/etc/postfix/*.keyz/etc/postfix/*.crtz/etc/postfix/ssl/)add_copy_specadd_cmd_outputadd_forbidden_pathr6   rM   )r/   s    r5   setupzPostfix.setupa   sx    
 	 	
 	
 	 !
 	
 	 = = ?@ = = ?@    N)
__name__
__module____qualname__
short_descplugin_nameprofilespackagesr6   rM   rT    rU   r5   r   r      s(    &JK#HH$L$LArU   r   c                   &     e Zd ZdZdZ fdZ xZS )RedHatPostfix)z/etc/rc.d/init.d/postfixr   c                 D    t         |           | j                  d       y )Nz	/etc/mail)superrT   rQ   )r/   	__class__s    r5   rT   zRedHatPostfix.setupx   s    ;'rU   )rV   rW   rX   filesr\   rT   __classcell__)rb   s   @r5   r_   r_   s   s    )EH( (rU   r_   c                       e Zd ZdZy)DebianPostfixr   N)rV   rW   rX   r\   r]   rU   r5   rf   rf   }   s    HrU   rf   )	r>   sos.report.pluginsr   r   r   r   r   r_   rf   r]   rU   r5   <module>rh      s?    
 O OcAf cAL(G\ (G\< rU   