HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/plogical/__pycache__/dnsUtilities.cpython-310.pyc
o

��hɚ�@s�ddlZddlZej�d�ddlZej�dd�ze��WnYddlm	Z
ddlZddlZzddl
mZmZddlmZmZWnYddlZddlmZGd	d
�d
�ZdS)�Nz/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�CyberCPLogFileWriter)�Domains�Records)�
PDNSStatus�SlaveServers)�ProcessUtilitiesc@s�eZdZdZdZdZdZdZdd�Zd#d	d
�Z	e
dd��Ze
d
d��Ze
dd��Z
e
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd ��Ze
d!d"��ZdS)$�DNSz/etc/nsd/nsd.confz/usr/local/lsws/conf/zones/z/usr/local/lsws/conf/zonesz#/home/cyberpanel/defaultNameserversz/home/cyberpanel/CloudFlarecCsddtj|jjf}tj�|�r0t|d���}|d�	d�|_
|d�	d�|_|d�	d�|_dSdS)Nz%s%s�rr�
��)
r	�CFPath�admin�userName�os�path�exists�open�	readlines�rstrip�email�key�status)�self�cfFile�data�r�+/usr/local/CyberCP/plogical/dnsUtilities.py�
loadCFKeys#szDNS.loadCFKeysNcCsF�z||_|���r|dkrn	|jdkrnWdStj|j|jd�}zE|dd�}|jj|d�}t|dd�d	�D].}|d
}t	j
j|d�}tj
j|j
d�}	|	D]}
t�|||
j|
j|
j|
j|
j�qMWWd
SWn5tjjy�}ztj�t|��WYd}~nd}~wty�}ztj�t|��WYd}~nd}~wwz6|jjd|d�d�}|d
}t	j
j|d�}tj
j|j
d�}	|	D]}
t�|||
j|
j|
j|
j|
j�q�WWd
Stjjy�}z
dt|�fWYd}~WSd}~wt�y}z
dt|�fWYd}~WSd}~wwWdSt�y"}
zdt|�fWYd}
~
Sd}
~
ww)N�Enable)rzSync not enabled.�r�token�2��name�per_page��paramscS�|dS�Nr%r��vrrr�<lambda>E�z DNS.cfTemplate.<locals>.<lambda>�r�id�r%)�	domain_id�rNF)�
jump_startr%�rr)rrr�
CloudFlarerr�zones�get�sortedr�objectsr�filterr0r	�createDNSRecordCloudFlarer%�type�content�prio�ttl�
exceptions�CloudFlareAPIError�loggingr�writeToFile�str�	Exception�post�
BaseException)r�
zoneDomainr�enableCheck�cfr(r7�zone�domain�records�record�e�	zone_info�msgrrr�
cfTemplate0sf


�
�
��������5��zDNS.cfTemplatecCs��z�d}t|�}|��}|�dd�d}ddl}|jdd�}||�}|jd|j}	|j}
t|
�dk�rat	j
j|	d���dk�r_z<t
j
jdd�}|jd	krtt	||	d	d
�}|��tj
��D]}
t||j|	d|
jddddd
�	}|��q]nt	||	dd
�}Wnt	||	dd
�}Y|��|jdkr�tj�tj�r�ttjd���}|D]}
t|
�dkr�t||j|	d|
�d�ddddd
�	}|��q�n(t||j|	dd|	ddddd
�	}|��t||j|	dd|	ddddd
�	}|��d|	d|	d}t�||	d|dd�t�||	d|dd�d|	}t�||d|	dd�d|	}t�||d|	dd�|	}t�||	d|dd�t�||d|dd�t�||	dd|ddd�t�|d |	dd!dd�t�|d"|	dd#dd��nt	j
j|	d���dk�rzt
j
jdd�}|jd	k�r�t	||	d	d
�}nt	||	dd
�}Wnt	||	dd
�}Y|��d|	d|	d}t�||	d|dd�t�||	d|dd�d|	}t�||d|	dd�d|	}t�||d|	dd�|	}t�||d|dd�t�||d|dd�t�||	dd|ddd�t�|d |	dd!dd�t�|d"|	dd#dd�t	j
j|	d�}|
d|	}t�||d|dd�d$|�d%�d&k�r>t�|d'|d|dd�d|}t�||d|dd�|}t�||d|dd�t�||dd|ddd�t�|d |dd!dd�t�|d"|dd#dd�t� �tj!k�s�t� �tj"k�r�d(}t�#|�t�}|�$||�WdSt%�y�}zt&j'�(d)|d*t)|��WYd}~dSd}~ww)+Nz/etc/cyberpanel/machineIPrrr��	cache_dir�.r1)�pk�MASTER�rr%r=�NS��	�domainOwnerr2r%r=r>r@r?�disabled�auth�NATIVEr
�zns1.%szns2.%szns1.z hostmaster.z 1 10800 3600 1209600 3600�SOA�Azwww.�CNAMEzftp.�MX�
�TXTzv=spf1 a mx ip4:z ~allz_dmarc.zv=DMARC1; p=none;z_domainkey.z	t=y; o=~;zmail.%sz	mail.mail���zmail.�sudo systemctl restart pdnsz.We had errors while creating DNS records for: �. Error message: )*r�read�split�
tldextract�
TLDExtractrM�suffix�	subdomain�lenrr:r;�countrr8r=�saver�allrr0�slaveServerrrrr	�defaultNameServersPathrr�createDNSRecord�findr�decideDistro�ubuntu�ubuntu20�executionerrSrHrCrrDrE)rMr�ipFile�f�ipData�	ipAddressrm�no_cache_extract�
extractDomain�topLevelDomain�	subDomain�pdnsrL�itemsrO�	defaultNSr>�
cNameValue�mxValue�actualSubDomain�command�dnsrRrrr�dnsTemplatems
�
	��
