CasperSecurity

Current Path : /usr/lib/python3/dist-packages/fail2ban/tests/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/fail2ban/tests/__pycache__/databasetestcase.cpython-310.pyc

o

;s*b�Y�@s�dZdZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZmZd	d
lmZzddlmZejZWneyRdZYnwd	dlmZmZej�ej�e�d
�Zdd�Z Gdd�de�Z!dS)z"Copyright (c) 2013 Steven Hiscocks�GPL�N�)�
FileContainer)�MyTime)�
FailTicket)�Actions�Utils�)�	DummyJail)�database)�LogCaptureTestCase�logSys�filescCstjjrtd�St|�S)N�:memory:)�unittest�F2B�	memory_db�
Fail2BanDb)�filename�r�A/usr/lib/python3/dist-packages/fail2ban/tests/databasetestcase.py�
getFail2BanDb0srcs�eZdZ�fdd�Zedd��Zejdd��Z�fdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Z�ZS)4�DatabaseTestcsJtt|���tdurt�d��d|_tjjs t	�
dd�\}|_d|_dS)zCall before every test case.NzEUnable to import fail2ban database module as sqlite is not available.�.db�	fail2ban_�:auto-create-in-memory:)�superr�setUprr�SkipTest�
dbFilenamerr�tempfile�mkstemp�_db)�self�_��	__class__rrr8s�
zDatabaseTest.setUpcCs(t|jt�r|jdkrt|j�|_|jS)Nr)�
isinstancer"�strrr�r#rrr�dbDszDatabaseTest.dbcCs t|jt�r|j��||_dS�N)r'r"r�close)r#�valuerrrr*Is

cs8tt|���tdur
dS|jdurt�|j�dSdS)zCall after every test case.N)rr�tearDownrr�os�remover)r%rrr.Os
�zDatabaseTest.tearDowncCs,|jjdkrt�d��|�|j|jj�dS)Nr�in :memory: database)r*rrr�assertEqualrr)rrr�testGetFilenameXs
zDatabaseTest.testGetFilenamecCsD|�|jjd�d|j_|�|jjd�d|j_|�|jjd�dS)Ni�Q�1y6mon15d5h30mi�_�z2y 12mon 30d 10h 60miP��)r2r*�purgeager)rrr�testPurgeAge]s
zDatabaseTest.testPurgeAgecCs|�tjtd�dS)Nz/this/path/should/not/exist)�assertRaises�sqlite3�OperationalErrorrr)rrr�testCreateInvalidPathds
�z"DatabaseTest.testCreateInvalidPathcCsH|jjdkrt�d��|��t|j�|_|�|jj	|j�
�vd�dS)Nrr1z3Jail not retained in Db after disconnect reconnect.)r*rrr�testAddJailrr�
assertTrue�jail�name�getJailNamesr)rrr�testCreateAndReconnectjs
�z#DatabaseTest.testCreateAndReconnectc
Csvt�d�s
t�d��d|_|jdurt�dd�\}|_dD]�}|�d|�t	�
tj�
td�|j�t�|jtj�}t�||�t�|�z_t|j�|_|dkrq|jd	d
ddd
�|�|j��tdg��|�t|j���d�n|jdd
ddd
�|�t|j���d�|�t|j���d�W|jr�|jjdkr�t�|jj�d|_q|jr�|jjdkr�t�|jj�d|_wdS)Nzsqlite3 --versionzno sqlite3 commandrr)�6i�z)[test-repair], next phase - file-size: %d�database_v1.dbrAzRepair seems to be successfulzCheck integrityzDatabase updatedT)�all�/tmp/Fail2BanDb_pUlZJh.logr	zRepair seems to be failedzNew database created.rr)r�
executeCmdrrr*rr r!�pruneLog�shutil�copyfiler/�path�join�TEST_FILES_DIR�open�O_RDWR�	ftruncater,r�assertLoggedr2�getLogPaths�set�lenr?�_dbFilenamer0�_dbBackupFilename)r#r$�	truncSize�frrr�testRepairDbusF


