https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/fail2ban/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/fail2ban/tests/__pycache__/actionstestcase.cpython-310.pyc
o

��_�I�@s�dZdZdZddlZddlZddlZddlmZddlm	Z	dd	l
mZdd
lm
Z
mZmZmZej�ej�e�d�ZGdd
�d
e
�ZdS)zDaniel BlackzCopyright (c) 2013 Daniel Black�GPL�N�)�
FailTicket)�Utils�)�	DummyJail)�LogCaptureTestCase�
with_alt_time�with_tmpdir�MyTime�filescs�eZdZ�fdd�Z�fdd�Zifdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Ze
dd��Zdd�Zdd�Ze
edd���Z�ZS)�ExecuteActionscs$tt|���t�|_|jj|_dS)zCall before every test case.N)�superr
�setUpr�_ExecuteActions__jail�actions�_ExecuteActions__actions��self��	__class__��@/usr/lib/python3/dist-packages/fail2ban/tests/actionstestcase.pyr)szExecuteActions.setUpcstt|���dS)N)rr
�tearDownrrrrr/szExecuteActions.tearDowncCs�|j�d�|jd}d|�dd�|_d|�dd�|_d|�dd�|_d	|�d
d�|_d|�dd�|_d
|�dd�|_|S)N�ipz
echo ip start�start�zecho ip ban <ip>�banzecho ip unban <ip>�unbanz
echo ip check�checkz
echo ip flush�flushzecho ip stop�stop)	r�add�get�actionstart�	actionban�actionunban�actioncheck�actionflush�
actionstop)r�o�actrrr�
defaultAction2s
zExecuteActions.defaultActioncCs"|j�d�|�t|jjd�dS)N�test)rr"�assertRaises�
ValueErrorrrrr�testActionsAddDuplicateName=sz*ExecuteActions.testActionsAddDuplicateNamecCs�|j�d�|�|jd�|�d|j�|�d|j�|j�d�|jd=|jd=|�d|j�|�t|j�d�|j�d�|�|j��d�|�	t
|jjd�dS)Nr-znonexistant action�test1r�z	127.0.0.1)rr"�
assertTrue�assertIn�assertNotIn�assertEqual�len�
setBanTime�
getBanTimer.r/�removeBannedIPrrrr�testActionsManipulationAsz&ExecuteActions.testActionsManipulationcCsj|�|j�d�d�|�d�|��|�|j�gd��d�|�d�|�d�|�d�|�d�dS)	N�	192.0.2.1r�
Ban 192.0.2.1)r<z	192.0.2.2z	192.0.2.3r�192.0.2.1 already bannedz
Ban 192.0.2.2z
Ban 192.0.2.3)r6r�addBannedIP�assertLogged�pruneLog�assertNotLoggedrrrr�testAddBannedIPPs



zExecuteActions.testAddBannedIPcCs�|��|j��|jdddd�|j��|j��|�dddd�|�|j��ddd	gfg�|�|j�d
�ddg�dS)N�
stdout: %r�ip startT��waitzip flush�ip stop)zCurrently bannedr)zTotal bannedrzBanned IP list�short)r,rrr@r!�joinr6�statusrrrr�testActionsOutputZs


�
�z ExecuteActions.testActionsOutputc
s��j�dtj�td�ddi���d��j����t	�
�fdd�d���j���j����d	���t
�jjd
di��j�dtj�td�dd
d����t�jjdtj�td�dd
dd����t�jjdtj�td�i�dS)N�Actionzaction.d/action.py�opt1�valuezTestAction initialisedc�
��d�S)NzTestAction action start��
_is_loggedrrrr�<lambda>n�
z4ExecuteActions.testAddActionPython.<locals>.<lambda>�zTestAction action stop�Action3z/does/not/exist.py�Action4�value2)rN�opt2�Action5�value3)rNrY�opt3)rr"�os�pathrJ�TEST_FILES_DIRr@rr3r�wait_forr!r.�IOError�	TypeErrorrrrr�testAddActionPythonfs4�




��

