commit 28cca31e3f4cf1d19926982130d63c2f4efe764b Author: Yaroslav Halchenko Date: Wed Jul 6 23:10:19 2005 +0000 [svn-inject] Installing original source of fail2ban diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 00000000..6cbe1675 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,66 @@ + __ _ _ ___ _ + / _|__ _(_) |_ ) |__ __ _ _ _ + | _/ _` | | |/ /| '_ \/ _` | ' \ + |_| \__,_|_|_/___|_.__/\__,_|_||_| + +============================================================= +Fail2Ban (version 0.4.1) 06/30/2005 +============================================================= + +ver. 0.4.1 (06/30/2005) - stable +---------- +- Fixed textToDNS method which generated wrong matches for + "rhost=12-xyz...". Thanks to Tom Pike +- fail2ban.conf modified for readability. Thanks to Iain Lea +- Added an initd script for Gentoo +- Changed default PID lock file location from /tmp to + /var/run + +ver. 0.4.0 (04/24/2005) - stable +---------- +- Fixed textToDNS which did not recognize strings like + "12-345-67-890.abcd.mnopqr.xyz" + +ver. 0.3.1 (03/31/2005) - beta +---------- +- Corrected level of messages +- Added DNS lookup support +- Improved parsing speed. Only parse the new log messages +- Added a second verbose level (-vv) + +ver. 0.3.0 (02/24/2005) - beta +---------- +- Re-writting of parts of the code in order to handle several + log files with different rules +- Removed sshd.py because it is no more needed +- Fixed a bug when exiting with IP in the ban list +- Added PID lock file +- Improved some parts of the code +- Added ipfw-start-rule option (thanks to Robert Edeker) +- Added -k option which kills a currently running Fail2Ban + +ver. 0.1.2 (11/21/2004) - beta +---------- +- Add ipfw and ipfwadm support. The rules are taken from + BlockIt. Thanks to Robert Edeker +- Add -e option which allows to set the interface. Thanks to + Robert Edeker who reminded me this +- Small code cleaning + +ver. 0.1.1 (10/23/2004) - beta +---------- +- Add SIGTERM handler in order to exit nicely when in daemon + mode +- Add -r option which allows to set the maximum number of + login failures +- Remove the Metalog class as the log file are not so syslog + daemon specific +- Rewrite log reader to be service centered. Sshd support + added. Match "Failed password" and "Illegal user" +- Add /etc/fail2ban.conf configuration support +- Code documentation + + +ver. 0.1.0 (10/12/2004) - alpha +---------- +- Initial release diff --git a/PKG-INFO b/PKG-INFO new file mode 100644 index 00000000..8f5e3a57 --- /dev/null +++ b/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: fail2ban +Version: 0.4.1 +Summary: Ban IPs that make too many password failure +Home-page: http://www.sourceforge.net/projects/fail2ban +Author: Cyril Jaquier +Author-email: lostcontrol@users.sourceforge.net +License: UNKNOWN +Description: UNKNOWN +Platform: UNKNOWN diff --git a/README b/README new file mode 100644 index 00000000..7882c60d --- /dev/null +++ b/README @@ -0,0 +1,145 @@ + __ _ _ ___ _ + / _|__ _(_) |_ ) |__ __ _ _ _ + | _/ _` | | |/ /| '_ \/ _` | ' \ + |_| \__,_|_|_/___|_.__/\__,_|_||_| + +============================================================= +Fail2Ban (version 0.4.1) 06/30/2005 +============================================================= + +Fail2Ban scans log files like /var/log/pwdfail and bans IP +that makes too many password failures. It updates firewall +rules to reject the IP address. Currently iptables, ipfw and +ipfwadm are supported. Fail2Ban can read multiple log files +such as sshd or Apache web server ones. It needs log4py. + +This is my first Python program. Moreover, English is not my +mother tongue... + + +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. 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, ...). It should also support +others firewalls than iptables. + + +Installation: +------------- + +Require: python-2.3 (http://www.python.org) + log4py-1.1 (http://sourceforge.net/projects/log4py) + +To install, just do: + +> tar xvfj fail2ban-0.4.1.tar.bz2 +> cd fail2ban-0.4.1 +> python setup.py install + +This will install Fail2Ban into /usr/lib/fail2ban. The +fail2ban.py executable is placed into /usr/bin. + +For Gentoo users, an ebuild is available on the website. + +Fail2Ban should now be correctly installed. Just type: + +> fail2ban.py -h + +to see if everything is alright. You can configure fail2ban +with a config file. Copy config/fail2ban.conf.default to +/etc/fail2ban.conf. + +Gentoo users can use the initd script available in config/. +Copy gentoo-initd to /etc/init.d/fail2ban and gentoo-confd +to /etc/conf.d/fail2ban. You can start fail2ban and add it +to your default runlevel: + +> /etc/init.d/fail2ban start +> rc-update add fail2ban default + +Configuration: +-------------- + +You can configure fail2ban using the file /etc/fail2ban.conf +or using command line options. Command line options override +the value stored in fail2ban.conf. Here are the command line +options: + + -b start fail2ban in background + -d start fail2ban in debug mode + -e ban IP on the INTF interface + -c read configuration file FILE + -p create PID lock in FILE + -h display this help message + -i IP(s) to ignore + -k kill a currently running Fail2Ban instance + -l log message in FILE + -r allow a max of VALUE password failure + -t