block 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +46 -0
- data/bin/block +3 -5
- data/lib/block.rb +3 -1
- data/lib/block/version.rb +1 -1
- metadata +4 -4
- data/README.rdoc +0 -6
data/README.markdown
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
block
|
2
|
+
=====
|
3
|
+
|
4
|
+
To install - first off make sure you have Redis available to you. Then:
|
5
|
+
|
6
|
+
gem install block
|
7
|
+
|
8
|
+
From there, here's how you run it:
|
9
|
+
|
10
|
+
NAME
|
11
|
+
block - Ruby Gem to block IP addresses that are requesting URLs you determine are bad.
|
12
|
+
|
13
|
+
SYNOPSIS
|
14
|
+
block [global options] command [command options] [arguments...]
|
15
|
+
|
16
|
+
VERSION
|
17
|
+
0.0.9
|
18
|
+
|
19
|
+
GLOBAL OPTIONS
|
20
|
+
-d, --[no-]disable - Disable adding firewall rules
|
21
|
+
-e, --expiry=10 - Expiry time in seconds (default: 10)
|
22
|
+
-f, --file=filename.txt - The filename to watch (default: none)
|
23
|
+
--help - Show this message
|
24
|
+
-r, --redis=redis://127.0.0.1:6379 - Redis server location (default: redis://127.0.0.1:6379)
|
25
|
+
-s, --search=passwd,acunetrix - The searches - separated by commas. (default: none)
|
26
|
+
-t, --threshold=30 - Block threshold number (default: 30)
|
27
|
+
--version -
|
28
|
+
|
29
|
+
COMMANDS
|
30
|
+
help - Shows a list of commands or help for one command
|
31
|
+
watch - Watch and (optionally) block bad IP addresses
|
32
|
+
|
33
|
+
Monitor an Apache logfile and block IP addresses that are requesting pages that match strings you pass on the command line.
|
34
|
+
|
35
|
+
block -f logfile-to-watch.txt -s passwd,acunetrix watch
|
36
|
+
|
37
|
+
We watch the logs and increment a counter each time there's a match for a particular IP address and string, once they hit a certain number of matches they're blocked using Linux's iptables.
|
38
|
+
|
39
|
+
If you're not sure whether it's tuned correctly, you can run it with the `-d` flag and watch what **would** happen.
|
40
|
+
|
41
|
+
Requires
|
42
|
+
--------
|
43
|
+
|
44
|
+
Ruby 1.8.7 or 1.9.x
|
45
|
+
|
46
|
+
Redis
|
data/bin/block
CHANGED
@@ -4,8 +4,6 @@ require 'block'
|
|
4
4
|
|
5
5
|
include GLI::App
|
6
6
|
|
7
|
-
$redis = Redis.new
|
8
|
-
|
9
7
|
program_desc 'Ruby Gem to block IP addresses that are requesting URLs you determine are bad.'
|
10
8
|
|
11
9
|
version Block::VERSION
|
@@ -19,8 +17,8 @@ arg_name 'filename.txt'
|
|
19
17
|
flag [:f,:file]
|
20
18
|
|
21
19
|
desc 'Redis server location'
|
22
|
-
arg_name '127.0.0.1:6379'
|
23
|
-
default_value '127.0.0.1:6379'
|
20
|
+
arg_name 'redis://127.0.0.1:6379'
|
21
|
+
default_value 'redis://127.0.0.1:6379'
|
24
22
|
flag [:r,:redis]
|
25
23
|
|
26
24
|
desc 'Expiry time in seconds'
|
@@ -44,7 +42,7 @@ pre do |global,command,options,args|
|
|
44
42
|
searches = check_for_searches(global)
|
45
43
|
|
46
44
|
# Make sure redis is available.
|
47
|
-
redis = check_for_redis
|
45
|
+
redis = check_for_redis(global)
|
48
46
|
end
|
49
47
|
|
50
48
|
desc 'Watch and (optionally) block bad IP addresses'
|
data/lib/block.rb
CHANGED
@@ -5,7 +5,9 @@ require 'redis'
|
|
5
5
|
# Add requires for other files you add to your project here, so
|
6
6
|
# you just need to require this one file in your bin file
|
7
7
|
|
8
|
-
def check_for_redis
|
8
|
+
def check_for_redis(args)
|
9
|
+
uri = URI.parse(args[:redis])
|
10
|
+
$redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
|
9
11
|
begin
|
10
12
|
$redis.ping
|
11
13
|
true
|
data/lib/block/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: block
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -145,14 +145,14 @@ executables:
|
|
145
145
|
- block
|
146
146
|
extensions: []
|
147
147
|
extra_rdoc_files:
|
148
|
-
- README.
|
148
|
+
- README.markdown
|
149
149
|
- block.rdoc
|
150
150
|
files:
|
151
151
|
- bin/block
|
152
152
|
- lib/block/version.rb
|
153
153
|
- lib/block/reader.rb
|
154
154
|
- lib/block.rb
|
155
|
-
- README.
|
155
|
+
- README.markdown
|
156
156
|
- block.rdoc
|
157
157
|
homepage: https://github.com/darron/block
|
158
158
|
licenses: []
|
@@ -161,7 +161,7 @@ rdoc_options:
|
|
161
161
|
- --title
|
162
162
|
- block
|
163
163
|
- --main
|
164
|
-
- README.
|
164
|
+
- README.markdown
|
165
165
|
- -ri
|
166
166
|
require_paths:
|
167
167
|
- lib
|