Compare commits
708
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbce121967 | ||
|
|
6f4e542eff | ||
|
|
47441d1383 | ||
|
|
86a5f42f73 | ||
|
|
a33207bf87 | ||
|
|
eb6cc726ff | ||
|
|
cb662e2368 | ||
|
|
98dc0844ce | ||
|
|
97e01985a8 | ||
|
|
3f9859a127 | ||
|
|
05fcb1f104 | ||
|
|
270ea363d3 | ||
|
|
b912d61ccb | ||
|
|
5d526bbeb1 | ||
|
|
7b5dc9f24f | ||
|
|
fc5f729f01 | ||
|
|
4f636eb0e3 | ||
|
|
bfaf33b6ba | ||
|
|
2c158fe168 | ||
|
|
caa851e5c8 | ||
|
|
8f521b8551 | ||
|
|
0e1f8f7f39 | ||
|
|
96c20c8379 | ||
|
|
c58c4de9bc | ||
|
|
8b2f0678a7 | ||
|
|
249e169d8e | ||
|
|
544cfaff2c | ||
|
|
b1c04f5fa2 | ||
|
|
decea64cf9 | ||
|
|
8b62353ab0 | ||
|
|
3bd36ba40a | ||
|
|
b0f26fa391 | ||
|
|
87703c4cfe | ||
|
|
c516e8a010 | ||
|
|
de72ec0d39 | ||
|
|
35a03c0f86 | ||
|
|
33564948cc | ||
|
|
90648029d2 | ||
|
|
b132bd8137 | ||
|
|
6dae59a50c | ||
|
|
97bd9b96e8 | ||
|
|
7a027df1f3 | ||
|
|
df08b2ff18 | ||
|
|
ae9b13be20 | ||
|
|
af854eec4d | ||
|
|
a133d79380 | ||
|
|
5d95fcb718 | ||
|
|
1d23a4dc4f | ||
|
|
7376bb4321 | ||
|
|
c8694d8adf | ||
|
|
cc4ea850fe | ||
|
|
82c1ed3979 | ||
|
|
af088eefce | ||
|
|
e2b9cb01f5 | ||
|
|
f86ec8020f | ||
|
|
f04bae1366 | ||
|
|
05dc81d880 | ||
|
|
ba5a3fdf4a | ||
|
|
051f090313 | ||
|
|
e2caa2b220 | ||
|
|
02effb1b0c | ||
|
|
34c3264f2c | ||
|
|
493c441bcb | ||
|
|
90642725fa | ||
|
|
d583637c50 | ||
|
|
30fe2ce7ba | ||
|
|
0c24daeb10 | ||
|
|
19a472928d | ||
|
|
4dba65f685 | ||
|
|
2d068572bc | ||
|
|
7d8dc0f322 | ||
|
|
b2f5a79eeb | ||
|
|
8f54c1990a | ||
|
|
a4ab39ea82 | ||
|
|
93f30fe4f6 | ||
|
|
521f8062bc | ||
|
|
128c4c978d | ||
|
|
965c07cb26 | ||
|
|
8960b5734a | ||
|
|
278b49f52d | ||
|
|
01d637e9c0 | ||
|
|
b89e6ca770 | ||
|
|
39699896aa | ||
|
|
3ed3c3af3d | ||
|
|
8811f4c5a8 | ||
|
|
b4b7fa6c60 | ||
|
|
6e6b1f1355 | ||
|
|
5b431f18dd | ||
|
|
2e3eb926a5 | ||
|
|
e3d068fcf8 | ||
|
|
39bc2e34f1 | ||
|
|
30adad2029 | ||
|
|
4361f4c869 | ||
|
|
8332f6a3af | ||
|
|
414a1f0a84 | ||
|
|
a0b20c642c | ||
|
|
7b24a7a599 | ||
|
|
f2d75f612a | ||
|
|
d59c41197e | ||
|
|
b94dede5d5 | ||
|
|
76cdacf43a | ||
|
|
d9826d2a2d | ||
|
|
9b18768192 | ||
|
|
1f78630865 | ||
|
|
6c4aeaedc5 | ||
|
|
b951ad78c4 | ||
|
|
3754a48b24 | ||
|
|
1187253b6e | ||
|
|
e484ef0a26 | ||
|
|
2a83cf2814 | ||
|
|
020ac1b2e9 | ||
|
|
b41a249161 | ||
|
|
197edfc271 | ||
|
|
d969aef8f8 | ||
|
|
235267b7ac | ||
|
|
9429655045 | ||
|
|
475558056e | ||
|
|
29f108dbb1 | ||
|
|
86ae7d2f5e | ||
|
|
59e95b053e | ||
|
|
1163450227 | ||
|
|
c4acaf8bd0 | ||
|
|
d8d950dcc6 | ||
|
|
14d609941b | ||
|
|
23e979a20e | ||
|
|
1fd9b6934e | ||
|
|
d0c5da97a4 | ||
|
|
16d3ec579f | ||
|
|
25077092e9 | ||
|
|
954254008b | ||
|
|
b8a8720a49 | ||
|
|
cbce65574b | ||
|
|
f6137c4def | ||
|
|
7dbbc61319 | ||
|
|
09dd317b20 | ||
|
|
ad6d9760f9 | ||
|
|
ffd12554e4 | ||
|
|
59baf83110 | ||
|
|
6ad4276a4e | ||
|
|
826f53f92d | ||
|
|
7154b3aefd | ||
|
|
f0da12e58b | ||
|
|
5cac32e038 | ||
|
|
b25dddff31 | ||
|
|
088aa67381 | ||
|
|
84e30ff73a | ||
|
|
1be14b8470 | ||
|
|
5701ecb681 | ||
|
|
2828ad4968 | ||
|
|
055c3e9323 | ||
|
|
5c2abe60a1 | ||
|
|
5a82e41285 | ||
|
|
bc82a68481 | ||
|
|
de502cf2e4 | ||
|
|
aa4f5cf2b7 | ||
|
|
e5ea44b999 | ||
|
|
a27bff08e5 | ||
|
|
2fd8be18e5 | ||
|
|
9faeecc67c | ||
|
|
40fbb55044 | ||
|
|
9b96a01d3e | ||
|
|
42e6653486 | ||
|
|
e28688a3d3 | ||
|
|
cd38985e61 | ||
|
|
8f3d54882a | ||
|
|
2b27d83625 | ||
|
|
9c4b041821 | ||
|
|
a41a8e3dc7 | ||
|
|
72109ef12c | ||
|
|
60f459e3c4 | ||
|
|
584539a2c4 | ||
|
|
d7dd84be01 | ||
|
|
2ab8e35652 | ||
|
|
6c07999157 | ||
|
|
9e3c29659d | ||
|
|
846029d154 | ||
|
|
559c76700d | ||
|
|
a7632c0d2a | ||
|
|
1d76a032ee | ||
|
|
66934d4ed6 | ||
|
|
ba09fae1ac | ||
|
|
086176c4df | ||
|
|
350c5f676b | ||
|
|
898fab7758 | ||
|
|
93d1583bb9 | ||
|
|
a6bc0e517f | ||
|
|
97ac5bd205 | ||
|
|
cfd6cf7b1b | ||
|
|
eb5bcdad81 | ||
|
|
4c288cd156 | ||
|
|
d3ca26d4b1 | ||
|
|
2394a465fa | ||
|
|
aede895096 | ||
|
|
db6aadfc39 | ||
|
|
35e43cf650 | ||
|
|
95a28f3c65 | ||
|
|
baf8cc7eb5 | ||
|
|
ecb29697e2 | ||
|
|
52f37cc159 | ||
|
|
f7bb5e2df4 | ||
|
|
20c0d92e89 | ||
|
|
833f60a38a | ||
|
|
d9b8625629 | ||
|
|
d1b9e71173 | ||
|
|
eb08f17cb2 | ||
|
|
47fae42a3b | ||
|
|
26c3416793 | ||
|
|
3f898d7c05 | ||
|
|
1b8a52fa48 | ||
|
|
d0f32768d6 | ||
|
|
d410555435 | ||
|
|
d2d283d18c | ||
|
|
187d6c96a9 | ||
|
|
e783caaee1 | ||
|
|
3b7e6b6cbc | ||
|
|
513d4bc2e9 | ||
|
|
f5c69d8958 | ||
|
|
c13c64d28b | ||
|
|
5ed0f7f90a | ||
|
|
b81cfae700 | ||
|
|
7721695f44 | ||
|
|
efb1f57f62 | ||
|
|
3389184f41 | ||
|
|
472a7b31ce | ||
|
|
2d4b82c670 | ||
|
|
bae3183f9b | ||
|
|
3dd16eeddf | ||
|
|
779d377ac5 | ||
|
|
d2695899a0 | ||
|
|
f6861cd5ee | ||
|
|
fee38e2fc0 | ||
|
|
01a5faf131 | ||
|
|
8de0f450e9 | ||
|
|
53066981af | ||
|
|
59223c3513 | ||
|
|
5f6a30fe9e | ||
|
|
9eefb6927f | ||
|
|
a687363fff | ||
|
|
fec4e7d286 | ||
|
|
6197fb178c | ||
|
|
213954466f | ||
|
|
e3e0f8986e | ||
|
|
483292900c | ||
|
|
3114418b1e | ||
|
|
034f07ada6 | ||
|
|
8d07aa603e | ||
|
|
d47bfd73d6 | ||
|
|
2a94e90363 | ||
|
|
441318eba9 | ||
|
|
b54290affb | ||
|
|
e5ca2a97b1 | ||
|
|
5810109405 | ||
|
|
84f3a0c413 | ||
|
|
5fe12cc756 | ||
|
|
2db0b346b2 | ||
|
|
65159d1498 | ||
|
|
17165182c9 | ||
|
|
de98375553 | ||
|
|
01db469fb3 | ||
|
|
b54b7def46 | ||
|
|
463564d590 | ||
|
|
479fb6e201 | ||
|
|
47341e0358 | ||
|
|
342c40c7b0 | ||
|
|
3ecce6a188 | ||
|
|
196d4c31d8 | ||
|
|
0a1326d12d | ||
|
|
2d8bdb6c85 | ||
|
|
b623bef3ff | ||
|
|
f868269362 | ||
|
|
f54b7bf214 | ||
|
|
e8fd1fe941 | ||
|
|
3f577f7fbf | ||
|
|
ddd56a1577 | ||
|
|
79c0d26b55 | ||
|
|
79442fcc7b | ||
|
|
6bdc15ed70 | ||
|
|
53581eed66 | ||
|
|
569c24fe5a | ||
|
|
8cd185ebbb | ||
|
|
122ef9f306 | ||
|
|
8ab68346b1 | ||
|
|
bf9e991b4a | ||
|
|
9eb96ab812 | ||
|
|
3f62835d63 | ||
|
|
68e22af143 | ||
|
|
a779bfc655 | ||
|
|
a355adcbb2 | ||
|
|
db62370cea | ||
|
|
32281ed1aa | ||
|
|
48c8159de9 | ||
|
|
dc3fd2ccb1 | ||
|
|
e52fa4d14d | ||
|
|
678e7f6d76 | ||
|
|
74ba982151 | ||
|
|
dc9919aed0 | ||
|
|
9db84ab727 | ||
|
|
154c46cdac | ||
|
|
8207f166e1 | ||
|
|
98fb72441d | ||
|
|
66c0610809 | ||
|
|
ef9148cff4 | ||
|
|
db3567e37f | ||
|
|
36f90e4622 | ||
|
|
9122f3aab0 | ||
|
|
21a7928c64 | ||
|
|
eede41f62b | ||
|
|
a88fd271c4 | ||
|
|
5d6d07508d | ||
|
|
15ce210cd0 | ||
|
|
e60969830a | ||
|
|
9ab6db30c7 | ||
|
|
e574f0190e | ||
|
|
4404ceb9c3 | ||
|
|
c38fe3a8e3 | ||
|
|
940d7fa430 | ||
|
|
932a746c04 | ||
|
|
e43ea8e1b3 | ||
|
|
be3bc2bc00 | ||
|
|
0392274daf | ||
|
|
b8d97d0983 | ||
|
|
9907401483 | ||
|
|
5c5c07fed6 | ||
|
|
1da878481f | ||
|
|
fc3a57b6c1 | ||
|
|
4b2bd7e776 | ||
|
|
a832ede291 | ||
|
|
5f30cb0898 | ||
|
|
a9ee3c0b47 | ||
|
|
86072e3d55 | ||
|
|
a2090e7283 | ||
|
|
996da9a3f0 | ||
|
|
0da36545d3 | ||
|
|
2d8df22cf1 | ||
|
|
af81bac456 | ||
|
|
af29b27693 | ||
|
|
33a6a98fea | ||
|
|
24d8b44c2a | ||
|
|
fa21222c63 | ||
|
|
ee25282f34 | ||
|
|
6b913aafa2 | ||
|
|
f8b17f3859 | ||
|
|
4b95233acb | ||
|
|
46cfc2bbd6 | ||
|
|
1f4571ac88 | ||
|
|
d82257b2f2 | ||
|
|
1cedd8e02b | ||
|
|
ff7b1897eb | ||
|
|
54e45cb649 | ||
|
|
4aa9bca7ca | ||
|
|
606a8b3428 | ||
|
|
2553e2717a | ||
|
|
8d9aca4e20 | ||
|
|
99dbe90ad2 | ||
|
|
413ec5317e | ||
|
|
0012f9ff92 | ||
|
|
e10a8616b4 | ||
|
|
922b5035ea | ||
|
|
7b40dd33d5 | ||
|
|
bce05a1285 | ||
|
|
8323a8cac8 | ||
|
|
b6e07f1f3a | ||
|
|
d77f67bb89 | ||
|
|
018484d985 | ||
|
|
93125ae6ac | ||
|
|
325366066e | ||
|
|
a82e3dc1e7 | ||
|
|
0ca7bffd7b | ||
|
|
ad466ecb3c | ||
|
|
7f0a3df4a4 | ||
|
|
bb2cc0b966 | ||
|
|
9ad46bb82f | ||
|
|
85b75c77fb | ||
|
|
c5202ce696 | ||
|
|
58ae2a5a75 | ||
|
|
95d17ee318 | ||
|
|
3aef16b773 | ||
|
|
990bd15dd5 | ||
|
|
ac7e1696d4 | ||
|
|
14d3ffc6de | ||
|
|
2a3d710cad | ||
|
|
d63bea24f5 | ||
|
|
a843d0da04 | ||
|
|
f58421eabf | ||
|
|
a9ecd98ffe | ||
|
|
2e55bc57c7 | ||
|
|
bc0806d459 | ||
|
|
cc5ec4dcde | ||
|
|
e55dfeaf3a | ||
|
|
cc1ed23b40 | ||
|
|
be824f4e00 | ||
|
|
c58a100259 | ||
|
|
e9397ea375 | ||
|
|
10718c1036 | ||
|
|
ab18d77f6a | ||
|
|
d15f9d0206 | ||
|
|
5dcec130f6 | ||
|
|
7c30a3097b | ||
|
|
dc21820c80 | ||
|
|
d345865621 | ||
|
|
ee3f91176c | ||
|
|
a4c15ea883 | ||
|
|
936fee7c40 | ||
|
|
30eb0566bd | ||
|
|
f92e887994 | ||
|
|
878fa0dedd | ||
|
|
e3102eb28a | ||
|
|
7a1dd9e98c | ||
|
|
85d8604209 | ||
|
|
36b1833e31 | ||
|
|
acfebf3475 | ||
|
|
e570f14a5d | ||
|
|
f01c74581d | ||
|
|
7fa686a7f2 | ||
|
|
e8ce484c05 | ||
|
|
a81dd8b103 | ||
|
|
97ab74de5f | ||
|
|
4d5ec804f5 | ||
|
|
832a8a4346 | ||
|
|
ebc5c6106f | ||
|
|
caf85bf265 | ||
|
|
ae96eaa40c | ||
|
|
2e992c2353 | ||
|
|
14a2a45dbc | ||
|
|
762d1a188a | ||
|
|
bbb9e6f094 | ||
|
|
ae58ed091a | ||
|
|
1755dc2b0a | ||
|
|
7eac83b12d | ||
|
|
6d3c52a965 | ||
|
|
c46b9e0dca | ||
|
|
3a738497f8 | ||
|
|
ff491e48fa | ||
|
|
e46346d371 | ||
|
|
953f6c75b9 | ||
|
|
b9b30341d4 | ||
|
|
f8a3605c97 | ||
|
|
97abba906f | ||
|
|
24ada3c63e | ||
|
|
5cc9bc9ce6 | ||
|
|
6a9ed3501a | ||
|
|
f92a885d43 | ||
|
|
f4015e0c3c | ||
|
|
28dad3752c | ||
|
|
6e1ec60318 | ||
|
|
b457f61e74 | ||
|
|
2e568c08d6 | ||
|
|
4bbea5b41b | ||
|
|
668ef068cf | ||
|
|
1e4d6dd059 | ||
|
|
6a2aaa4db7 | ||
|
|
37d2abc8ea | ||
|
|
923d2214d9 | ||
|
|
4ea2d8c370 | ||
|
|
9851383362 | ||
|
|
a45fadd183 | ||
|
|
8d3b4630f3 | ||
|
|
571c3d8c92 | ||
|
|
cd46343d11 | ||
|
|
641cd14a40 | ||
|
|
0ae3032ac8 | ||
|
|
4ba8572d7f | ||
|
|
dae225330c | ||
|
|
a4899fabf8 | ||
|
|
a2717f7c25 | ||
|
|
d125070fa4 | ||
|
|
1c455a29a9 | ||
|
|
6e050675a8 | ||
|
|
f85af540cf | ||
|
|
7fbc1b16a0 | ||
|
|
ed6a45f1a6 | ||
|
|
1f3e33e384 | ||
|
|
f7064d36c5 | ||
|
|
4309a11968 | ||
|
|
7b93d4ded5 | ||
|
|
2f930dfa76 | ||
|
|
fc9b8a887f | ||
|
|
1fbcf9a9a5 | ||
|
|
537399dbc9 | ||
|
|
ac9362ae5b | ||
|
|
e801352c78 | ||
|
|
302c1b1c4b | ||
|
|
87ed38b378 | ||
|
|
9af3da8b57 | ||
|
|
589fb2a217 | ||
|
|
0c9aef1b0a | ||
|
|
b4e4bcbce8 | ||
|
|
4fa38338d7 | ||
|
|
c35d7d7bb5 | ||
|
|
a3badc1fff | ||
|
|
8123a4886a | ||
|
|
5425d6b96a | ||
|
|
73074157ac | ||
|
|
49bf5a991b | ||
|
|
e95c62e68e | ||
|
|
f771a9be28 | ||
|
|
435f870b13 | ||
|
|
4fa0eba064 | ||
|
|
49e8d86983 | ||
|
|
bfcdf41276 | ||
|
|
193a98c97a | ||
|
|
7693ede193 | ||
|
|
899c6d54df | ||
|
|
0321fd4689 | ||
|
|
b3dd9fd5ab | ||
|
|
046f219eaf | ||
|
|
f8eaf92733 | ||
|
|
f22d4912c2 | ||
|
|
5ca08578af | ||
|
|
73f0ed8976 | ||
|
|
165354d87c | ||
|
|
b00161f7ec | ||
|
|
438e4edfd8 | ||
|
|
d8c1587130 | ||
|
|
eb4047f85c | ||
|
|
38fa465cae | ||
|
|
9cf01b2dac | ||
|
|
27b0bdfd22 | ||
|
|
55d7440fe1 | ||
|
|
a0dfb0f9e6 | ||
|
|
7d9c08bc22 | ||
|
|
687c2775ad | ||
|
|
1d6d67f95f | ||
|
|
542939e7c7 | ||
|
|
bd3d510f96 | ||
|
|
3e2a09cdf7 | ||
|
|
8ce3c2c19e | ||
|
|
6efa9597c9 | ||
|
|
909f05351e | ||
|
|
1e0cb0326e | ||
|
|
a1509ae1e4 | ||
|
|
f322d7205a | ||
|
|
4206c543a3 | ||
|
|
a40245010f | ||
|
|
51d453a3d2 | ||
|
|
e9792f95f6 | ||
|
|
d4ee4645ec | ||
|
|
ac5242815f | ||
|
|
f2136c09d5 | ||
|
|
93dbf609fa | ||
|
|
14fbb34e51 | ||
|
|
f3da148d0f | ||
|
|
91df9c7526 | ||
|
|
501955f36a | ||
|
|
a9efdf16ea | ||
|
|
9c639040bc | ||
|
|
da0bb74180 | ||
|
|
03e7d722de | ||
|
|
d7dc8f35d1 | ||
|
|
ee0ce118a9 | ||
|
|
d922899bba | ||
|
|
5590dabfd3 | ||
|
|
94ac381122 | ||
|
|
b5c8d0aeeb | ||
|
|
9a374592e7 | ||
|
|
782dabdc7e | ||
|
|
9e5ca7e048 | ||
|
|
555d12ece4 | ||
|
|
3d00eec62c | ||
|
|
0482957f9c | ||
|
|
83c201992d | ||
|
|
897018932b | ||
|
|
b046e73bef | ||
|
|
a1d7835cb6 | ||
|
|
802dbea036 | ||
|
|
207b3f712e | ||
|
|
b54377be2c | ||
|
|
018e4a115d | ||
|
|
1c3f233475 | ||
|
|
c07015129b | ||
|
|
3ca5a75094 | ||
|
|
cfa8d0a7fe | ||
|
|
0d4302c912 | ||
|
|
11d887c603 | ||
|
|
f0e4ef017c | ||
|
|
12ddba6cf2 | ||
|
|
eb11caa621 | ||
|
|
b25140b40c | ||
|
|
66c8660494 | ||
|
|
e32a92e7c9 | ||
|
|
0415da9229 | ||
|
|
10c0307ad5 | ||
|
|
d0c70e1535 | ||
|
|
830ac2001e | ||
|
|
c1a86f9e18 | ||
|
|
c573432e74 | ||
|
|
54f4a7d240 | ||
|
|
cdc7b4b048 | ||
|
|
ea7f23e534 | ||
|
|
21ed0e04e0 | ||
|
|
3ca4b1f0df | ||
|
|
79d9c5fdba | ||
|
|
22e3fd1708 | ||
|
|
1acb0f2648 | ||
|
|
61f10ac4cb | ||
|
|
631f2ac352 | ||
|
|
c5c90b182a | ||
|
|
daf35a3535 | ||
|
|
d8d79656f5 | ||
|
|
e099536945 | ||
|
|
e5e22cf50d | ||
|
|
8a1241533f | ||
|
|
ed46bcdaf2 | ||
|
|
38f2c24be1 | ||
|
|
dd27cafee3 | ||
|
|
b3a90d7492 | ||
|
|
1ae50b123d | ||
|
|
46d43bb128 | ||
|
|
fe6d07eae5 | ||
|
|
87a6c5a069 | ||
|
|
e46b5f6665 | ||
|
|
d2f3d1c263 | ||
|
|
9548edaff0 | ||
|
|
7e0e005e24 | ||
|
|
800115a422 | ||
|
|
a8f98be252 | ||
|
|
e93c0db20b | ||
|
|
1fcf7612fd | ||
|
|
9761d31f4b | ||
|
|
4d0c5f6341 | ||
|
|
d0a0088894 | ||
|
|
e8b4d66c54 | ||
|
|
5a38a2563c | ||
|
|
c2d30a29de | ||
|
|
8688acab65 | ||
|
|
4d9c24adbf | ||
|
|
bed25265d7 | ||
|
|
e965ab1504 | ||
|
|
a081e8b3f5 | ||
|
|
bebba84f0e | ||
|
|
e40dd99727 | ||
|
|
84042dbd31 | ||
|
|
45426598dd | ||
|
|
8686151421 | ||
|
|
46a4f1fcf3 | ||
|
|
bc7318245b | ||
|
|
d62486656e | ||
|
|
a96ec80625 | ||
|
|
35c7616cc0 | ||
|
|
ff32f0ec9a | ||
|
|
120a1d9fbc | ||
|
|
c3909b8ec4 | ||
|
|
d6e7bc7b03 | ||
|
|
891b8d9e8a | ||
|
|
02386131e9 | ||
|
|
a3f30d8555 | ||
|
|
ec299bd60f | ||
|
|
bbfc65f569 | ||
|
|
ddc2d0f708 | ||
|
|
880b6584f2 | ||
|
|
a57a4908bf | ||
|
|
54c7125feb | ||
|
|
5dbed848bc | ||
|
|
bb430ec25c | ||
|
|
74dfb8440e | ||
|
|
2b8df84fa9 | ||
|
|
cd1ede8d5b | ||
|
|
8e43d98ca4 | ||
|
|
3b154baae5 | ||
|
|
d2f7dc0521 | ||
|
|
6be14566e1 | ||
|
|
e919d8372b | ||
|
|
8c17f3180f | ||
|
|
ce98955f34 | ||
|
|
b8240499b1 | ||
|
|
61e23f45f7 | ||
|
|
5930368ed9 | ||
|
|
df28acf495 | ||
|
|
158110aa46 | ||
|
|
0a8905e3a6 | ||
|
|
3acb0b8548 | ||
|
|
a50d0ace81 | ||
|
|
dba169ae9c | ||
|
|
8a94f873de | ||
|
|
6ae8556d15 | ||
|
|
7cdb6c94bb | ||
|
|
18486d66bd | ||
|
|
6ae86bd7d6 | ||
|
|
cb97a9e091 | ||
|
|
8e16185ef1 | ||
|
|
fc4531ff45 | ||
|
|
02c1a20bf6 | ||
|
|
2a8be4bf8c | ||
|
|
ebccfea6cb | ||
|
|
5595ffcac7 | ||
|
|
e98f8c8182 | ||
|
|
3d79d9d1cb | ||
|
|
3df3c510f4 | ||
|
|
65fef83e56 | ||
|
|
1014183f3f | ||
|
|
992a3f7d31 | ||
|
|
b2cfa213eb | ||
|
|
e6555108b9 | ||
|
|
cbef51548f | ||
|
|
f62b0345b2 | ||
|
|
a527233718 | ||
|
|
549ac7290e | ||
|
|
f544c58d74 | ||
|
|
c3666f222d | ||
|
|
88aa27bb21 | ||
|
|
12304aa348 | ||
|
|
1634aa9532 | ||
|
|
edd7ed5d30 | ||
|
|
2b5c103cd0 | ||
|
|
28cca31e3f | ||
|
|
685f4aad99 | ||
|
|
ea9a671e88 | ||
|
|
5c9c6e82cf |
Vendored
-181
@@ -1,181 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
##########################################################################
|
||||
# $Id: fail2ban 150 2013-06-18 22:19:38Z mtremaine $
|
||||
##########################################################################
|
||||
# $Log: fail2ban,v $
|
||||
# Revision 1.5 2008/08/18 16:07:46 mike
|
||||
# Patches from Paul Gear <paul at libertysys.com> -mgt
|
||||
#
|
||||
# Revision 1.4 2008/06/30 23:07:51 kirk
|
||||
# fixed copyright holders for files where I know who they should be
|
||||
#
|
||||
# Revision 1.3 2008/03/24 23:31:26 kirk
|
||||
# added copyright/license notice to each script
|
||||
#
|
||||
# Revision 1.2 2006/12/15 04:53:59 bjorn
|
||||
# Additional filtering, by Willi Mann.
|
||||
#
|
||||
# Revision 1.1 2006/05/30 19:04:26 bjorn
|
||||
# Added fail2ban service, written by Yaroslav Halchenko.
|
||||
#
|
||||
# Written by Yaroslav Halchenko <debian@onerussian.com> for fail2ban
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
########################################################
|
||||
## Copyright (c) 2008 Yaroslav Halchenko
|
||||
## Covered under the included MIT/X-Consortium License:
|
||||
## http://www.opensource.org/licenses/mit-license.php
|
||||
## All modifications and contributions by other persons to
|
||||
## this script are assumed to have been donated to the
|
||||
## Logwatch project and thus assume the above copyright
|
||||
## and licensing terms. If you want to make contributions
|
||||
## under your own copyright or a different license this
|
||||
## must be explicitly stated in the contribution an the
|
||||
## Logwatch project reserves the right to not accept such
|
||||
## contributions. If you have made significant
|
||||
## contributions to this script and want to claim
|
||||
## copyright please contact logwatch-devel@lists.sourceforge.net.
|
||||
#########################################################
|
||||
|
||||
use strict;
|
||||
use Logwatch ':all';
|
||||
|
||||
my $Debug = $ENV{'LOGWATCH_DEBUG'} || 0;
|
||||
my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
|
||||
my $IgnoreHost = $ENV{'sshd_ignore_host'} || "";
|
||||
my $DebugCounter = 0;
|
||||
my $ReInitializations = 0;
|
||||
my @IptablesErrors = ();
|
||||
my @ActionErrors = ();
|
||||
my $NotValidIP = 0; # reported invalid IPs number
|
||||
my @OtherList = ();
|
||||
|
||||
my %ServicesBans = ();
|
||||
|
||||
if ( $Debug >= 5 ) {
|
||||
print STDERR "\n\nDEBUG: Inside Fail2Ban Filter \n\n";
|
||||
$DebugCounter = 1;
|
||||
}
|
||||
|
||||
while (defined(my $ThisLine = <STDIN>)) {
|
||||
if ( $Debug >= 5 ) {
|
||||
print STDERR "DEBUG($DebugCounter): $ThisLine";
|
||||
$DebugCounter++;
|
||||
}
|
||||
chomp($ThisLine);
|
||||
if ( ($ThisLine =~ /..,... DEBUG: /) or
|
||||
($ThisLine =~ /..,... \S*\s*: DEBUG /) or # syntax of 0.7.? fail2ban
|
||||
($ThisLine =~ /..,... INFO: (Fail2Ban v.* is running|Exiting|Enabled sections:)/) or
|
||||
($ThisLine =~ /INFO\s+Log rotation detected for/) or
|
||||
($ThisLine =~ /INFO\s+Jail.+(?:stopped|started|uses poller)/) or
|
||||
($ThisLine =~ /INFO\s+Changed logging target to/) or
|
||||
($ThisLine =~ /INFO\s+Creating new jail/) or
|
||||
($ThisLine =~ /..,... \S+\s*: INFO\s+(Set |Socket|Exiting|Gamin|Created|Added|Using)/) or # syntax of 0.7.? fail2ban
|
||||
($ThisLine =~ /..,... WARNING: Verbose level is /) or
|
||||
($ThisLine =~ /..,... WARNING: Restoring firewall rules/)
|
||||
)
|
||||
{
|
||||
if ( $Debug >= 6 ) {
|
||||
print STDERR "DEBUG($DebugCounter): line ignored\n";
|
||||
}
|
||||
} elsif ( my ($Service,$Action,$Host) = ($ThisLine =~ m/WARNING:?\s\[?(.*?)[]:]?\s(Ban|Unban)[^\.]* (\S+)/)) {
|
||||
if ( $Debug >= 6 ) {
|
||||
print STDERR "DEBUG($DebugCounter): Found $Action for $Service from $Host\n";
|
||||
}
|
||||
$ServicesBans{$Service}{$Host}{$Action}++;
|
||||
$ServicesBans{$Service}{"(all)"}{$Action}++;
|
||||
} elsif ( my ($Service,$Host,$NumFailures) = ($ThisLine =~ m/INFO: (\S+): (.+) has (\d+) login failure\(s\). Banned./)) {
|
||||
if ($Debug >= 4) {
|
||||
print STDERR "DEBUG: Found host $Host trying to access $Service - failed $NumFailures times\n";
|
||||
}
|
||||
push @{$ServicesBans{$Service}{$Host}{'Failures'}}, $NumFailures;
|
||||
} elsif ( my ($Service,$Host) = ($ThisLine =~ m/ ERROR:\s(.*):\s(\S+)\salready in ban list/)) {
|
||||
$ServicesBans{$Service}{$Host}{'AlreadyInTheList'}++;
|
||||
} elsif ( my ($Service,$Host) = ($ThisLine =~ m/WARNING\s*\[(.*)\]\s*(\S+)\s*already banned/)) {
|
||||
$ServicesBans{$Service}{$Host}{'AlreadyInTheList'}++;
|
||||
} elsif ( my ($Service,$Host) = ($ThisLine =~ m/ WARNING:\s(.*):\sReBan (\S+)/)) {
|
||||
$ServicesBans{$Service}{$Host}{'ReBan'}++;
|
||||
} elsif ($ThisLine =~ / ERROR:?\s*(Execution of command )?\'?iptables/) {
|
||||
push @IptablesErrors, "$ThisLine\n";
|
||||
} elsif ($ThisLine =~ /ERROR.*returned \d+$/) {
|
||||
push @ActionErrors, "$ThisLine\n";
|
||||
} elsif (($ThisLine =~ /..,... WARNING: \#\S+ reinitialization of firewalls/) or
|
||||
($ThisLine =~ / ERROR\s*Invariant check failed. Trying to restore a sane environment/)) {
|
||||
$ReInitializations++;
|
||||
} elsif ($ThisLine =~ /..,... WARNING: is not a valid IP address/) {
|
||||
# just ignore - this will be fixed within fail2ban and is harmless warning
|
||||
}
|
||||
else
|
||||
{
|
||||
# Report any unmatched entries...
|
||||
push @OtherList, "$ThisLine\n";
|
||||
}
|
||||
}
|
||||
|
||||
###########################################################
|
||||
|
||||
|
||||
if (keys %ServicesBans) {
|
||||
printf("\nBanned services with Fail2Ban: Bans:Unbans\n");
|
||||
foreach my $service (sort {$a cmp $b} keys %ServicesBans) {
|
||||
printf(" %-55s [%3d:%-3d]\n", "$service:",
|
||||
$ServicesBans{$service}{'(all)'}{'Ban'},
|
||||
$ServicesBans{$service}{'(all)'}{'Unban'});
|
||||
delete $ServicesBans{$service}{'(all)'};
|
||||
my $totalSort = TotalCountOrder(%{$ServicesBans{$service}}, \&SortIP);
|
||||
if ($Detail >= 5) {
|
||||
foreach my $ip (sort $totalSort keys %{$ServicesBans{$service}}) {
|
||||
my $name = LookupIP($ip);
|
||||
printf(" %-53s %3d:%-3d\n",
|
||||
$name,
|
||||
$ServicesBans{$service}{$ip}{'Ban'},
|
||||
$ServicesBans{$service}{$ip}{'Unban'});
|
||||
if (($Detail >= 10) and ($ServicesBans{$service}{$ip}{'Failures'}>0)) {
|
||||
print " Failed ";
|
||||
foreach my $fails (@{$ServicesBans{$service}{$ip}{'Failures'}}) {
|
||||
print " $fails";
|
||||
}
|
||||
print " times";
|
||||
printf("\n %d Duplicate Ban attempts", $ServicesBans{$service}{$ip}{'AlreadyInTheList'}) ;
|
||||
printf("\n %d ReBans due to rules reinitilizations", $ServicesBans{$service}{$ip}{'ReBan'}) ;
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($Detail>0) {
|
||||
if ($#IptablesErrors > 0) {
|
||||
printf("\n%d faulty iptables invocation(s)", $#IptablesErrors);
|
||||
if ($Detail > 5) {
|
||||
print ":\n";
|
||||
print @IptablesErrors ;
|
||||
}
|
||||
}
|
||||
if ($#ActionErrors > 0) {
|
||||
printf("\n%d error(s) returned from actions", $#ActionErrors);
|
||||
if ($Detail > 5) {
|
||||
print ":\n";
|
||||
print @ActionErrors ;
|
||||
}
|
||||
}
|
||||
if ($ReInitializations > 0) {
|
||||
printf("\n%d fail2ban rules reinitialization(s)", $ReInitializations);
|
||||
}
|
||||
if ($#OtherList >= 0) {
|
||||
print "\n**Unmatched Entries**\n";
|
||||
print @OtherList;
|
||||
}
|
||||
}
|
||||
|
||||
exit(0);
|
||||
|
||||
# vi: shiftwidth=3 tabstop=3 syntax=perl et
|
||||
# Local Variables:
|
||||
# mode: perl
|
||||
# perl-indent-level: 3
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
||||
@@ -48,12 +48,16 @@ ver. 0.9.1 (2014/xx/xx) - better, faster, stronger
|
||||
* cyrus-imap -- also catch also failed logins via secured (imaps/pop3s).
|
||||
Regression was introduced while strengthening failregex in 0.8.11 (bd175f)
|
||||
Debian bug #755173
|
||||
* postfix-sasl -- added journalmatch. Thanks Luc Maisonobe
|
||||
* postfix-sasl - added journalmatch. Thanks Luc Maisonobe
|
||||
* postfix* - match with a new daemon string (postfix/submission/smtpd).
|
||||
Closes gh-804 . Thanks Paul Traina
|
||||
* apache - added filter for AH01630 client denied by server configuration.
|
||||
|
||||
- New features:
|
||||
- New filters:
|
||||
- monit Thanks Jason H Martin
|
||||
- directadmin Thanks niorg
|
||||
- apache-shellshock Thanks Eugene Hopkinson (SlowRiot)
|
||||
- New actions:
|
||||
- symbiosis-blacklist-allports for Bytemark symbiosis firewall
|
||||
- fail2ban-client can fetch the running server version
|
||||
|
||||
@@ -34,6 +34,7 @@ David Nutter
|
||||
Derek Atkins
|
||||
Eric Gerbier
|
||||
Enrico Labedzki
|
||||
Eugene Hopkinson (SlowRiot)
|
||||
ftoppi
|
||||
François Boulogne
|
||||
Frédéric
|
||||
@@ -81,6 +82,7 @@ Mika (mkl)
|
||||
Nick Munger
|
||||
onorua
|
||||
Paul Marrapese
|
||||
Paul Traina
|
||||
Noel Butler
|
||||
Patrick Börjesson
|
||||
Pressy
|
||||
|
||||
@@ -10,7 +10,7 @@ before = apache-common.conf
|
||||
[Definition]
|
||||
|
||||
|
||||
failregex = ^%(_apache_error_client)s (AH01797: )?client denied by server configuration: (uri )?\S*(, referer: \S+)?\s*$
|
||||
failregex = ^%(_apache_error_client)s (AH(01797|01630): )?client denied by server configuration: (uri )?\S*(, referer: \S+)?\s*$
|
||||
^%(_apache_error_client)s (AH01617: )?user .*? authentication failure for "\S*": Password Mismatch(, referer: \S+)?$
|
||||
^%(_apache_error_client)s (AH01618: )?user .*? not found(: )?\S*(, referer: \S+)?\s*$
|
||||
^%(_apache_error_client)s (AH01614: )?client used wrong authentication scheme: \S*(, referer: \S+)?\s*$
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# Fail2Ban filter to block web requests containing custom headers attempting to exploit the shellshock bug
|
||||
#
|
||||
#
|
||||
|
||||
[INCLUDES]
|
||||
|
||||
# overwrite with apache-common.local if _apache_error_client is incorrect.
|
||||
before = apache-common.conf
|
||||
|
||||
[Definition]
|
||||
|
||||
failregex = ^%(_apache_error_client)s (AH01215: )?/bin/(ba)?sh: warning: HTTP_.*?: ignoring function definition attempt(, referer: \S+)?\s*$
|
||||
^%(_apache_error_client)s (AH01215: )?/bin/(ba)?sh: error importing function definition for `HTTP_.*?'(, referer: \S+)?\s*$
|
||||
|
||||
ignoreregex =
|
||||
|
||||
|
||||
# DEV Notes:
|
||||
#
|
||||
# https://wiki.apache.org/httpd/ListOfErrors for apache error IDs
|
||||
#
|
||||
# example log lines:
|
||||
# [Thu Sep 25 09:27:18.813902 2014] [cgi:error] [pid 16860] [client 89.207.132.76:59635] AH01215: /bin/bash: warning: HTTP_TEST: ignoring function definition attempt
|
||||
# [Thu Sep 25 09:29:56.141832 2014] [cgi:error] [pid 16864] [client 162.247.73.206:41273] AH01215: /bin/bash: error importing function definition for `HTTP_TEST'
|
||||
#
|
||||
# Author: Eugene Hopkinson (riot@riot.so)
|
||||
@@ -7,10 +7,12 @@ before = common.conf
|
||||
|
||||
[Definition]
|
||||
|
||||
_daemon = postfix/smtpd
|
||||
_daemon = postfix/(submission/)?smtp(d|s)
|
||||
|
||||
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
|
||||
|
||||
ignoreregex =
|
||||
|
||||
[Init]
|
||||
|
||||
journalmatch = _SYSTEMD_UNIT=postfix.service
|
||||
|
||||
@@ -10,7 +10,7 @@ before = common.conf
|
||||
|
||||
[Definition]
|
||||
|
||||
_daemon = postfix/smtpd
|
||||
_daemon = postfix/(submission/)?smtp(d|s)
|
||||
|
||||
failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5\.7\.1 .*$
|
||||
^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 : Helo command rejected: Host not found; from=<> to=<> proto=ESMTP helo= *$
|
||||
|
||||
@@ -283,6 +283,11 @@ port = http,https
|
||||
logpath = %(apache_error_log)s
|
||||
maxretry = 2
|
||||
|
||||
[apache-shellshock]
|
||||
|
||||
port = http,https
|
||||
logpath = $(apache_error_log)s
|
||||
maxretry = 1
|
||||
|
||||
[nginx-http-auth]
|
||||
|
||||
|
||||
Vendored
+79
@@ -0,0 +1,79 @@
|
||||
fail2ban (0.9.0+git48-gabcab00-1) experimental; urgency=low
|
||||
|
||||
[ Yaroslav Halchenko ]
|
||||
* This version went through big refactoring which allowed to gain new
|
||||
features such as multiline matching (see upstream's changelog for more
|
||||
information).
|
||||
* Although .local files are still supported, customizations are advised
|
||||
to be provided under corresponding .d/ directories. E.g. see
|
||||
/etc/fail2ban/jail.d/defaults-debian.conf which is where now sshd
|
||||
jail is enabled by default to match previous behavior of Fail2Ban in
|
||||
Debian.
|
||||
|
||||
[ Daniel Schaal ]
|
||||
* All jails definitions were rewritten to become more concise and uniform.
|
||||
From this version on log paths are defined in distro specific files,
|
||||
for Debian this is in /etc/fail2ban/paths-debian.conf.
|
||||
|
||||
-- Yaroslav Halchenko <debian@onerussian.com> Tue, 25 Mar 2014 08:38:31 -0400
|
||||
|
||||
fail2ban (0.8.11-1) unstable; urgency=low
|
||||
|
||||
* retroactive for 0.8.9: by default iptables-* actions do not simply
|
||||
DROP packets from offending IP but rather reject with
|
||||
icmp-port-unreachable. If DROP behaviour is preferable, provide
|
||||
config/action.d/iptables-blocktype.local with [Init] section defining
|
||||
blocktype = DROP or override action definition to provide
|
||||
blocktype=DROP option in jail.local
|
||||
* Many failregex's were tight-up in this release which could
|
||||
theoretically effect operation in comparison to previous release(s).
|
||||
|
||||
-- Yaroslav Halchenko <debian@onerussian.com> Sat, 16 Nov 2013 22:27:50 -0500
|
||||
|
||||
fail2ban (0.8.4-3) unstable; urgency=low
|
||||
|
||||
* Jail named-refused-udp is unsafe and opens possibility for easy DoS,
|
||||
thus discouraged to be used, and commented out (see #583364 for more
|
||||
information).
|
||||
|
||||
-- Yaroslav Halchenko <debian@onerussian.com> Mon, 28 Jun 2010 22:12:22 -0400
|
||||
|
||||
fail2ban (0.7.1-0.2) unstable; urgency=low
|
||||
|
||||
fail2ban 0.7 is a complete rewrite of the 0.6 version, and if you
|
||||
customized any of provided configuration or startup files
|
||||
(/etc/default/fail2ban, /etc/fail2ban.conf, /etc/init.d/fail2ban),
|
||||
please read further. The configuration scheme has changed upstream:
|
||||
0.7 ignores /etc/fail2ban.conf and instead uses a split configuration
|
||||
under /etc/fail2ban/. To retain your customizations, for example to
|
||||
monitor anything other than sshd, you will need to set them under that
|
||||
new directory; use *.local files for customizations. Please see
|
||||
/usr/share/doc/fail2ban/README.Debian.gz and
|
||||
http://fail2ban.sourceforge.net for further description of new
|
||||
configuration scheme. Detailed documentation is under development (see
|
||||
#400416). When you are satisfied with the new settings, please delete
|
||||
/etc/fail2ban.conf to avoid confusion.
|
||||
|
||||
Fail2ban 0.7 uses client/server architecture and fail2ban-client is to
|
||||
substitute fail2ban command to provide an interface between the user and
|
||||
fail2ban-server. That is why some command line parameters present in
|
||||
fail2ban 0.6 are invalid in fail2ban-client. Such change affects
|
||||
/etc/default/fail2ban; you should review that file if you customized it.
|
||||
Please enable sections as directed in README.Debian.gz mentioned above.
|
||||
You must use newly shipped init.d/fail2ban, or otherwise fail2ban will
|
||||
not start.
|
||||
|
||||
This note was rewritten in release 0.7.5-2 to clarify its meaning.
|
||||
|
||||
-- Yaroslav Halchenko <debian@onerussian.com> Sat, 9 Dec 2006 18:24:36 -0500
|
||||
|
||||
fail2ban (0.6.0-4) unstable; urgency=low
|
||||
|
||||
In this version the new section ApacheAttacks was introduced to ban IPs
|
||||
which are found to run some known attack on the host. For now it captures
|
||||
just awstats and mambo related attacks. To make this feature work, the bug of
|
||||
wrongly specified timeregexp for Apache's access.log file was fixed.
|
||||
Besides that group of log files has changed to be adm, and now they are
|
||||
readable by the group.
|
||||
|
||||
-- Yaroslav Halchenko <debian@onerussian.com> Fri, 10 Feb 2006 13:05:07 -0500
|
||||
Vendored
+234
@@ -0,0 +1,234 @@
|
||||
fail2ban (>=0.7.0) for Debian
|
||||
-----------------------------
|
||||
|
||||
This package is ~99% identical to the upstream version. Few features
|
||||
could have been added but not yet propagated into upstream version and
|
||||
some modifications might be Debian-specific. Debian specific jail.conf
|
||||
file is shipped. Original upstream file is available from
|
||||
/usr/share/doc/fail2ban/examples/jail.conf
|
||||
|
||||
Currently, the major difference with upstream: python libraries are
|
||||
placed under /usr/share/fail2ban instead of /usr/lib/fail2ban to
|
||||
comply with policy regarding architecture independent resources.
|
||||
|
||||
Upgrade from 0.6 versions:
|
||||
-------------------------
|
||||
|
||||
* New Config Files Format:
|
||||
|
||||
If you had introduced your own sections in /etc/fail2ban.conf, you
|
||||
would need manually to convert them into a new format. At minimum you
|
||||
need to create /etc/fail2ban/filter.d/NAME.local (leave .conf files
|
||||
for me and upstream please to avoid any conflicts -- introduce your
|
||||
changes in .local) with failregex in [Definition] section. And provide
|
||||
appropriate jail definition in /etc/fail2ban/jail.local
|
||||
|
||||
|
||||
* Enabled Sections:
|
||||
|
||||
Only handling of ssh files is enabled by default. If you want to use
|
||||
fail2ban with apache, please enable apache section manually in
|
||||
/etc/fail2ban/jail.local by including next lines:
|
||||
|
||||
[apache]
|
||||
enabled = true
|
||||
|
||||
NOTE: -e command line parameter is non existant in 0.7.x
|
||||
|
||||
|
||||
* Interpolations vs actions/filters parameters:
|
||||
|
||||
For details see #398739 or wait for a closure of #400416
|
||||
|
||||
Every pair of .conf and then .local (if exists) files is read
|
||||
separately from any other configuration file, so interpolations cannot
|
||||
penetrate from jail.* into actions.d/*. To overcome this, it is
|
||||
necessary to create a PARAMETER which can be substituted in actions
|
||||
[Definition] section, if it is also defined in the [Init] section of
|
||||
that file and is used in place of necessary allocation as <PARAMETER>
|
||||
tag. Parameters can be specified in the definitions within
|
||||
jail.{conf,local}. For instance, 1 lengthy example, where the same
|
||||
name "fwchain" is used both as interpolation (in jail.local) and as a
|
||||
parameter (in iptables-flex.local) (from #398739)
|
||||
|
||||
==> /etc/fail2ban/jail.local <==
|
||||
[DEFAULT]
|
||||
action = iptables-flex[name=%(__name__)s, port=%(port)s, fwchain=%(fwchain)s, post_start_commands=%(post_start_commands)s, pre_end_commands=%(pre_end_commands)s]
|
||||
fwchain = INPUT
|
||||
[ssh]
|
||||
fwchain = ssh-tarpit
|
||||
==> /etc/fail2ban/action.d/iptables-flex.local <==
|
||||
[Definition]
|
||||
actionstart = iptables -N fail2ban-<name>
|
||||
iptables -I <fwchain> -m state --state NEW -p <protocol> --dport <port> -j fail2ban-<name>
|
||||
iptables -I <fwchain> -j <whitelist>
|
||||
actionstop = iptables -D <fwchain> -j <whitelist>
|
||||
iptables -D <fwchain> -m state --state NEW -p <protocol> --dport <port> -j fail2ban-<name>
|
||||
iptables -F fail2ban-<name>
|
||||
iptables -X fail2ban-<name>
|
||||
actioncheck = iptables -n -L <fwchain> | grep -q fail2ban-<name>
|
||||
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP
|
||||
actionunban = iptables -D fail2ban-<name> -s <ip> -j DROP
|
||||
[Init]
|
||||
whitelist = ssh-whitelist
|
||||
fwchain = INPUT
|
||||
name = default
|
||||
port = ssh
|
||||
protocol = tcp
|
||||
|
||||
|
||||
* Multiport banning: Comment for #373592, #545971
|
||||
|
||||
iptables-multiport action is now default banaction (file jail.conf, to
|
||||
be customized within jail.local). Therefore assure that you have built
|
||||
multiport module if you use custom kernel.
|
||||
|
||||
If you would like to ban all ports for that host, just redefine
|
||||
fwban/fwunban commands to don't have --dport %(port)s statement at
|
||||
all, or use shorewall, where actionban bans whole IP.
|
||||
|
||||
* Blocking of NEW connections only
|
||||
Comment for the wishlist #350746.
|
||||
|
||||
It might be benefitial in some cases to ban only new connections. For
|
||||
that just use iptables-new action instead of default banaction
|
||||
|
||||
/etc/fail2ban/jail.local:
|
||||
|
||||
[DEFAULT]
|
||||
banaction=iptables-new
|
||||
|
||||
(you can override banaction within interesting for you section).
|
||||
Also you can redefine the whole action parameter if you like.
|
||||
|
||||
|
||||
* Interaction with ipmasq
|
||||
Comment to #461417
|
||||
|
||||
Although fail2ban should detect and recreate missing chains if the external
|
||||
command wipes out iptables, it is better to explicitly to force-reload
|
||||
fail2ban. For this reason there is examples/ipmasq-ZZZzzz|fail2ban.rul file is
|
||||
shipped along to be installed under name ZZZzzz|fail2ban.rul within
|
||||
/etc/ipmasq.
|
||||
|
||||
* Interaction with logrotate with custom logtarget
|
||||
Comment to #631917
|
||||
|
||||
if you use an alternative logtarget (e.g. SYSLOG) thus not using
|
||||
/var/log/fail2ban.log you should divert logrotate configuration into
|
||||
a disabled state, e.g.
|
||||
|
||||
sudo dpkg-divert --rename --divert \
|
||||
/etc/logrotate.d/fail2ban.disabled /etc/logrotate.d/fail2ban
|
||||
|
||||
|
||||
Troubleshooting:
|
||||
---------------
|
||||
|
||||
* Updated failregex:
|
||||
|
||||
To resolve the security bug #330827 [1] failregex expressions must
|
||||
provide a named group (?P<host>...) as a placeholder of the abuser's
|
||||
host. Alternative tag (since 0.7.5) can be "<HOST>". The naming of the
|
||||
group was introduced to capture possible future generalizations of
|
||||
failregex to provide even more information.
|
||||
|
||||
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=330827
|
||||
|
||||
You might benefit from using fail2ban-regex command shipped along to
|
||||
construct and debug your failregex statements.
|
||||
|
||||
* "Interpolations" in the config file:
|
||||
|
||||
Since version 0.6.0-3 to reduce duplication, thus to improve
|
||||
readability of the config file, interpolations provided by the module
|
||||
ConfigParser are used. If you had custom sections defined before, you
|
||||
might benefit from updating config file and adding appropriate
|
||||
information for the new sections.
|
||||
|
||||
N.B. If you have some nice additional sections defined, I would really
|
||||
appreciate if you share them with me or upstream author, so they could
|
||||
be eventually included in the fail2ban package for general use by the
|
||||
rest of the community.
|
||||
|
||||
|
||||
* Mailing:
|
||||
|
||||
Since actions.d/mail*.conf commands rely on presence of "mail"
|
||||
command, mailx package (or another package providing mailx
|
||||
functionality such as mailutils) is required if those actions are
|
||||
activated in jail.{conf,local}.
|
||||
|
||||
|
||||
* Dirty exit:
|
||||
|
||||
If firewall rules gets cleaned out before fail2ban exits (like was
|
||||
happening with firestarter), errors get reported during the exit of
|
||||
fail2ban, but they are "safe" and can be ignored.
|
||||
|
||||
|
||||
** SSHD Configuration Specific Problems
|
||||
|
||||
* Ban "Not allowed" attempts:
|
||||
|
||||
Make sure that you have
|
||||
ChallengeResponseAuthentication no
|
||||
PasswordAuthentication yes
|
||||
|
||||
Details from the bug report #350980 [2]
|
||||
|
||||
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=350980
|
||||
|
||||
|
||||
* Not caught attempts to login as root
|
||||
|
||||
On the boxes running older versions of openssh (e.g. sarge
|
||||
distribution) in the case when PermitRootLogin is set to something
|
||||
else than "yes" and iff AllowUsers is active, failed root logins do
|
||||
not confirm to the standard logging message -- they omit the source
|
||||
IP, thus allowing attack to persist since such messages are not caught
|
||||
by fail2ban.
|
||||
|
||||
|
||||
* Bantime:
|
||||
|
||||
An IP is banned for "bantime" not since the last failed login attempt
|
||||
from the IP, but rather since the moment when failed login was
|
||||
detected by fail2ban. Thus, if fail2ban gets [re]started, any IP which
|
||||
had enough of failed logins with durations less than "findtime" between
|
||||
them prior to the [re]start moment, will be banned for
|
||||
"bantime" since [re]start moment, not since the last failed login
|
||||
time.
|
||||
|
||||
* Findtime:
|
||||
|
||||
"Findtime" option of a jail actually defines a duration to reset the
|
||||
counter of failed login attempts, if no new attempt was detected within
|
||||
that time frame (i.e. within "findtime").
|
||||
|
||||
See
|
||||
http://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Jail_Options
|
||||
for more information on jail options.
|
||||
|
||||
|
||||
* Syslog entries can be 'forged' by a regular user
|
||||
|
||||
From
|
||||
http://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Possibility_of_DOS_attack_by_a_local_user
|
||||
|
||||
Especially on systems wich provide ssh/CGI/PHP services to unknown
|
||||
users it is possible to block other users from ssh and probably other
|
||||
access as a unprivileged user may issue:
|
||||
|
||||
logger -p auth.warning -t 'sshd[123]' 'Illegal user user1 from 1.2.3.4'
|
||||
|
||||
N.B. chmod o-x /usr/bin/logger should provide at least obfuscation
|
||||
solution
|
||||
|
||||
Or the malicious user may write via PHP's openlog()/syslog() to syslog.
|
||||
|
||||
P.S. Anyone is welcome to recommend proper security solution to this
|
||||
issue, such as an alternative to sysklogd which allows better control
|
||||
over users logging to specific facilities (such as AUTH)
|
||||
|
||||
-- Yaroslav Halchenko <debian@onerussian.com>, Thu, 28 Jul 2011 23:19:44 -0400
|
||||
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
* Collect more sections for other log files
|
||||
* Find proper answer to "Syslog entries can be 'forged' by a regular
|
||||
user" mentioned in README.Debian
|
||||
|
||||
-- Yaroslav O. Halchenko <debian@onerussian.com> Wed, 6 Dec 2006 22:14:26 -0500
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
nopycentral.patch
|
||||
Vendored
+40
@@ -0,0 +1,40 @@
|
||||
diff -x '*~' -x .svn -Naur trunk/debian/control trunk.backports/debian/control
|
||||
--- trunk/debian/control 2006-10-23 00:57:02.000000000 -0400
|
||||
+++ trunk.backports/debian/control 2006-12-04 08:45:25.000000000 -0500
|
||||
@@ -4,13 +4,13 @@
|
||||
Maintainer: Yaroslav Halchenko <debian@onerussian.com>
|
||||
Uploaders: Barak Pearlmutter <bap@debian.org>
|
||||
Build-Depends: debhelper (>= 5.0.37.2), dpatch
|
||||
-Build-Depends-Indep: python, python-dev, help2man, python-central (>= 0.5.6)
|
||||
+Build-Depends-Indep: python, python2.4, python2.4-dev, help2man
|
||||
XS-Python-Version: current, >= 2.4
|
||||
Standards-Version: 3.7.2
|
||||
|
||||
Package: fail2ban
|
||||
Architecture: all
|
||||
-Depends: ${python:Depends}, iptables, lsb-base (>=2.0-7)
|
||||
+Depends: python2.4, iptables, lsb-base (>=2.0-7)
|
||||
Suggests: python-gamin
|
||||
XB-Python-Version: ${python:Versions}
|
||||
Description: bans IPs that cause multiple authentication errors
|
||||
diff -x '*~' -x .svn -Naur trunk/debian/rules trunk.backports/debian/rules
|
||||
--- trunk/debian/rules 2006-11-11 21:19:14.000000000 -0500
|
||||
+++ trunk.backports/debian/rules 2006-12-04 08:45:45.000000000 -0500
|
||||
@@ -39,7 +39,7 @@
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/fail2ban.
|
||||
- python setup.py install --root=$(DESTDIR) --no-compile
|
||||
+ python2.4 setup.py install --root=$(DESTDIR) --no-compile
|
||||
#X Evil - must be removed after Debian switches over to 2.4, now
|
||||
# distutils.setup will override the enterpreter line to /usr/bin/python
|
||||
install fail2ban-server fail2ban-client $(DESTDIR)/usr/bin
|
||||
@@ -62,7 +62,7 @@
|
||||
dh_installlogrotate
|
||||
dh_installinit -- defaults 99
|
||||
dh_installman man/*.1
|
||||
- dh_pycentral
|
||||
+ dh_python
|
||||
dh_link
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
Vendored
+1182
File diff suppressed because it is too large
Load Diff
Vendored
+1
@@ -0,0 +1 @@
|
||||
9
|
||||
Vendored
+30
@@ -0,0 +1,30 @@
|
||||
Source: fail2ban
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Yaroslav Halchenko <debian@onerussian.com>
|
||||
Build-Depends: debhelper (>= 9), python3, python3-pyinotify, dh-systemd
|
||||
Homepage: http://www.fail2ban.org
|
||||
Vcs-Git: git://github.com/fail2ban/fail2ban.git
|
||||
Vcs-Browser: http://github.com/fail2ban/fail2ban
|
||||
Standards-Version: 3.9.4
|
||||
|
||||
|
||||
Package: fail2ban
|
||||
Architecture: all
|
||||
Depends: ${python3:Depends}, ${misc:Depends}, lsb-base (>=2.0-7)
|
||||
Recommends: iptables, whois, python3-pyinotify
|
||||
Suggests: mailx, system-log-daemon, python3-systemd
|
||||
Description: ban hosts that cause multiple authentication errors
|
||||
Fail2ban monitors log files (e.g. /var/log/auth.log,
|
||||
/var/log/apache/access.log) and temporarily or persistently bans
|
||||
failure-prone addresses by updating existing firewall rules. Fail2ban allows
|
||||
easy specification of different actions to be taken such as to ban an
|
||||
IP using iptables or hostsdeny rules, or simply to send a
|
||||
notification email.
|
||||
.
|
||||
By default, it comes with filter expressions for various services
|
||||
(sshd, apache, qmail, proftpd, sasl etc.) but configuration can be
|
||||
easily extended for monitoring any other text file. All filters and
|
||||
actions are given in the config files, thus fail2ban can be adopted
|
||||
to be used with a variety of files and firewalls.
|
||||
|
||||
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
This package was originally debianized by Yaroslav Halchenko
|
||||
<debian@onerussian.com> on Mon Jul 4 14:41:34 HST 2005
|
||||
|
||||
It was downloaded from http://www.sourceforge.net/projects/fail2ban
|
||||
|
||||
Author: Cyril Jaquier: <cyril.jaquier@fail2ban.org>
|
||||
http://fail2ban.sourceforge.net
|
||||
|
||||
Copyright: 2004-2009 Cyril Jaquier
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
|
||||
MA 02110-1301, USA.
|
||||
|
||||
On Debian systems, the complete text of the GNU General Public
|
||||
License, version 2, can be found in /usr/share/common-licenses/GPL-2.
|
||||
|
||||
The Debian packaging is (C) 2006-2011, Yaroslav Halchenko <debian@onerussian.com>
|
||||
and is licensed under the GPL, see above.
|
||||
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
README.md
|
||||
TODO
|
||||
doc/run-rootless.txt
|
||||
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
# This file is part of Fail2Ban.
|
||||
#
|
||||
# Fail2Ban is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Fail2Ban is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Fail2Ban; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# Author: Cyril Jaquier
|
||||
#
|
||||
# $Revision$
|
||||
|
||||
# Command line options for Fail2Ban. Refer to "fail2ban-client -h" for
|
||||
# valid options.
|
||||
FAIL2BAN_OPTS=""
|
||||
|
||||
# Run fail2ban as a different user. If not set, fail2ban
|
||||
# will run as root.
|
||||
#
|
||||
# The user is not created automatically.
|
||||
# The user can be created e.g. with
|
||||
# useradd --system --no-create-home --home-dir / --groups adm fail2ban
|
||||
# Log files are readable by group adm by default. Adding the fail2ban
|
||||
# user to this group allows it to read the logfiles.
|
||||
#
|
||||
# Another manual step that needs to be taken is to allow write access
|
||||
# for fail2ban user to fail2ban log files. The /etc/init.d/fail2ban
|
||||
# script will change the ownership when starting fail2ban. Logrotate
|
||||
# needs to be configured separately, see /etc/logrotate.d/fail2ban.
|
||||
#
|
||||
# FAIL2BAN_USER="fail2ban"
|
||||
+244
@@ -0,0 +1,244 @@
|
||||
#! /bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: fail2ban
|
||||
# Required-Start: $local_fs $remote_fs
|
||||
# Required-Stop: $local_fs $remote_fs
|
||||
# Should-Start: $time $network $syslog iptables firehol shorewall ipmasq arno-iptables-firewall iptables-persistent ferm
|
||||
# Should-Stop: $network $syslog iptables firehol shorewall ipmasq arno-iptables-firewall iptables-persistent ferm
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Start/stop fail2ban
|
||||
# Description: Start/stop fail2ban, a daemon scanning the log files and
|
||||
# banning potential attackers.
|
||||
### END INIT INFO
|
||||
|
||||
# Author: Aaron Isotton <aaron@isotton.com>
|
||||
# Modified: by Yaroslav Halchenko <debian@onerussian.com>
|
||||
# reindented + minor corrections + to work on sarge without modifications
|
||||
# Modified: by Glenn Aaldering <glenn@openvideo.nl>
|
||||
# added exit codes for status command
|
||||
#
|
||||
PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
||||
DESC="authentication failure monitor"
|
||||
NAME=fail2ban
|
||||
|
||||
# fail2ban-client is not a daemon itself but starts a daemon and
|
||||
# loads its with configuration
|
||||
DAEMON=/usr/bin/$NAME-client
|
||||
SCRIPTNAME=/etc/init.d/$NAME
|
||||
|
||||
# Ad-hoc way to parse out socket file name
|
||||
SOCKFILE=`grep -h '^[^#]*socket *=' /etc/$NAME/$NAME.conf /etc/$NAME/$NAME.local 2>/dev/null \
|
||||
| tail -n 1 | sed -e 's/.*socket *= *//g' -e 's/ *$//g'`
|
||||
[ -z "$SOCKFILE" ] && SOCKFILE='/tmp/fail2ban.sock'
|
||||
|
||||
# Exit if the package is not installed
|
||||
[ -x "$DAEMON" ] || exit 0
|
||||
|
||||
# Run as root by default.
|
||||
FAIL2BAN_USER=root
|
||||
|
||||
# Read configuration variable file if it is present
|
||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||
DAEMON_ARGS="$FAIL2BAN_OPTS"
|
||||
|
||||
# Load the VERBOSE setting and other rcS variables
|
||||
[ -f /etc/default/rcS ] && . /etc/default/rcS
|
||||
|
||||
# Predefine what can be missing from lsb source later on -- necessary to run
|
||||
# on sarge. Just present it in a bit more compact way from what was shipped
|
||||
log_daemon_msg () {
|
||||
[ -z "$1" ] && return 1
|
||||
echo -n "$1:"
|
||||
[ -z "$2" ] || echo -n " $2"
|
||||
}
|
||||
|
||||
# Define LSB log_* functions.
|
||||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
||||
# Actually has to (>=2.0-7) present in sarge. log_daemon_msg is predefined
|
||||
# so we must be ok
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
#
|
||||
# Shortcut function for abnormal init script interruption
|
||||
#
|
||||
report_bug()
|
||||
{
|
||||
echo $*
|
||||
echo "Please submit a bug report to Debian BTS (reportbug fail2ban)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# Helper function to check if socket is present, which is often left after
|
||||
# abnormal exit of fail2ban and needs to be removed
|
||||
#
|
||||
check_socket()
|
||||
{
|
||||
# Return
|
||||
# 0 if socket is present and readable
|
||||
# 1 if socket file is not present
|
||||
# 2 if socket file is present but not readable
|
||||
# 3 if socket file is present but is not a socket
|
||||
[ -e "$SOCKFILE" ] || return 1
|
||||
[ -r "$SOCKFILE" ] || return 2
|
||||
[ -S "$SOCKFILE" ] || return 3
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# Function that starts the daemon/service
|
||||
#
|
||||
do_start()
|
||||
{
|
||||
# Return
|
||||
# 0 if daemon has been started
|
||||
# 1 if daemon was already running
|
||||
# 2 if daemon could not be started
|
||||
do_status && return 1
|
||||
|
||||
if [ -e "$SOCKFILE" ]; then
|
||||
log_failure_msg "Socket file $SOCKFILE is present"
|
||||
[ "$1" = "force-start" ] \
|
||||
&& log_success_msg "Starting anyway as requested" \
|
||||
|| return 2
|
||||
DAEMON_ARGS="$DAEMON_ARGS -x"
|
||||
fi
|
||||
|
||||
# Assure that /var/run/fail2ban exists
|
||||
[ -d /var/run/fail2ban ] || mkdir -p /var/run/fail2ban
|
||||
|
||||
if [ "$FAIL2BAN_USER" != "root" ]; then
|
||||
# Make the socket directory, IP lists and fail2ban log
|
||||
# files writable by fail2ban
|
||||
chown "$FAIL2BAN_USER" /var/run/fail2ban
|
||||
# Create the logfile if it doesn't exist
|
||||
touch /var/log/fail2ban.log
|
||||
chown "$FAIL2BAN_USER" /var/log/fail2ban.log
|
||||
find /proc/net/xt_recent -name 'fail2ban-*' -exec chown "$FAIL2BAN_USER" {} \;
|
||||
fi
|
||||
|
||||
start-stop-daemon --start --quiet --chuid "$FAIL2BAN_USER" --exec $DAEMON -- \
|
||||
$DAEMON_ARGS start > /dev/null\
|
||||
|| return 2
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Function that checks the status of fail2ban and returns
|
||||
# corresponding code
|
||||
#
|
||||
do_status()
|
||||
{
|
||||
$DAEMON ping > /dev/null 2>&1
|
||||
return $?
|
||||
}
|
||||
|
||||
#
|
||||
# Function that stops the daemon/service
|
||||
#
|
||||
do_stop()
|
||||
{
|
||||
# Return
|
||||
# 0 if daemon has been stopped
|
||||
# 1 if daemon was already stopped
|
||||
# 2 if daemon could not be stopped
|
||||
# other if a failure occurred
|
||||
$DAEMON status > /dev/null 2>&1 || return 1
|
||||
$DAEMON stop > /dev/null || return 2
|
||||
|
||||
# now we need actually to wait a bit since it might take time
|
||||
# for server to react on client's stop request. Especially
|
||||
# important for restart command on slow boxes
|
||||
count=1
|
||||
while do_status && [ $count -lt 60 ]; do
|
||||
sleep 1
|
||||
count=$(($count+1))
|
||||
done
|
||||
[ $count -lt 60 ] || return 3 # failed to stop
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# Function to reload configuration
|
||||
#
|
||||
do_reload() {
|
||||
$DAEMON reload > /dev/null && return 0 || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
# yoh:
|
||||
# shortcut function to don't duplicate case statements and to don't use
|
||||
# bashisms (arrays). Fixes #368218
|
||||
#
|
||||
log_end_msg_wrapper()
|
||||
{
|
||||
if [ "$3" != "no" ]; then
|
||||
[ $1 -lt $2 ] && value=0 || value=1
|
||||
log_end_msg $value
|
||||
fi
|
||||
}
|
||||
|
||||
command="$1"
|
||||
case "$command" in
|
||||
start|force-start)
|
||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||
do_start "$command"
|
||||
log_end_msg_wrapper $? 2 "$VERBOSE"
|
||||
;;
|
||||
|
||||
stop)
|
||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||
do_stop
|
||||
log_end_msg_wrapper $? 2 "$VERBOSE"
|
||||
;;
|
||||
|
||||
restart|force-reload)
|
||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||
do_stop
|
||||
case "$?" in
|
||||
0|1)
|
||||
do_start
|
||||
log_end_msg_wrapper $? 1 "always"
|
||||
;;
|
||||
*)
|
||||
# Failed to stop
|
||||
log_end_msg 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
reload|force-reload)
|
||||
log_daemon_msg "Reloading $DESC" "$NAME"
|
||||
do_reload
|
||||
log_end_msg $?
|
||||
;;
|
||||
|
||||
status)
|
||||
log_daemon_msg "Status of $DESC"
|
||||
do_status
|
||||
case $? in
|
||||
0) log_success_msg " $NAME is running" ;;
|
||||
255)
|
||||
check_socket
|
||||
case $? in
|
||||
1) log_failure_msg " $NAME is not running" && exit 3 ;;
|
||||
0) log_failure_msg " $NAME is not running but $SOCKFILE exists" && exit 3 ;;
|
||||
2) log_failure_msg " $SOCKFILE not readable, status of $NAME is unknown" && exit 3 ;;
|
||||
3) log_failure_msg " $SOCKFILE exists but not a socket, status of $NAME is unknown" && exit 3 ;;
|
||||
*) report_bug "Unknown return code from $NAME:check_socket." && exit 4 ;;
|
||||
esac
|
||||
;;
|
||||
*) report_bug "Unknown $NAME status code" && exit 4
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $SCRIPTNAME {start|force-start|stop|restart|force-reload|status}" >&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
|
||||
:
|
||||
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
/var/log/fail2ban.log {
|
||||
|
||||
weekly
|
||||
rotate 4
|
||||
compress
|
||||
|
||||
delaycompress
|
||||
missingok
|
||||
postrotate
|
||||
fail2ban-client flushlogs 1>/dev/null
|
||||
endscript
|
||||
|
||||
# If fail2ban runs as non-root it still needs to have write access
|
||||
# to logfiles.
|
||||
# create 640 fail2ban adm
|
||||
create 640 root adm
|
||||
}
|
||||
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
[DEFAULT]
|
||||
# the default branch for upstream sources:
|
||||
upstream-branch = upstream
|
||||
# the default branch for the debian patch:
|
||||
debian-branch = debian-releases/experimental
|
||||
# use pristine-tar
|
||||
# pristine-tar = True
|
||||
# the default tag formats used:
|
||||
upstream-tag = %(version)s
|
||||
debian-tag = debian/%(version)s
|
||||
|
||||
|
||||
# Options only affecting git-buildpackage
|
||||
[git-buildpackage]
|
||||
# use this for more svn-buildpackage like bahaviour:
|
||||
export-dir = ../build-area/
|
||||
tarball-dir = ../tarballs/
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
From: Yaroslav Halchenko <debian@onerussian.com>
|
||||
Date: Fri, 8 Feb 2008 00:40:57 -0500
|
||||
Subject: tune ups in upstream manpages to direct users to use reportbug
|
||||
|
||||
--- a/man/fail2ban-client.1
|
||||
+++ b/man/fail2ban-client.1
|
||||
@@ -369,7 +369,7 @@
|
||||
Written by Cyril Jaquier <cyril.jaquier@fail2ban.org>.
|
||||
Many contributions by Yaroslav O. Halchenko <debian@onerussian.com>.
|
||||
.SH "REPORTING BUGS"
|
||||
-Report bugs to https://github.com/fail2ban/fail2ban/issues
|
||||
+Report bugs via Debian bug tracking system \fIhttp://www.debian.org/Bugs/\fR .
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2004\-2008 Cyril Jaquier, 2008\- Fail2Ban Contributors
|
||||
.br
|
||||
--- a/man/fail2ban-server.1
|
||||
+++ b/man/fail2ban-server.1
|
||||
@@ -38,7 +38,7 @@
|
||||
Written by Cyril Jaquier <cyril.jaquier@fail2ban.org>.
|
||||
Many contributions by Yaroslav O. Halchenko <debian@onerussian.com>.
|
||||
.SH "REPORTING BUGS"
|
||||
-Report bugs to https://github.com/fail2ban/fail2ban/issues
|
||||
+Report bugs via Debian bug tracking system \fIhttp://www.debian.org/Bugs/\fR .
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2004\-2008 Cyril Jaquier, 2008\- Fail2Ban Contributors
|
||||
.br
|
||||
Vendored
+46
@@ -0,0 +1,46 @@
|
||||
From: Yaroslav Halchenko <debian@onerussian.com>
|
||||
Date: Thu, 6 Dec 2012 12:50:12 -0500
|
||||
Subject: [PATCH] Patch for elderly Debian/Ubuntu (e.g. 10.04) releases without dh_python2
|
||||
|
||||
Use again pycentral etc
|
||||
|
||||
crafted post 0.8.8-1 release when a user complained about inability to upgrade
|
||||
|
||||
---
|
||||
debian/control | 2 ++
|
||||
debian/rules | 12 +++++-------
|
||||
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/debian/control
|
||||
+++ b/debian/control
|
||||
@@ -3,6 +3,8 @@ Section: net
|
||||
Priority: optional
|
||||
Maintainer: Yaroslav Halchenko <debian@onerussian.com>
|
||||
Build-Depends: debhelper (>= 5.0.37.2), python (>= 2.5.4-1~), python-pyinotify
|
||||
+Build-Depends-Indep: python-central (>= 0.5.6)
|
||||
+XS-Python-Version: current, >= 2.4
|
||||
Homepage: http://www.fail2ban.org
|
||||
Vcs-Git: git://github.com/fail2ban/fail2ban.git
|
||||
Vcs-Browser: http://github.com/fail2ban/fail2ban
|
||||
--- a/debian/rules
|
||||
+++ b/debian/rules
|
||||
@@ -72,14 +72,12 @@ binary-indep: install
|
||||
dh_installdocs
|
||||
dh_installexamples config/jail.conf files/ipmasq-*
|
||||
dh_installlogrotate
|
||||
- dh_python2 /usr/share/fail2ban
|
||||
+ dh_pycentral
|
||||
dh_installinit -- defaults 99
|
||||
-
|
||||
- # perform swap of order of calls to init and pycentral (or even
|
||||
- # bleedingly new dh_python2) in prerm to close #422655 --
|
||||
- # python-cleanup section is cut and placed at the end of the file
|
||||
- # since .init script would trigger their compilation again
|
||||
- sed -i -e '/^#.*ed by dh_python2/,/# End auto/{H;d};$$G' \
|
||||
+ # perform swap of order of calls to init and pycentral in prerm
|
||||
+ # to close #422655 -- pycentral section is cut and placed at
|
||||
+ # the end of the file
|
||||
+ sed -i -e '/^#.*ed by dh_pycentral/,/# End auto/{H;d};$$G' \
|
||||
debian/fail2ban.prerm.debhelper
|
||||
|
||||
dh_installman man/*.[15]
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
deb_manpages_reportbug
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
#! /bin/sh
|
||||
# postinst script for fail2ban
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
#
|
||||
preversion=$2
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
# To fix the bug in generated by previous version files permissions
|
||||
# also closes #352053
|
||||
|
||||
LOG=/var/log/fail2ban.log
|
||||
touch $LOG
|
||||
chown root:adm ${LOG}*
|
||||
chmod 640 ${LOG}*
|
||||
|
||||
# Note regarding changed configuration file
|
||||
# Note regarding changed configuration file
|
||||
if [ ! -z $preversion ]; then
|
||||
if dpkg --compare-versions $preversion lt 0.7.1-1; then
|
||||
cat <<EOF
|
||||
WARNING!
|
||||
|
||||
Fail2ban 0.7 is a complete rewrite of the 0.6 version, and if you
|
||||
customized any of provided configuration or startup files
|
||||
(/etc/default/fail2ban, /etc/fail2ban.conf, /etc/init.d/fail2ban), please
|
||||
read relevant entry in /usr/share/doc/fail2ban/NEWS.Debian.gz.
|
||||
|
||||
EOF
|
||||
fi
|
||||
if dpkg --compare-versions $preversion lt 0.5.4-5.14; then
|
||||
cat <<EOF
|
||||
WARNING!
|
||||
|
||||
Configuration file /etc/fail2ban.conf, failregex configuration
|
||||
parameter specificly, were changed in 0.5.4-5 to close reported
|
||||
security breach, and in 0.5.4-5.14 to close few other bugs.
|
||||
|
||||
updating from <0.5.4-5
|
||||
Unless configuration file (or corresponding failregex'es) gets updated,
|
||||
security breach is not closed and corresponding warning will be reported
|
||||
by the fail2ban (in the log files).
|
||||
|
||||
updating from <0.5.4-5.14
|
||||
Bugs #329163, #331695 dealing with changed iptables rules
|
||||
outside of fail2ban were fixed in 0.5.4-5.14, and require upgrade of the
|
||||
configuration file (fwcheck option was introduced) to take full
|
||||
advantage of the problem solution (otherwise some problems might
|
||||
persist)
|
||||
|
||||
Please review the configuration file and make appropriate changes.
|
||||
ENJOY!
|
||||
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/action.d/firewall-cmd-direct-new.conf /etc/fail2ban/action.d/firewallcmd-new.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/lighttpd-fastcgi.conf /etc/fail2ban/filter.d/suhosin.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/sasl.conf /etc/fail2ban/filter.d/postfix-sasl.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/couriersmtp.conf /etc/fail2ban/filter.d/courier-smtp.conf 0.9.0-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/courierlogin.conf /etc/fail2ban/filter.d/courier-auth.conf 0.9.0-1~ -- "$@"
|
||||
fi
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
#! /bin/sh
|
||||
# postrm script for fail2ban
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
|
||||
# for details, see /usr/doc/packaging-manual/
|
||||
|
||||
|
||||
case "$1" in
|
||||
purge|disappear)
|
||||
|
||||
# Remove configuration
|
||||
rm -f /etc/fail2ban.conf
|
||||
|
||||
# Remove logs
|
||||
rm -f /var/log/fail2ban*
|
||||
|
||||
# Remove sqlite db
|
||||
rm -f /var/lib/fail2ban/fail2ban.sqlite3
|
||||
;;
|
||||
remove|upgrade|failed-upgrade|abort-install|abort-upgrade)
|
||||
# nothing
|
||||
# We may not delete the user fail2ban, as there may be
|
||||
# files owned by it in /var/log/ and /etc/.
|
||||
;;
|
||||
esac
|
||||
|
||||
if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/action.d/firewall-cmd-direct-new.conf /etc/fail2ban/action.d/firewallcmd-new.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/lighttpd-fastcgi.conf /etc/fail2ban/filter.d/suhosin.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/sasl.conf /etc/fail2ban/filter.d/postfix-sasl.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/couriersmtp.conf /etc/fail2ban/filter.d/courier-smtp.conf 0.9.0-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/courierlogin.conf /etc/fail2ban/filter.d/courier-auth.conf 0.9.0-1~ -- "$@"
|
||||
fi
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/action.d/firewall-cmd-direct-new.conf /etc/fail2ban/action.d/firewallcmd-new.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/lighttpd-fastcgi.conf /etc/fail2ban/filter.d/suhosin.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/sasl.conf /etc/fail2ban/filter.d/postfix-sasl.conf 0.8.13-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/couriersmtp.conf /etc/fail2ban/filter.d/courier-smtp.conf 0.9.0-1~ -- "$@"
|
||||
dpkg-maintscript-helper mv_conffile /etc/fail2ban/filter.d/courierlogin.conf /etc/fail2ban/filter.d/courier-auth.conf 0.9.0-1~ -- "$@"
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# This file was originally written by Joey Hess and Craig Small.
|
||||
# As a special exception, when this file is copied by dh-make into a
|
||||
# dh-make output file, you may use that output file without restriction.
|
||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export PYBUILD_DISABLE_python2=1
|
||||
|
||||
%:
|
||||
dh $@ --with python3,systemd --buildsystem pybuild
|
||||
|
||||
DESTDIR=$(CURDIR)/debian/fail2ban
|
||||
PYVERSION=$(shell py3versions -dv)
|
||||
|
||||
override_dh_clean:
|
||||
rm -rf fail2ban.egg-info
|
||||
dh_clean
|
||||
|
||||
override_dh_install:
|
||||
rm -f $(DESTDIR)/usr/share/doc/fail2ban/README.Solaris
|
||||
: # Remove explicitely created /var/run/fail2ban
|
||||
: # just to please lintian since init file will
|
||||
: # take care about it anyways
|
||||
rm -rf $(DESTDIR)/var/run/
|
||||
: # Install bash completion
|
||||
install -d $(DESTDIR)/etc/bash_completion.d
|
||||
install -m 644 files/bash-completion $(DESTDIR)/etc/bash_completion.d/fail2ban
|
||||
: # Install systemd files
|
||||
install -d $(DESTDIR)/lib/systemd/system
|
||||
install -d $(DESTDIR)/usr/lib/tmpfiles.d
|
||||
install -m 644 files/fail2ban.service $(DESTDIR)/lib/systemd/system
|
||||
install -m 644 files/fail2ban-tmpfiles.conf $(DESTDIR)/usr/lib/tmpfiles.d
|
||||
install -d $(DESTDIR)/lib/systemd/system
|
||||
: # Install default jail enabler
|
||||
install -m 644 debian/source/jail.d_defaults-debian.conf $(DESTDIR)/etc/fail2ban/jail.d/defaults-debian.conf
|
||||
dh_install
|
||||
|
||||
override_dh_auto_test:
|
||||
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
|
||||
cd build && FAIL2BAN_CONFIG_DIR="$(CURDIR)/config" PYTHONPATH="$(CURDIR)/.pybuild/pythonX.Y_$(PYVERSION)/build/" scripts-*/fail2ban-testcases --no-network
|
||||
endif
|
||||
|
||||
override_dh_installexamples:
|
||||
dh_installexamples files/ipmasq-* files/nagios files/cacti
|
||||
|
||||
override_dh_installinit:
|
||||
dh_installinit -- defaults 99
|
||||
|
||||
override_dh_installman:
|
||||
dh_installman man/*.[15]
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
3.0 (quilt)
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
[sshd]
|
||||
enabled = true
|
||||
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
# watch control file for uscan
|
||||
# Run the "uscan" command to check for upstream updates and more.
|
||||
# Site Directory Pattern Version Script
|
||||
version=3
|
||||
opts="filenamemangle=s/.*\/(.*).tar.gz/fail2ban_$1\.orig.tar.gz/" \
|
||||
http://githubredir.debian.net/github/fail2ban/fail2ban /([\.0-9]*).tar.gz
|
||||
@@ -22,11 +22,7 @@ import unittest
|
||||
import sys
|
||||
|
||||
from ..dummyjail import DummyJail
|
||||
|
||||
if os.path.exists('config/fail2ban.conf'):
|
||||
CONFIG_DIR = "config"
|
||||
else:
|
||||
CONFIG_DIR='/etc/fail2ban'
|
||||
from ..utils import CONFIG_DIR
|
||||
|
||||
if sys.version_info >= (2,7):
|
||||
class BadIPsActionTest(unittest.TestCase):
|
||||
|
||||
@@ -30,10 +30,7 @@ else:
|
||||
|
||||
from ..dummyjail import DummyJail
|
||||
|
||||
if os.path.exists('config/fail2ban.conf'):
|
||||
CONFIG_DIR = "config"
|
||||
else:
|
||||
CONFIG_DIR='/etc/fail2ban'
|
||||
from ..utils import CONFIG_DIR
|
||||
|
||||
class TestSMTPServer(smtpd.SMTPServer):
|
||||
|
||||
|
||||
@@ -32,8 +32,10 @@ from ..client.configurator import Configurator
|
||||
from .utils import LogCaptureTestCase
|
||||
|
||||
TEST_FILES_DIR = os.path.join(os.path.dirname(__file__), "files")
|
||||
|
||||
from .utils import CONFIG_DIR
|
||||
|
||||
STOCK = os.path.exists(os.path.join('config','fail2ban.conf'))
|
||||
CONFIG_DIR='config' if STOCK else '/etc/fail2ban'
|
||||
|
||||
IMPERFECT_CONFIG = os.path.join(os.path.dirname(__file__), 'config')
|
||||
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
#!/bin/env python
|
||||
import requests
|
||||
import md5
|
||||
|
||||
try:
|
||||
import hashlib
|
||||
md5sum = hashlib.md5
|
||||
except ImportError: # pragma: no cover
|
||||
# hashlib was introduced in Python 2.5. For compatibility with those
|
||||
# elderly Pythons, import from md5
|
||||
import md5
|
||||
md5sum = md5.new
|
||||
|
||||
def auth(v):
|
||||
|
||||
ha1 = md5.new(username + ':' + realm + ':' + password).hexdigest()
|
||||
ha2 = md5.new("GET:" + url).hexdigest()
|
||||
ha1 = md5sum(username + ':' + realm + ':' + password).hexdigest()
|
||||
ha2 = md5sum("GET:" + url).hexdigest()
|
||||
|
||||
#response = md5.new(ha1 + ':' + v['nonce'][1:-1] + ':' + v['nc'] + ':' + v['cnonce'][1:-1]
|
||||
#response = md5sum(ha1 + ':' + v['nonce'][1:-1] + ':' + v['nc'] + ':' + v['cnonce'][1:-1]
|
||||
# + ':' + v['qop'][1:-1] + ':' + ha2).hexdigest()
|
||||
|
||||
nonce = v['nonce'][1:-1]
|
||||
@@ -17,7 +24,7 @@ def auth(v):
|
||||
#opaque = v.get('opaque') or ''
|
||||
qop = v['qop'][1:-1]
|
||||
algorithm = v['algorithm']
|
||||
response = md5.new(ha1 + ':' + nonce + ':' + nc + ':' + cnonce + ':' + qop + ':' + ha2).hexdigest()
|
||||
response = md5sum(ha1 + ':' + nonce + ':' + nc + ':' + cnonce + ':' + qop + ':' + ha2).hexdigest()
|
||||
|
||||
p = requests.Request('GET', host + url).prepare()
|
||||
#p.headers['Authentication-Info'] = response
|
||||
@@ -33,13 +40,13 @@ def auth(v):
|
||||
response="%s"
|
||||
""" % ( username, algorithm, realm, url, nonce, qop, response )
|
||||
# opaque="%s",
|
||||
print p.method, p.url, p.headers
|
||||
print(p.method, p.url, p.headers)
|
||||
s = requests.Session()
|
||||
return s.send(p)
|
||||
|
||||
def preauth():
|
||||
r = requests.get(host + url)
|
||||
print r
|
||||
print(r)
|
||||
r.headers['www-authenticate'].split(', ')
|
||||
return dict([ a.split('=',1) for a in r.headers['www-authenticate'].split(', ') ])
|
||||
|
||||
@@ -51,7 +58,7 @@ v = preauth()
|
||||
|
||||
username="username"
|
||||
password = "password"
|
||||
print v
|
||||
print(v)
|
||||
|
||||
realm = 'so far away'
|
||||
r = auth(v)
|
||||
@@ -67,18 +74,18 @@ r = auth(v)
|
||||
|
||||
# [Sun Jul 28 21:41:20 2013] [error] [client 127.0.0.1] Digest: unknown algorithm `super funky chicken' received: /digest/
|
||||
|
||||
print r.status_code,r.headers, r.text
|
||||
print(r.status_code,r.headers, r.text)
|
||||
v['algorithm'] = algorithm
|
||||
|
||||
|
||||
r = auth(v)
|
||||
print r.status_code,r.headers, r.text
|
||||
print(r.status_code,r.headers, r.text)
|
||||
|
||||
nonce = v['nonce']
|
||||
v['nonce']=v['nonce'][5:-5]
|
||||
|
||||
r = auth(v)
|
||||
print r.status_code,r.headers, r.text
|
||||
print(r.status_code,r.headers, r.text)
|
||||
|
||||
# [Sun Jul 28 21:05:31.178340 2013] [auth_digest:error] [pid 24224:tid 139895539455744] [client 127.0.0.1:56906] AH01793: invalid qop `auth' received: /digest/qop_none/
|
||||
|
||||
@@ -86,7 +93,7 @@ print r.status_code,r.headers, r.text
|
||||
v['nonce']=nonce[0:11] + 'ZZZ' + nonce[14:]
|
||||
|
||||
r = auth(v)
|
||||
print r.status_code,r.headers, r.text
|
||||
print(r.status_code,r.headers, r.text)
|
||||
|
||||
#[Sun Jul 28 21:18:11.769228 2013] [auth_digest:error] [pid 24752:tid 139895505884928] [client 127.0.0.1:56964] AH01776: invalid nonce b9YAiJDiBAZZZ1b1abe02d20063ea3b16b544ea1b0d981c1bafe received - hash is not d42d824dee7aaf50c3ba0a7c6290bd453e3dd35b
|
||||
|
||||
@@ -98,7 +105,7 @@ import time
|
||||
time.sleep(1)
|
||||
|
||||
r = auth(v)
|
||||
print r.status_code,r.headers, r.text
|
||||
print(r.status_code,r.headers, r.text)
|
||||
|
||||
# Obtained by putting the following code in modules/aaa/mod_auth_digest.c
|
||||
# in the function initialize_secret
|
||||
@@ -128,7 +135,7 @@ s = sha.sha(apachesecret)
|
||||
|
||||
v=preauth()
|
||||
|
||||
print v['nonce']
|
||||
print(v['nonce'])
|
||||
realm = v['Digest realm'][1:-1]
|
||||
|
||||
(t,) = struct.unpack('l',base64.b64decode(v['nonce'][1:13]))
|
||||
@@ -143,17 +150,17 @@ s.update(timepac)
|
||||
|
||||
v['nonce'] = v['nonce'][0] + timepac + s.hexdigest() + v['nonce'][-1]
|
||||
|
||||
print v
|
||||
print(v)
|
||||
|
||||
r = auth(v)
|
||||
#[Mon Jul 29 02:12:55.539813 2013] [auth_digest:error] [pid 9647:tid 139895522670336] [client 127.0.0.1:58474] AH01777: invalid nonce 59QJppTiBAA=b08983fd166ade9840407df1b0f75b9e6e07d88d received - user attempted time travel
|
||||
print r.status_code,r.headers, r.text
|
||||
print(r.status_code,r.headers, r.text)
|
||||
|
||||
url='/digest_onetime/'
|
||||
v=preauth()
|
||||
|
||||
# Need opaque header handling in auth
|
||||
r = auth(v)
|
||||
print r.status_code,r.headers, r.text
|
||||
print(r.status_code,r.headers, r.text)
|
||||
r = auth(v)
|
||||
print r.status_code,r.headers, r.text
|
||||
print(r.status_code,r.headers, r.text)
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
# failJSON: { "time": "2013-07-20T21:34:49", "match": true , "host": "127.0.0.1" }
|
||||
[Sat Jul 20 21:34:49.453232 2013] [access_compat:error] [pid 17512:tid 140123104306944] [client 127.0.0.1:51380] AH01797: client denied by server configuration: /var/www/html/noentry/cant_get_me.html
|
||||
|
||||
# failJSON: { "time": "2014-09-14T21:44:43", "match": true , "host": "192.3.9.178" }
|
||||
[Sun Sep 14 21:44:43.008606 2014] [authz_core:error] [pid 10691] [client 192.3.9.178:44271] AH01630: client denied by server configuration: /var/www/html/noentry/cant_get_me.html
|
||||
|
||||
# wget --http-user='' --http-password='' http://localhost/basic/file/cant_get_me.html -O /dev/null
|
||||
# failJSON: { "time": "2013-07-17T23:14:37", "match": true , "host": "127.0.0.1" }
|
||||
[Wed Jul 17 23:14:37 2013] [error] [client 127.0.0.1] user not found: /basic/anon/cant_get_me.html
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# failJSON: { "time": "2014-09-25T09:27:18", "match": true , "host": "89.207.132.76" }
|
||||
[Thu Sep 25 09:27:18.813902 2014] [cgi:error] [pid 16860] [client 89.207.132.76:59635] AH01215: /bin/bash: warning: HTTP_TEST: ignoring function definition attempt
|
||||
# failJSON: { "time": "2014-09-25T09:29:56", "match": true , "host": "162.247.73.206" }
|
||||
[Thu Sep 25 09:29:56.141832 2014] [cgi:error] [pid 16864] [client 162.247.73.206:41273] AH01215: /bin/bash: error importing function definition for `HTTP_TEST'
|
||||
@@ -5,3 +5,6 @@ Dec 2 22:24:22 hel postfix/smtpd[7676]: warning: 114-44-142-233.dynamic.hinet.n
|
||||
# failJSON: { "time": "2005-03-10T13:33:30", "match": true , "host": "1.1.1.1" }
|
||||
Mar 10 13:33:30 gandalf postfix/smtpd[3937]: warning: HOSTNAME[1.1.1.1]: SASL LOGIN authentication failed: authentication failure
|
||||
|
||||
#3 Example from postfix post-debian changes to rename to add "submission" to syslog name
|
||||
# failJSON: { "time": "2004-09-06T00:44:56", "match": true , "host": "82.221.106.233" }
|
||||
Sep 6 00:44:56 trianon postfix/submission/smtpd[11538]: warning: unknown[82.221.106.233]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
|
||||
|
||||
@@ -32,13 +32,9 @@ else:
|
||||
|
||||
from ..server.filter import Filter
|
||||
from ..client.filterreader import FilterReader
|
||||
from .utils import setUpMyTime, tearDownMyTime
|
||||
from .utils import setUpMyTime, tearDownMyTime, CONFIG_DIR
|
||||
|
||||
TEST_FILES_DIR = os.path.join(os.path.dirname(__file__), "files")
|
||||
if os.path.exists('config/fail2ban.conf'):
|
||||
CONFIG_DIR = "config"
|
||||
else:
|
||||
CONFIG_DIR='/etc/fail2ban'
|
||||
|
||||
class FilterSamplesRegex(unittest.TestCase):
|
||||
|
||||
|
||||
@@ -34,6 +34,15 @@ from ..helpers import getLogger
|
||||
|
||||
logSys = getLogger(__name__)
|
||||
|
||||
CONFIG_DIR = os.environ.get('FAIL2BAN_CONFIG_DIR', None)
|
||||
|
||||
if not CONFIG_DIR:
|
||||
# Use heuristic to figure out where configuration files are
|
||||
if os.path.exists(os.path.join('config','fail2ban.conf')):
|
||||
CONFIG_DIR = 'config'
|
||||
else:
|
||||
CONFIG_DIR = '/etc/fail2ban'
|
||||
|
||||
def mtimesleep():
|
||||
# no sleep now should be necessary since polling tracks now not only
|
||||
# mtime but also ino and size
|
||||
|
||||
Executable
+209
@@ -0,0 +1,209 @@
|
||||
#!/usr/bin/perl
|
||||
##########################################################################
|
||||
# $Id: fail2ban 150 2013-06-18 22:19:38Z mtremaine $
|
||||
##########################################################################
|
||||
# $Log: fail2ban,v $
|
||||
#
|
||||
# Revision 1.6 2014/08/11 16:07:46 yoh
|
||||
# Patches from Yaroslav Halchenko to match adjusted in 0.9.x lines.
|
||||
# Also reports now total number of hits (matches) along with Ban:Unban
|
||||
# and relaxed regular expressions for matching any log level
|
||||
#
|
||||
# Revision 1.5 2008/08/18 16:07:46 mike
|
||||
# Patches from Paul Gear <paul at libertysys.com> -mgt
|
||||
#
|
||||
# Revision 1.4 2008/06/30 23:07:51 kirk
|
||||
# fixed copyright holders for files where I know who they should be
|
||||
#
|
||||
# Revision 1.3 2008/03/24 23:31:26 kirk
|
||||
# added copyright/license notice to each script
|
||||
#
|
||||
# Revision 1.2 2006/12/15 04:53:59 bjorn
|
||||
# Additional filtering, by Willi Mann.
|
||||
#
|
||||
# Revision 1.1 2006/05/30 19:04:26 bjorn
|
||||
# Added fail2ban service, written by Yaroslav Halchenko.
|
||||
#
|
||||
# Written by Yaroslav Halchenko <debian@onerussian.com> for fail2ban
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
########################################################
|
||||
## Copyright (c) 2008 Yaroslav Halchenko
|
||||
## Covered under the included MIT/X-Consortium License:
|
||||
## http://www.opensource.org/licenses/mit-license.php
|
||||
## All modifications and contributions by other persons to
|
||||
## this script are assumed to have been donated to the
|
||||
## Logwatch project and thus assume the above copyright
|
||||
## and licensing terms. If you want to make contributions
|
||||
## under your own copyright or a different license this
|
||||
## must be explicitly stated in the contribution an the
|
||||
## Logwatch project reserves the right to not accept such
|
||||
## contributions. If you have made significant
|
||||
## contributions to this script and want to claim
|
||||
## copyright please contact logwatch-devel@lists.sourceforge.net.
|
||||
#########################################################
|
||||
|
||||
use strict;
|
||||
use Logwatch ':all';
|
||||
|
||||
my $Debug = $ENV{'LOGWATCH_DEBUG'} || 0;
|
||||
my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
|
||||
my $IgnoreHost = $ENV{'sshd_ignore_host'} || "";
|
||||
my $DebugCounter = 0;
|
||||
my $ReInitializations = 0;
|
||||
my @ActionsErrors = ();
|
||||
my @CommandsErrors = ();
|
||||
my $NotValidIP = 0; # reported invalid IPs number
|
||||
my @OtherList = ();
|
||||
|
||||
my %ServicesBans = ();
|
||||
|
||||
if ( $Debug >= 5 ) {
|
||||
print STDERR "\n\nDEBUG: Inside Fail2Ban Filter \n\n";
|
||||
$DebugCounter = 1;
|
||||
}
|
||||
|
||||
while (defined(my $ThisLine = <STDIN>)) {
|
||||
if ( $Debug >= 5 ) {
|
||||
print STDERR "DEBUG($DebugCounter): $ThisLine";
|
||||
$DebugCounter++;
|
||||
}
|
||||
chomp($ThisLine);
|
||||
if ( ($ThisLine =~ /..,... DEBUG: /) or
|
||||
($ThisLine =~ /..,... \S*\s*: DEBUG /) or # syntax of 0.7.? fail2ban
|
||||
($ThisLine =~ /..,... \S+: (Fail2Ban v.* is running|Exiting|Enabled sections:)/) or
|
||||
($ThisLine =~ /\S+\s+rollover performed on/) or
|
||||
($ThisLine =~ /\S+\s+Connected to .* persistent database/) or
|
||||
($ThisLine =~ /\S+\s+Jail '.*' uses .*/) or
|
||||
($ThisLine =~ /\S+\s+Initiated '.*' backend/) or
|
||||
($ThisLine =~ /\S+\s+Jail .* is not a JournalFilter instance/) or
|
||||
($ThisLine =~ /\S+\s+Log rotation detected for/) or
|
||||
($ThisLine =~ /\S+\s+Jail.+(?:stopped|started|uses poller)/) or
|
||||
($ThisLine =~ /\S+\s+Changed logging target to/) or
|
||||
($ThisLine =~ /\S+\s+Creating new jail/) or
|
||||
($ThisLine =~ /..,... \S+\s*: INFO\s+(Set |Socket|Exiting|Gamin|Created|Added|Using)/) or # syntax of 0.7.? fail2ban
|
||||
($ThisLine =~ /..,... \S+: Verbose level is /) or
|
||||
($ThisLine =~ /..,... \S+: Restoring firewall rules/)
|
||||
)
|
||||
{
|
||||
if ( $Debug >= 6 ) {
|
||||
print STDERR "DEBUG($DebugCounter): line ignored\n";
|
||||
}
|
||||
} elsif ( my ($LogLevel,$Service,$Action,$Host) = ($ThisLine =~ m/(WARNING|NOTICE):?\s+\[?(.*?)[]:]?\s(Ban|Unban)[^\.]* (\S+)/)) {
|
||||
if ( $Debug >= 6 ) {
|
||||
print STDERR "DEBUG($DebugCounter): Found $Action for $Service from $Host\n";
|
||||
}
|
||||
$ServicesBans{$Service}{$Host}{$Action}++;
|
||||
$ServicesBans{$Service}{"(all)"}{$Action}++;
|
||||
} elsif ( my ($LogLevel,$Service,$Host) = ($ThisLine =~ m/(INFO|WARNING|NOTICE):?\s+\[?(.*?)[]:]?\sFound[^\.]* (\S+)/)) {
|
||||
if ( $Debug >= 6 ) {
|
||||
print STDERR "DEBUG($DebugCounter): Found hit for $Service from $Host\n";
|
||||
}
|
||||
$ServicesBans{$Service}{$Host}{"Hit"}++;
|
||||
$ServicesBans{$Service}{"(all)"}{"Hit"}++;
|
||||
} elsif ( my ($Service,$Host,$NumFailures) = ($ThisLine =~ m/\S+:\s+(\S+): (.+) has (\d+) login failure\(s\). Banned./)) {
|
||||
if ($Debug >= 4) {
|
||||
print STDERR "DEBUG: Found host $Host trying to access $Service - failed $NumFailures times\n";
|
||||
}
|
||||
push @{$ServicesBans{$Service}{$Host}{'Failures'}}, $NumFailures;
|
||||
} elsif ( my ($Service,$Host) = ($ThisLine =~ m/ \S+:\s(.*):\s(\S+)\salready in ban list/)) {
|
||||
$ServicesBans{$Service}{$Host}{'AlreadyInTheList'}++;
|
||||
} elsif ( my ($Service,$Host) = ($ThisLine =~ m/\S+:?\s+\[?([^[]*?)[]:]?\s+(\S+)\salready banned/)) {
|
||||
if ( $Debug >= 6 ) {
|
||||
print STDERR "DEBUG($DebugCounter): Found hit for already banned $Host against $Service\n";
|
||||
}
|
||||
$ServicesBans{$Service}{$Host}{'AlreadyInTheList'}++;
|
||||
} elsif ( my ($Service,$Host) = ($ThisLine =~ m/ \S+:\s(.*):\sReBan (\S+)/)) {
|
||||
$ServicesBans{$Service}{$Host}{'ReBan'}++;
|
||||
} elsif ($ThisLine =~ / ERROR:?\s*(Execution of command )?\'?iptables/) {
|
||||
push @ActionsErrors, "$ThisLine\n";
|
||||
} elsif ($ThisLine =~ / ERROR\s*Failed to execute.*action/) {
|
||||
push @ActionsErrors, "$ThisLine\n";
|
||||
} elsif ($ThisLine =~ / WARNING Command \[.*\] has failed. Received/) {
|
||||
push @CommandsErrors, "$ThisLine\n";
|
||||
} elsif ($ThisLine =~ /ERROR.*returned \d+$/) {
|
||||
push @ActionsErrors, "$ThisLine\n";
|
||||
} elsif (($ThisLine =~ /..,... WARNING: \#\S+ reinitialization of firewalls/) or
|
||||
($ThisLine =~ / ERROR\s*Invariant check failed. Trying to restore a sane environment/)) {
|
||||
$ReInitializations++;
|
||||
} elsif ($ThisLine =~ /..,... WARNING: is not a valid IP address/) {
|
||||
# just ignore - this will be fixed within fail2ban and is harmless warning
|
||||
}
|
||||
else
|
||||
{
|
||||
# Report any unmatched entries...
|
||||
push @OtherList, "$ThisLine\n";
|
||||
}
|
||||
}
|
||||
|
||||
###########################################################
|
||||
|
||||
|
||||
if (keys %ServicesBans) {
|
||||
printf("\nBanned services with Fail2Ban: Bans:Unbans:Hits\n");
|
||||
foreach my $service (sort {$a cmp $b} keys %ServicesBans) {
|
||||
printf(" %-55s [%3d:%d:%-3d]\n", "$service:",
|
||||
$ServicesBans{$service}{'(all)'}{'Ban'},
|
||||
$ServicesBans{$service}{'(all)'}{'Unban'},
|
||||
$ServicesBans{$service}{'(all)'}{'Hit'});
|
||||
delete $ServicesBans{$service}{'(all)'};
|
||||
my $totalSort = TotalCountOrder(%{$ServicesBans{$service}}, \&SortIP);
|
||||
if ($Detail >= 5) {
|
||||
foreach my $ip (sort $totalSort keys %{$ServicesBans{$service}}) {
|
||||
my $name = LookupIP($ip);
|
||||
printf(" %-53s %3d:%d:%-3d\n",
|
||||
$name,
|
||||
$ServicesBans{$service}{$ip}{'Ban'},
|
||||
$ServicesBans{$service}{$ip}{'Unban'},
|
||||
$ServicesBans{$service}{$ip}{'Hit'});
|
||||
if (($Detail >= 10) and ($ServicesBans{$service}{$ip}{'Failures'}>0)) {
|
||||
print " Failed ";
|
||||
foreach my $fails (@{$ServicesBans{$service}{$ip}{'Failures'}}) {
|
||||
print " $fails";
|
||||
}
|
||||
print " times\n";
|
||||
}
|
||||
if ($ServicesBans{$service}{$ip}{'AlreadyInTheList'}>0) {
|
||||
printf(" %d Duplicate Ban attempt(s)\n", $ServicesBans{$service}{$ip}{'AlreadyInTheList'}) ;
|
||||
}
|
||||
if ($ServicesBans{$service}{$ip}{'ReBan'}>0) {
|
||||
printf(" %d ReBan(s) due to rules reinitilizations\n", $ServicesBans{$service}{$ip}{'ReBan'}) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($Detail>0) {
|
||||
if ($#ActionsErrors >= 0) {
|
||||
printf("\n%d faulty action invocation(s)", $#ActionsErrors+1);
|
||||
if ($Detail > 5) {
|
||||
print ":\n";
|
||||
print @ActionsErrors ;
|
||||
}
|
||||
}
|
||||
if ($#CommandsErrors >= 0) {
|
||||
printf("\n%d faulty command invocation(s) from client(s)", $#CommandsErrors+1);
|
||||
if ($Detail > 5) {
|
||||
print ":\n";
|
||||
print @CommandsErrors ;
|
||||
}
|
||||
}
|
||||
if ($ReInitializations > 0) {
|
||||
printf("\n%d fail2ban rules reinitialization(s)", $ReInitializations);
|
||||
}
|
||||
if ($#OtherList >= 0) {
|
||||
print "\n**Unmatched Entries**\n";
|
||||
print @OtherList;
|
||||
}
|
||||
}
|
||||
|
||||
exit(0);
|
||||
|
||||
# vi: shiftwidth=3 tabstop=3 syntax=perl et
|
||||
# Local Variables:
|
||||
# mode: perl
|
||||
# perl-indent-level: 3
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
||||
@@ -0,0 +1,2 @@
|
||||
2014-08-04 03:06:26,161 fail2ban.actions[4822]: WARNING [apache-badbots] Ban 37.152.91.34
|
||||
2014-08-05 03:06:26,448 fail2ban.actions[4822]: WARNING [apache-badbots] Unban 37.152.91.34
|
||||
@@ -0,0 +1,52 @@
|
||||
2014-08-08 14:59:35,013 fail2ban.server.server[31122]: INFO Exiting Fail2ban
|
||||
2014-08-08 14:59:36,041 fail2ban.server.server[21667]: INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0
|
||||
2014-08-08 14:59:36,043 fail2ban.server.database[21667]: INFO Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
|
||||
2014-08-08 14:59:36,072 fail2ban.server.jail[21667]: INFO Creating new jail 'exim'
|
||||
2014-08-08 14:59:36,137 fail2ban.server.jail[21667]: INFO Jail 'exim' uses pyinotify
|
||||
2014-08-08 14:59:36,172 fail2ban.server.filter[21667]: INFO Set jail log file encoding to UTF-8
|
||||
2014-08-08 14:59:36,172 fail2ban.server.jail[21667]: INFO Initiated 'pyinotify' backend
|
||||
2014-08-08 14:59:36,233 fail2ban.server.filter[21667]: INFO Added logfile = /var/log/exim4/mainlog
|
||||
2014-08-08 14:59:36,249 fail2ban.server.filter[21667]: INFO Set maxRetry = 5
|
||||
2014-08-08 14:59:36,251 fail2ban.server.filter[21667]: INFO Set jail log file encoding to UTF-8
|
||||
2014-08-08 14:59:36,252 fail2ban.server.actions[21667]: INFO Set banTime = 600
|
||||
2014-08-08 14:59:36,254 fail2ban.server.filter[21667]: INFO Set findtime = 600
|
||||
2014-08-08 14:59:36,284 fail2ban.server.jail[21667]: INFO Creating new jail 'sshd'
|
||||
2014-08-08 14:59:36,284 fail2ban.server.jail[21667]: INFO Jail 'sshd' uses pyinotify
|
||||
2014-08-08 14:59:36,286 fail2ban.server.filter[21667]: INFO Set jail log file encoding to UTF-8
|
||||
2014-08-08 14:59:36,286 fail2ban.server.jail[21667]: INFO Initiated 'pyinotify' backend
|
||||
2014-08-08 14:59:36,499 fail2ban.server.filter[21667]: INFO Added logfile = /var/log/auth.log
|
||||
2014-08-08 14:59:36,510 fail2ban.server.filter[21667]: INFO Set maxRetry = 5
|
||||
2014-08-08 14:59:36,512 fail2ban.server.filter[21667]: INFO Set jail log file encoding to UTF-8
|
||||
2014-08-08 14:59:36,513 fail2ban.server.actions[21667]: INFO Set banTime = 600
|
||||
2014-08-08 14:59:36,514 fail2ban.server.filter[21667]: INFO Set findtime = 600
|
||||
2014-08-08 14:59:36,515 fail2ban.server.filter[21667]: INFO Set maxlines = 10
|
||||
2014-08-08 14:59:36,788 fail2ban.server.server[21667]: INFO Jail sshd is not a JournalFilter instance
|
||||
2014-08-08 14:59:36,798 fail2ban.server.jail[21667]: INFO Jail 'exim' started
|
||||
2014-08-08 14:59:36,802 fail2ban.server.jail[21667]: INFO Jail 'sshd' started
|
||||
2014-08-08 15:01:30,120 fail2ban.server.transmitter[21667]: WARNING Command ['status', 'ssh'] has failed. Received UnknownJailException('ssh',)
|
||||
2014-08-08 15:09:36,978 fail2ban.server.actions[21667]: NOTICE [sshd] Unban 116.10.191.199
|
||||
2014-08-08 15:09:37,187 fail2ban.server.action[21667]: ERROR rm -f /etc/symbiosis/firewall/blacklist.d/116.10.191.199.auto
|
||||
iptables -D INPUT -s 116.10.191.199 -j DROP -- stdout: ''
|
||||
2014-08-08 15:09:37,188 fail2ban.server.action[21667]: ERROR rm -f /etc/symbiosis/firewall/blacklist.d/116.10.191.199.auto
|
||||
iptables -D INPUT -s 116.10.191.199 -j DROP -- stderr: 'iptables: Bad rule (does a matching rule exist in that chain?).\n'
|
||||
2014-08-08 15:09:37,188 fail2ban.server.action[21667]: ERROR rm -f /etc/symbiosis/firewall/blacklist.d/116.10.191.199.auto
|
||||
iptables -D INPUT -s 116.10.191.199 -j DROP -- returned 1
|
||||
2014-08-08 15:09:37,188 fail2ban.server.actions[21667]: ERROR Failed to execute unban jail 'sshd' action 'symbiosis-blacklist': Error unbanning 116.10.191.199
|
||||
2014-08-10 02:27:27,235 fail2ban.server.server[21667]: INFO rollover performed on /var/log/fail2ban.log
|
||||
2014-08-10 02:27:28,109 fail2ban.server.filter[21667]: INFO Log rotation detected for /var/log/exim4/mainlog
|
||||
2014-08-10 02:28:01,747 fail2ban.server.filter[21667]: INFO Log rotation detected for /var/log/auth.log
|
||||
2014-08-10 02:33:29,500 fail2ban.server.filter[21667]: INFO [sshd] Found 86.101.234.57
|
||||
2014-08-10 02:46:06,846 fail2ban.server.filter[21667]: INFO [sshd] Found 220.130.163.247
|
||||
2014-08-10 03:10:43,794 fail2ban.server.filter[21667]: INFO [sshd] Found 220.130.163.247
|
||||
2014-08-10 06:49:27,446 fail2ban.server.actions[21667]: NOTICE [sshd] Ban 116.10.191.181
|
||||
2014-08-10 06:59:28,375 fail2ban.server.actions[21667]: NOTICE [sshd] Unban 116.10.191.181
|
||||
2014-08-10 20:06:41,576 fail2ban.server.actions[21667]: NOTICE [sshd] Unban 50.30.34.7
|
||||
2014-08-13 17:55:50,401 fail2ban.server.actions[17436]: NOTICE [sshd] 144.0.0.25 already banned
|
||||
2014-08-10 20:06:41,785 fail2ban.server.action[21667]: ERROR rm -f /etc/symbiosis/firewall/blacklist.d/50.30.34.7.auto
|
||||
iptables -D INPUT -s 50.30.34.7 -j DROP -- stdout: ''
|
||||
2014-08-10 20:06:41,785 fail2ban.server.action[21667]: ERROR rm -f /etc/symbiosis/firewall/blacklist.d/50.30.34.7.auto
|
||||
iptables -D INPUT -s 50.30.34.7 -j DROP -- stderr: 'iptables: Bad rule (does a matching rule exist in that chain?).\n'
|
||||
2014-08-10 20:06:41,786 fail2ban.server.action[21667]: ERROR rm -f /etc/symbiosis/firewall/blacklist.d/50.30.34.7.auto
|
||||
iptables -D INPUT -s 50.30.34.7 -j DROP -- returned 1
|
||||
2014-08-10 20:06:41,786 fail2ban.server.actions[21667]: ERROR Failed to execute unban jail 'sshd' action 'symbiosis-blacklist': Error unbanning 50.30.34.7
|
||||
2014-08-11 02:27:35,433 fail2ban.server.filter[21667]: INFO Log rotation detected for /var/log/exim4/mainlog
|
||||
Reference in New Issue
Block a user