�
�z"ExecuteActions.testAddActionPythonc	s���t�jjdtj�td�i���t�jjdtj�td�i��j�dtj�td�i��j����	t
��fdd�d���j���j����
d�dS)	NrMzaction.d/action_noAction.pyzaction.d/action_nomethod.pyzaction.d/action_errors.pycrP)NzFailed to startrQrrrrrS�rTz7ExecuteActions.testAddPythonActionNOK.<locals>.<lambda>rUzFailed to stop)r.�RuntimeErrorrr"r]r^rJr_rr3rr`r!r@rrrr�testAddPythonActionNOK�s.
��
��
��


z%ExecuteActions.testAddPythonActionNOKcCs�|j�dtj�td�i�|j�dtj�td�i�|j�td��|j�	�|�
d�|�d�|�d�|j��|�
d�|�d	�|�d
�dS)N�action1zaction.d/action_modifyainfo.py�action2z1.2.3.4�Failed to execute banzaction1 ban deleted aInfo IPzaction2 ban deleted aInfo IPzFailed to execute unbanzaction1 unban deleted aInfo IPzaction2 unban deleted aInfo IP)
rr"r]r^rJr_r�
putFailTicketr�_Actions__checkBanrBr@�_Actions__flushBanrrrr�testBanActionsAInfo�s&��






z"ExecuteActions.testBanActionsAInfocCs�d|j_d|j_|j�d�|j��t�d�d}|dkr3d|}|j�t	|d��|d7}|dks|j
dd	d
�t�d�|dkrXd|}|j�t	|d��|d7}|dksC|j
d
d	d
�|j��|j��|�
d�|�
d�dS)NrU��dr�z
192.0.2.%drz / 20,TrF���2z / 50,zUnbanned 30, 0 ticket(s)zUnbanned 50, 0 ticket(s))r�
banPrecedence�
unbanMaxCountr8rr�setTimerrirr@r!rJrB)r�irrrr�testUnbanOnBusyBanBombing�s.

�
�


z(ExecuteActions.testUnbanOnBusyBanBombingcCs�|�ddd��}|jd|d<d|_|j��|�dd�|�|j�d�d	�|�|j�d
�d	�|jdddddd
ddddd�|�	d�|j
d|d<|j�d
�|jddd�|�	d�|j��|jddddddddddddd�	|�	d�|j
|d<|�|j�d
�d	�|jdddddddd�|jdddd�|�	d�|j��|jddddddddd�|jddddddd dd�|�	d!�|j|d<|j�
�|j��|jddddd"ddd�|jd#ddd$dd�dS)%N�	 <family>)rr �; exit 1�actionflush?family=inet6TrDrEr<r�2001:db8::1r=�Ban 2001:db8::1�ip ban 192.0.2.1�ip ban 2001:db8::1��allrG�>[test-phase 1a] simulate inconsistent irreparable env by unban�actioncheck?family=inet6z,Invariant check failed. Unban is impossible.rFz>[test-phase 1b] simulate inconsistent irreparable env by flush�ip flush inet4�ip flush inet6�Failed to flush bans�'No flush occurred, do consistency check�<Invariant check failed. Trying to restore a sane environmentrH�[test-phase 2] consistent env�ip check inet4�r�-[test-phase 3] failed flush in consistent env�ip check inet6�Unable to restore environment�![test-phase end] flush successful�action ip terminated�ERROR�Unban tickets each individualy)r,r(�actionstart_on_demandrrrBr6r?r@rAr'r:rkr!rJ�rr+rrr�testActionsConsistencyCheck�s�
�
�

�

�
�

��



