mirror of https://github.com/fail2ban/fail2ban
- Updated
git-svn-id: https://fail2ban.svn.sourceforge.net/svnroot/fail2ban/trunk@346 a942ae1a-1317-0410-a47c-b1dcaea8d6050.x
parent
4eb611dd46
commit
df26a74d53
|
@ -4,10 +4,10 @@
|
||||||
|_| \__,_|_|_/___|_.__/\__,_|_||_|
|
|_| \__,_|_|_/___|_.__/\__,_|_||_|
|
||||||
|
|
||||||
=============================================================
|
=============================================================
|
||||||
Fail2Ban (version 0.7.2) 2006/??/??
|
Fail2Ban (version 0.7.2) 2006/09/10
|
||||||
=============================================================
|
=============================================================
|
||||||
|
|
||||||
ver. 0.7.2 (2006/??/??) - ???
|
ver. 0.7.2 (2006/09/10) - beta
|
||||||
----------
|
----------
|
||||||
- Refactoring and code cleanup
|
- Refactoring and code cleanup
|
||||||
- Improved client output
|
- Improved client output
|
||||||
|
@ -21,7 +21,7 @@ ver. 0.7.2 (2006/??/??) - ???
|
||||||
- Added "fail2ban-regex". This is a tool to help finding
|
- Added "fail2ban-regex". This is a tool to help finding
|
||||||
"failregex"
|
"failregex"
|
||||||
- Improved server communication. Start a new thread for each
|
- Improved server communication. Start a new thread for each
|
||||||
incoming request
|
incoming request. Fail2ban is not really thread-safe yet
|
||||||
|
|
||||||
ver. 0.7.1 (2006/08/23) - alpha
|
ver. 0.7.1 (2006/08/23) - alpha
|
||||||
----------
|
----------
|
||||||
|
|
23
MANIFEST
23
MANIFEST
|
@ -5,11 +5,11 @@ fail2ban-client
|
||||||
fail2ban-server
|
fail2ban-server
|
||||||
fail2ban-testcases
|
fail2ban-testcases
|
||||||
fail2ban-regex
|
fail2ban-regex
|
||||||
client/beautifier.py
|
|
||||||
client/configreader.py
|
client/configreader.py
|
||||||
client/jailreader.py
|
client/jailreader.py
|
||||||
client/fail2banreader.py
|
client/fail2banreader.py
|
||||||
client/jailsreader.py
|
client/jailsreader.py
|
||||||
|
client/beautifier.py
|
||||||
client/filterreader.py
|
client/filterreader.py
|
||||||
client/actionreader.py
|
client/actionreader.py
|
||||||
client/__init__.py
|
client/__init__.py
|
||||||
|
@ -18,43 +18,44 @@ client/csocket.py
|
||||||
server/ssocket.py
|
server/ssocket.py
|
||||||
server/banticket.py
|
server/banticket.py
|
||||||
server/filter.py
|
server/filter.py
|
||||||
server/datedetector.py
|
|
||||||
server/datetemplate.py
|
|
||||||
server/server.py
|
server/server.py
|
||||||
|
server/datestrptime.py
|
||||||
server/failticket.py
|
server/failticket.py
|
||||||
server/actions.py
|
server/actions.py
|
||||||
|
server/datetai64n.py
|
||||||
server/faildata.py
|
server/faildata.py
|
||||||
server/failmanager.py
|
server/failmanager.py
|
||||||
|
server/datedetector.py
|
||||||
server/jailthread.py
|
server/jailthread.py
|
||||||
server/transmitter.py
|
server/transmitter.py
|
||||||
server/action.py
|
server/action.py
|
||||||
server/ticket.py
|
server/ticket.py
|
||||||
server/jail.py
|
server/jail.py
|
||||||
server/__init__.py
|
server/__init__.py
|
||||||
|
server/dateepoch.py
|
||||||
server/banmanager.py
|
server/banmanager.py
|
||||||
setup.py
|
server/datetemplate.py
|
||||||
setup.cfg
|
|
||||||
testcases/banmanagertestcase.py
|
testcases/banmanagertestcase.py
|
||||||
testcases/failmanagertestcase.py
|
testcases/failmanagertestcase.py
|
||||||
testcases/clientreadertestcase.py
|
testcases/clientreadertestcase.py
|
||||||
testcases/filtertestcase.py
|
testcases/filtertestcase.py
|
||||||
testcases/__init__.py
|
testcases/__init__.py
|
||||||
|
testcases/datedetectortestcase.py
|
||||||
testcases/servertestcase.py
|
testcases/servertestcase.py
|
||||||
testcases/files/testcase01.log
|
setup.py
|
||||||
testcases/files/testcase02.log
|
setup.cfg
|
||||||
version.py
|
version.py
|
||||||
config/jail.conf
|
config/jail.conf
|
||||||
|
config/filter.d/postfix.conf
|
||||||
config/filter.d/vsftpd.conf
|
config/filter.d/vsftpd.conf
|
||||||
config/filter.d/apache-auth.conf
|
config/filter.d/apache-auth.conf
|
||||||
config/filter.d/sshd.conf
|
|
||||||
config/filter.d/couriersmtp.conf
|
|
||||||
config/filter.d/qmail.conf
|
config/filter.d/qmail.conf
|
||||||
config/filter.d/postfix.conf
|
config/filter.d/couriersmtp.conf
|
||||||
|
config/filter.d/sshd.conf
|
||||||
config/action.d/iptables.conf
|
config/action.d/iptables.conf
|
||||||
config/action.d/mail-whois.conf
|
config/action.d/mail-whois.conf
|
||||||
config/action.d/dummy.conf
|
config/action.d/dummy.conf
|
||||||
config/action.d/mail.conf
|
config/action.d/mail.conf
|
||||||
config/action.d/mail-report.conf
|
|
||||||
config/action.d/hostsdeny.conf
|
config/action.d/hostsdeny.conf
|
||||||
config/fail2ban.conf
|
config/fail2ban.conf
|
||||||
files/gentoo-initd
|
files/gentoo-initd
|
||||||
|
|
51
README
51
README
|
@ -4,7 +4,7 @@
|
||||||
|_| \__,_|_|_/___|_.__/\__,_|_||_|
|
|_| \__,_|_|_/___|_.__/\__,_|_||_|
|
||||||
|
|
||||||
=============================================================
|
=============================================================
|
||||||
Fail2Ban (version 0.7.1) 2006/08/23
|
Fail2Ban (version 0.7.2) 2006/09/10
|
||||||
=============================================================
|
=============================================================
|
||||||
|
|
||||||
Fail2Ban scans log files like /var/log/pwdfail and bans IP
|
Fail2Ban scans log files like /var/log/pwdfail and bans IP
|
||||||
|
@ -13,43 +13,8 @@ rules to reject the IP address. These rules can be defined by
|
||||||
the user. Fail2Ban can read multiple log files such as sshd
|
the user. Fail2Ban can read multiple log files such as sshd
|
||||||
or Apache web server ones.
|
or Apache web server ones.
|
||||||
|
|
||||||
This is my first Python program. Moreover, English is not my
|
Documentation, FAQ, HOWTOs are available on the project
|
||||||
mother tongue...
|
website: http://fail2ban.sourceforge.net
|
||||||
|
|
||||||
|
|
||||||
More details:
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Fail2Ban is rather simple. I have a home server connected to
|
|
||||||
the Internet which runs apache, samba, sshd, ... I see in my
|
|
||||||
logs that people are trying to log into my box using "manual"
|
|
||||||
brute force or scripts. They try 10, 20 and sometimes more
|
|
||||||
user/password (without success anyway). In order to
|
|
||||||
discourage these script kiddies, I wanted that sshd refuse
|
|
||||||
login from a specific ip after 3 password failures. After
|
|
||||||
some Google searches, I found that sshd was not able of that.
|
|
||||||
So I search for a script or program that do it. I found
|
|
||||||
nothing :-( So I decide to write mine and to learn Python :-)
|
|
||||||
|
|
||||||
For each sections defined in the configuration file, Fail2Ban
|
|
||||||
tries to find lines which match the failregex. Then it
|
|
||||||
retrieves the message time using timeregex and timepattern.
|
|
||||||
It finally gets the ip and if it has already done 3 or more
|
|
||||||
password failures in the last banTime, the ip is banned for
|
|
||||||
banTime using a firewall rule. This rule is set by the user
|
|
||||||
in the configuration file. Thus, Fail2Ban can be adapted for
|
|
||||||
lots of firewall. After banTime, the rule is deleted. Notice
|
|
||||||
that if no "plain" ip is available, Fail2Ban try to do DNS
|
|
||||||
lookup in order to found one or several ip's to ban.
|
|
||||||
|
|
||||||
Sections can be freely added so it is possible to monitor
|
|
||||||
several daemons at the same time.
|
|
||||||
|
|
||||||
Runs on my server and does its job rather well :-) The idea
|
|
||||||
is to make fail2ban usable with daemons and services that
|
|
||||||
require a login (sshd, telnetd, ...) and with different
|
|
||||||
firewalls.
|
|
||||||
|
|
||||||
|
|
||||||
Installation:
|
Installation:
|
||||||
-------------
|
-------------
|
||||||
|
@ -58,8 +23,8 @@ Require: python-2.4 (http://www.python.org)
|
||||||
|
|
||||||
To install, just do:
|
To install, just do:
|
||||||
|
|
||||||
> tar xvfj fail2ban-0.7.1.tar.bz2
|
> tar xvfj fail2ban-0.7.2.tar.bz2
|
||||||
> cd fail2ban-0.7.1
|
> cd fail2ban-0.7.2
|
||||||
> python setup.py install
|
> python setup.py install
|
||||||
|
|
||||||
This will install Fail2Ban into /usr/lib/fail2ban. The
|
This will install Fail2Ban into /usr/lib/fail2ban. The
|
||||||
|
@ -106,6 +71,7 @@ options (not complete yet):
|
||||||
|
|
||||||
-c <DIR> configuration directory
|
-c <DIR> configuration directory
|
||||||
-d dump configuration. For debugging
|
-d dump configuration. For debugging
|
||||||
|
-i interactive mode
|
||||||
-v increase verbosity
|
-v increase verbosity
|
||||||
-q decrease verbosity
|
-q decrease verbosity
|
||||||
-x force execution of the server
|
-x force execution of the server
|
||||||
|
@ -121,14 +87,13 @@ Website: http://fail2ban.sourceforge.net
|
||||||
|
|
||||||
Cyril Jaquier: <lostcontrol@users.sourceforge.net>
|
Cyril Jaquier: <lostcontrol@users.sourceforge.net>
|
||||||
|
|
||||||
|
|
||||||
Thanks:
|
Thanks:
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Kévin Drapel, Marvin Rouge, Sireyessire, Robert Edeker,
|
Kévin Drapel, Marvin Rouge, Sireyessire, Robert Edeker,
|
||||||
Tom Pike, Iain Lea, Andrey G. Grozin, Yaroslav Halchenko,
|
Tom Pike, Iain Lea, Andrey G. Grozin, Yaroslav Halchenko,
|
||||||
Jonathan Kamens, Stephen Gildea, Markus Hoffmann, Mark
|
Jonathan Kamens, Stephen Gildea, Markus Hoffmann, Mark
|
||||||
Edgington, Patrick Börjesson, kojiro, zugeschmiert
|
Edgington, Patrick Börjesson, kojiro, zugeschmiert
|
||||||
|
|
||||||
License:
|
License:
|
||||||
--------
|
--------
|
||||||
|
|
10
TODO
10
TODO
|
@ -13,7 +13,9 @@ Legend:
|
||||||
# partially done
|
# partially done
|
||||||
* done
|
* done
|
||||||
|
|
||||||
- Is there a do...while loop in Python? For interactive mode
|
- Verify TAI64N
|
||||||
|
|
||||||
|
* Is there a do...while loop in Python? For interactive mode
|
||||||
|
|
||||||
# implement all get/set functions
|
# implement all get/set functions
|
||||||
|
|
||||||
|
@ -23,7 +25,7 @@ Legend:
|
||||||
|
|
||||||
* add a reload option to fail2ban-client
|
* add a reload option to fail2ban-client
|
||||||
|
|
||||||
- see Feature Request Tracking System at SourceForge.net
|
# see Feature Request Tracking System at SourceForge.net
|
||||||
|
|
||||||
* findall in dns.py should be no more needed
|
* findall in dns.py should be no more needed
|
||||||
|
|
||||||
|
@ -39,7 +41,7 @@ Legend:
|
||||||
|
|
||||||
* better configuration files
|
* better configuration files
|
||||||
|
|
||||||
- add a check to see if the time of the log messages is
|
* add a check to see if the time of the log messages is
|
||||||
correctly detected (valid regexp)
|
correctly detected (valid regexp)
|
||||||
|
|
||||||
* remove debug mode (root check)
|
* remove debug mode (root check)
|
||||||
|
@ -95,7 +97,7 @@ Legend:
|
||||||
Should we start one thread per file or just one thread per
|
Should we start one thread per file or just one thread per
|
||||||
serivce?
|
serivce?
|
||||||
|
|
||||||
- autodetect date format in log file. Match the most popular
|
# autodetect date format in log file. Match the most popular
|
||||||
format and sort them using the hit ratio. Should avoid
|
format and sort them using the hit ratio. Should avoid
|
||||||
user problem with regex and not have a big impact on perfs.
|
user problem with regex and not have a big impact on perfs.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue