Owncloud + Fail2Ban
Unë e kuptoj vetëm sot se Owncloud nuk parandalon në mënyrë natyrale sulmet me forcë brutale. Megjithatë, duket se zhvilluesit janë të vetëdijshëm për këtë dhe do të propozojnë një sistem captcha në versionin e ardhshëm. Ndërkohë, ju sugjeroj që të konfiguroni një patch në shtëpi për ta bërë shembullin tonë Owncloud të funksionojë me Fail2Ban.
Krijimi i një skedari specifik log
1
2
|
touch /var/log/owncloud–fail.log
chown www–data:www–data /var/log/owncloud–fail.log
|
Kodi burimor i modifikuar për të regjistruar gabimet e lidhjes. Ne redaktojmë /owncloud/lib/user/database.php.
Në rreshtin 202, në funksionin checkPassword, pak para "return false" shtojmë kodin e mëposhtëm
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);
|
Ky modifikim ka të bëjë me gabimet e fjalëkalimit për hyrjet ekzistuese të bazës së të dhënave. Nëse dëshironi gjithashtu të regjistroni gabime për të gjitha hyrjet, duhet të shtoni të njëjtin kod përpara "kthimit false" të fundit në pjesën "tjetër" të funksionit. Ne thjesht modifikojmë komentin.
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);
|
Edit: Që nga versioni 6 i Owncloud, skedari ndodhet në /var/www/owncloud/lib/private/user/database.php. Në rreshtin if ($) është 2 kthen false në vend të një. Plotësoni të dyja në të njëjtën mënyrë.
Tani kalojmë në krijimin e burgut Fail2ban në /etc/fail2ban/filter.d/owncloud.conf
1
2
3
|
# Owncloud jail
[Definition]
failregex = <HOST>$
|
Ne testojmë që regex përputhet mirë. (Bëni një gabim identifikimi në ndërfaqen e përparme)
1
|
fail2ban–regex /var/log/owncloud–fail.log /etc/fail2ban/filter.d/owncloud.conf
|
Ne e shtojmë këtë burg në conf në /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
|
Rinisja e fail2ban duhet të merret parasysh
1
|
/etc/init.d/fail2ban restart
|
Duhet të keni parasysh se rreshtat në php do të duhet të rishkruhen sa herë që Owncloud përditësohet.