�
�z*ExecuteActions.testActionsConsistencyCheckcCs�|�ddddd��}|jd|d<d|_d|_|j��|�dd�|�|j�d�d	�|�|j�d
�d	�|j	dddd
ddddddddd�|j
d|d<|�d�|j�d
�|j	dddddd�|jdddddd
dd�|�d�|�|j�d
�d	�|j	dddddddddddd�|jdddd
dd�|j
|d<|�|j�d�d	�|j
d|d<|�d�|j�
�|j	ddddd d!dddd"ddd�	|jdddd�|�d#�|j
|d<|�|j�d
�d	�|j	dddddddd�|jdd$dd
dd�|�d%�|j
|d<|j�
�|j	d d!ddddddd�|jdddddd
dddddd�|�d&�|j|d<|j��|j��|j	ddddddd'ddd�|jd(ddd)dd�dS)*Nrw)rrr r!rxryTrDrEr<rrzr=r{�ip start inet4r|�ip start inet6r}r~r�r�r�z
ip stop inet6z
ip stop inet4r�z<[test-phase 1b] simulate inconsistent irreparable env by banr�r�rh�2001:db8::2z>[test-phase 1c] simulate inconsistent irreparable env by flushr�r�r�r�zFailed to flush bans in jailr�r�r�r�r�r�r�)r,r(r��actionrepair_on_unbanrrrBr6r?r@r'rAr:rkr!rJr�rrr�"testActionsConsistencyCheckDiffFam"s�
�
��
��


�
�

��


��
	


�
�z1ExecuteActions.testActionsConsistencyCheckDiffFamcCs�|�dddddd��}|d|d<d	|_d
|_d|_|�d�|�|j�d
dg�d�|jddddddddddd	d�|�d�|�	|d�|�d�|�
d�|��|�	|d�|�d�|�
d�t�t�
�d�|�d�|�|j�gd��d �|jd!d"d#dd$dd%d	d�|�	|d�|�	|d�|j
d&d'dddd(dddd)d*d+d	d�	t�t�
�d�t�|d�t�|d�|�d,�|�|j�d
dg�d�|jd-dd.dd/d0d1dd(dd)d	d�|�d2�|�|j�d3�d �|jd4dd5d	d�|j
d-dd.dd/d0d1dd(dd)d	d�|�d6�|�	|d�|�d7�|�
d8�|��|�	|d�|jd8d9d	d�|�
d7�d:|_d;|_|�|j�td
d<��d<�|jd=d>d	d�dS)?Nz <family>; touch "<FN>"z <family>; test -f "<FN>"z <family>; echo -n "" > "<FN>"z <family>; rm -f "<FN>"z) <family>; echo "<ip> <family>" >> "<FN>")rrr r!rz	/<family>�FNTz%echo ip repair <family>; touch "<FN>"zGecho ip reban <ip> <family>; echo "<ip> <family> -- rebanned" >> "<FN>"z[test-phase 0] initial banr<rzrr=r{rDr�zip ban 192.0.2.1 inet4r�zip ban 2001:db8::1 inet6r�z[test-phase 1] check banz/inet4z192.0.2.1 inet4z2001:db8::1 inet6z/inet6�z#[test-phase 2] check already banned)r<rzr�rr>z2001:db8::1 already bannedzBan 2001:db8::2r�r�zReban 192.0.2.1zReban 2001:db8::1zip reban 192.0.2.1 inet4zip reban 2001:db8::1 inet6z192.0.2.1 inet4 -- repairedz2001:db8::1 inet6 -- repairedz3[test-phase 3a] check reban after sane env repairedr�zip repair inet4zip repair inet6zReban 192.0.2.1, action 'ip'zReban 2001:db8::1, action 'ip'z>[test-phase 3a] check reban by epoch mismatch (without repair)r�zReban 2001:db8::2, action 'ip'zip reban 2001:db8::2 inet6z[test-phase 4] check rebanz192.0.2.1 inet4 -- rebannedz2001:db8::1 inet6 -- rebannedz2001:db8::2 inet6 -- rebannedrzexit 1rzFailed to execute rebanzError banning 192.0.2.1)r,r��actionrepair�actionrebanrAr6rr?r@�dumpFilerBrrt�timer]�remover%�_Actions__reBanr)r�tmpr+rrr�!testActionsRebanBrokenAfterRepair�s��
�





��

�

��



�

�z0ExecuteActions.testActionsRebanBrokenAfterRepair)�__name__�
__module__�__qualname__rrr,r0r;rCrLrcrerlr	rvr�r�r
r��
__classcell__rrrrr
's$

%Kor
)�
__author__�
__copyright__�__license__r�r]�tempfile�
server.ticketr�server.utilsr�	dummyjailr�utilsrr	r
rr^rJ�dirname�__file__r_r
rrrr�<module>s

https://t.me/RX1948 - 2025