�	��
�	�	






��









 
���zDNS.dnsTemplatecCs�zdddl}|jdd�}||�}|jd|j}|j}tjj|d�}d|d}d|}t�	t
�|���d�}	|	�
d	�d
}
|	�d�d}tjj|d
|d���dkrlt||jd
|d|	|
|�ddddd�	}|��ntjj|d
|d�}
|	|
|�|
_|
��t|�dkr�tjj|d
|d���dkr�t||jd
|d|	|
|�ddddd�	}|��ntjj|d
|d�}
|	|
|�|
_|
��t��tjks�t��tjkr�d}t�|�t�}|j|_|���r`tj|j|j d�}|j!dk�rcz1|dd�}|j"j|d�}t#|dd�d�D]}|d}t�$||d
|d|	|
|�dd��qWWdStj%j&�yC}zt'j(�)t*|��WYd}~WdSd}~wt+�y_}zt'j(�)t*|��WYd}~WdSd}~wwWdSWdSt,�y�}zt'j(�)d|dt*|��WYd}~dSd}~ww)NrrTrVr1z/etc/opendkim/keys/z/default.txt�cat zutf-8�(r
�)rzdefault._domainkey.)r]r%rgr[r\z systemctl restart pdnsr!r r#r$r'cSr)r*rr+rrrr-zr.z'DNS.createDKIMRecords.<locals>.<lambda>r/r0z.We had errors while creating DKIM record for: rj)-rmrnrMrorprr:r8�
subprocess�check_output�shlexrl�decode�index�rindexrr;rrr0rsr>rqrryrzr{r|r	rrr6rrrr7r9r<rArBrCrrDrErFrH)rMrmr�r�r�r�rLrr��output�	leftIndex�
rightIndexrO�rcrdr�rKr(r7rPrRrrr�createDKIMRecords1s�
�
	
�
	


�� � ������zDNS.createDKIMRecordscCsztjj|d�WSYdS)Nr1r)rr:r8)�virtualHostNamerrr�
getZoneObject�szDNS.getZoneObjectc	
Cs�z3|�d�dkr|�dd�}|�dd�}|dkr!|||||d�}n||||d�}|jjj||d	�WdStyP}ztj�t	|�d
�WYd}~dSd}~ww)N�DKIMrhz
	��"r)r%r=r>r@�priority)r%r=r>r�r5z. [createDNSRecordCloudFlare])
rx�replacer7�dns_recordsrGrHrCrrDrE)	rKrLr%r=�valuer�r@�
dns_recordrRrrrr<�s"��zDNS.createDNSRecordCloudFlarecCs��z>tjj|||d���dkrWdS|jdkrEz)tjj|dd�D]}|j�d�}tt|d�d�|d<d�	|�|_|�
�q WnY|d	kr�tjj|||d���dkr�t||j|||||ddd
�	}|�
�t�
�tjksvt�
�tjkr�d}	t�|	�}
|
�d�d
kr�d}	t�|	�WdS|dkr�tjj|||d���dkr�t||j|||||ddd
�	}|�
�t�
�tjks�t�
�tjkr�d}	t�|	�}
|
�d�d
kr�d}	t�|	�WdS|dk�r%tjj|||d���dk�r"t||j|||||ddd
�	}|�
�t�
�tjk�st�
�tjk�r"d}	t�|	�}
|
�d�d
k�r"d}	t�|	�WdS|dk�rgt||j||||t|�ddd
�	}|�
�t�
�tjk�sNt�
�tjk�rdd}	t�|	�}
|
�d�d
k�rdd}	t�|	�WdStjj||d���dk�r�t||j|||||ddd
�	}|�
�t�
�tjk�s�t�
�tjk�r�d}	t�|	�}
|
�d�d
k�r�d}	t�|	�z�t�}|j|_|��tj|j|jd�}|jdk�r)z*|jdd�}
|jj|
d�}t|dd�d�D]}|d}t�|||||||��q�Wn;tjj �y}zt!j"�#t|��WYd}~n'd}~wt$�y(}zt!j"�#t|��WYd}~nd}~wwWWdSWWdSWWdSWWdSYWdSt%�y]}zt!j"�#t|�d�WYd}~dSd}~ww)N)r%r=r>rrXrb)r]r=� r
rrZr\z?ls -la /etc/systemd/system/multi-user.target.wants/pdns.servicezNo such filerhrirgre)r%r=r!r r#r$r'cSr)r*rr+rrrr-2r.z%DNS.createDNSRecord.<locals>.<lambda>r/r0z [createDNSRecord])&rr:r;rrr=r>rlrE�int�joinrsr0rryrzr{�outputExecutionerrxr|r	rrr6rrrr%r7r8r9r<rArBrCrrDrFrH)rLr%r=r�r�r@�getSOA�
soaContentrOr��resultr�rKr(r7rPrRrrrrw�s

��	

�	


�	 


�	 

�	 

�����"��zDNS.createDNSRecordcC�*ztjj|d�}|��WdSYdS�Nr1)rr:r8�delete)r��delZonerrr�
deleteDNSZoneA�
zDNS.deleteDNSZonecCs*zt||dd�}|��WdSYdS)Nr`rY)rrs)r�rrLrrr�
createDNSZoneJr�zDNS.createDNSZonecCs0ztjj|d�}|��|j��WSYdSr�)rr:r8rs�records_setrt)r�rLrrr�
getDNSRecordsSszDNS.getDNSRecordscCsztj��WSYdS�N)rr:rtrrrr�getDNSZones]szDNS.getDNSZonescCr�)N)r0)rr:r8r�)�recordID�	delRecordrrr�deleteDNSRecorddr�zDNS.deleteDNSRecordc	
Cszbddlm}d}|d�}t�d|���}|�d�dkr`d|�d	�}d
|�d|��}t�|dd�t��tjks?t��tjkrBd
}nd}d|�d�}d
|�d|��}t�|dd�d}t�|�WdSt	y�}zt
j�dt
|����dt
|�fWYd}~Sd}~ww)Nr)�
generate_pass�/root/.acme.sh/account.conf�r��PDNS_UrlrhzH
PDNS_Url='http://localhost:8081'
PDNS_ServerId='localhost'
PDNS_Token='�'
�echo "�" >> Tz/etc/pdns/pdns.confz/etc/powerdns/pdns.confz�
# Turn on the webserver API
webserver=yes
webserver-address=0.0.0.0
webserver-port=8081

# Set the API key for accessing the API
api=yes
api-key=z!

webserver-allow-from=0.0.0.0/0
zsystemctl restart pdnsr3z ConfigurePowerDNSInAcme, Error: )�plogical.randomPasswordr�rr�rxr|ry�centos�cent8rHrCrrDrE)	r�r�APIKey�CurrentContent�PDNSContentr��PDNSPath�PDNSConfrRrrr�ConfigurePowerDNSInAcmems6��
��zDNS.ConfigurePowerDNSInAcmec
Cs�z'd}d|��}t�|�d|�d|�d�}d|�d|��}t�|dd�Wd	StyJ}ztj�d
t|����dt|�fWYd}~Sd}~ww)Nr�z+sed -i '/SAVED_CF_Key/d;/SAVED_CF_Email/d' z
SAVED_CF_Key='z'
SAVED_CF_Email='r�r�r�Tr3z"ConfigureCloudflareInAcme, Error: r)rr|rHrCrrDrE)�SAVED_CF_Key�SAVED_CF_Emailrr��	CFContentrRrrr�ConfigureCloudflareInAcme�s"

����zDNS.ConfigureCloudflareInAcmer�)�__name__�
__module__�__qualname__�nsd_base�zones_base_dir�create_zone_dirrvrrrS�staticmethodr�r�r�r<rwr�r�r�r�r�r�r�rrrrr	sH

=
F
Y





	


2r	)r�sysr�append�django�environ�
setdefault�setup�plogicalrrCr�r��
dns.modelsrr�manageServices.modelsrrr6�plogical.processUtilitiesrr	rrrr�<module>s&