Fail2Ban su CentOS 6.5 non proibisce mai

Ambiente: * CentOS 6.5 * Fail2Ban 0.8.14-1 * data uscirà la data corretta

Comportmento: Fail2ban inizia con successo, ma non crea blocchi iptables dopo i tentativi di login sbagliati di SSH. Sono solo interessato con SSH a questo punto. Ho tentato di reinstallare utilizzando questa guida: https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-centos-6

  • Come creare proxy UDP utilizzando iptables
  • iptables: scopri quale pacchetto viene bloccato da quale regola?
  • command crm (gestione cluster per pacemaker) non trovato negli ultimi Centos 6
  • Centos è andato a leggere solo improvvisamente, su vmware ... spaventoso
  • Imansible eseguire logwatch a causa di Issue :: Manip
  • Centos Xen ridimensiona la partizione Domu e il gruppo di volumi
  • Fail2Ban funzionava – ma con gli aggiornamenti di sistema sembra smesso di funzionare. Se correrei

    sudo service fail2ban restart 

    Ricevo un'e-mail che dice che la prigione si è fermata e che un'altra e-mail dice che la prigione ha iniziato, quindi sembra che il fail2ban sia in esecuzione e funzionale.

    Il mio file /etc/fail2ban/jail.local include la voce:

     [ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=chalstead@mydomain.edu, sender=fail2ban@campus.mydomain.edu, sendername="Fail2Ban"] logpath = /var/log/secure maxretry = 5 

    Il mio indirizzo IP non è elencato nella delcareazione ignoreip. Sto usando un bantime standard di 600, time findtime di 600 e maxretry di 3.

    Quando guardo / var / log / secure, vedo molti tentativi falliti:

     Sep 30 00:17:02 nebo unix_chkpwd[3796]: password check failed for user (root) Sep 30 00:17:02 nebo sshd[3794]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=60.173.26.189 user=root 

    iptables -L sembra segnalare che fail2ban ha una catena:

     Chain fail2ban-SSH (2 references) target prot opt source destination RETURN all -- anywhere anywhere 

    Il mio ospite migliore corrente è che l'azione per sshd in actions.d / sshd.conf utilizza un'espressione regolare per guardare attraverso il file di registro, ma non corrisponde alla syntax corrente del registro CentOS per un tentativo vietato.

    Il tempo è insync per: Perché non è fail2ban bloccare i guasti?

    Ran fail2ban-regex per provare la mia teoria, e sembra che posso essere sulla buona strada:

     [isdept@nebo action.d]$ sudo fail2ban-regex /var/log/secure /etc/fail2ban/filter.d/sshd.conf Running tests ============= Use failregex file : /etc/fail2ban/filter.d/sshd.conf Use log file : /var/log/secure Results ======= Failregex: 0 total Ignoreregex: 0 total Date template hits: |- [# of hits] date format | [22655] MONTH Day Hour:Minute:Second `- Lines: 22655 lines, 0 ignored, 0 matched, 22655 missed Missed line(s): too many to print. Use --print-all-missed to print all 22655 lines 

    Non sono assolutamente sicuro di come modificare i pattern di regex per risolvere questo problema (se questo è il problema), ma sono sorpreso di scoprire che non ho trovato una soluzione facile da quando CentOS è comune. Sarò lieto di fornire ulteriori informazioni. Grazie per qualsiasi suggerimento o suggerimento che puoi dare!

    Per la sicurezza – attualmente disattivo l'accesso pubblico a questo host.

  • Montare uno spazio dei nomi DFS in Linux in Linux
  • Come si esegue Nginx sulla port 8080 e Apache sulla port 80 nella stessa casella?
  • Imansible consentire l'accesso degli utenti tramite SSH (Bash, OpenSSH, CentOS 6.5)
  • Come configurare il DNS quando si connette a due reti?
  • Cryptsetup luks - Controllare che il kernel supporti la cifra aes-xts-plain64
  • Spostare / var su un nuovo set di dischi
  • 4 Solutions collect form web for “Fail2Ban su CentOS 6.5 non proibisce mai”

    Beh, io non sono un master regex (o anche novizio), ma ho riuscito a farlo funzionare aggiungendo:

     ^.*authentication failure;.*rhost=<HOST> 

    a filters.d / sshd.conf. Questo lo ha fatto e ho proibito con successo il mio primo host. Se alcuni esperti di regex vorrebbero chimare, sarei molto apprezzato. Sono sicuro che c'è un caso che mi manca in questa breve espressione che fallirebbe in un certo caso.

    Grazie!

    sto lavorando allo stesso problema di oggi, anche in centos 6.5.

    nel mio caso il file distro viene chiamato filters.d / sshd.conf, non filters.d / sshd-iptables.conf come hai scritto. non so perché il tuo e la mia sarebbero diversi. ma in each caso credo che il problema sia identico.

    una voce di esempio dal mio secure.log è questo:

     Oct 11 11:11:11 myhostname sshd[12345]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=1.2.3.4 

    il failregex corrispondente più vicino nel filter distro filters.d / sshd.conf è questo:

     ^%(__prefix_line)s(?:error: PAM: )?[aA]uthentication (?:failure|error) for .* from <HOST>( via \S+)?\s*$ 

    che chiaramente non corrisponde all'esempio precedente a causa delle stringhe "da" e "via" e non della string "rhost =". i miei tentativi di risolvere questo problema sono elencati di seguito.

    • primo mod, non corrisponde:

       ^%(__prefix_line)s(?:error: PAM: )?[aA]uthentication (?:failure|error); .* rhost=<HOST> .*$ 
    • seconda mod, non corrisponde:

       ^%(__prefix_line)[aA]uthentication (?:failure|error); .* rhost=<HOST> .*$ 
    • terzo mod, abbinato:

       [aA]uthentication (?:failure|error); .* rhost=<HOST> .*$ 

    la subexpressione di regex __prefix_line viene da filters.d / common.conf ed è un grande tentativo di cercare di associare each ansible permutazione di noti formati di prefisso di accesso di log di linux, ma purtroppo ha bisogno di qualche modifica per la nostra situazione particolare 6.5 centos. posso prendere una crepa a quello, ma un primo sguardo alle regex in common.conf fa male la mia testa. la regex less complessa senza __prefix_line può essere sufficiente.

    @SteadH Nel tuo post iniziale hai questo:

     [ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=chalstead@mydomain.edu, sender=fail2ban@campus.mydomain.edu, sendername="Fail2Ban"] logpath = /var/log/secure maxretry = 5 

    [ssh-iptables] : essere il nome del filter / riferimento e

    filter = sshd : essere il file con il filter regex in /filter.d (sshd.conf)

    Quindi il tuo ultimo post stai facendo modifiche al sshd-iptables.conf? Hai fatto il tuo controllo fail2ban-regex su sshd.conf? Quale file è il tuo utilizzo? e quale esiste o entrambi esistono. Posso aiutarti con un model di regex, ma devo assicurarmi che Im guardi il model giusto per abbinare.

    @SteadH sulla base della tua soluzione, ho scoperto la radice del problema. I filtri sshd finiscono con '$' (dollaro) che corrisponde alla fine della row, in alcune regex (ho notato che la tua correzione non è stata). Beh, ho cancellato i dollari, e viola! ha iniziato a lavorare! Penso che ci potrebbe essere qualche errata configuration da qualche parte nel cuore di questo che causa la '$' a non funzionare. In each caso, prova a risolvere questo problema.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.