Owncloud + Fail2Ban
Es tikai šodien saprotu, ka Owncloud sākotnēji nenovērš brutālu spēku uzbrukumus. Tomēr šķiet, ka izstrādātāji to apzinās un nākamajā laidienā piedāvās captcha sistēmu. Tikmēr iesaku iestatīt mājas ielāpu, lai mūsu Owncloud instance darbotos ar Fail2Ban.
Konkrēta žurnālfaila izveide
1
2
|
touch /var/log/owncloud–fail.log
chown www–data:www–data /var/log/owncloud–fail.log
|
Modificēts pirmkods, lai reģistrētu savienojuma kļūdas. Mēs rediģējam /owncloud/lib/user/database.php.
202. rindiņā funkcijā checkPassword tieši pirms “return false” pievienojam šādu kodu
1
2
3
4
5
6
|
$today = new DateTime();
date_timezone_set($today, timezone_open(‘Europe/Paris’));
$IPClient= $_SERVER[‘REMOTE_ADDR’];
$logAuth = fopen(‘/var/log/owncloud-fail.log’, ‘a+’);
fputs($logAuth, date_format($today, ‘Y/m/d H:i:s’) . » Password check failed for: t » . $IPClient . « n »);
fclose($logAuth);
|
Šī modifikācija attiecas uz paroles kļūdām esošajiem datu bāzes pieteikšanās datiem. Ja vēlaties reģistrēt kļūdas arī visiem pieteikšanās gadījumiem, tas pats kods ir jāpievieno pirms pēdējās “return false” funkcijas daļā “else”. Mēs tikai mainām komentāru.
1
2
3
4
5
6
|
$today = new DateTime();
date_timezone_set($today, timezone_open(‘Europe/Paris’));
$IPClient= $_SERVER[‘REMOTE_ADDR’];
$logAuth = fopen(‘/var/log/owncloud-fail.log’, ‘a+’);
fputs($logAuth, date_format($today, ‘Y/m/d H:i:s’) . » Invalid username: t » . $IPClient . « n »);
fclose($logAuth);
|
Rediģēt: kopš Owncloud 6. versijas fails atrodas mapē /var/www/owncloud/lib/private/user/database.php. Ja (rindā $) ir 2, atgriež false, nevis vienu. Abas aizpildiet tādā pašā veidā.
Tagad mēs pārejam pie Fail2ban cietuma izveides mapē /etc/fail2ban/filter.d/owncloud.conf
1
2
3
|
# Owncloud jail
[Definition]
failregex = <HOST>$
|
Mēs pārbaudām, vai regex atbilst labi. (Izveidojiet pieteikšanās kļūdu priekšējā saskarnē)
1
|
fail2ban–regex /var/log/owncloud–fail.log /etc/fail2ban/filter.d/owncloud.conf
|
Mēs pievienojam šo cietumu conf failā /etc/fail2ban/jail.conf
1
2
3
4
5
6
|
[owncloud]
enabled = true
port = http,https
filter = owncloud
logpath = /var/log/owncloud–fail.log
maxretry = 3
|
Fail2ban restartēšana, lai ņemtu vērā
1
|
/etc/init.d/fail2ban restart
|
Jāpatur prātā, ka php rindas būs jāpārraksta katru reizi, kad tiek atjaunināts Owncloud.