HEX
Server: LiteSpeed
System: Linux cpir1.prohostdns.com 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
User: pelakir (2976)
PHP: 8.2.31
Disabled: exec, shell_exec, system, passthru, proc_open, proc_close, proc_terminate, proc_get_status, popen, pclose, pcntl_exec
Upload Files
File: //usr/lib/python3.6/site-packages/sshuttle/methods/__pycache__/nat.cpython-36.opt-1.pyc
3

7��]��@sXddlZddlmZddlmZddlmZmZmZm	Z	ddl
mZGdd�de�ZdS)�N)�
subnet_weight)�family_to_string)�ipt�ipt_ttl�ipt_chain_exists�nonfatal)�
BaseMethodcs,eZdZdd�Zdd�Z�fdd�Z�ZS)�Methodcs�tjkrtdt����|r&td��d���fdd�}��fdd�}	�fdd	�}
d
|}|j|�||�|d|�|d|�|dk	r�|
d
dddddt|�dddt|��dddt|�d|f}nd|f}|d.|��|d/|��|d|ddddddddd �|d|dddddddd dd!d"�
x�t|td#d$�D]�\}
}}}}}d0}|�rZ|d!d&||ff}|�r�|d|ddd'd(||ff|��n,|	d|dd)d'd(||ff|d*t|�f���q,WxF�fd+d,�|D�D]0\}
}|	d|dd)d'd-|dd d!d"d*t|���q�WdS)1Nz2Address family "%s" unsupported by nat method_namez$UDP not supported by nat method_name�natcst��f|��S)N)r)�args)�family�table��/usr/lib/python3.6/nat.py�_iptsz#Method.setup_firewall.<locals>._iptcst��f|��S)N)r)r)rr
rr�_ipt_ttlsz'Method.setup_firewall.<locals>._ipt_ttlcst�df|��S)N�mangle)r)r)rrr�_ipm!sz#Method.setup_firewall.<locals>._ipmzsshuttle-%sz-Nz-F�-I�OUTPUT�1z-m�ownerz--uid-ownerz-j�MARKz
--set-mark�markz--mark�
PREROUTINGz-AZRETURNZaddrtypez
--dst-typeZLOCAL�!�-p�udpz--dportZ53T)�key�reverse�tcpz%d:%dz--destz%s/%sZREDIRECTz
--to-portscsg|]}|d�kr|�qS)rr)�.0�i)rrr�
<listcomp>Qsz)Method.setup_firewall.<locals>.<listcomp>z%s/32)rrr)rrr)rr )�socket�AF_INET�	Exceptionr�restore_firewall�str�sortedr)�self�portZdnsportZnslistrZsubnetsr�userrrr�chainr�_ZswidthZsexcludeZsnetZfportZlportZ	tcp_portsZipr)rr
r�setup_firewalls^









zMethod.setup_firewallc

s��tjkrtdt����|r&td��d���fdd�}��fdd�}�fdd	�}d
|}t��|�r�|dk	r�t|ddd
ddt|�dddt|��d
ddt|�d|f}	nd|f}	t|ddf|	��t|ddf|	��t|d|�|d|�dS)Nz2Address family "%s" unsupported by nat method_namez$UDP not supported by nat method_namer
cst��f|��S)N)r)r)rr
rrrcsz%Method.restore_firewall.<locals>._iptcst��f|��S)N)r)r)rr
rrrfsz)Method.restore_firewall.<locals>._ipt_ttlcst�df|��S)Nr)r)r)rrrrisz%Method.restore_firewall.<locals>._ipmzsshuttle-%sz-Drz-mrz--uid-ownerz-jrz
--set-markrz--markrz-Fz-X)r$r%r&rrrr()
r*r+rrr,rrrr-rr)rr
rr'Xs*
zMethod.restore_firewallcstt|�j�}d|_|S)NT)�superr	�get_supported_featuresr,)r*�result)�	__class__rrr1{szMethod.get_supported_features)�__name__�
__module__�__qualname__r/r'r1�
__classcell__rr)r3rr	sI#r	)
r$Zsshuttle.firewallrZsshuttle.helpersrZsshuttle.linuxrrrrZsshuttle.methodsrr	rrrr�<module>s