it:server:fail2ban

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
it:server:fail2ban [2022/11/19 21:09] Petr Nosekit:server:fail2ban [2022/11/19 22:21] (aktuální) Petr Nosek
Řádek 9: Řádek 9:
 cp jail.conf jail.local cp jail.conf jail.local
 </code> </code>
 +
 +zdroje k nastavení fail2ban:
 +
 +  * https://www.czeo.com/configure-fail2ban-with-ufw/
 +  * https://blog.frehi.be/2019/01/17/securing-openssh/
  
  
Řádek 14: Řádek 19:
  
  
-Pro webserver jsem nastavoval, aby se zablokoval při portscanningu přístup na všechny porty, kromě 80 a 443. K tomu mi posloužil vytvoření soubor **/etc/fail2ban/action**+Pro webserver jsem nastavoval, aby se zablokoval při portscanningu přístup na všechny porty, kromě 80 a 443. K tomu mi posloužil vytvoření soubor **/etc/fail2ban/action/ufw-portscan.conf**. Musel jsem v původním souboru (kopie ufw.conf) nahradit insert = <insertpos> tímto: prepend. Jinak nefungoval ufw pro ipv6. Takto funguje pro obojí.  
 + 
 +V githubu je soubor ještě více předělaný, tak aby po zabanování zabil ještě existující spojení. Což můj skript neumí. Alespoň jsem se neodříznul od ssh: 
 +https://github.com/fail2ban/fail2ban/blob/bbfff1828061514e48395a5dbc5c1f9f81625e82/config/action.d/ufw.conf 
 + 
 +Pokud bych provozoval ještě nějaké další služby, musel bych je přidat, abych do tohoto skriptu. Protože pokud někdo udělá portscan, tak se zaříznou všechny služby, kromě žádoucích 80 a 443. 
  
 <code bash> <code bash>
Řádek 72: Řádek 83:
 Tady je konfigurace k jednotlivým službám. Každá služba zapisuje do syslogu pokusy o přihlášení v různém formátu. Filtry skrz regulární výrazy ukazují, co hledat. Tím, si lze fail2ban rozšířit i na služby, pro které defaultně určen není. Tady je konfigurace k jednotlivým službám. Každá služba zapisuje do syslogu pokusy o přihlášení v různém formátu. Filtry skrz regulární výrazy ukazují, co hledat. Tím, si lze fail2ban rozšířit i na služby, pro které defaultně určen není.
  
-Přidáme **/etc/fail2ban/filter.d/vpnserver.conf**+Přidáme **/etc/fail2ban/filter.d/vpnserver.conf** - čerpáno ze [[https://www.vpnusers.com/viewtopic.php?f=7&t=6375&sid=76707e8a5a16b0c9486a39ba34763901&view=print|zdroje]].
  
 <code bash> <code bash>
Řádek 314: Řádek 325:
 mode    = aggressive mode    = aggressive
 port    = ssh,3333 port    = ssh,3333
 +filter  = mysshd
 logpath = %(sshd_log)s logpath = %(sshd_log)s
 backend = %(sshd_backend)s backend = %(sshd_backend)s
 enabled = true enabled = true
 +
 +[nextcloud]
 +
 +enabled  = true
 +port     = http,https
 +filter   = nextcloud
 +logpath  = /var/www/nextcloud/data/nextcloud.log
 +maxretry = 6
 +
 +
 +#[ufwban]
 +#enabled = false
 +#port = ssh, http, https
 +#filter = ufwban
 +#logpath = /var/log/ufw.log
 +#action = ufw
 +
 </code> </code>
  
-Dále jsem přidal sshd-slow, který zabanuje ssh pro případ, že se za 1 den někdo zkusí celkem 10x přihlásit. V tomto případě zablokuje na 1week. To už je docela problematický prohřešek - to už někdo opravdu dost zkouší.+Dále jsem přidal sshd-slow, který zabanuje ssh pro případ, že se za 1 den někdo zkusí celkem 10x přihlásit. V tomto případě zablokuje na 1week. To už je docela problematický prohřešek.
  
 <code> <code>
Řádek 325: Řádek 354:
 [sshd-slow] [sshd-slow]
 filter  = sshd[mode=aggressive] filter  = sshd[mode=aggressive]
 +port    = ssh, 3333
 maxretry = 6 maxretry = 6
 findtime = 1d findtime = 1d
Řádek 372: Řádek 402:
 Problémy jsou tam tyto: Problémy jsou tam tyto:
   * Nečíslovaný seznamNečíslovaný seznamufw mám na loglevel = low, takže když někdo oskenuje všechny porty, tak se neprovedou tisíce záznamů do logu, ale jenom pár. Zvyšovat hodnotu zase nemá smysl kvůli zpomalení sítě a serveru.    * Nečíslovaný seznamNečíslovaný seznamufw mám na loglevel = low, takže když někdo oskenuje všechny porty, tak se neprovedou tisíce záznamů do logu, ale jenom pár. Zvyšovat hodnotu zase nemá smysl kvůli zpomalení sítě a serveru. 
-  * pokud mi tam bude padat moc IP adres, tak ufw nebude dobrá volba, kvůli velkému počtu IP adres. Může pak dojít ke zpomalení. Tady je řešení vytvořit kopii současných skriptů action.log/iptables-ipset-proto6 a upravit je, aby zablokovaly pouze port 4444 povolily 80 a 443. Nechci zablokovat všechny služby pro danou IP adresu, protože mi někdo oskenoval porty.+  * pokud mi tam bude padat moc IP adres, tak ufw nebude dobrá volba, kvůli velkému počtu IP adres. Může pak dojít ke zpomalení. Tady je řešení vytvořit v **action.d/ufw-portscan.conf** a upravit soubor tak, aby zablokoval pouze port 3333 povolil 80 a 443. Nechci zablokovat všechny služby pro danou IP adresu, protože mi někdo oskenoval porty.
  
 <code> <code>
Řádek 385: Řádek 415:
 </code> </code>
  
 +
 +zdroje ohledně aplikace portscanu:
 +
 +  * https://dodwell.us/security/ufw-fail2ban-portscan.html
 +  * https://serverfault.com/questions/629709/trouble-with-fail2ban-ufw-portscan-filter
  
 ===== Vyřazení IP adresy z banlistu ===== ===== Vyřazení IP adresy z banlistu =====
  • it/server/fail2ban.1668892162.txt.gz
  • Poslední úprava: 2022/11/19 21:09
  • autor: Petr Nosek