Yaroslav Halchenko
ba042c6e3a
ENH: move pyinotify callback debug message into callback + delay string interpolations
2013-03-25 23:05:55 -04:00
Yaroslav Halchenko
c29553354b
ENH: FailManager -- improve log message to report total # of detected failures as well
2013-03-25 23:05:47 -04:00
Yaroslav Halchenko
5ea2ab14e6
ENH: elaborated debug log message about already detected failures
...
Now it should be evaluated only if logging mode is debug or "lower", and also
should happen not only on initial detections but for every added failure.
It also reports counts per each IP now
2013-03-25 23:05:47 -04:00
Yaroslav Halchenko
3b4084d471
BF: fixing up for handling of TAI64N timestamps and adding some unittest for prev commit (not effective much though)
2013-03-25 10:41:13 -04:00
Yaroslav Halchenko
7813340e1c
Merge branch 'master' of https://github.com/sebres/fail2ban
...
* 'master' of https://github.com/sebres/fail2ban :
invalid date recognition, irregular because of sorting template list, now via setRegex
invalid date recognition, irregular because of sorting template list (sometimes not reproducible by fail2ban-regex, cause will be not sorted)
2013-03-25 10:00:55 -04:00
Yaroslav Halchenko
e3d3a6ac02
Merge branch 'datedetector-testcase' of https://github.com/kwirk/fail2ban
...
* 'datedetector-testcase' of https://github.com/kwirk/fail2ban :
Correct datedetector testcases for TAI64N format
Additional date/time formats for datedetector testcases
2013-03-22 20:27:39 -04:00
Steven Hiscocks
7a442f079f
BF: When changing log target with python2.{4,5} handle KeyError
2013-03-22 21:19:31 +00:00
Steven Hiscocks
883892a683
Additional date/time formats for datedetector testcases
...
Also made a note that some workarounds for certain date/time formats
may cause week/year day to be incorrect. This does not affect
functionality of fail2ban so no urgency to fix.
2013-03-16 17:55:22 +00:00
sebres
b6bb2f88c1
invalid date recognition, irregular because of sorting template list, now via setRegex
2013-03-11 13:52:31 +01:00
Yaroslav Halchenko
be42522bba
Merge branch 'transmitter-testcase' of https://github.com/kwirk/fail2ban
...
* 'transmitter-testcase' of https://github.com/kwirk/fail2ban :
Added additional Transmitter tests, and some associated fixes
2013-03-10 21:23:04 -04:00
Yaroslav Halchenko
5e5eaaf838
Merge pull request #134 from grooverdan/misc-fixes
...
BF: fail2ban client can't handle multi word setcinfo or action[*] values
2013-03-10 18:01:17 -07:00
Pascal Borreli
a2b29b4875
Fixed typos
2013-03-10 22:05:33 +00:00
Steven Hiscocks
4bbbc07872
Added additional Transmitter tests, and some associated fixes
...
This includes some tweaks such that errors are raised for certain
commands
2013-03-10 14:55:39 +00:00
Daniel Black
23bbc60b1c
do catch all exception
2013-03-10 17:10:40 +11:00
Daniel Black
f0610c01d5
BF: allow more than single word for command action[start,stop,ban,unban,check] and for setcinfo too
2013-03-10 15:29:48 +11:00
Daniel Black
c8c7b0b984
BF: general Exception catch was excessive. Only IOError and OSError are possible and has different meanings
2013-03-10 15:29:27 +11:00
Daniel Black
3665e6dc44
Add development documentation and framework for code coverage measurement
2013-03-10 15:18:42 +11:00
sebres
d17b415371
invalid date recognition, irregular because of sorting template list (sometimes not reproducible by fail2ban-regex, cause will be not sorted)
...
date in following log line (from nginx) will be wrong detected:
2012/10/11 02:37:17 [error] 18434#0: *947 user "test" was not found in "/www/...", client: 192.168.1.5, ...
sometimes it is [correct] - 2012/10/11 (%Y/%m/%d) = 1349919861.71
sometimes it is [invalid] - 12/10/11 (%d/%m/%y) = 1349915838.06
and older as now - 1800 seconds (therefore will be not found)
solution: regular expression fixed, cause date in log used always after non symbol (\W) character, so r"\d{2}/\d{2}/\d{2}" will be r"(?<!\w)\d{2}/\d{2}/\d{2}".
2013-03-05 00:02:39 +01:00
Yaroslav Halchenko
59c35bc44a
Downgrade log rotation detection message to DEBUG level from INFO. Closes: gh-129
...
This message useful only when debugging problems so it is more reasonable
to have it suppressed otherwise
2013-03-01 19:57:56 -05:00
Yaroslav Halchenko
154aa38e3f
BF: do not shutdown logging until all jails stop -- so move into Server.quit()
...
Together with previous commit it should resolve failures with the server tests on python < 2.6
2013-02-21 20:59:46 -05:00
Yaroslav Halchenko
012264dce1
BF: safeguard closing of log handlers + close in reverse order
...
otherwise there might be "stuck" handler in the queue. and closing
exceptions can occur -- even stock logging guards in recent versions
2013-02-21 20:58:27 -05:00
Steven Hiscocks
b36835f6f0
Added transmitter get cinfo option for action
2013-02-20 23:33:39 +00:00
Steven Hiscocks
b6a68f5138
Fix for missing value in transmitter delaction
2013-02-20 23:24:46 +00:00
Steven Hiscocks
ce3ab34dd8
Added ability to specify PID file
2013-02-17 22:14:01 +00:00
Yaroslav Halchenko
f8983872ad
BF: return str(host) to avoid spurious characters in the logs (Close gh-113)
...
thanks to opoplawski@github
2013-02-01 16:24:04 -05:00
Yaroslav Halchenko
acab23bdfe
RF: move exceptions used by both client and server into common/exceptions.py
...
this prevents importing of server while operating with client only
2013-01-28 09:46:50 -05:00
Yaroslav Halchenko
6b2e76ba7f
BF: pyinotify - use bitwise op on masks and do not try tracking newly created directories
2013-01-25 16:06:41 -05:00
blotus
96eb8986cc
Escape ' and " in matches tag
2013-01-25 13:37:22 +01:00
Daniel Black
fd7929863b
name -> IP is a normal DNS lookup not a reverse
2012-12-12 21:59:01 +11:00
Yaroslav Halchenko
67145d8b78
ENH: assure that all date templates have unique names
2012-12-11 11:18:52 -05:00
Yaroslav Halchenko
d1625253eb
ENH: debug msgs on which template was taken (+ use "is" for None comparisons)
2012-12-11 11:18:52 -05:00
Yaroslav Halchenko
2b6366656f
BF: make sorting of date templates stable
...
Before, it would first do stable sort followed with explicit reverse.
Now reverse is given as an argument to sort, and it results in actually
preserving the order in case of e.g. no sorting needed
2012-12-11 11:18:52 -05:00
Yaroslav Halchenko
37a2e59d69
BF: guarantee that IP is stored as a base, non-unicode str (Closes gh-91)
...
Otherwise it might lead to spurious characters dumped into the
terminal at few places, unless casted upon every use in the logs. To
prevent those issues in the source, store IP as a basic string if it
is a string at all
2012-11-26 12:01:42 -05:00
Yaroslav Halchenko
f10537941b
ENH: To help with gh-87 added hints into the log on some failure return codes (e.g. 0x7f00 for this one)
2012-11-07 11:33:17 -05:00
Yaroslav Halchenko
b159eabb51
BF: do not enable pyinotify backend if pyinotify is too old (Closes gh-80)
2012-11-06 13:14:42 -05:00
Yaroslav Halchenko
f52ba9923a
ENH: downgrade "already banned" from WARN to INFO level (Closes gh-79)
...
Most of the time it is a benign latency effect so nothing to warn about.
2012-11-05 21:30:07 -05:00
David Engeset
2d672d1c81
Added in while loop to process the Fail Manager after the requested banned IP was added to its queue. This solves the issue of needing to touch the log file that is being monitored to get the IP to be banned accordingly. Added in import of FailManagerEmpty exception class.
2012-11-05 20:38:40 -05:00
Yaroslav Halchenko
f14c7ae401
ENH: refactored previous commit to make it more Pythonic (With prev commit closes gh-86, gh-81)
2012-11-05 20:37:06 -05:00
David Engeset
6288ec2757
Added in command option to unban and IP, just like using 'banip'. Command looks like: fail2ban-client set <jail name> unbanip <ip>
2012-11-05 20:11:28 -05:00
Yaroslav Halchenko
8e64c281dd
BF: in code we should use MyTime wrapper instead of time module directly
...
to allow for some tests to work correctly
2012-11-05 20:09:15 -05:00
Yaroslav Halchenko
09355663f7
BF: (python 2.4) -- access to staticmethod should go via Class
...
TODO: get away from using all those staticmethods in f2b
2012-11-05 16:54:19 -05:00
Yaroslav Halchenko
5becaf8ef2
BF: (python 2.[45]) store backends names in a list to use .index later on (Closes gh-83)
...
.index() got into tuple's API only in 2.6
2012-11-01 15:34:20 -04:00
Yaroslav Halchenko
83109bce14
BF: escape the content of <matches> since its value could contain arbitrary symbols
2012-10-08 22:14:51 -04:00
Yaroslav Halchenko
2d66f31ef5
ENH: instead of "Invalid command" warning log exception why command failed
2012-08-02 19:48:59 -04:00
Yaroslav Halchenko
c6f5d854d3
ENH+BF: filtergamin -- to be more inline with current design of filterinotify
2012-07-19 23:07:43 -04:00
Yaroslav Halchenko
d9248a6cf8
BF+RF: pyinotify refreshes watcher upon CREATE, unified/simplified *(add|del)LogPath among *Filters
...
* all of the *Filters had too much of common logic in their *LogPath
methods, which is now handled by FileFilter and derived classes only
add custom actions in corresponding _(add|del)LogPath methods
pyinotify:
* upon CREATE event:
- unknown files should not be handled at all
- "watcher" for the monitored files should be recreated.
Lead to adding _(add|del)FileWatcher helper methods
* callback now obtains full event to judge what to do
2012-07-19 17:26:09 -04:00
Yaroslav Halchenko
3c95121a8b
BF: pyinotify -- monitor the parent directory for IN_CREATE + process freshly added file (Closes gh-44)
2012-07-19 13:28:48 -04:00
Yaroslav Halchenko
baa09098f0
RF/BF: just use pyinotify.ThreadedNotifier thread in filterpyinotify
...
that seems also to overcome the problem of often locking upon stop()
2012-07-19 01:14:02 -04:00
Yaroslav Halchenko
25674a95f8
RF: filter.py -- single readline in a loop
2012-07-19 01:10:59 -04:00
Yaroslav Halchenko
b3614d4ea2
ENH: FilterPoll -- adjusted some msgs + allowed to operate without jail (for testing)
2012-07-19 01:08:34 -04:00