�
������zDatabaseTest.testRepairDbc	CsTd|_z�|jdurt�dd�\}|_t�tj�t	d�|j�t
|j�|_|�|j��t
dg��|�|j��t
dg��tdddg�}|�|j��d	|�|�|j�t
j�t
j�|�t|jjt
jd
�|jjddd
�}|�t|�d
�|�|d	��d�W|jr�|jjdkr�t�|jj�dSdSdS|jr�|jjdkr�t�|jj�www)NrrrBz"DummyJail #29162448 with 0 ticketsrD�	127.0.0.1gף��ծ�A�abc
rr	iW�Ri@�)�fromtime�correctBanTimer)r*rr r!rGrHr/rIrJrKrr2r?rQrPr�getBans�updateDb�__version__r7�NotImplementedError�getCurrentBansrR�
getBanTimerSr0rT)r#r$�ticket�ticketsrrr�testUpdateDb�s,
���zDatabaseTest.testUpdateDbcCsRd|_|jdurt�dd�\}|_t�tj�t	d�|j�t
|j�|_|�|j��t
dg��|�|j��t
dg��|j��}|�t|�d�tddgd	��}|�d
�|�|d|�|�|d��d
�|�|j�t
j�t
j�tdd�|_|jj|jdd�}|�t|�d�|�|d��d�|�t|jjt
jd�t�|jj�dS)Nrrzdatabase_v2.dbzpam-genericz/var/log/auth.logrz1.2.3.7if�~T)z�Dec  3 09:31:08 f2btest test:auth[27658]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7z�Dec  3 09:31:32 f2btest test:auth[27671]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7z�Dec  3 09:31:34 f2btest test:auth[27673]: pam_unix(test:auth): authentication failure; logname= uid=0 euid=0 tty=test ruser= rhost=1.2.3.7�rr	z1.2.3.8�r>)r=rZiX)r*rr r!rGrHr/rIrJrKrr2r?rQrPr\rRr�
setAttempt�getIPr]r^r
r=r`rar7r_r0rT)r#r$�bansrbrcrrr�
testUpdateDb2�s,
�

zDatabaseTest.testUpdateDb2cCs6t�|_|j�|j�|�|jj|j�d�vd�dS)NTzJail not added to database)r
r=r*�addJailr<r>r?r)rrrr;�s�zDatabaseTest.testAddJailcCsZ|��t�dd�\}}t|d�|_|j�|j|j�|�||j�	|j��t
�|�dS)Nz.log�Fail2BanDb_�utf-8)r;r r!r�
fileContainerr*�addLogr=�assertInrPr/r0)r#r$rrrr�
testAddLog�szDatabaseTest.testAddLogcCs|��|j��}t|d�}|�d�|��|j��|j��|j��|j��}|�|dk�|j	�
|j|j�t|d�|_|�
|j��d�|�
|j	�|j|j�|�t|d�}|�d�|��t|d�|_|�
|j��d�|�
|j	�|j|j�d�t�|�dS)N�wz,Some text to write which will change md5sum
rrmz%Some different text to change md5sum
)rqrn�getFileNamerL�writer,�readline�getPosr<r*�	updateLogr=rr2ror/r0)r#r�file_�lastPosrrr�
testUpdateLog�s2






�

�zDatabaseTest.testUpdateLogc	Csb|��|�|j�|jd�d�dD]}|j�|jd|dt|��|�|j�|jd�|�qdS)Nzsystemd-journal)i/hYi/hYi/hY�TEST)r;r2r*�
getJournalPosr=�
updateJournalr()r#�trrr�testUpdateJournal	s�zDatabaseTest.testUpdateJournalcCs^|��tdddg�}|j�|j|�|jj|jd�}|�t|�d�|�t	|dt��dS)NrXrrY�r=r	)
r;rr*�addBanr=r\r2rRr<r')r#rbrcrrr�
testAddBans�zDatabaseTest.testAddBancCs�|��tddgd��tddgd��tddgd��tddgd��td	dd
dg�tddd
dg�td
dd
dg�g}|D]
}|j�|j|�q9|�d�|jj|jd�}|�d�|�t|�d�t	|�D]4\}}t
�d|||���t
�d||���|�||�
�|�
��|�t||���t|����qb|�d�tj}z/dt_|D]
}|j�|j|�q�|�d�|jj|jd�}|�d�|�t|�d�W|t_n|t_w|�d�|j�|jtd��|jj|jd�}|�t|�d�|�dd�dS)NrXr)�user "test"�user "Ñâåòà"uuser "äöüß"�	127.0.0.2z	127.0.0.3)r�suser "�����"suser "äöüß"z	127.0.0.4)r�r�uuser "äöüß"z	127.0.0.5r�uunterminated Ïz	127.0.0.6z	127.0.0.7sunterminated �zjson dumps failedr�zjson loads failed�zreadtickets[%d]: %rz == tickets[%d]: %rz[test-phase 2] simulate errorszf2b-test::non-existing-encoding�z[test-phase 3] still operable?z	127.0.0.8�)r;rr*r�r=�assertNotLoggedr\r2rR�	enumerate�	DefLogSys�debug�getDatarh�
getMatchesrFr�
PREFER_ENCrO)r#rcrb�readtickets�i�priorEncrrr�testAddBanInvalidEncodedsH�	

"



z%DatabaseTest.testAddBanInvalidEncodedcCsX|��dD]}td|ddg�}|j�|j|�q|jj|jd�}|�t|�d�|S)N)r	rrez
192.0.2.%drztest
r�re)r;rr*r�r=r\r2rR)r#r�rbrcrrr�
_testAdd3BansXszDatabaseTest._testAdd3BanscCs~|��}|j�|j|d���|�t|jj|jd��d�|j�|j|d��|d���|�t|jj|jd��d�dS)Nrr�rr	)r�r*�delBanr=rhr2rRr\)r#rcrrr�
testDelBanas
" zDatabaseTest.testDelBancCs6|��|j�|j�|�t|jj|jd��d�dS)Nr�r)r�r*r�r=r2rRr\r)rrr�
testFlushBansjs zDatabaseTest.testFlushBanscCs�|��|j�|jtdt��ddg��|j�|jtdt��ddg��|�t|jj	|jdd��d�|�t|jj	|jdd��d	�|�t|jj	|jd
d��d�dS)NrX�<rY�(�2)r=�bantimer	�r���r)
r;r*r�r=rr�timer2rRr\r)rrr�testGetBansWithTimeps��"z DatabaseTest.testGetBansWithTimecCs|��d}dgtdg�d�dgtdg�d�dgtddg�d�dgtddg�d�g}d	d
�|D�}d}|D]}|d8}td
t��||d�}|�d�|j�|j|�q5||j_	|j�
d
�}|�|��d
�|�|�
�t|��|�t|���|�|�|��||d��td
t��d|dtddg�id�}|�t|��|j�|j|�|j�
d
�}|�|�
�dt|��|�t|���|�|�|��||d��|jj|jd
t��dd�}|�|du�|�|�
�t|��|�t|���|�|�|��||d��|jj|jd
t��ddd�}|�t|���d�|�|��|dd�|jj|jd
t��ddd�}|�t|���d�|�gd��d|j_	|j�|j|�|jj|jd
t��dd�}|�|du�|�|�
�t|��|�t|���d�dS)NrrY�test)�matches�user�123
�ABC
�rootz1234
cSsg|]}|dd�qS)r�rr)�.0rVrrr�
<listcomp>�sz=DatabaseTest.testGetBansMerged_MaxMatches.<locals>.<listcomp>�P�
rX)�datar	r��d)rZ)rZ�
maxmatchesrer�r)�1�2�3)r;rQrrr�rgr*r�r=�
maxMatches�
getBansMergedr2rh�
getAttemptrRr�r`r<�
setMatches)r#r��failures�matches2findr�rVrbrrr�testGetBansMerged_MaxMatches|sd�
���z)DatabaseTest.testGetBansMerged_MaxMatchescCs�|��tdd�}|j�|�tdt��ddg�}|�d�|j�|j	|�tdt��ddg�}|�d	�|j�|j	|�td
t��d	dg�}|�d�|j�|j	|�tdt��ddg�}|�d�|j�||�|j�
d�}|�|��d�|�|�
�d�|�|��gd
��|jj
d|j	d�}|�|��d�|�|�
�d�|�|��ddg�|�t|�t|jj
d|j	d���td
t��d	dg�}|�d�|j�|j	|�|�t|�t|jj
d|j	d���tdt��ddg�}|�d�|j�|j	|�|�t|�t|jj
d|j	d���|j�
�}|�t|�d�|�ttdd�|D���dd�|D��|jj
|d�}|�t|�d�|jj
dd�}|�t|�d�|jj
dd�}|�t|�d�|jj
dd�}|�t|�d�|jj
dd�}|�t|�d�|jj|j	d�}|�t|�d�|jjddd�}|�|��d�|jj|j	dt��d�}|�t|�d�|jj|j	dt��t�d�d�}|�t|�d�|jj|j	dt��t�d�d�}|�t|�d�|�d�|j�|j	|�|jj|j	dt��t�d�d�}|�t|�d�|�d|j	���|j	j�d�|jj|j	dt��t�d�d�}|�t|�d�|�|d��d�dS)NzDummyJail-2rfrXr�rYr��r�r�r�r��F)rYr�r�r�rcss�|]}|��VqdSr+�rh�r�rbrrr�	<genexpr>�s�z1DatabaseTest.testGetBansMerged.<locals>.<genexpr>cSsg|]}|���qSrr�r�rrrr��sz2DatabaseTest.testGetBansMerged.<locals>.<listcomp>r	�)r�r��rr�)r=�ip)r=�
forbantimerZ�1yearz(ignore ticket (with new max ban-time %r))r;r
r*rkrrr�rgr�r=r�r2rhr�r��id�assertNotEqualrR�assertSortedEqual�listrQr`�str2seconds�
setBanTimerO�
getMaxBanTime�actionsra)r#�jail2rb�	newTicketrcrrr�testGetBansMerged�s�




�
�
�
����
��zDatabaseTest.testGetBansMergedcCs�|��|j|j_|j�|j�t|j�}|�dtj�	t
d�i�td�}|�d�|�
ddg�|j�|�|��|�dd�dS)N�action_checkainfozaction.d/action_checkainfo.pyz1.2.3.4r�r�zban ainfo %s, %s, %s, %s)TTTT)r;r*r=rrkr�addr/rIrJrKrrgr��
putFailTicket�_Actions__checkBanrO)r#r�rbrrr�testActionWithDBs

�
zDatabaseTest.testActionWithDBcCs|��|j�|j�|j��}|�t|�dko|jj|�|jjdd�}|�t|�dko0|jj|�|jjdd�}|�t|�dk�|j�	|j�|j��}|�t|�dkoZ|jj|�|jjdd�}|�t|�dkoo|jj|�|jjdd�}|�t|�dk�dS)Nr	F)�enabledTr)
r;r*�delJailr=r?rprRr>r<rk)r#�jailsrrr�testDelAndAddJail/s

zDatabaseTest.testDelAndAddJailcCs|��|j��|�t|j���d�|j�|j�|j��|�t|j���d�|��|j�|j�|j��|�t|j���d�|�t|jj	|jd��d�|��|j�
|jtdt�
�dg��|j�|j�|j��|�t|j���d�|�t|jj	|jd��d�dS)Nr	rr�rXrY)r;r*�purger2rRr?r�r=r�r\r�rrr�r)rrr�	testPurgeBs&


�
 zDatabaseTest.testPurge)�__name__�
__module__�__qualname__r�propertyr*�setterr.r3r6r:r@rWrdrjr;rqrzrr�r�r�r�r�r�r�r�r�r�r��
__classcell__rrr%rr6s:

	#!'	
<		9ir)"�
__copyright__�__license__r/�sysrr r8rG�
server.filterr�
server.mytimer�
server.ticketr�server.actionsrr�	dummyjailr
�serverrr�ImportError�utilsrr
r�rIrJ�dirname�__file__rKrrrrrr�<module>s.
�
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY