%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/fail2ban/tests/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyo

�
��&dc@s�dZdZdZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZmZm
Z
ddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlm Z m!Z!m"Z"ddl#m$Z$m%Z%m&Z&ddl'm(Z(yddlm)Z)Wne*k
rwe+Z)nXej,j-ej,j.e/�d�Z0dZ1e$d�Z2defd��YZ3de fd��YZ4de4fd��YZ5de4fd��YZ6dej7fd ��YZ8d!ej7fd"��YZ9d#efd$��YZ:d%e fd&��YZ;dd'l<m=Z=m>Z>m?Z?d(e fd)��YZ@dS(*s
Cyril Jaquiers Copyright (c) 2004 Cyril JaquiertGPLi����Ni(tRegext	FailRegextRegexException(tactions(tServer(tIPAddr(tJail(t
JailThread(t	BanTicket(tUtilsi(t	DummyJail(tLogCaptureTestCaset
with_alt_timetMyTime(t	getLoggertextractOptionst
PREFER_ENC(tversion(t
filtersystemdtfilestpollingtfail2bant
TestServercBseZd�Zd�ZRS(cOsdS(N((tselftargstkwargs((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pytsetLogLevel<scOsdS(N((RRR((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pytsetLogTarget?s(t__name__t
__module__RR(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR;s	tTransmitterBasecBsMeZd�Zd�Zddded�Zdd�Zd�Zd�Z	RS(	cCsEtt|�j�|jj|_d|_|jj|jt�dS(Nt	TestJail1(	tsuperRtsetUptservert_Server__transmttransmtjailNametaddJailtFAST_BACKEND(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR"Es	cCs$|jj�tt|�j�dS(N(R#tquitR!RttearDown(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR*Ns
ic
s�d||g}d|g}|dk	rJ|jd|�|jd|�n|dkr_|}n�fd�}	|j|	|jj|��|	||f��|s�|j|	|jj|��|	d|f��ndS(Ntsettgetics�rt|�S|S(N(trepr(tx(trepr_(sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pytvasi(N(tNonetinserttassertEqualR%tproceed(
RtcmdtinValuetoutValuetoutCodetjailR/tsetCmdtgetCmdR0((R/sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
setGetTestTs	.cCs�d||g}d|g}|dk	rJ|jd|�|jd|�n|jj|�d}|j|jj|�dd�|j|jj|�d|f�dS(NR+R,ii(R1R2R%R4R3(RR5R6R9R:R;t	initValue((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
setGetTestNOKjs c		Cs�d|}d|}|j|jjd||g�dgf�x�t|�D]�\}}|jjd|||g�}|j|dtt|d�fdtt||d �fdd�|jjd||g�}|j|dtt|d�fdtt||d �fdd�qLWx�t|�D]�\}}|jjd|||g�}|j|dtt|d�fdtt||d�fdd�|jjd||g�}|j|dtt|d�fdtt||d�fdd�q*WdS(	NtaddtdelR,iR+itleveli(R3R%R4t	enumeratetassertSortedEqualtmaptstr(	RR5tvaluesR9tcmdAddtcmdDeltntvaluetret((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pytjailAddDelTestws

%DHDc	CsOd|}d|}|j|jjd||g�dgf�x�t|�D]u\}}|j|jjd|||g�d||d f�|j|jjd||g�d||d f�qLWx�t|�D]u\}}|j|jjd||dg�d||df�|j|jjd||g�d||df�q�WdS(NR?R@R,iR+i(R3R%R4RB(	RR5tinValuest	outValuesR9RGRHRIRJ((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pytjailAddDelRegexTest�s$

%N(N(
RRR"R*R1tFalseR<R>RLRO(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyRCs			
	tTransmittercBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zed��Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%�Z(d&�Z)d'�Z*d(�Z+d)�Z,d*�Z-d+�Z.d,�Z/RS(-cCs#t�|_tt|�j�dS(N(RR#R!RQR"(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR"�scCs|j|jj��dS(N(tassertFalseR#t	isStarted(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestServerIsNotStarted�scCs#|j|jjdg�d�dS(Ntstopi(iN(R3R%R4R1(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestStopServer�scCs#|j|jjdg�d�dS(Ntpingitpong(iRX(R3R%R4(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestPing�scCs,|j|jjdg�dtjf�dS(NRi(R3R%R4R(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestVersion�scCs�tjjs�tj�}|j|jjddg�d	�tj�}||}|jd|komdkndd|�n"|j|jjddg�d
�dS(Ntsleeps0.1ig
ףp=
�?g�������?tmsgsSleep was %g secs0.0001(iN(iN(	tunittesttF2BtfastttimeR3R%R4R1t
assertTrue(Rtt0tt1tdt((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt	testSleep�s"
0cCs,tjjs'tjdd�\}}nd}|jd|�|jj|j�|j	d|�|j	d|�|j	ddd�|jdd�|j	d	d
d�|jd	d�|jj
|jt�|j	d|�|jj|j�|j|j
jddd
g�d�|j|j
jddg�d�|j|j
jdddg�d�|j|j
jddg�d�|j|j
jdd	dg�d�|j|j
jdd	g�d�|jj
|jt�|j|j
jddd
g�d�tjjs(tj|�tj|�ndS(Ns.dbt	fail2ban_s:memory:tdbfiletdbmaxmatchest100idtLIZARDt
dbpurgeaget600iXR+R1iR,t500(iN(iN(iN(iN(iN(iN(iN(R]R^t	memory_dbttempfiletmkstempR>R#tdelJailR&R<R'R(R3R%R4R1tostclosetunlink(RttmpttmpFilename((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestDatabase�sN
cCsd}d}d}|j|jjd|dg�d|f�|j|jjd|g�d|f�|j|jjd|dg�dd�|j|jjd|d	g�d|f�|j|jjd|jdg�dd�|j|jjdd
dg�dd�dS(Nt	TestJail2t	TestJail3t	TestJail4R?Risinvalid backenditautos--all(R3R%R4R&(Rtjail2tjail3tjail4((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestAddJail�s%(#%&cs��j�jjd�jg�d�tjtj��j	tj
�fd�d���j�jjd�jg�d��j�j�jj
�dS(Ntstartics5�jjd�o4t�jjd�jg�t�S(Nitstatus(R#tisAlivet
isinstanceR%R4R&tRuntimeError((R(sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt<lambda>siRU(iN(iN(R3R%R4R&R1R`R[R
tDEFAULT_SLEEP_TIMERatwait_fortassertNotInR#t_Server__jails(R((RsA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestStartStopJail�s
cs�jjdt��j�jjd�jg�d	��j�jjddg�d
�tj	t
j��jt
j
�fd�d���j�jjddg�d��jt
j
�fd�d���j�j�jj��jd�jj�dS(NRxR�ics5�jjd�o4t�jjd�jg�t�S(NiR�(R#R�R�R%R4R&R�((R(sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR�siRUs--allcst�jj�S(N(tlenR#R�((R(sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR�s(iN(iN(iN(R#R'R(R3R%R4R&R1R`R[R
R�RaR�R�R�(R((RsA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestStartStopAllJails
""cCs�|j|jjd|jddg�dtf�|j|jjd|jddg�dtf�|j|jjd|jddg�dd�dS(NR+tidletonitofftCATi(R3R%R4R&tTrueRP(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailIdles

"cCs�|jdddd|j�|jdddd|j�|jdddd|j�|jdd	d
d|j�|jddd|j�dS(
Ntfindtimet120ixR9t60i<t30mis-60i���tDogi(R<R&R>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailFindTime(s
cCs�|jdddd|j�|jdddd|j�|jdddd|j�|jdd	d
d|j�|jddd|j�dS(NtbantimeRliXR9t50i2s-50i���s
15d 5h 30mi�tCat(R<R&R>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailBanTime/s
cCs�|jddd
d|j�|jdddd|j�|jdddd|j�|jddd
d|j�|jdd	d|j�dS(Ntdatepatterns%%%Y%m%d%H%M%Ss%YearMonthDay24hourMinuteSecondR9tEpochs^Epochs{^LN-BEG}EpochtTAI64Ns
%Cat%a%%%g(s%%%Y%m%d%H%M%Ss%YearMonthDay24hourMinuteSecond(NR�(Ns{^LN-BEG}Epoch(NR�(R<R&R1R>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestDatePattern6s
cCs9|jdddd|j�|jddd|j�dS(NtlogtimezonesUTC+0400R9snot-a-time-zone(R<R&R>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestLogTimeZoneBscCs�|jddd|j�|jddd|j�|jddd|j�d}|j|jjd|jd|g�d	�dS(
NtusednstyesR9twarntnotFishR+i(isno(R<R&R3R%R4(RRJ((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailUseDNSFsc	Cs�|jj|j�|j|jjd|jddddg�d�|jddd	td
t�|j|jjd|jddg�d�|jd
d
t�|j|jjd|jdddddg�d�|jddd	td
t�|jddd	td
t�|j�|j|jjd|jdddg�dd�|j|jjd|jdddg�d�|jddd	td
t�dS(NR+tbanips	192.0.2.1s	192.0.2.2iis
Ban 192.0.2.1s
Ban 192.0.2.2talltwaittBadgeris
Ban Badgertunbanips192.0.2.255s192.0.2.254sUnban 192.0.2.1sUnban 192.0.2.2s192.0.2.255 is not banneds192.0.2.254 is not banneds--report-absent(ii(ii(ii(ii(	R#t	startJailR&R3R%R4tassertLoggedR�tpruneLog(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testJailBanIPQs.$	
	#	cs�jj�j��fd�}�jdddd�j�x?dD]7}x.dD]&}�j||d
|g�d�qRWqEW�jdd
dtdt��j||gdD]}d
|^q��d��jddt��jddt��jd�dS(Ncs#�jjd�jd|g|�S(NR+tattempt(R%R4R&(tiptmatches(R(sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR�qstmaxretryt5iR9iis	192.0.2.1s	192.0.2.2stest failure %dis192.0.2.1:2s192.0.2.2:2R�R�iis192.0.2.2:5s
Ban 192.0.2.2s
Ban 192.0.2.1(ii(s	192.0.2.1s	192.0.2.2(ii(iii(ii(R#R�R&R<R3R�R�tassertNotLogged(RR�tiR�((RsA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailAttemptIPns

(0c	sd}�jj|t��jj|�ddd
g�fd�}||dg�||ddddddg�||dd	ddddd
g�||ddddd	dg�||dddd	dg�||dddd	g�||dd	dg�dS(NtTestJailBanListcs�|dk	rN�j�jjd|d|g�d��jd|dt�n|dk	r��j�jjd|d|g�d��jd|dt�n�j�jjd	|dgt|��d|fd
t�t	j
t	j�d�dS(
NR+R�iisBan %sR�R�sUnban %sR,t
nestedOnly(ii(ii(R1R3R%R4R�R�RCtlistRPRtsetTimeR`(R9R�R�RtoutList(R(sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt_getBanListTest�s"R�R�s	127.0.0.1Rs--with-times:127.0.0.1 	2005-08-14 12:00:01 + 600 = 2005-08-14 12:10:01s192.168.0.1s<192.168.0.1 	2005-08-14 12:00:02 + 600 = 2005-08-14 12:10:02s192.168.1.10R�((s--with-time(s--with-time(R#R'R(R�R1(RR9R�((RsA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailBanList�s&	



cCsq|jdddd|j�|jdddd|j�|jdddd|j�|jdd	d|j�dS(
Nt
maxmatchesR�iR9t2is-2i����tDuck(R<R&R>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailMaxMatches�scCsq|jdddd|j�|jdddd|j�|jdddd|j�|jdd	d|j�dS(
NR�R�iR9R�is-2i����R�(R<R&R>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailMaxRetry�scCsn|jdddd|j�|jdddd|j�|jddd|j�|jddd|j�dS(	NtmaxlinesR�iR9R�is-2R�(R<R&R>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailMaxLines�scCsk|jddd|j�|jddd|j�|jddtd|j�|jddd|j�dS(NtlogencodingsUTF-8R9tasciiR{tMonkey(R<R&RR>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailLogEncoding�s

cCs|jdtjjtd�tjjtd�tjjtd�g|j�tjjtd�}|j|jjd|jd|g�d|gf�|j|jjd|jd|g�d|gf�|j|jjd	|jdg�d|gf�|j|jjd|jd
|g�dgf�|j|jjd|jd|dg�d|gf�|j|jjd|jd|dg�d|gf�|j|jjd|jd|d
g�dd�|j|jjd|jd|||g�dd�dS(Ntlogpathstestcase01.logstestcase02.logstestcase03.logstestcase04.logR+t
addlogpathiR,t
dellogpathttailtheadtbadgeri(	RLRrtpathtjointTEST_FILES_DIRR&R3R%R4(RRJ((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailLogPath�sF

				cCsEd}|jjd|jd|g�}|jt|dt��dS(Nsthis_file_shouldn't_existR+R�i(R%R4R&RaR�tIOError(RRJtresult((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailLogPathInvalidFile�s	cCsxtjdd�}|d}tj||�|jjd|jd|g�}|jt|dt	��tj
|�dS(Ntprefixttmp_fail2ban_broken_symlinks.slinkR+R�i(RotmktempRrtsymlinkR%R4R&RaR�R�Rt(RtnametsnameR�((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailLogPathBrokenSymlink�s
	cCs�|jddddg|j�d}|j|jjd|jd|g�d|gf�|j|jjd|jd|g�d|gf�|j|jjd|jdg�d|gf�|j|jjd|jd	|g�dgf�|j|jjd|jd
g�dtf�|j|jjd|jd
tg�dtf�|j|jjd|jd
g�dtf�dS(Ntignoreips	127.0.0.1s192.168.1.1s8.8.8.8R+taddignoreipiR,tdelignoreipt
ignoreself(RLR&R3R%R4R�RP(RRJ((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailIgnoreIPs8



cCs|jddd|j�dS(Nt
ignorecommandsbin/ignore-command <ip>R9(R<R&(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailIgnoreCommand&scCsE|jddddd
gd|j�|jdddd|j�dS(Ntignorecaches%key="<ip>",max-time=1d,max-count=9999s<ip>i'ii<R9ti�i�Q(R<R&R1(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailIgnoreCache)s
	
cCs|jddd|j�dS(Nt	prefregexs^TestR9(R<R&(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailPrefRegex0scCs�|jddddgdtjd�dtjd�dtjd�g|j�|j|jjd	|jd
dg�dd
�|j|jjd	|jd
dg�dd
�dS(Nt	failregexsuser john at <HOST>sAdmin user login from <HOST>s failed attempt from <HOST> againsuser john at %ss<HOST>sAdmin user login from %ssfailed attempt from %s againR+taddfailregexs
No host regexiii�(RORt_resolveHostTagR&R3R%R4(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testJailRegex3s 	
		cCs�|jddddgddtjd�dg|j�|j|jjd|jdd	g�d
d�|j|jjd|jddg�d
d�dS(
Ntignoreregexs	user johnsAdmin user login from <HOST>sDont match me!sAdmin user login from %ss<HOST>R+taddignoreregexsInvalid [regexiii2(RORR�R&R3R%R4(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailIgnoreRegexKs 	
		cCs�|jg}|j|jjdg�ddt|�fddj|�fgf�|jjdt�|j	d�|j|jjdg�ddt|�fddj|�fgf�dS(NR�isNumber of jails	Jail lists, Rx(
R&R3R%R4R�R�R#R'R(tappend(Rtjails((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testStatuscs.
c	Cs_|j|jjd|jg�dddddgfgfdd
dd
gfgfgf�dS(NR�itFiltersCurrently failedsTotal faileds	File listtActionssCurrently bannedsTotal bannedsBanned IP list(sCurrently failedi(sTotal failedi(sCurrently bannedi(sTotal bannedi(R3R%R4R&(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailStatuslsc	Csb|j|jjd|jdg�dddd
dgfgfddddgfgfgf�dS(NR�tbasiciR�sCurrently failedsTotal faileds	File listR�sCurrently bannedsTotal bannedsBanned IP list(sCurrently failedi(sTotal failedi(sCurrently bannedi(sTotal bannedi(R3R%R4R&(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailStatusBasic~s!c	Csb|j|jjd|jdg�dddd
dgfgfddddgfgfgf�dS(NR�tINVALIDiR�sCurrently failedsTotal faileds	File listR�sCurrently bannedsTotal bannedsBanned IP list(sCurrently failedi(sTotal failedi(sCurrently bannedi(sTotal bannedi(R3R%R4R&(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailStatusBasicKwarg�s!cCs�tjj�yddl}ddl}Wntk
rEdg}nXg}|j|jjd|j	dg�ddddd	gfgfd
ddd
gfd|fd|fd|fgfgf�dS(Ni����terrorR�tcymruiR�sCurrently failedsTotal faileds	File listR�sCurrently bannedsTotal bannedsBanned IP listsBanned ASN listsBanned Country listsBanned RIR list(sCurrently failedi(sTotal failedi(sCurrently bannedi(sTotal bannedi(
R]R^tSkipIfNoNetworkt
dns.exceptiontdns.resolvertImportErrorR3R%R4R&(RtdnsRJ((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJailStatusCymru�s(


!			c	Cs�d}dddddg}ddd	d
dg}|j|jjd|jd
|g�d|f�|j|jjd|jdg�dd|�xTt||�D]C\}}|j|jjd|jd|||g�d|f�q�WxQt||�D]@\}}|j|jjd|jd||g�d|f�q�W|j|jjd|jd|ddg�d�|j|jjd|jd|dg�d�|j|jjd|jd|dg�dd�|j|jjd|jd|ddg�d�|j|jjd|jd|dg�d�|j|jjd|jd|g�d�|j|jjd|jddg�dd�dS( NtTestCaseActiontactionstartt
actionstoptactioncheckt	actionbantactionunbansAction StartsAction StopsAction Checks
Action BansAction UnbanR+t	addactioniR,RitactiontKEYtVALUEt
InvalidKeyttimeoutt10i
t	delactions
Doesn't exist(iR(iR(ii
(ii
(iN(R3R%R4R&tzipR1(RRtcmdListtcmdValueListR5RJ((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testAction�sj		
		!						c
Cs,d}yS|jjd|jd|tjjtdd�dg�}|j|d|f�Wngtk
r�d t	j
ko�d!knr�d|dkr�d
dl}|jdt	j
�dS�nX|j|jjd|jd|g�dddg�|j|jjd|jd|dg�d"�|j|jjd|jd|dg�d#�|j|jjd|jd|g�dddddddg�|j|jjd|jd|ddg�d$�|j|jjd|jd|ddg�d%�|j|jjd|jd|ddg�d&�dS('NRR+Rsaction.ds	action.pys{"opt1": "value"}iiiis#__init__() keywords must be stringsii����s�Your version of Python %s seems to experience a known issue forbidding correct operation of Fail2Ban: http://bugs.python.org/issue2646  Upgrade your Python and meanwhile other intestPythonActionMethodsAndProperties will be skippedR,tactionpropertiestopt1topt2RRJt
actionmethodstbantrebanR�RUt
testmethodtunbans{"text": "world!"}sHello world! values
another valuesHello world! another value(ii(iii(isvalue(iN(isHello world! value(is
another value(isHello world! another value(R%R4R&RrR�R�R�R3tAssertionErrortsystversion_infotwarningsR�RRCR1(RRtoutR"((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt$testPythonActionMethodsAndProperties�sX	

		
cCs*|j|jjddg�dd�dS(NR�tCOMMANDii(R3R%R4(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestNOK0scCs-|j|jjdddg�dd�dS(NR+R�R%ii(R3R%R4(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testSetNOK3scCs-|j|jjdddg�dd�dS(NR,R�R%ii(R3R%R4(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testGetNOK7scCs-|j|jjdddg�dd�dS(NR�R�R%ii(R3R%R4(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testStatusNOK;scCs'tstjd��nd}|jj|d�dddg}xft|�D]X\}}|j|jjd|d|g�d	g||d
 D]}|g^q�f�qMWxft|�D]X\}}|j|jjd|d|g�d	g||d
D]}|g^q�f�q�Wd}|j|jjd|d|g�d	|ggf�|j|jjd|d|g�d	|g|ggf�|j|jjd|d|g�d	|ggf�|j|jjd|d|g�d	gf�dd
ddg}|j|jjd|dg|�d	dgddggf�|j|jjd|dg|d
 �d	ddggf�|j|jjd|dg|d�d	gf�d}|jjd|d|g�}|j	t
|d
t��d}|jjd|d|g�}|j	t
|d
t��dS(Ns&systemd python interface not availableRxtsystemds_SYSTEMD_UNIT=sshd.servicesTEST_FIELD1=ABCs_HOSTNAME=example.comR+taddjournalmatchiitdeljournalmatchs
_COMM=sshdt+s_UID=0isThis isn't valid!sFIELD=NotPresent(RR]tSkipTestR#R'RBR3R%R4RaR�t
ValueError(RR&RFRIRJtvalR�((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJournalMatch?sn		/	/				
			
		cCs#tstjd��n|jt�d}|jj|d�dddg}xft|�D]X\}}|j|j	j
d|d|g�d	g||d
 D]}|g^q�f�qZWxft|�D]X\}}|j|j	j
d|d|g�d	g||d
D]}|g^qf�q�WdS(Ns&systemd python interface not availableRyssystemd[journalflags=2]s_SYSTEMD_UNIT=sshd.servicesTEST_FIELD1=ABCs_HOSTNAME=example.comR+R+iiR,(RR]R.RaR�R#R'RBR3R%R4(RR&RFRIRJR0((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestJournalFlagsMatch�s$
		/	(0RRR"RTRVRYRZReRwRR�R�R�R�R�R�R�R�R�R�R
R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRR$R&R'R(R)R1R2(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyRQ�sZ							0											,					*		
	%												<	4					GtTransmitterLoggingcBsPeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(cCsSt�|_tt|�j�|jjd�|jjd�|jjd�dS(Ns	/dev/nulltCRITICALR{(RR#R!R3R"RRtsetSyslogSocket(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR"�s
cCs�g}xHtd�D]:}tjdd�}|j|d�tj|d�qWx|D]}|jd|�qXWd}|jd|�|jj	ddd	g�x|D]}tj
|�q�W|jdd
d�|jddd
�dS(NiRttransmitteriit	logtargets/this/path/should/not/existR+s	/dev/nullsSTDOUT[format="%(message)s"]tSTDOUTs!STDERR[datetime=off, padding=off]tSTDERR(txrangeRoRpR�RrRsR<R>R%R4tremove(Rt
logTargetst_ttmpFilet	logTargetRJ((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testLogTarget�s

cCsjtjjd�s$tjd��n|j|jj�d�|jdd�|j|jj�d�dS(Ns/dev/logs'/dev/log' not presentR{R7tSYSLOG(	RrR�texistsR]R.RaR#tgetSyslogSocketR<(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestLogTargetSYSLOG�s
cCs|jdd�dS(Ntsyslogsockets/dev/log/NEW/PATH(R<(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestSyslogSocket�scCs�|jdd�|jdd�|jdd�|jddiit6tdddtd	�d
t�t6tj�dko�tj	j
d��dS(
NREs/this/path/should/not/existR7RAs/dev/logR8iR7sFailed to change log targetR/tLinux(RG(R<R>R�tdictt	ExceptionRPtplatformtsystemRrR�RB(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestSyslogSocketNOK�s

cCs�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd�|jdd	�|jdd
�|jddd
�|jdd�dS(
Ntloglevelt
HEAVYDEBUGt
TRACEDEBUGt9tDEBUGtINFOtNOTICEtWARNINGtERRORR4tcRiTiCaLtBird(R<R>(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestLogLevel�sc		Cs�|j|jjdg�d�zUtjd�\}}tj|�|jjd�|j|jjdd|g�d|f�t	d�}|j
d	�z�tjd�\}}tj|�tj||�|j
d
�|j|jjdg�d�|j
d�t|d���}|j
�}|jd
�dkrH|j
�}n|j|jd��|j
�}|j|jd��yL|j
�}|jd�dkr�|jt|j
�n|jd|�Wntk
r�nXWdQXt|d��j}|j
�}|jd�dkr(|j
�}n|j|jd��|jt|j
�|j�WdQXWdtj|�XWdytj|�Wntk
r�nXX|j|jjdddg�d�|j|jjdg�d�dS(Nt	flushlogsisrolled oversfail2ban.logRTR+R7RsBefore file movedsAfter file movedsAfter flushlogstrsChanged logging target tosBefore file moved
sAfter file moved
sCommand: ['flushlogs']sCException StopIteration or Command: ['flushlogs'] expected. Got: %ssrollover performed onsAfter flushlogs
R9tflushed(isrolled over(isrolled over(isSTDERR(iR[(R3R%R4RoRpRrRsR#RRtwarningtrenametopentnexttfindRatendswithtassertRaisest
StopIterationtfailR;tOSError(	Rtftfntltf2tfn2tline1tline2RI((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt
testFlushLogs�sV
+






%cCs�|jddtd|j�|jdddd|j�|jdd	dd|j�|jdd
d
d|j�|jddd|j�|jdddd|j�|jdddd|j�dS(Nsbantime.incrementttrueR9sbantime.rndtimet30minii<sbantime.maxtimes	1000 daysi�isbantime.factorR�sbantime.formulasGban.Time * math.exp(float(ban.Count+1)*banFactor)/math.exp(1*banFactor)sbantime.multiplierss1 5 30 60 300 720 1440 2880sbantime.overalljailsii�]i�i\&(R<R�R&(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestBanTimeIncrs(
RRR"R@RDRFRLRXRmRp(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR3�s						
	0t	JailTestscBseZd�ZRS(cCs)d}t|�}|j|j|�dS(Ntveryveryverylongname(RR3R�(RtlongnameR9((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestLongNames(RRRt(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyRqst
RegexTestscBs#eZd�Zd�Zd�ZRS(cCs=|jttd�|jttd�|jttd�dS(NR�t s	(RbRR(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestInit%scCsN|jttd��jdd�d�|jttd��jd��dS(Ntat"t's
Regex('a')s<HOST>s
FailRegex((R3RERtreplaceRaRt
startswith(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestStr+s(cCs;|jttd�|jttd�|jtd��|jtd��|jtd��|jtd��|jtd��|jtd��|jtd	��td
�}|j|j��|jd)g�|j|j��|jt|j�td�}|j|j��|jd*g�|j|j��|jt|j�td�}|j|j��|jd+g�|j|j��|j|j�d�|jd,g�|j|j��|j|j�d�|jd-g�|j|j��|j|j�d�td�}|j|j��|jd.g�|j|j��|j|j	�d�td�}|jd/g�|j
�}|j||jfd0�|jd1g�|j
�}|j||jfd2�|jd3g�|j
�}|j||jfd4�|jd5g�|j
�}|j||jfd6�td!�}|jd7g�|j
�}|j||jfd8�|jd9g�|j
�}|j||jfd:�|jd;g�|j
�}|j||jfd<�|jd=g�|j
�}|j||jfd>�dS(?NR�s^test no group$s^test <HOST> group$s^test <IP4> group$s^test <IP6> group$s^test <DNS> group$s<^test id group: ip:port = <F-ID><IP4>(?::<F-PORT/>)?</F-ID>$s-^test id group: user:\(<F-ID>[^\)]+</F-ID>\)$s#^test id group: anything = <F-ID/>$s	%%<HOST>?s%%s#%%inet(?:=<F-IP4/>|inet6=<F-IP6/>)?s%%inet=tests(%%(?:inet(?:=<IP4>|6=<IP6>)?|dns=<DNS>?)s%%inet=192.0.2.1s	192.0.2.1s%%inet6=2001:DB8::s
2001:DB8::s%%dns=example.comsexample.coms%test id group: user:(test login name)stest login names%%net=<SUBNET>s%%net=192.0.2.1tinet4s%%net=192.0.2.1/24s192.0.2.0/24s%%net=2001:DB8:FF:FF::1s2001:db8:ff:ff::1tinet6s%%net=2001:DB8:FF:FF::1/60s2001:db8:ff:f0::/60s%%ip="<ADDR>", mask="<CIDR>?"s%%ip="192.0.2.2", mask=""s	192.0.2.2s%%ip="192.0.2.2", mask="24"s"%%ip="2001:DB8:2FF:FF::1", mask=""s2001:db8:2ff:ff::1s$%%ip="2001:DB8:2FF:FF::1", mask="60"s2001:db8:2ff:f0::/60(s%%R�R�(s%%inet=testR�R�(s%%inet=192.0.2.1R�R�(s%%inet6=2001:DB8::R�R�(s%%dns=example.comR�R�(s%test id group: user:(test login name)R�R�(s%%net=192.0.2.1R�R�(s	192.0.2.1R~(s%%net=192.0.2.1/24R�R�(s192.0.2.0/24R~(s%%net=2001:DB8:FF:FF::1R�R�(s2001:db8:ff:ff::1R(s%%net=2001:DB8:FF:FF::1/60R�R�(s2001:db8:ff:f0::/60R(s%%ip="192.0.2.2", mask=""R�R�(s	192.0.2.2R~(s%%ip="192.0.2.2", mask="24"R�R�(s192.0.2.0/24R~(s"%%ip="2001:DB8:2FF:FF::1", mask=""R�R�(s2001:db8:2ff:ff::1R(s$%%ip="2001:DB8:2FF:FF::1", mask="60"R�R�(s2001:db8:2ff:f0::/60R(RbRRRaRRt
hasMatchedtsearchtgetHostR3t	getFailIDtgetIPt	familyStr(RtfrR�((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestHost1sz(RRRwR}R�(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyRu#s		t
_BadThreadcBseZd�ZRS(cCstd��dS(Nsrun bad thread exception(R�(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pytrunys(RRR�(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR�xstLoggingTestscBs#eZd�Zd�Zd�ZRS(cCs9td�}|j|jjd�|j|jd�dS(Nsfail2ban.some.string.with.nameRs
fail2ban.name(RR3tparentR�(Rt
testLogSys((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestGetF2BLoggerscs�tj}g��fd�t_zFt�}|j�|j��jtj��fd�d��Wd|t_X�jd��j	t
��d��j	�ddt�dS(Ncs
�j|�S(N(R�(R(R.(sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR��scst��o�jd�S(NsUnhandled exception(R�t
_is_logged((RR.(sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR��sisUnhandled exceptionii(R t__excepthook__R�R�R�RaR
R�R�R3R�R�(Rtprev_exchookt	badThread((RR.sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestFail2BanExceptHook�s		

)

cCs�g}tjdd�\}}tj|�|j|�tjdd�\}}tj|�|j|�t�}z:|j||dt�|j|j	��|j
d�Wd|j�x0|D](}tjj
|�r�tj|�q�q�WXdS(Ns
fail2ban.socksf2b-testsfail2ban.pidtforcesServer already running(RoRpRrRsR�RR�RPRRRSR�R)R�RBR;(Rt	tmp_filestsock_fdt	sock_namet
pidfile_fdtpidfile_nameR#Rf((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestStartFailedSockExists�s 



	

(RRR�R�R�(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR�}s		(tActionReadertJailsReadert
CONFIG_DIRtServerConfigReaderTestscBszeZd�Zd�Zd�Zdd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zdd�Zd�Z
RS(
cOs&tt|�j||�i|_dS(N(R!R�t__init__t#_ServerConfigReaderTests__share_cfg(RRR((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR��scCs tt|�j�g|_dS(N(R!R�R"t_execCmdLst(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR"�scCstt|�j�dS(N(R!R�R*(R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR*�si<cCsMxF|jd�D]5}|jd�s8tjd|�qtj|�qWtS(Ns
t#sexec-cmd: `%s`(tsplitR|tlogSystdebugR�(RtrealCmdRRh((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt_executeCmd�s
cCs}t|d�svt�}i|_xRddfD]A\}}t|�}|jd�tjj||�|j|<q.Wn|jS(	Nt__aInfostipv4s	192.0.2.1tipv6s
2001:DB8::iX(sipv4s	192.0.2.1(sipv6s
2001:DB8::(thasattrRt _ServerConfigReaderTests__aInfosR	t
setBanTimet_actionsR�t
ActionInfo(RtdmyjailttR�tticket((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt_testActionInfos�s		
#cCs�|j}|j�}x�|D]z}xq||jD]b}||j|}tjddd�tjd|d|j�tjddd�t|tj�s�q0n|j	|_
tjd�|j�|j�tjd�|j�|j
|d�tjd	�|j�|j|d�tjd
�|j�|j
|d�tjd�|j�|j|d�tjd
�|j�|j�q0WqWdS(Ns# t=i2s
# == %-44s ==s - s# === start ===s# === ban-ipv4 ===R�s# === unban ipv4 ===s# === ban ipv6 ===R�s# === unban ipv6 ===s# === stop ===(R�R�RR�R�t_nameR�R�t
CommandActionR�t
executeCmdR�R�RRRU(RR#R�taInfosR9RxR((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt_testExecActions�s:	













c	Cs�tjjdt�tdtdtd|j�}|j|j��|j|j	��|j
dt�}t�}|j}|j
}xS|D]K}|ddkr�|ddkr�d	|d
<n�t|�dkrC|ddkrC|d
d
krCtjjtd|d�}tjj|�s6tjjtd�}n||d<nUtjjr�t|�dkr�|ddkr�|d
dkr�d|d<d|d<ny||�Wq�tk
r�}|jd||f�q�Xq�q�Wtjjs�|j|�ndS(Ntstocktbasedirtforce_enabletshare_configtallow_no_filesiR�R?RiiR+R�tlogsistestcase01.logs	multi-setR�sDUMMY-REGEX <HOST>s"Command %r has failed. Received %r(ssets	multi-set(R]R^tSkipIfCfgMissingR�R�R�R�Ratreadt
getOptionstconvertRR$t_Transmitter__commandHandlerR�RrR�R�R�RBR_RIRdR�(	RR�tstreamR#R%t
cmdHandlerR5Rgte((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestCheckStockJailActions�s6			

2
2

"cCs�|jd|�}t|�\}}d|dgg}t|||d|jdt�}|j|j��|ji�|j|j	��|S(Ns%(__name__)sR?RR�R�(
R{RR�R�R�RaR�R�textendR�(RR9tacttactNametactOptR�R((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pytgetDefaultJailStreams
c
Cs�tjjdt�tjj�ddl}t�}|j}x�|jtj	j
tdd��D]}}tj	j|�j
dd�}|jd||�}x3|D]+}|j|�\}}	|j|d�q�W|j|�q`WdS(	NR�i����saction.ds*.confs.confR�sj-i(R]R^R�R�t
SkipIfFasttglobRR$RrR�R�R�tbasenameR{R�R4R3R�(
RR�R#R%tactCfgR�R�R5RKtres((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestCheckStockAllActions.s
		(
cCs0tjjdt�ddi
dkd6dld6dmd6dnd6dod6dpd6dqd6drd!6dsd#6dtd%6dud'6dvd)6dwd+6fd,d-i
dxd6dyd6dzd6d{d6d|d6d}d6d~d6dd!6d�d#6d�d%6d�d'6d�d)6d�d+6fd>d?i	d�d6d�d6d�dD6d�d6d�d6d�d%6d�d'6d�d)6d�d+6fdKdLid�d6d�d6d�d%6d�d'6d�d)6d�d+6fdQdRid�d6d�d6d�d6d�d6d�d6d�d6d�d!6d�d#6d�d%6d�d'6d�d)6d�d+6fdidjid�d6d�d6d�d6d�d6d�d6d�d6d�d!6d�d#6d�d%6d�d'6d�d)6d�d+6fd}d~i
d�d6d�d6d�d6d�d6d�d6d�d6d�d%6d�d'6d�d)6d�d+6fd�d�i
d�d6d�d6d�d6d�d6d�d6d�d6d�d%6d�d'6d�d)6d�d+6fd�d�id�d6d�d6d�d6d�d6d�d6d�d6d�d!6d�d#6d�d%6d�d'6d�d)6d�d+6fd�d�id�d6d�d6d�d6d�d6d�d6d�d6d�d!6d�d#6d�d%6d�d'6d�d)6d�d+6fd�d�id�d6d�d6d�d6d�d6d�d6d�d!6d�d#6d�d%6d�d'6d�d)6d�d+6fd�d�id�d6d�d6d�dD6d�d6d�d6d�d!6d�d#6d�d%6d�d'6d�d)6d�d+6fd�d�id�d6d�d6d�dD6d�d6d�d6d�d!6d�d#6d�d%6d�d'6d�d)6d�d+6fd�d�id�d6d�d6d�d6d�d6d�d6d�d6d�d!6dd#6dd%6dd'6dd)6dd+6fd�didd6dd6dd6dd6d	d6d
d!6dd#6dd%6d
d'6dd)6dd+6fddidd6dd6dd6dd6dd6dd!6dd#6dd%6dd'6dd)6dd+6fd)d*i
dd6dd6dd6dd6dd6d d6d!d%6d"d'6d#d)6d$d+6fd;d<i
d%d6d&d6d'd6d(d6d)d6d*d6d+d%6d,d'6d-d)6d.d+6fdMdNid/d6d0d6d1d%6d2d'6d3d)6d4d+6fdUdVid5d6d6d6d7d%6d8d'6d9d)6d:d+6ff}t�}|j}|j}x_|D]W\}}}|j||�}x3|D]+}	|j|	�\}
}|j	|
d[�qWq�W|j
}|j�}
x�|D]�\}}}x�||jD]�}||j|}t
jd\d]d^�t
jd_|d`|j�t
jd\d]d^�|jt|tj��|j|_|jda�|j�|jdD�r0|jdbt|dD�n@|jd�rp|jd�rp|jdbt|d|d�n|jdc�|j|
dd�|jd�r�|jdbt|jdd;�|d�n|jd�r�|jdbt|d�n|jdbt|jd!d<�|d%�|jdbt|d�|jde�|j|
dd�|jdbt|jd!d=�|d'�|jdbt|d�|jdf�|j|
dg�|jd�r�	|jdbt|jdd>�|d�n|jd�r

|jdbt|d�n|jdbt|jd#d?�|d)�|jdbt|d�|jdh�|j|
dg�|jdbt|jd#d@�|d+�|jdbt|d�|jd�r�
|jdi�|j�|jdbt|d�n|jdj�|j�|jd�ro|jdbt|d�qoqoWqRWdS(ANR�s
j-w-nft-mpsQnftables-multiport[name=%(__name__)s, port="http,https", protocol="tcp,udp,sctp"]sip t	ipv4_addrsaddr-tip4sip6 t	ipv6_addrsaddr6-tip6s`nft add table inet f2b-table`sW`nft -- add chain inet f2b-table f2b-chain \{ type filter hook input priority -1 \; \}`s9`for proto in $(echo 'tcp,udp,sctp' | sed 's/,/ /g'); do`s`done`s*-startsG`nft add set inet f2b-table addr-set-j-w-nft-mp \{ type ipv4_addr\; \}`s�`nft add rule inet f2b-table f2b-chain $proto dport \{ $(echo 'http,https' | sed s/:/-/g) \} ip saddr @addr-set-j-w-nft-mp reject`s	ip4-startsH`nft add set inet f2b-table addr6-set-j-w-nft-mp \{ type ipv6_addr\; \}`s�`nft add rule inet f2b-table f2b-chain $proto dport \{ $(echo 'http,https' | sed s/:/-/g) \} ip6 saddr @addr6-set-j-w-nft-mp reject`s	ip6-startsG`{ nft flush set inet f2b-table addr-set-j-w-nft-mp 2> /dev/null; } || sH`{ nft flush set inet f2b-table addr6-set-j-w-nft-mp 2> /dev/null; } || tflushs�`{ nft -a list chain inet f2b-table f2b-chain | grep -oP '@addr-set-j-w-nft-mp\s+.*\s+\Khandle\s+(\d+)$'; } | while read -r hdl; do`s5`nft delete rule inet f2b-table f2b-chain $hdl; done`s3`nft delete set inet f2b-table addr-set-j-w-nft-mp`s�`{ nft -a list chain inet f2b-table f2b-chain | grep -oP '@addr6-set-j-w-nft-mp\s+.*\s+\Khandle\s+(\d+)$'; } | while read -r hdl; do`s4`nft delete set inet f2b-table addr6-set-j-w-nft-mp`RUsO`nft list chain inet f2b-table f2b-chain | grep -q '@addr-set-j-w-nft-mp[ \t]'`s	ip4-checksP`nft list chain inet f2b-table f2b-chain | grep -q '@addr6-set-j-w-nft-mp[ \t]'`s	ip6-checksD`nft add element inet f2b-table addr-set-j-w-nft-mp \{ 192.0.2.1 \}`sip4-bansG`nft delete element inet f2b-table addr-set-j-w-nft-mp \{ 192.0.2.1 \}`s	ip4-unbansF`nft add element inet f2b-table addr6-set-j-w-nft-mp \{ 2001:db8:: \}`sip6-bansI`nft delete element inet f2b-table addr6-set-j-w-nft-mp \{ 2001:db8:: \}`s	ip6-unbans
j-w-nft-aps8nftables-allports[name=%(__name__)s, protocol="tcp,udp"]sG`nft add set inet f2b-table addr-set-j-w-nft-ap \{ type ipv4_addr\; \}`sg`nft add rule inet f2b-table f2b-chain meta l4proto \{ tcp,udp \} ip saddr @addr-set-j-w-nft-ap reject`sH`nft add set inet f2b-table addr6-set-j-w-nft-ap \{ type ipv6_addr\; \}`si`nft add rule inet f2b-table f2b-chain meta l4proto \{ tcp,udp \} ip6 saddr @addr6-set-j-w-nft-ap reject`sG`{ nft flush set inet f2b-table addr-set-j-w-nft-ap 2> /dev/null; } || sH`{ nft flush set inet f2b-table addr6-set-j-w-nft-ap 2> /dev/null; } || s�`{ nft -a list chain inet f2b-table f2b-chain | grep -oP '@addr-set-j-w-nft-ap\s+.*\s+\Khandle\s+(\d+)$'; } | while read -r hdl; do`s3`nft delete set inet f2b-table addr-set-j-w-nft-ap`s�`{ nft -a list chain inet f2b-table f2b-chain | grep -oP '@addr6-set-j-w-nft-ap\s+.*\s+\Khandle\s+(\d+)$'; } | while read -r hdl; do`s4`nft delete set inet f2b-table addr6-set-j-w-nft-ap`sO`nft list chain inet f2b-table f2b-chain | grep -q '@addr-set-j-w-nft-ap[ \t]'`sP`nft list chain inet f2b-table f2b-chain | grep -q '@addr6-set-j-w-nft-ap[ \t]'`sD`nft add element inet f2b-table addr-set-j-w-nft-ap \{ 192.0.2.1 \}`sG`nft delete element inet f2b-table addr-set-j-w-nft-ap \{ 192.0.2.1 \}`sF`nft add element inet f2b-table addr6-set-j-w-nft-ap \{ 2001:db8:: \}`sI`nft delete element inet f2b-table addr6-set-j-w-nft-ap \{ 2001:db8:: \}`sj-dummysodummy[name=%(__name__)s, init="=='<family>/<ip>'==bt:<bantime>==bc:<bancount>==", target="/tmp/fail2ban.dummy"]s
family: inet4s
family: inet6s$`printf %b "=='/'==bt:600==bc:0==\n"s7`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- started"`R�s9`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- clear all"`s7`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- stopped"`sP`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- banned 192.0.2.1 (family: inet4)"`sR`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- unbanned 192.0.2.1 (family: inet4)"`sQ`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- banned 2001:db8:: (family: inet6)"`sS`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- unbanned 2001:db8:: (family: inet6)"`sj-hostsdenysPhostsdeny[name=%(__name__)s, actionstop="rm <file>", file="/tmp/fail2ban.dummy"]s5`printf %b "ALL: 192.0.2.1\n" >> /tmp/fail2ban.dummy`s^`IP=$(echo "192.0.2.1" | sed 's/[][\.]/\\\0/g') && sed -i "/^ALL: $IP$/d" /tmp/fail2ban.dummy`s8`printf %b "ALL: [2001:db8::]\n" >> /tmp/fail2ban.dummy`sa`IP=$(echo "[2001:db8::]" | sed 's/[][\.]/\\\0/g') && sed -i "/^ALL: $IP$/d" /tmp/fail2ban.dummy`sj-w-iptables-mpsniptables-multiport[name=%(__name__)s, bantime="10m", port="http,https", protocol="tcp", chain="<known/chain>"]s
`iptables sicmp-port-unreachables`ip6tables sicmp6-port-unreachables$`iptables -w -N f2b-j-w-iptables-mp`s.`iptables -w -A f2b-j-w-iptables-mp -j RETURN`sU`iptables -w -I INPUT -p tcp -m multiport --dports http,https -j f2b-j-w-iptables-mp`s%`ip6tables -w -N f2b-j-w-iptables-mp`s/`ip6tables -w -A f2b-j-w-iptables-mp -j RETURN`sV`ip6tables -w -I INPUT -p tcp -m multiport --dports http,https -j f2b-j-w-iptables-mp`s$`iptables -w -F f2b-j-w-iptables-mp`s%`ip6tables -w -F f2b-j-w-iptables-mp`sU`iptables -w -D INPUT -p tcp -m multiport --dports http,https -j f2b-j-w-iptables-mp`s$`iptables -w -X f2b-j-w-iptables-mp`sV`ip6tables -w -D INPUT -p tcp -m multiport --dports http,https -j f2b-j-w-iptables-mp`s%`ip6tables -w -X f2b-j-w-iptables-mp`s>`iptables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-mp[ \t]'`s?`ip6tables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-mp[ \t]'`sa`iptables -w -I f2b-j-w-iptables-mp 1 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`s_`iptables -w -D f2b-j-w-iptables-mp -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`sd`ip6tables -w -I f2b-j-w-iptables-mp 1 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sb`ip6tables -w -D f2b-j-w-iptables-mp -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sj-w-iptables-apsZiptables-allports[name=%(__name__)s, bantime="10m", protocol="tcp", chain="<known/chain>"]s$`iptables -w -N f2b-j-w-iptables-ap`s.`iptables -w -A f2b-j-w-iptables-ap -j RETURN`s4`iptables -w -I INPUT -p tcp -j f2b-j-w-iptables-ap`s%`ip6tables -w -N f2b-j-w-iptables-ap`s/`ip6tables -w -A f2b-j-w-iptables-ap -j RETURN`s5`ip6tables -w -I INPUT -p tcp -j f2b-j-w-iptables-ap`s$`iptables -w -F f2b-j-w-iptables-ap`s%`ip6tables -w -F f2b-j-w-iptables-ap`s4`iptables -w -D INPUT -p tcp -j f2b-j-w-iptables-ap`s$`iptables -w -X f2b-j-w-iptables-ap`s5`ip6tables -w -D INPUT -p tcp -j f2b-j-w-iptables-ap`s%`ip6tables -w -X f2b-j-w-iptables-ap`s>`iptables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-ap[ \t]'`s?`ip6tables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-ap[ \t]'`sa`iptables -w -I f2b-j-w-iptables-ap 1 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`s_`iptables -w -D f2b-j-w-iptables-ap -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`sd`ip6tables -w -I f2b-j-w-iptables-ap 1 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sb`ip6tables -w -D f2b-j-w-iptables-ap -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sj-w-iptables-ipsets\iptables-ipset-proto6[name=%(__name__)s, port="http", protocol="tcp", chain="<known/chain>"]s f2b-j-w-iptables-ipset s f2b-j-w-iptables-ipset6 s8`ipset create f2b-j-w-iptables-ipset hash:ip timeout 0 `s�`iptables -w -I INPUT -p tcp -m multiport --dports http -m set --match-set f2b-j-w-iptables-ipset src -j REJECT --reject-with icmp-port-unreachable`sE`ipset create f2b-j-w-iptables-ipset6 hash:ip timeout 0 family inet6`s�`ip6tables -w -I INPUT -p tcp -m multiport --dports http -m set --match-set f2b-j-w-iptables-ipset6 src -j REJECT --reject-with icmp6-port-unreachable`s$`ipset flush f2b-j-w-iptables-ipset`s%`ipset flush f2b-j-w-iptables-ipset6`s�`iptables -w -D INPUT -p tcp -m multiport --dports http -m set --match-set f2b-j-w-iptables-ipset src -j REJECT --reject-with icmp-port-unreachable`s&`ipset destroy f2b-j-w-iptables-ipset`s�`ip6tables -w -D INPUT -p tcp -m multiport --dports http -m set --match-set f2b-j-w-iptables-ipset6 src -j REJECT --reject-with icmp6-port-unreachable`s'`ipset destroy f2b-j-w-iptables-ipset6`s=`ipset add f2b-j-w-iptables-ipset 192.0.2.1 timeout 0 -exist`s3`ipset del f2b-j-w-iptables-ipset 192.0.2.1 -exist`s?`ipset add f2b-j-w-iptables-ipset6 2001:db8:: timeout 0 -exist`s5`ipset del f2b-j-w-iptables-ipset6 2001:db8:: -exist`sj-w-iptables-ipset-apsHiptables-ipset-proto6-allports[name=%(__name__)s, chain="<known/chain>"]s f2b-j-w-iptables-ipset-ap s f2b-j-w-iptables-ipset-ap6 s;`ipset create f2b-j-w-iptables-ipset-ap hash:ip timeout 0 `su`iptables -w -I INPUT -m set --match-set f2b-j-w-iptables-ipset-ap src -j REJECT --reject-with icmp-port-unreachable`sH`ipset create f2b-j-w-iptables-ipset-ap6 hash:ip timeout 0 family inet6`sx`ip6tables -w -I INPUT -m set --match-set f2b-j-w-iptables-ipset-ap6 src -j REJECT --reject-with icmp6-port-unreachable`s'`ipset flush f2b-j-w-iptables-ipset-ap`s(`ipset flush f2b-j-w-iptables-ipset-ap6`su`iptables -w -D INPUT -m set --match-set f2b-j-w-iptables-ipset-ap src -j REJECT --reject-with icmp-port-unreachable`s)`ipset destroy f2b-j-w-iptables-ipset-ap`sx`ip6tables -w -D INPUT -m set --match-set f2b-j-w-iptables-ipset-ap6 src -j REJECT --reject-with icmp6-port-unreachable`s*`ipset destroy f2b-j-w-iptables-ipset-ap6`s@`ipset add f2b-j-w-iptables-ipset-ap 192.0.2.1 timeout 0 -exist`s6`ipset del f2b-j-w-iptables-ipset-ap 192.0.2.1 -exist`sB`ipset add f2b-j-w-iptables-ipset-ap6 2001:db8:: timeout 0 -exist`s8`ipset del f2b-j-w-iptables-ipset-ap6 2001:db8:: -exist`sj-w-iptabless^iptables[name=%(__name__)s, bantime="10m", port="http", protocol="tcp", chain="<known/chain>"]s!`iptables -w -N f2b-j-w-iptables`s+`iptables -w -A f2b-j-w-iptables -j RETURN`s>`iptables -w -I INPUT -p tcp --dport http -j f2b-j-w-iptables`s"`ip6tables -w -N f2b-j-w-iptables`s,`ip6tables -w -A f2b-j-w-iptables -j RETURN`s?`ip6tables -w -I INPUT -p tcp --dport http -j f2b-j-w-iptables`s!`iptables -w -F f2b-j-w-iptables`s"`ip6tables -w -F f2b-j-w-iptables`s>`iptables -w -D INPUT -p tcp --dport http -j f2b-j-w-iptables`s!`iptables -w -X f2b-j-w-iptables`s?`ip6tables -w -D INPUT -p tcp --dport http -j f2b-j-w-iptables`s"`ip6tables -w -X f2b-j-w-iptables`s;`iptables -w -n -L INPUT | grep -q 'f2b-j-w-iptables[ \t]'`s<`ip6tables -w -n -L INPUT | grep -q 'f2b-j-w-iptables[ \t]'`s^`iptables -w -I f2b-j-w-iptables 1 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`s\`iptables -w -D f2b-j-w-iptables -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`sa`ip6tables -w -I f2b-j-w-iptables 1 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`s_`ip6tables -w -D f2b-j-w-iptables -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sj-w-iptables-newsbiptables-new[name=%(__name__)s, bantime="10m", port="http", protocol="tcp", chain="<known/chain>"]s%`iptables -w -N f2b-j-w-iptables-new`s/`iptables -w -A f2b-j-w-iptables-new -j RETURN`sW`iptables -w -I INPUT -m state --state NEW -p tcp --dport http -j f2b-j-w-iptables-new`s&`ip6tables -w -N f2b-j-w-iptables-new`s0`ip6tables -w -A f2b-j-w-iptables-new -j RETURN`sX`ip6tables -w -I INPUT -m state --state NEW -p tcp --dport http -j f2b-j-w-iptables-new`s%`iptables -w -F f2b-j-w-iptables-new`s&`ip6tables -w -F f2b-j-w-iptables-new`sW`iptables -w -D INPUT -m state --state NEW -p tcp --dport http -j f2b-j-w-iptables-new`s%`iptables -w -X f2b-j-w-iptables-new`sX`ip6tables -w -D INPUT -m state --state NEW -p tcp --dport http -j f2b-j-w-iptables-new`s&`ip6tables -w -X f2b-j-w-iptables-new`s?`iptables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-new[ \t]'`s@`ip6tables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-new[ \t]'`sb`iptables -w -I f2b-j-w-iptables-new 1 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`s``iptables -w -D f2b-j-w-iptables-new -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`se`ip6tables -w -I f2b-j-w-iptables-new 1 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sc`ip6tables -w -D f2b-j-w-iptables-new -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sj-w-iptables-xtresPiptables-xt_recent-echo[name=%(__name__)s, bantime="10m", chain="<known/chain>"]s/f2b-j-w-iptables-xtre`s/f2b-j-w-iptables-xtre6`s�`if [ `id -u` -eq 0 ];then iptables -w -I INPUT -m recent --update --seconds 3600 --name f2b-j-w-iptables-xtre -j REJECT --reject-with icmp-port-unreachable;fi`s�`if [ `id -u` -eq 0 ];then ip6tables -w -I INPUT -m recent --update --seconds 3600 --name f2b-j-w-iptables-xtre6 -j REJECT --reject-with icmp6-port-unreachable;fi`s4`echo / > /proc/net/xt_recent/f2b-j-w-iptables-xtre`s�`if [ `id -u` -eq 0 ];then iptables -w -D INPUT -m recent --update --seconds 3600 --name f2b-j-w-iptables-xtre -j REJECT --reject-with icmp-port-unreachable;fi`s5`echo / > /proc/net/xt_recent/f2b-j-w-iptables-xtre6`s�`if [ `id -u` -eq 0 ];then ip6tables -w -D INPUT -m recent --update --seconds 3600 --name f2b-j-w-iptables-xtre6 -j REJECT --reject-with icmp6-port-unreachable;fi`s3`test -e /proc/net/xt_recent/f2b-j-w-iptables-xtre`s4`test -e /proc/net/xt_recent/f2b-j-w-iptables-xtre6`s=`echo +192.0.2.1 > /proc/net/xt_recent/f2b-j-w-iptables-xtre`s=`echo -192.0.2.1 > /proc/net/xt_recent/f2b-j-w-iptables-xtre`s?`echo +2001:db8:: > /proc/net/xt_recent/f2b-j-w-iptables-xtre6`s?`echo -2001:db8:: > /proc/net/xt_recent/f2b-j-w-iptables-xtre6`sj-w-pfs2pf[name=%(__name__)s, actionstart_on_demand=false]sF`echo "table <f2b-j-w-pf> persist counters" | pfctl -a f2b/j-w-pf -f-`s
port="<port>"s\`echo "block quick proto tcp from <f2b-j-w-pf> to any port $port" | pfctl -a f2b/j-w-pf -f-`s,`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T flush`sT`pfctl -a f2b/j-w-pf -sr 2>/dev/null | grep -v f2b-j-w-pf | pfctl -a f2b/j-w-pf -f-`s+`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T kill`s.`pfctl -a f2b/j-w-pf -sr | grep -q f2b-j-w-pf`s4`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T add 192.0.2.1`s7`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T delete 192.0.2.1`s5`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T add 2001:db8::`s8`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T delete 2001:db8::`s	j-w-pf-mps@pf[actiontype=<multiport>][name=%(__name__)s, port="http,https"]sL`echo "table <f2b-j-w-pf-mp> persist counters" | pfctl -a f2b/j-w-pf-mp -f-`sport="http,https"sb`echo "block quick proto tcp from <f2b-j-w-pf-mp> to any port $port" | pfctl -a f2b/j-w-pf-mp -f-`s2`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T flush`s]`pfctl -a f2b/j-w-pf-mp -sr 2>/dev/null | grep -v f2b-j-w-pf-mp | pfctl -a f2b/j-w-pf-mp -f-`s1`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T kill`s4`pfctl -a f2b/j-w-pf-mp -sr | grep -q f2b-j-w-pf-mp`s:`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T add 192.0.2.1`s=`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T delete 192.0.2.1`s;`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T add 2001:db8::`s>`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T delete 2001:db8::`s	j-w-pf-apsHpf[actiontype=<allports>, actionstart_on_demand=true][name=%(__name__)s]sL`echo "table <f2b-j-w-pf-ap> persist counters" | pfctl -a f2b/j-w-pf-ap -f-`sW`echo "block quick proto tcp from <f2b-j-w-pf-ap> to any" | pfctl -a f2b/j-w-pf-ap -f-`s2`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T flush`s]`pfctl -a f2b/j-w-pf-ap -sr 2>/dev/null | grep -v f2b-j-w-pf-ap | pfctl -a f2b/j-w-pf-ap -f-`s1`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T kill`s4`pfctl -a f2b/j-w-pf-ap -sr | grep -q f2b-j-w-pf-ap`s:`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T add 192.0.2.1`s=`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T delete 192.0.2.1`s;`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T add 2001:db8::`s>`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T delete 2001:db8::`sj-w-fwcmd-mpsqfirewallcmd-multiport[name=%(__name__)s, bantime="10m", port="http,https", protocol="tcp", chain="<known/chain>"]s ipv4 s ipv6 s@`firewall-cmd --direct --add-chain ipv4 filter f2b-j-w-fwcmd-mp`sN`firewall-cmd --direct --add-rule ipv4 filter f2b-j-w-fwcmd-mp 1000 -j RETURN`s�`firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -m conntrack --ctstate NEW -p tcp -m multiport --dports "$(echo 'http,https' | sed s/:/-/g)" -j f2b-j-w-fwcmd-mp`s@`firewall-cmd --direct --add-chain ipv6 filter f2b-j-w-fwcmd-mp`sN`firewall-cmd --direct --add-rule ipv6 filter f2b-j-w-fwcmd-mp 1000 -j RETURN`s�`firewall-cmd --direct --add-rule ipv6 filter INPUT_direct 0 -m conntrack --ctstate NEW -p tcp -m multiport --dports "$(echo 'http,https' | sed s/:/-/g)" -j f2b-j-w-fwcmd-mp`s�`firewall-cmd --direct --remove-rule ipv4 filter INPUT_direct 0 -m conntrack --ctstate NEW -p tcp -m multiport --dports "$(echo 'http,https' | sed s/:/-/g)" -j f2b-j-w-fwcmd-mp`sC`firewall-cmd --direct --remove-rules ipv4 filter f2b-j-w-fwcmd-mp`sC`firewall-cmd --direct --remove-chain ipv4 filter f2b-j-w-fwcmd-mp`s�`firewall-cmd --direct --remove-rule ipv6 filter INPUT_direct 0 -m conntrack --ctstate NEW -p tcp -m multiport --dports "$(echo 'http,https' | sed s/:/-/g)" -j f2b-j-w-fwcmd-mp`sC`firewall-cmd --direct --remove-rules ipv6 filter f2b-j-w-fwcmd-mp`sC`firewall-cmd --direct --remove-chain ipv6 filter f2b-j-w-fwcmd-mp`sc`firewall-cmd --direct --get-chains ipv4 filter | sed -e 's, ,\n,g' | grep -q '^f2b-j-w-fwcmd-mp$'`sc`firewall-cmd --direct --get-chains ipv6 filter | sed -e 's, ,\n,g' | grep -q '^f2b-j-w-fwcmd-mp$'`s|`firewall-cmd --direct --add-rule ipv4 filter f2b-j-w-fwcmd-mp 0 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`s`firewall-cmd --direct --remove-rule ipv4 filter f2b-j-w-fwcmd-mp 0 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`s~`firewall-cmd --direct --add-rule ipv6 filter f2b-j-w-fwcmd-mp 0 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`s�`firewall-cmd --direct --remove-rule ipv6 filter f2b-j-w-fwcmd-mp 0 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sj-w-fwcmd-aps]firewallcmd-allports[name=%(__name__)s, bantime="10m", protocol="tcp", chain="<known/chain>"]s@`firewall-cmd --direct --add-chain ipv4 filter f2b-j-w-fwcmd-ap`sN`firewall-cmd --direct --add-rule ipv4 filter f2b-j-w-fwcmd-ap 1000 -j RETURN`sQ`firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -j f2b-j-w-fwcmd-ap`s@`firewall-cmd --direct --add-chain ipv6 filter f2b-j-w-fwcmd-ap`sN`firewall-cmd --direct --add-rule ipv6 filter f2b-j-w-fwcmd-ap 1000 -j RETURN`sQ`firewall-cmd --direct --add-rule ipv6 filter INPUT_direct 0 -j f2b-j-w-fwcmd-ap`sT`firewall-cmd --direct --remove-rule ipv4 filter INPUT_direct 0 -j f2b-j-w-fwcmd-ap`sC`firewall-cmd --direct --remove-rules ipv4 filter f2b-j-w-fwcmd-ap`sC`firewall-cmd --direct --remove-chain ipv4 filter f2b-j-w-fwcmd-ap`sT`firewall-cmd --direct --remove-rule ipv6 filter INPUT_direct 0 -j f2b-j-w-fwcmd-ap`sC`firewall-cmd --direct --remove-rules ipv6 filter f2b-j-w-fwcmd-ap`sC`firewall-cmd --direct --remove-chain ipv6 filter f2b-j-w-fwcmd-ap`sc`firewall-cmd --direct --get-chains ipv4 filter | sed -e 's, ,\n,g' | grep -q '^f2b-j-w-fwcmd-ap$'`sc`firewall-cmd --direct --get-chains ipv6 filter | sed -e 's, ,\n,g' | grep -q '^f2b-j-w-fwcmd-ap$'`s|`firewall-cmd --direct --add-rule ipv4 filter f2b-j-w-fwcmd-ap 0 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`s`firewall-cmd --direct --remove-rule ipv4 filter f2b-j-w-fwcmd-ap 0 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`s~`firewall-cmd --direct --add-rule ipv6 filter f2b-j-w-fwcmd-ap 0 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`s�`firewall-cmd --direct --remove-rule ipv6 filter f2b-j-w-fwcmd-ap 0 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`sj-w-fwcmd-ipsetsXfirewallcmd-ipset[name=%(__name__)s, port="http", protocol="tcp", chain="<known/chain>"]s f2b-j-w-fwcmd-ipset s f2b-j-w-fwcmd-ipset6 s5`ipset create f2b-j-w-fwcmd-ipset hash:ip timeout 0 `s�`firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -p tcp -m multiport --dports "$(echo 'http' | sed s/:/-/g)" -m set --match-set f2b-j-w-fwcmd-ipset src -j REJECT --reject-with icmp-port-unreachable`sB`ipset create f2b-j-w-fwcmd-ipset6 hash:ip timeout 0 family inet6`s�`firewall-cmd --direct --add-rule ipv6 filter INPUT_direct 0 -p tcp -m multiport --dports "$(echo 'http' | sed s/:/-/g)" -m set --match-set f2b-j-w-fwcmd-ipset6 src -j REJECT --reject-with icmp6-port-unreachable`s!`ipset flush f2b-j-w-fwcmd-ipset`s"`ipset flush f2b-j-w-fwcmd-ipset6`s�`firewall-cmd --direct --remove-rule ipv4 filter INPUT_direct 0 -p tcp -m multiport --dports "$(echo 'http' | sed s/:/-/g)" -m set --match-set f2b-j-w-fwcmd-ipset src -j REJECT --reject-with icmp-port-unreachable`s#`ipset destroy f2b-j-w-fwcmd-ipset`s�`firewall-cmd --direct --remove-rule ipv6 filter INPUT_direct 0 -p tcp -m multiport --dports "$(echo 'http' | sed s/:/-/g)" -m set --match-set f2b-j-w-fwcmd-ipset6 src -j REJECT --reject-with icmp6-port-unreachable`s$`ipset destroy f2b-j-w-fwcmd-ipset6`s:`ipset add f2b-j-w-fwcmd-ipset 192.0.2.1 timeout 0 -exist`s0`ipset del f2b-j-w-fwcmd-ipset 192.0.2.1 -exist`s<`ipset add f2b-j-w-fwcmd-ipset6 2001:db8:: timeout 0 -exist`s2`ipset del f2b-j-w-fwcmd-ipset6 2001:db8:: -exist`sj-w-fwcmd-ipset-apsbfirewallcmd-ipset[name=%(__name__)s, actiontype=<allports>, protocol="tcp", chain="<known/chain>"]s f2b-j-w-fwcmd-ipset-ap s f2b-j-w-fwcmd-ipset-ap6 s8`ipset create f2b-j-w-fwcmd-ipset-ap hash:ip timeout 0 `s�`firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -p tcp -m set --match-set f2b-j-w-fwcmd-ipset-ap src -j REJECT --reject-with icmp-port-unreachable`sE`ipset create f2b-j-w-fwcmd-ipset-ap6 hash:ip timeout 0 family inet6`s�`firewall-cmd --direct --add-rule ipv6 filter INPUT_direct 0 -p tcp -m set --match-set f2b-j-w-fwcmd-ipset-ap6 src -j REJECT --reject-with icmp6-port-unreachable`s$`ipset flush f2b-j-w-fwcmd-ipset-ap`s%`ipset flush f2b-j-w-fwcmd-ipset-ap6`s�`firewall-cmd --direct --remove-rule ipv4 filter INPUT_direct 0 -p tcp -m set --match-set f2b-j-w-fwcmd-ipset-ap src -j REJECT --reject-with icmp-port-unreachable`s&`ipset destroy f2b-j-w-fwcmd-ipset-ap`s�`firewall-cmd --direct --remove-rule ipv6 filter INPUT_direct 0 -p tcp -m set --match-set f2b-j-w-fwcmd-ipset-ap6 src -j REJECT --reject-with icmp6-port-unreachable`s'`ipset destroy f2b-j-w-fwcmd-ipset-ap6`s=`ipset add f2b-j-w-fwcmd-ipset-ap 192.0.2.1 timeout 0 -exist`s3`ipset del f2b-j-w-fwcmd-ipset-ap 192.0.2.1 -exist`s?`ipset add f2b-j-w-fwcmd-ipset-ap6 2001:db8:: timeout 0 -exist`s5`ipset del f2b-j-w-fwcmd-ipset-ap6 2001:db8:: -exist`s
j-fwcmd-rrs4firewallcmd-rich-rules[port="22:24", protocol="tcp"]s
family='ipv4's
family='ipv6's�`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --add-rich-rule="rule family='ipv4' source address='192.0.2.1' port port='$p' protocol='tcp' reject type='icmp-port-unreachable'"; done`s�`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --remove-rich-rule="rule family='ipv4' source address='192.0.2.1' port port='$p' protocol='tcp' reject type='icmp-port-unreachable'"; done`s� `ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --add-rich-rule="rule family='ipv6' source address='2001:db8::' port port='$p' protocol='tcp' reject type='icmp6-port-unreachable'"; done`s�`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --remove-rich-rule="rule family='ipv6' source address='2001:db8::' port port='$p' protocol='tcp' reject type='icmp6-port-unreachable'"; done`s
j-fwcmd-rls6firewallcmd-rich-logging[port="22:24", protocol="tcp"]s"`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --add-rich-rule="rule family='ipv4' source address='192.0.2.1' port port='$p' protocol='tcp' log prefix='f2b-j-fwcmd-rl' level='info' limit value='1/m' reject type='icmp-port-unreachable'"; done`s%`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --remove-rich-rule="rule family='ipv4' source address='192.0.2.1' port port='$p' protocol='tcp' log prefix='f2b-j-fwcmd-rl' level='info' limit value='1/m' reject type='icmp-port-unreachable'"; done`s% `ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --add-rich-rule="rule family='ipv6' source address='2001:db8::' port port='$p' protocol='tcp' log prefix='f2b-j-fwcmd-rl' level='info' limit value='1/m' reject type='icmp6-port-unreachable'"; done`s'`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --remove-rich-rule="rule family='ipv6' source address='2001:db8::' port port='$p' protocol='tcp' log prefix='f2b-j-fwcmd-rl' level='info' limit value='1/m' reject type='icmp6-port-unreachable'"; done`is# R�i2s
# == %-44s ==s - s# === start ===R�s# === ban-ipv4 ===R�s# === unban ipv4 ===s# === ban ipv6 ===R�s# === unban ipv6 ===s# === flush ===s# === stop ===(sip R�saddr-(sip6 R�saddr6-(s`nft add table inet f2b-table`sW`nft -- add chain inet f2b-table f2b-chain \{ type filter hook input priority -1 \; \}`s9`for proto in $(echo 'tcp,udp,sctp' | sed 's/,/ /g'); do`s`done`(sG`nft add set inet f2b-table addr-set-j-w-nft-mp \{ type ipv4_addr\; \}`s�`nft add rule inet f2b-table f2b-chain $proto dport \{ $(echo 'http,https' | sed s/:/-/g) \} ip saddr @addr-set-j-w-nft-mp reject`(sH`nft add set inet f2b-table addr6-set-j-w-nft-mp \{ type ipv6_addr\; \}`s�`nft add rule inet f2b-table f2b-chain $proto dport \{ $(echo 'http,https' | sed s/:/-/g) \} ip6 saddr @addr6-set-j-w-nft-mp reject`(sG`{ nft flush set inet f2b-table addr-set-j-w-nft-mp 2> /dev/null; } || sH`{ nft flush set inet f2b-table addr6-set-j-w-nft-mp 2> /dev/null; } || (s�`{ nft -a list chain inet f2b-table f2b-chain | grep -oP '@addr-set-j-w-nft-mp\s+.*\s+\Khandle\s+(\d+)$'; } | while read -r hdl; do`s5`nft delete rule inet f2b-table f2b-chain $hdl; done`s3`nft delete set inet f2b-table addr-set-j-w-nft-mp`s�`{ nft -a list chain inet f2b-table f2b-chain | grep -oP '@addr6-set-j-w-nft-mp\s+.*\s+\Khandle\s+(\d+)$'; } | while read -r hdl; do`s5`nft delete rule inet f2b-table f2b-chain $hdl; done`s4`nft delete set inet f2b-table addr6-set-j-w-nft-mp`(sO`nft list chain inet f2b-table f2b-chain | grep -q '@addr-set-j-w-nft-mp[ \t]'`(sP`nft list chain inet f2b-table f2b-chain | grep -q '@addr6-set-j-w-nft-mp[ \t]'`(sD`nft add element inet f2b-table addr-set-j-w-nft-mp \{ 192.0.2.1 \}`(sG`nft delete element inet f2b-table addr-set-j-w-nft-mp \{ 192.0.2.1 \}`(sF`nft add element inet f2b-table addr6-set-j-w-nft-mp \{ 2001:db8:: \}`(sI`nft delete element inet f2b-table addr6-set-j-w-nft-mp \{ 2001:db8:: \}`(sip R�saddr-(sip6 R�saddr6-(s`nft add table inet f2b-table`sW`nft -- add chain inet f2b-table f2b-chain \{ type filter hook input priority -1 \; \}`(sG`nft add set inet f2b-table addr-set-j-w-nft-ap \{ type ipv4_addr\; \}`sg`nft add rule inet f2b-table f2b-chain meta l4proto \{ tcp,udp \} ip saddr @addr-set-j-w-nft-ap reject`(sH`nft add set inet f2b-table addr6-set-j-w-nft-ap \{ type ipv6_addr\; \}`si`nft add rule inet f2b-table f2b-chain meta l4proto \{ tcp,udp \} ip6 saddr @addr6-set-j-w-nft-ap reject`(sG`{ nft flush set inet f2b-table addr-set-j-w-nft-ap 2> /dev/null; } || sH`{ nft flush set inet f2b-table addr6-set-j-w-nft-ap 2> /dev/null; } || (s�`{ nft -a list chain inet f2b-table f2b-chain | grep -oP '@addr-set-j-w-nft-ap\s+.*\s+\Khandle\s+(\d+)$'; } | while read -r hdl; do`s5`nft delete rule inet f2b-table f2b-chain $hdl; done`s3`nft delete set inet f2b-table addr-set-j-w-nft-ap`s�`{ nft -a list chain inet f2b-table f2b-chain | grep -oP '@addr6-set-j-w-nft-ap\s+.*\s+\Khandle\s+(\d+)$'; } | while read -r hdl; do`s5`nft delete rule inet f2b-table f2b-chain $hdl; done`s4`nft delete set inet f2b-table addr6-set-j-w-nft-ap`(sO`nft list chain inet f2b-table f2b-chain | grep -q '@addr-set-j-w-nft-ap[ \t]'`(sP`nft list chain inet f2b-table f2b-chain | grep -q '@addr6-set-j-w-nft-ap[ \t]'`(sD`nft add element inet f2b-table addr-set-j-w-nft-ap \{ 192.0.2.1 \}`(sG`nft delete element inet f2b-table addr-set-j-w-nft-ap \{ 192.0.2.1 \}`(sF`nft add element inet f2b-table addr6-set-j-w-nft-ap \{ 2001:db8:: \}`(sI`nft delete element inet f2b-table addr6-set-j-w-nft-ap \{ 2001:db8:: \}`(s
family: inet4(s
family: inet6(s$`printf %b "=='/'==bt:600==bc:0==\n"s7`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- started"`(s9`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- clear all"`(s7`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- stopped"`(sP`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- banned 192.0.2.1 (family: inet4)"`(sR`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- unbanned 192.0.2.1 (family: inet4)"`(sQ`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- banned 2001:db8:: (family: inet6)"`(sS`echo "[j-dummy] dummy /tmp/fail2ban.dummy -- unbanned 2001:db8:: (family: inet6)"`(s
family: inet4(s
family: inet6(s5`printf %b "ALL: 192.0.2.1\n" >> /tmp/fail2ban.dummy`(s^`IP=$(echo "192.0.2.1" | sed 's/[][\.]/\\\0/g') && sed -i "/^ALL: $IP$/d" /tmp/fail2ban.dummy`(s8`printf %b "ALL: [2001:db8::]\n" >> /tmp/fail2ban.dummy`(sa`IP=$(echo "[2001:db8::]" | sed 's/[][\.]/\\\0/g') && sed -i "/^ALL: $IP$/d" /tmp/fail2ban.dummy`(s
`iptables sicmp-port-unreachable(s`ip6tables sicmp6-port-unreachable(s$`iptables -w -N f2b-j-w-iptables-mp`s.`iptables -w -A f2b-j-w-iptables-mp -j RETURN`sU`iptables -w -I INPUT -p tcp -m multiport --dports http,https -j f2b-j-w-iptables-mp`(s%`ip6tables -w -N f2b-j-w-iptables-mp`s/`ip6tables -w -A f2b-j-w-iptables-mp -j RETURN`sV`ip6tables -w -I INPUT -p tcp -m multiport --dports http,https -j f2b-j-w-iptables-mp`(s$`iptables -w -F f2b-j-w-iptables-mp`s%`ip6tables -w -F f2b-j-w-iptables-mp`(sU`iptables -w -D INPUT -p tcp -m multiport --dports http,https -j f2b-j-w-iptables-mp`s$`iptables -w -F f2b-j-w-iptables-mp`s$`iptables -w -X f2b-j-w-iptables-mp`sV`ip6tables -w -D INPUT -p tcp -m multiport --dports http,https -j f2b-j-w-iptables-mp`s%`ip6tables -w -F f2b-j-w-iptables-mp`s%`ip6tables -w -X f2b-j-w-iptables-mp`(s>`iptables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-mp[ \t]'`(s?`ip6tables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-mp[ \t]'`(sa`iptables -w -I f2b-j-w-iptables-mp 1 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(s_`iptables -w -D f2b-j-w-iptables-mp -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(sd`ip6tables -w -I f2b-j-w-iptables-mp 1 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(sb`ip6tables -w -D f2b-j-w-iptables-mp -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s
`iptables sicmp-port-unreachable(s`ip6tables sicmp6-port-unreachable(s$`iptables -w -N f2b-j-w-iptables-ap`s.`iptables -w -A f2b-j-w-iptables-ap -j RETURN`s4`iptables -w -I INPUT -p tcp -j f2b-j-w-iptables-ap`(s%`ip6tables -w -N f2b-j-w-iptables-ap`s/`ip6tables -w -A f2b-j-w-iptables-ap -j RETURN`s5`ip6tables -w -I INPUT -p tcp -j f2b-j-w-iptables-ap`(s$`iptables -w -F f2b-j-w-iptables-ap`s%`ip6tables -w -F f2b-j-w-iptables-ap`(s4`iptables -w -D INPUT -p tcp -j f2b-j-w-iptables-ap`s$`iptables -w -F f2b-j-w-iptables-ap`s$`iptables -w -X f2b-j-w-iptables-ap`s5`ip6tables -w -D INPUT -p tcp -j f2b-j-w-iptables-ap`s%`ip6tables -w -F f2b-j-w-iptables-ap`s%`ip6tables -w -X f2b-j-w-iptables-ap`(s>`iptables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-ap[ \t]'`(s?`ip6tables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-ap[ \t]'`(sa`iptables -w -I f2b-j-w-iptables-ap 1 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(s_`iptables -w -D f2b-j-w-iptables-ap -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(sd`ip6tables -w -I f2b-j-w-iptables-ap 1 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(sb`ip6tables -w -D f2b-j-w-iptables-ap -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s f2b-j-w-iptables-ipset (s f2b-j-w-iptables-ipset6 (s8`ipset create f2b-j-w-iptables-ipset hash:ip timeout 0 `s�`iptables -w -I INPUT -p tcp -m multiport --dports http -m set --match-set f2b-j-w-iptables-ipset src -j REJECT --reject-with icmp-port-unreachable`(sE`ipset create f2b-j-w-iptables-ipset6 hash:ip timeout 0 family inet6`s�`ip6tables -w -I INPUT -p tcp -m multiport --dports http -m set --match-set f2b-j-w-iptables-ipset6 src -j REJECT --reject-with icmp6-port-unreachable`(s$`ipset flush f2b-j-w-iptables-ipset`s%`ipset flush f2b-j-w-iptables-ipset6`(s�`iptables -w -D INPUT -p tcp -m multiport --dports http -m set --match-set f2b-j-w-iptables-ipset src -j REJECT --reject-with icmp-port-unreachable`s$`ipset flush f2b-j-w-iptables-ipset`s&`ipset destroy f2b-j-w-iptables-ipset`s�`ip6tables -w -D INPUT -p tcp -m multiport --dports http -m set --match-set f2b-j-w-iptables-ipset6 src -j REJECT --reject-with icmp6-port-unreachable`s%`ipset flush f2b-j-w-iptables-ipset6`s'`ipset destroy f2b-j-w-iptables-ipset6`(s=`ipset add f2b-j-w-iptables-ipset 192.0.2.1 timeout 0 -exist`(s3`ipset del f2b-j-w-iptables-ipset 192.0.2.1 -exist`(s?`ipset add f2b-j-w-iptables-ipset6 2001:db8:: timeout 0 -exist`(s5`ipset del f2b-j-w-iptables-ipset6 2001:db8:: -exist`(s f2b-j-w-iptables-ipset-ap (s f2b-j-w-iptables-ipset-ap6 (s;`ipset create f2b-j-w-iptables-ipset-ap hash:ip timeout 0 `su`iptables -w -I INPUT -m set --match-set f2b-j-w-iptables-ipset-ap src -j REJECT --reject-with icmp-port-unreachable`(sH`ipset create f2b-j-w-iptables-ipset-ap6 hash:ip timeout 0 family inet6`sx`ip6tables -w -I INPUT -m set --match-set f2b-j-w-iptables-ipset-ap6 src -j REJECT --reject-with icmp6-port-unreachable`(s'`ipset flush f2b-j-w-iptables-ipset-ap`s(`ipset flush f2b-j-w-iptables-ipset-ap6`(su`iptables -w -D INPUT -m set --match-set f2b-j-w-iptables-ipset-ap src -j REJECT --reject-with icmp-port-unreachable`s'`ipset flush f2b-j-w-iptables-ipset-ap`s)`ipset destroy f2b-j-w-iptables-ipset-ap`sx`ip6tables -w -D INPUT -m set --match-set f2b-j-w-iptables-ipset-ap6 src -j REJECT --reject-with icmp6-port-unreachable`s(`ipset flush f2b-j-w-iptables-ipset-ap6`s*`ipset destroy f2b-j-w-iptables-ipset-ap6`(s@`ipset add f2b-j-w-iptables-ipset-ap 192.0.2.1 timeout 0 -exist`(s6`ipset del f2b-j-w-iptables-ipset-ap 192.0.2.1 -exist`(sB`ipset add f2b-j-w-iptables-ipset-ap6 2001:db8:: timeout 0 -exist`(s8`ipset del f2b-j-w-iptables-ipset-ap6 2001:db8:: -exist`(s
`iptables sicmp-port-unreachable(s`ip6tables sicmp6-port-unreachable(s!`iptables -w -N f2b-j-w-iptables`s+`iptables -w -A f2b-j-w-iptables -j RETURN`s>`iptables -w -I INPUT -p tcp --dport http -j f2b-j-w-iptables`(s"`ip6tables -w -N f2b-j-w-iptables`s,`ip6tables -w -A f2b-j-w-iptables -j RETURN`s?`ip6tables -w -I INPUT -p tcp --dport http -j f2b-j-w-iptables`(s!`iptables -w -F f2b-j-w-iptables`s"`ip6tables -w -F f2b-j-w-iptables`(s>`iptables -w -D INPUT -p tcp --dport http -j f2b-j-w-iptables`s!`iptables -w -F f2b-j-w-iptables`s!`iptables -w -X f2b-j-w-iptables`s?`ip6tables -w -D INPUT -p tcp --dport http -j f2b-j-w-iptables`s"`ip6tables -w -F f2b-j-w-iptables`s"`ip6tables -w -X f2b-j-w-iptables`(s;`iptables -w -n -L INPUT | grep -q 'f2b-j-w-iptables[ \t]'`(s<`ip6tables -w -n -L INPUT | grep -q 'f2b-j-w-iptables[ \t]'`(s^`iptables -w -I f2b-j-w-iptables 1 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(s\`iptables -w -D f2b-j-w-iptables -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(sa`ip6tables -w -I f2b-j-w-iptables 1 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s_`ip6tables -w -D f2b-j-w-iptables -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s
`iptables sicmp-port-unreachable(s`ip6tables sicmp6-port-unreachable(s%`iptables -w -N f2b-j-w-iptables-new`s/`iptables -w -A f2b-j-w-iptables-new -j RETURN`sW`iptables -w -I INPUT -m state --state NEW -p tcp --dport http -j f2b-j-w-iptables-new`(s&`ip6tables -w -N f2b-j-w-iptables-new`s0`ip6tables -w -A f2b-j-w-iptables-new -j RETURN`sX`ip6tables -w -I INPUT -m state --state NEW -p tcp --dport http -j f2b-j-w-iptables-new`(s%`iptables -w -F f2b-j-w-iptables-new`s&`ip6tables -w -F f2b-j-w-iptables-new`(sW`iptables -w -D INPUT -m state --state NEW -p tcp --dport http -j f2b-j-w-iptables-new`s%`iptables -w -F f2b-j-w-iptables-new`s%`iptables -w -X f2b-j-w-iptables-new`sX`ip6tables -w -D INPUT -m state --state NEW -p tcp --dport http -j f2b-j-w-iptables-new`s&`ip6tables -w -F f2b-j-w-iptables-new`s&`ip6tables -w -X f2b-j-w-iptables-new`(s?`iptables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-new[ \t]'`(s@`ip6tables -w -n -L INPUT | grep -q 'f2b-j-w-iptables-new[ \t]'`(sb`iptables -w -I f2b-j-w-iptables-new 1 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(s``iptables -w -D f2b-j-w-iptables-new -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(se`ip6tables -w -I f2b-j-w-iptables-new 1 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(sc`ip6tables -w -D f2b-j-w-iptables-new -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s
`iptables s/f2b-j-w-iptables-xtre`(s`ip6tables s/f2b-j-w-iptables-xtre6`(s�`if [ `id -u` -eq 0 ];then iptables -w -I INPUT -m recent --update --seconds 3600 --name f2b-j-w-iptables-xtre -j REJECT --reject-with icmp-port-unreachable;fi`(s�`if [ `id -u` -eq 0 ];then ip6tables -w -I INPUT -m recent --update --seconds 3600 --name f2b-j-w-iptables-xtre6 -j REJECT --reject-with icmp6-port-unreachable;fi`(s4`echo / > /proc/net/xt_recent/f2b-j-w-iptables-xtre`s�`if [ `id -u` -eq 0 ];then iptables -w -D INPUT -m recent --update --seconds 3600 --name f2b-j-w-iptables-xtre -j REJECT --reject-with icmp-port-unreachable;fi`s5`echo / > /proc/net/xt_recent/f2b-j-w-iptables-xtre6`s�`if [ `id -u` -eq 0 ];then ip6tables -w -D INPUT -m recent --update --seconds 3600 --name f2b-j-w-iptables-xtre6 -j REJECT --reject-with icmp6-port-unreachable;fi`(s3`test -e /proc/net/xt_recent/f2b-j-w-iptables-xtre`(s4`test -e /proc/net/xt_recent/f2b-j-w-iptables-xtre6`(s=`echo +192.0.2.1 > /proc/net/xt_recent/f2b-j-w-iptables-xtre`(s=`echo -192.0.2.1 > /proc/net/xt_recent/f2b-j-w-iptables-xtre`(s?`echo +2001:db8:: > /proc/net/xt_recent/f2b-j-w-iptables-xtre6`(s?`echo -2001:db8:: > /proc/net/xt_recent/f2b-j-w-iptables-xtre6`(((sF`echo "table <f2b-j-w-pf> persist counters" | pfctl -a f2b/j-w-pf -f-`s
port="<port>"s\`echo "block quick proto tcp from <f2b-j-w-pf> to any port $port" | pfctl -a f2b/j-w-pf -f-`(s,`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T flush`(sT`pfctl -a f2b/j-w-pf -sr 2>/dev/null | grep -v f2b-j-w-pf | pfctl -a f2b/j-w-pf -f-`s,`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T flush`s+`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T kill`(s.`pfctl -a f2b/j-w-pf -sr | grep -q f2b-j-w-pf`(s.`pfctl -a f2b/j-w-pf -sr | grep -q f2b-j-w-pf`(s4`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T add 192.0.2.1`(s7`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T delete 192.0.2.1`(s5`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T add 2001:db8::`(s8`pfctl -a f2b/j-w-pf -t f2b-j-w-pf -T delete 2001:db8::`(((sL`echo "table <f2b-j-w-pf-mp> persist counters" | pfctl -a f2b/j-w-pf-mp -f-`sport="http,https"sb`echo "block quick proto tcp from <f2b-j-w-pf-mp> to any port $port" | pfctl -a f2b/j-w-pf-mp -f-`(s2`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T flush`(s]`pfctl -a f2b/j-w-pf-mp -sr 2>/dev/null | grep -v f2b-j-w-pf-mp | pfctl -a f2b/j-w-pf-mp -f-`s2`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T flush`s1`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T kill`(s4`pfctl -a f2b/j-w-pf-mp -sr | grep -q f2b-j-w-pf-mp`(s4`pfctl -a f2b/j-w-pf-mp -sr | grep -q f2b-j-w-pf-mp`(s:`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T add 192.0.2.1`(s=`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T delete 192.0.2.1`(s;`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T add 2001:db8::`(s>`pfctl -a f2b/j-w-pf-mp -t f2b-j-w-pf-mp -T delete 2001:db8::`(((sL`echo "table <f2b-j-w-pf-ap> persist counters" | pfctl -a f2b/j-w-pf-ap -f-`sW`echo "block quick proto tcp from <f2b-j-w-pf-ap> to any" | pfctl -a f2b/j-w-pf-ap -f-`((s2`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T flush`(s]`pfctl -a f2b/j-w-pf-ap -sr 2>/dev/null | grep -v f2b-j-w-pf-ap | pfctl -a f2b/j-w-pf-ap -f-`s2`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T flush`s1`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T kill`(s4`pfctl -a f2b/j-w-pf-ap -sr | grep -q f2b-j-w-pf-ap`(s4`pfctl -a f2b/j-w-pf-ap -sr | grep -q f2b-j-w-pf-ap`(s:`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T add 192.0.2.1`(s=`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T delete 192.0.2.1`(s;`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T add 2001:db8::`(s>`pfctl -a f2b/j-w-pf-ap -t f2b-j-w-pf-ap -T delete 2001:db8::`(s ipv4 sicmp-port-unreachable(s ipv6 sicmp6-port-unreachable(s@`firewall-cmd --direct --add-chain ipv4 filter f2b-j-w-fwcmd-mp`sN`firewall-cmd --direct --add-rule ipv4 filter f2b-j-w-fwcmd-mp 1000 -j RETURN`s�`firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -m conntrack --ctstate NEW -p tcp -m multiport --dports "$(echo 'http,https' | sed s/:/-/g)" -j f2b-j-w-fwcmd-mp`(s@`firewall-cmd --direct --add-chain ipv6 filter f2b-j-w-fwcmd-mp`sN`firewall-cmd --direct --add-rule ipv6 filter f2b-j-w-fwcmd-mp 1000 -j RETURN`s�`firewall-cmd --direct --add-rule ipv6 filter INPUT_direct 0 -m conntrack --ctstate NEW -p tcp -m multiport --dports "$(echo 'http,https' | sed s/:/-/g)" -j f2b-j-w-fwcmd-mp`(s�`firewall-cmd --direct --remove-rule ipv4 filter INPUT_direct 0 -m conntrack --ctstate NEW -p tcp -m multiport --dports "$(echo 'http,https' | sed s/:/-/g)" -j f2b-j-w-fwcmd-mp`sC`firewall-cmd --direct --remove-rules ipv4 filter f2b-j-w-fwcmd-mp`sC`firewall-cmd --direct --remove-chain ipv4 filter f2b-j-w-fwcmd-mp`s�`firewall-cmd --direct --remove-rule ipv6 filter INPUT_direct 0 -m conntrack --ctstate NEW -p tcp -m multiport --dports "$(echo 'http,https' | sed s/:/-/g)" -j f2b-j-w-fwcmd-mp`sC`firewall-cmd --direct --remove-rules ipv6 filter f2b-j-w-fwcmd-mp`sC`firewall-cmd --direct --remove-chain ipv6 filter f2b-j-w-fwcmd-mp`(sc`firewall-cmd --direct --get-chains ipv4 filter | sed -e 's, ,\n,g' | grep -q '^f2b-j-w-fwcmd-mp$'`(sc`firewall-cmd --direct --get-chains ipv6 filter | sed -e 's, ,\n,g' | grep -q '^f2b-j-w-fwcmd-mp$'`(s|`firewall-cmd --direct --add-rule ipv4 filter f2b-j-w-fwcmd-mp 0 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(s`firewall-cmd --direct --remove-rule ipv4 filter f2b-j-w-fwcmd-mp 0 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(s~`firewall-cmd --direct --add-rule ipv6 filter f2b-j-w-fwcmd-mp 0 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s�`firewall-cmd --direct --remove-rule ipv6 filter f2b-j-w-fwcmd-mp 0 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s ipv4 sicmp-port-unreachable(s ipv6 sicmp6-port-unreachable(s@`firewall-cmd --direct --add-chain ipv4 filter f2b-j-w-fwcmd-ap`sN`firewall-cmd --direct --add-rule ipv4 filter f2b-j-w-fwcmd-ap 1000 -j RETURN`sQ`firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -j f2b-j-w-fwcmd-ap`(s@`firewall-cmd --direct --add-chain ipv6 filter f2b-j-w-fwcmd-ap`sN`firewall-cmd --direct --add-rule ipv6 filter f2b-j-w-fwcmd-ap 1000 -j RETURN`sQ`firewall-cmd --direct --add-rule ipv6 filter INPUT_direct 0 -j f2b-j-w-fwcmd-ap`(sT`firewall-cmd --direct --remove-rule ipv4 filter INPUT_direct 0 -j f2b-j-w-fwcmd-ap`sC`firewall-cmd --direct --remove-rules ipv4 filter f2b-j-w-fwcmd-ap`sC`firewall-cmd --direct --remove-chain ipv4 filter f2b-j-w-fwcmd-ap`sT`firewall-cmd --direct --remove-rule ipv6 filter INPUT_direct 0 -j f2b-j-w-fwcmd-ap`sC`firewall-cmd --direct --remove-rules ipv6 filter f2b-j-w-fwcmd-ap`sC`firewall-cmd --direct --remove-chain ipv6 filter f2b-j-w-fwcmd-ap`(sc`firewall-cmd --direct --get-chains ipv4 filter | sed -e 's, ,\n,g' | grep -q '^f2b-j-w-fwcmd-ap$'`(sc`firewall-cmd --direct --get-chains ipv6 filter | sed -e 's, ,\n,g' | grep -q '^f2b-j-w-fwcmd-ap$'`(s|`firewall-cmd --direct --add-rule ipv4 filter f2b-j-w-fwcmd-ap 0 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(s`firewall-cmd --direct --remove-rule ipv4 filter f2b-j-w-fwcmd-ap 0 -s 192.0.2.1 -j REJECT --reject-with icmp-port-unreachable`(s~`firewall-cmd --direct --add-rule ipv6 filter f2b-j-w-fwcmd-ap 0 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s�`firewall-cmd --direct --remove-rule ipv6 filter f2b-j-w-fwcmd-ap 0 -s 2001:db8:: -j REJECT --reject-with icmp6-port-unreachable`(s f2b-j-w-fwcmd-ipset (s f2b-j-w-fwcmd-ipset6 (s5`ipset create f2b-j-w-fwcmd-ipset hash:ip timeout 0 `s�`firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -p tcp -m multiport --dports "$(echo 'http' | sed s/:/-/g)" -m set --match-set f2b-j-w-fwcmd-ipset src -j REJECT --reject-with icmp-port-unreachable`(sB`ipset create f2b-j-w-fwcmd-ipset6 hash:ip timeout 0 family inet6`s�`firewall-cmd --direct --add-rule ipv6 filter INPUT_direct 0 -p tcp -m multiport --dports "$(echo 'http' | sed s/:/-/g)" -m set --match-set f2b-j-w-fwcmd-ipset6 src -j REJECT --reject-with icmp6-port-unreachable`(s!`ipset flush f2b-j-w-fwcmd-ipset`s"`ipset flush f2b-j-w-fwcmd-ipset6`(s�`firewall-cmd --direct --remove-rule ipv4 filter INPUT_direct 0 -p tcp -m multiport --dports "$(echo 'http' | sed s/:/-/g)" -m set --match-set f2b-j-w-fwcmd-ipset src -j REJECT --reject-with icmp-port-unreachable`s!`ipset flush f2b-j-w-fwcmd-ipset`s#`ipset destroy f2b-j-w-fwcmd-ipset`s�`firewall-cmd --direct --remove-rule ipv6 filter INPUT_direct 0 -p tcp -m multiport --dports "$(echo 'http' | sed s/:/-/g)" -m set --match-set f2b-j-w-fwcmd-ipset6 src -j REJECT --reject-with icmp6-port-unreachable`s"`ipset flush f2b-j-w-fwcmd-ipset6`s$`ipset destroy f2b-j-w-fwcmd-ipset6`(s:`ipset add f2b-j-w-fwcmd-ipset 192.0.2.1 timeout 0 -exist`(s0`ipset del f2b-j-w-fwcmd-ipset 192.0.2.1 -exist`(s<`ipset add f2b-j-w-fwcmd-ipset6 2001:db8:: timeout 0 -exist`(s2`ipset del f2b-j-w-fwcmd-ipset6 2001:db8:: -exist`(s f2b-j-w-fwcmd-ipset-ap (s f2b-j-w-fwcmd-ipset-ap6 (s8`ipset create f2b-j-w-fwcmd-ipset-ap hash:ip timeout 0 `s�`firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -p tcp -m set --match-set f2b-j-w-fwcmd-ipset-ap src -j REJECT --reject-with icmp-port-unreachable`(sE`ipset create f2b-j-w-fwcmd-ipset-ap6 hash:ip timeout 0 family inet6`s�`firewall-cmd --direct --add-rule ipv6 filter INPUT_direct 0 -p tcp -m set --match-set f2b-j-w-fwcmd-ipset-ap6 src -j REJECT --reject-with icmp6-port-unreachable`(s$`ipset flush f2b-j-w-fwcmd-ipset-ap`s%`ipset flush f2b-j-w-fwcmd-ipset-ap6`(s�`firewall-cmd --direct --remove-rule ipv4 filter INPUT_direct 0 -p tcp -m set --match-set f2b-j-w-fwcmd-ipset-ap src -j REJECT --reject-with icmp-port-unreachable`s$`ipset flush f2b-j-w-fwcmd-ipset-ap`s&`ipset destroy f2b-j-w-fwcmd-ipset-ap`s�`firewall-cmd --direct --remove-rule ipv6 filter INPUT_direct 0 -p tcp -m set --match-set f2b-j-w-fwcmd-ipset-ap6 src -j REJECT --reject-with icmp6-port-unreachable`s%`ipset flush f2b-j-w-fwcmd-ipset-ap6`s'`ipset destroy f2b-j-w-fwcmd-ipset-ap6`(s=`ipset add f2b-j-w-fwcmd-ipset-ap 192.0.2.1 timeout 0 -exist`(s3`ipset del f2b-j-w-fwcmd-ipset-ap 192.0.2.1 -exist`(s?`ipset add f2b-j-w-fwcmd-ipset-ap6 2001:db8:: timeout 0 -exist`(s5`ipset del f2b-j-w-fwcmd-ipset-ap6 2001:db8:: -exist`(s
family='ipv4'sicmp-port-unreachable(s
family='ipv6'sicmp6-port-unreachable(s�`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --add-rich-rule="rule family='ipv4' source address='192.0.2.1' port port='$p' protocol='tcp' reject type='icmp-port-unreachable'"; done`(s�`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --remove-rich-rule="rule family='ipv4' source address='192.0.2.1' port port='$p' protocol='tcp' reject type='icmp-port-unreachable'"; done`(s� `ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --add-rich-rule="rule family='ipv6' source address='2001:db8::' port port='$p' protocol='tcp' reject type='icmp6-port-unreachable'"; done`(s�`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --remove-rich-rule="rule family='ipv6' source address='2001:db8::' port port='$p' protocol='tcp' reject type='icmp6-port-unreachable'"; done`(s
family='ipv4'sicmp-port-unreachable(s
family='ipv6'sicmp6-port-unreachable(s"`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --add-rich-rule="rule family='ipv4' source address='192.0.2.1' port port='$p' protocol='tcp' log prefix='f2b-j-fwcmd-rl' level='info' limit value='1/m' reject type='icmp-port-unreachable'"; done`(s%`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --remove-rich-rule="rule family='ipv4' source address='192.0.2.1' port port='$p' protocol='tcp' log prefix='f2b-j-fwcmd-rl' level='info' limit value='1/m' reject type='icmp-port-unreachable'"; done`(s% `ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --add-rich-rule="rule family='ipv6' source address='2001:db8::' port port='$p' protocol='tcp' log prefix='f2b-j-fwcmd-rl' level='info' limit value='1/m' reject type='icmp6-port-unreachable'"; done`(s'`ports="$(echo '22:24' | sed s/:/-/g)"; for p in $(echo $ports | tr ", " " "); do firewall-cmd --remove-rich-rule="rule family='ipv6' source address='2001:db8::' port port='$p' protocol='tcp' log prefix='f2b-j-fwcmd-rl' level='info' limit value='1/m' reject type='icmp6-port-unreachable'"; done`(((((((R]R^R�R�RR$R�R�R4R3R�R�RR�R�R�RaR�R�R�R�R�R�R�R,R�R�RRR�RU(RttestJailsActionsR#R%R�R9R�ttestsR�R5RKR�R�R�RxR((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestCheckStockCommandActionsBs		
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
				
	

"
*'
'
*'
'



cCs�|}t|t�r"|d}ntjdd|�}tjdd�|d�}t|t�rn||d<n|}tjj|d|�S(Nis\)\s*\|\s*(\S*mail\b[^\n]*)s$) | cat; printf "\\n... | "; echo \1s\bADDRESSES=\$\(dig\s[^\n]+cSsdS(Ns@ADDRESSES="abuse-1@abuse-test-server, abuse-2@abuse-test-server"((tm((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR�;siR(R�R�tretsubR�R�R�(RR�RR5((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt_executeMailCmd2s
		
cCstjjdt�dddtjjtd�ddtjjtd�d	id3d6fdddtjjtd�ddtjjtd�d	id4d6fddddtjjtd�ddtjjtd�did5d6d6d6fdd d!d"id7d6d8d6ff}t�}|j	}|j
}x_|D]W\}}}|j||�}x3|D]+}	|j|	�\}
}|j
|
d(�qkWqCW|j}td)�}
td*�}t�}xE|D]=\}}}x+||jD]}||j|}tjd+d,d-�tjd.|d/|j�tjd+d,d-�|j|_x�d|
fd|ffD]�\}}|j|�s�qmn|jd0|�t|�}|jd1�|jd$d%g�tjj||�}|j|�|j d2t||�qmWq�Wq�WdS(9NR�sj-mail-whois-linessSmail-whois-lines[name=%(__name__)s, grepopts="-m 1", grepmax=2, mailcmd="mail -s", s	logpath="stestcase01.logs
s	         stestcase01a.logs8", _whois_command="echo '-- information about <ip> --'"]s;The IP 87.142.124.10 has just been banned by Fail2Ban afters(100 attempts against j-mail-whois-lines.s.Here is more information about 87.142.124.10 :s%-- information about 87.142.124.10 --s2Lines containing failures of 87.142.124.10 (max 2)setestcase01.log:Dec 31 11:59:59 [sshd] error: PAM: Authentication failure for kevin from 87.142.124.10setestcase01a.log:Dec 31 11:55:01 [sshd] error: PAM: Authentication failure for test from 87.142.124.10sip4-bansj-sendmail-whois-linessosendmail-whois-lines[name=%(__name__)s, grepopts="-m 1", grepmax=2, mailcmd='testmail -f "<sender>" "<dest>"', s,100 attempts against j-sendmail-whois-lines.sj-complain-abusesucomplain[name=%(__name__)s, grepopts="-m 1", grepmax=2, mailcmd="mail -s 'Hostname: <ip-host>, family: <family>' - ",sdebug=1,s", ]s6try to resolve 10.124.142.87.abuse-contacts.abusix.orgsymail -s Hostname: test-host, family: inet4 - Abuse from 87.142.124.10 abuse-1@abuse-test-server abuse-2@abuse-test-servershtry to resolve 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.abuse-contacts.abusix.orgs0Lines containing failures of 2001:db8::1 (max 2)swmail -s Hostname: test-host, family: inet6 - Abuse from 2001:db8::1 abuse-1@abuse-test-server abuse-2@abuse-test-serversip6-bansj-xarf-abusesAxarf-login-attack[name=%(__name__)s, mailcmd="mail", mailargs="",sdebug=1t]s8We have detected abuse from the IP address 87.142.124.10sVDec 31 11:59:59 [sshd] error: PAM: Authentication failure for kevin from 87.142.124.10sUDec 31 11:55:01 [sshd] error: PAM: Authentication failure for test from 87.142.124.10s8mail abuse-1@abuse-test-server abuse-2@abuse-test-servers6We have detected abuse from the IP address 2001:db8::1is
87.142.124.10s2001:db8::1s# R�i2s
# == %-44s ==s - s# === %s ===idR�(s;The IP 87.142.124.10 has just been banned by Fail2Ban afters(100 attempts against j-mail-whois-lines.s.Here is more information about 87.142.124.10 :s%-- information about 87.142.124.10 --s2Lines containing failures of 87.142.124.10 (max 2)setestcase01.log:Dec 31 11:59:59 [sshd] error: PAM: Authentication failure for kevin from 87.142.124.10setestcase01a.log:Dec 31 11:55:01 [sshd] error: PAM: Authentication failure for test from 87.142.124.10(s;The IP 87.142.124.10 has just been banned by Fail2Ban afters,100 attempts against j-sendmail-whois-lines.s.Here is more information about 87.142.124.10 :s%-- information about 87.142.124.10 --s2Lines containing failures of 87.142.124.10 (max 2)setestcase01.log:Dec 31 11:59:59 [sshd] error: PAM: Authentication failure for kevin from 87.142.124.10setestcase01a.log:Dec 31 11:55:01 [sshd] error: PAM: Authentication failure for test from 87.142.124.10(s6try to resolve 10.124.142.87.abuse-contacts.abusix.orgs2Lines containing failures of 87.142.124.10 (max 2)setestcase01.log:Dec 31 11:59:59 [sshd] error: PAM: Authentication failure for kevin from 87.142.124.10setestcase01a.log:Dec 31 11:55:01 [sshd] error: PAM: Authentication failure for test from 87.142.124.10symail -s Hostname: test-host, family: inet4 - Abuse from 87.142.124.10 abuse-1@abuse-test-server abuse-2@abuse-test-server(shtry to resolve 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.abuse-contacts.abusix.orgs0Lines containing failures of 2001:db8::1 (max 2)swmail -s Hostname: test-host, family: inet6 - Abuse from 2001:db8::1 abuse-1@abuse-test-server abuse-2@abuse-test-server(s6try to resolve 10.124.142.87.abuse-contacts.abusix.orgs8We have detected abuse from the IP address 87.142.124.10sVDec 31 11:59:59 [sshd] error: PAM: Authentication failure for kevin from 87.142.124.10sUDec 31 11:55:01 [sshd] error: PAM: Authentication failure for test from 87.142.124.10s8mail abuse-1@abuse-test-server abuse-2@abuse-test-server(shtry to resolve 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.abuse-contacts.abusix.orgs6We have detected abuse from the IP address 2001:db8::1s8mail abuse-1@abuse-test-server abuse-2@abuse-test-server(!R]R^R�R�RrR�R�R�RR$R�R�R4R3R�RRRR�R�R�R�R�R,R�R	t
setAttemptt
setMatchesR�R�R�RR�(RR�R#R%R�R9R�R�R�R5RKR�R�R�R�R�RxRttestR�R�((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyttestComplexMailActionMultiLogDs�9
9
=
			
		%


(RRR�R"R*R�R�R�R�R�R�R�R�R�(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyR��s				
	"	3			���(At
__author__t
__copyright__t__license__R]R`RoRrR�R RJtserver.failregexRRRR#RR�t
server.serverRtserver.ipdnsRtserver.jailRtserver.jailthreadRt
server.ticketR	tserver.utilsR
t	dummyjailRtutilsRR
RthelpersRRRR�RRRR1R�R�tdirnamet__file__R�R(R�RRRQR3tTestCaseRqRuR�R�tclientreadertestcaseR�R�R�R�(((sA/usr/lib/python2.7/site-packages/fail2ban/tests/servertestcase.pyt<module>sR

![���}	U*

Zerion Mini Shell 1.0