[WORKLOG] - Installazione e configurazione di un server di posta SOHO.

Pagina 3 di 4
prima
1 2 3 4 ultimo
Visualizzazione dei risultati da 21 a 30 su 33
  1. #21
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito 8.1_ Fail2ban: fail2ban.conf

    Il file fail2ban.conf ha il seguente contenuto:
    codice:
    # Fail2Ban configuration file
    #
    # Author: Cyril Jaquier
    #
    # $Revision: 629 $
    #
    
    [Definition]
    
    # Option:  loglevel
    # Notes.:  Set the log level output.
    #          1 = ERROR
    #          2 = WARN
    #          3 = INFO
    #          4 = DEBUG
    # Values:  NUM  Default:  3
    #
    loglevel = 3
    
    # Option:  logtarget
    # Notes.:  Set the log target. This could be a file, SYSLOG, STDERR or STDOUT.
    #          Only one log target can be specified.
    # Values:  STDOUT STDERR SYSLOG file  Default:  /var/log/fail2ban.log
    #
    logtarget = SYSLOG
    
    # Option: socket
    # Notes.: Set the socket file. This is used to communicate with the daemon. Do
    #         not remove this file when Fail2ban runs. It will not be possible to
    #         communicate with the server afterwards.
    # Values: FILE  Default:  /var/run/fail2ban/fail2ban.sock
    #
    socket = /var/run/fail2ban/fail2ban.sock
    Nulla di complesso. Livello di dettaglio dei log, destinazione del log e socket del processo.
    Il livello di dettaglio per ora va bene, voglio però cambiare la destinazione del log: Ora finisce tutto nel "/var/log/daemon.log" ma preferisco dedicargli un proprio log. Copio quindi il file, anche così com'è, in un file omonimo con estensione ".local" e sostituisco la riga "logtarget = SYSLOG" con "logtarget = /var/log/fail2ban.log".

    Per integrare il tool con lo strumento di rotazione automatica dei log, è necessario creare il file "/etc/logrotate.d/fail2ban" con il seguente contenuto, in accordo con le istruzioni contenute del wiki linkato in precedenza (ovviamente con le opportune modifiche, se il file di log indicato non è quello riportato):
    codice:
    /var/log/fail2ban.log {
        weekly
        rotate 7
        missingok
        compress
        postrotate
          /usr/local/bin/fail2ban-client reload 1>/dev/null || true
        endscript
    }
    Io lo avevo già anche se con un contenuto leggermente diverso:

    codice:
    /var/log/fail2ban.log {
        weekly
        rotate 4
        compress
        delaycompress
        missingok
        postrotate
        fail2ban-client set logtarget /var/log/fail2ban.log >/dev/null
        endscript
        create 640 root adm
    }

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  2. #22
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito 8.2_ Fail2ban: jail.conf

    Ok, ora le cose si complicano un pochino: Il file è semplicemente molto lungo ma strutturato bene e semplice da capire.
    Il file “jail.conf” contiene le impostazioni predefinite del tool. E’ strutturato in sezioni corrispondenti alle jail configurate. “[DEFAULT]” contiene le impostazioni comuni per tutte le jail salvo diversa indicazione.

    Le “jail” hanno tutte una struttura simile alla seguente:
    codice:
    [roundcube-iredmail]
    enabled     = true
    filter      = roundcube.iredmail
    action = iptables-multiport[name=roundcube, port="ssh,http,https,smtp,smtps,pop3,pop3s,imap,imaps,sieve", protocol=tcp]
    logpath     = /var/log/maillog
    findtime    = 3600
    maxretry    = 5
    bantime     = 3600
    Ogni jail contiene una riga “enabled” che la attiva o disattiva, una riga “filter” che indica a quale file presente nella sottodirectory “filter.d” contiene la regex da applicare ed una riga “action” che definisce le azioni da intraprendere in caso di match positivo, richiamando gli script contenuti nella sottodirectory “action.d”. Le altre opzioni possono essere recuperate dalle indicazioni riportate per la jail [DEFAULT] oppure specificate esplicitamente per applicare un valore diverso dal predefinito.

    Tutte le altre jail contenute nel files sono disabilitate quindi servono solo come base di partenza per la creazione di una configurazione personalizzata. Questo files, come detto, non dovrebbe mai essere modificato:
    codice:
     Fail2Ban configuration file.
    #
    # This file was composed for Debian systems from the original one
    #  provided now under /usr/share/doc/fail2ban/examples/jail.conf
    #  for additional examples.
    #
    # To avoid merges during upgrades DO NOT MODIFY THIS FILE
    # and rather provide your changes in /etc/fail2ban/jail.local
    #
    # Author: Yaroslav O. Halchenko 
    #
    # $Revision: 281 $
    #
    
    # The DEFAULT allows a global definition of the options. They can be override
    # in each jail afterwards.
    
    [DEFAULT]
    
    # "ignoreip" can be an IP address, a CIDR mask or a DNS host
    ignoreip = 127.0.0.1
    bantime  = 600
    maxretry = 3
    
    # "backend" specifies the backend used to get files modification. Available
    # options are "gamin", "polling" and "auto".
    # yoh: For some reason Debian shipped python-gamin didn't work as expected
    #      This issue left ToDo, so polling is default backend for now
    backend = polling
    
    #
    # Destination email address used solely for the interpolations in
    # jail.{conf,local} configuration files.
    destemail = root@localhost
    
    #
    # ACTIONS
    #
    
    # Default banning action (e.g. iptables, iptables-new,
    # iptables-multiport, shorewall, etc) It is used to define
    # action_* variables. Can be overriden globally or per
    # section within jail.local file
    banaction = iptables-multiport
    
    # email action. Since 0.8.1 upstream fail2ban uses sendmail
    # MTA for the mailing. Change mta configuration parameter to mail
    # if you want to revert to conventional 'mail'.
    mta = sendmail
    
    # Default protocol
    protocol = tcp
    
    #
    # Action shortcuts. To be used to define action parameter
    
    # The simplest action to take: ban only
    action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
    
    # ban & send an e-mail with whois report to the destemail.
    action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
                  %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s]
    
    # ban & send an e-mail with whois report and relevant log lines
    # to the destemail.
    action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
                   %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s]
    
    # Choose default action.  To change, just override value of 'action' with the
    # interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local
    # globally (section [DEFAULT]) or per specific section
    action = %(action_)s
    
    #
    # JAILS
    #
    # Next jails corresponds to the standard configuration in Fail2ban 0.6 which
    # was shipped in Debian. Enable any defined here jail by including
    #
    # [SECTION_NAME]
    # enabled = true
    
    #
    # in /etc/fail2ban/jail.local.
    #
    # Optionally you may override any other parameter (e.g. banaction,
    # action, port, logpath, etc) in that section within jail.local
    
    [ssh]
    
    enabled = false
    port    = ssh
    filter  = sshd
    logpath  = /var/log/auth.log
    maxretry = 6
    
    # Generic filter for pam. Has to be used with action which bans all ports
    # such as iptables-allports, shorewall
    [pam-generic]
    
    enabled = false
    # pam-generic filter can be customized to monitor specific subset of 'tty's
    filter  = pam-generic
    # port actually must be irrelevant but lets leave it all for some possible uses
    port = all
    banaction = iptables-allports
    port     = anyport
    logpath  = /var/log/auth.log
    maxretry = 6
    
    [xinetd-fail]
    
    enabled = false
    filter    = xinetd-fail
    port      = all
    banaction = iptables-multiport-log
    logpath   = /var/log/daemon.log
    maxretry  = 2
    
    
    [ssh-ddos]
    
    enabled = false
    port    = ssh
    filter  = sshd-ddos
    logpath  = /var/log/auth.log
    maxretry = 6
    
    #
    # HTTP servers
    #
    
    [apache]
    
    enabled = false
    port    = http,https
    filter  = apache-auth
    logpath = /var/log/apache*/*error.log
    maxretry = 6
    
    # default action is now multiport, so apache-multiport jail was left
    # for compatibility with previous (<0.7.6-2) releases
    [apache-multiport]
    
    enabled = false
    port      = http,https
    filter    = apache-auth
    logpath   = /var/log/apache*/*error.log
    maxretry  = 6
    
    [apache-noscript]
    
    enabled = false
    port    = http,https
    filter  = apache-noscript
    logpath = /var/log/apache*/*error.log
    maxretry = 6
    
    [apache-overflows]
    
    enabled = false
    port    = http,https
    filter  = apache-overflows
    logpath = /var/log/apache*/*error.log
    maxretry = 2
    
    
    #
    # FTP servers
    #
    
    [vsftpd]
    
    enabled = false
    port     = ftp,ftp-data,ftps,ftps-data
    filter   = vsftpd
    logpath  = /var/log/vsftpd.log
    # or overwrite it in jails.local to be
    # logpath = /var/log/auth.log
    # if you want to rely on PAM failed login attempts
    # vsftpd's failregex should match both of those formats
    maxretry = 6
    
    
    [proftpd]
    
    enabled = false
    port     = ftp,ftp-data,ftps,ftps-data
    filter   = proftpd
    logpath  = /var/log/proftpd/proftpd.log
    maxretry = 6
    
    
    [wuftpd]
    
    enabled = false
    port     = ftp,ftp-data,ftps,ftps-data
    filter   = wuftpd
    logpath  = /var/log/auth.log
    maxretry = 6
    
    
    #
    # Mail servers
    #
    
    [postfix]
    
    enabled = false
    port     = smtp,ssmtp
    filter   = postfix
    logpath  = /var/log/mail.log
    
    
    [couriersmtp]
    
    enabled = false
    port     = smtp,ssmtp
    filter   = couriersmtp
    logpath  = /var/log/mail.log
    
    
    #
    # Mail servers authenticators: might be used for smtp,ftp,imap servers, so
    # all relevant ports get banned
    #
    
    [sasl]
    
    enabled = false
    port     = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
    filter   = sasl
    # You might consider monitoring /var/log/warn.log instead
    # if you are running postfix. See http://bugs.debian.org/507990
    logpath  = /var/log/mail.log
    
    
    # DNS Servers
    
    
    # These jails block attacks against named (bind9). By default, logging is off
    # with bind9 installation. You will need something like this:
    #
    # logging {
    #     channel security_file {
    #         file "/var/log/named/security.log" versions 3 size 30m;
    #         severity dynamic;
    #         print-time yes;
    #     };
    #     category security {
    #         security_file;
    #     };
    # };
    #
    # in your named.conf to provide proper logging
    # !!! WARNING !!!
    #   Since UDP is connectionless protocol, spoofing of IP and immitation
    #   of illegal actions is way too simple.  Thus enabling of this filter
    #   might provide an easy way for implementing a DoS against a chosen
    #   victim. See
    #    http://nion.modprobe.de/blog/archives/690-fail2ban-+-dns-fail.html
    #   Please DO NOT USE this jail unless you know what you are doing.
    #[named-refused-udp]
    #
    #enabled  = false
    #port     = domain,953
    #protocol = udp
    #filter   = named-refused
    #logpath  = /var/log/named/security.log
    
    [named-refused-tcp]
    
    enabled = false
    port     = domain,953
    protocol = tcp
    filter   = named-refused
    logpath  = /var/log/named/security.log
    Ho però già un file "jail.local" creato da iredmail con il seguente contenuto:

    codice:
    # File generated by iRedMail (2012.08.24.12.54.28):
    #
    # Version:  0.8.1
    # Project:  http://www.iredmail.org/
    #
    # Community: http://www.iredmail.org/forum/
    #
    
    
    # Please refer to /etc/fail2ban/jail.conf for more examples.
    
    [ssh-iredmail]
    enabled     = true
    filter      = sshd
    action      = iptables[name=ssh, port="ssh", protocol=tcp]
    #               sendmail-whois[name=ssh, dest=root, sender=fail2ban@mail.com]
    logpath     = /var/log/auth.log
    maxretry    = 5
    #ignoreip    = 127.0.0.1
    
    [roundcube-iredmail]
    enabled     = true
    filter      = roundcube.iredmail
    action      = iptables-multiport[name=roundcube, port="http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve", protocol=tcp]
    logpath     = /var/log/mail.log
    findtime    = 3600
    maxretry    = 5
    bantime     = 3600
    ignoreip    = 127.0.0.1
    
    [dovecot-iredmail]
    enabled     = true
    filter      = dovecot.iredmail
    action      = iptables-multiport[name=dovecot, port="http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve", protocol=tcp]
    logpath     = /var/log/dovecot.log
    maxretry    = 5
    findtime    = 300
    bantime     = 3600
    ignoreip    = 127.0.0.1
    
    [postfix-iredmail]
    enabled     = true
    filter      = postfix.iredmail
    action      = iptables-multiport[name=postfix, port="http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve", protocol=tcp]
    #           sendmail[name=Postfix, dest=you@mail.com]
    logpath     = /var/log/mail.log
    bantime     = 3600
    maxretry    = 5
    ignoreip    = 127.0.0.1
    Ultima modifica di frakka : 27-09-2012 a 23:08

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  3. #23
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito 8.3_ Fail2ban: jail.local

    Il file di configurazione originale è molto lungo e completo, per la verità anche troppo.
    Inoltre, onestamente, non ho capito come funzionano gli "Action shortcuts" presenti nel file: Ho deciso pertanto di prendere il prestito il file che ho usato per i server dell'ufficio su CentOS6, opportunamente rimaneggiato.

    codice:
    # Fail2Ban configuration file
    #
    # Author: Matteo Fracassetti
    #
    # $Revision: 1 $
    #
    # La jail DEFAULT imposta definizioni predefinite per tutte le jail,
    # a meno che non diversamente specificato nella jail stessa.
    
    ##  Attenzione: I tempi sono espressi in secondi, quindi:
    #   600 -> 10 minuti
    #   1800 -> 30 minuti
    #   3600 -> 1 ora
    #   43200 -> 12 ore
    #   86400 -> 1 giorno
    #   259200 -> 3 giorni
    #   604800 -> 7 giorni
    
    ## Attenzione: un valore di "maxretry = 0" indica che il ban deve avvenire
    #  alla prima occorrenza della regex. "maxretry = 1" invece significa dopo
    #  il primo "retry" e quindi alla seconda occorrenza.
    
    ## Per applicare la stessa jail a piu' log e' possibile, ad esempio, specificare
    # il percorso del log nel formato "/var/www/*/logs/access_log"
    
    [DEFAULT]
    findtime = 600
    backend = inotify
    maxretry = 3
    bantime = 86400
    banaction = iptables-multiport
    port = http,https
    protocol = tcp
    ignoreip = 127.0.0.1 192.168.200.0/24 192.168.150.0/24
    Il parametro "findtime" determina l'arco temporale entro cui devo verificarsi il "maxretry": Quindi se ho un findtime impostato a 600 secondi (dieci minuti) significa che ogni IP che dovesse matchare le regex indicate nel "filter" per un numero di volte superiore al valore "maxretry", subirà l'azione configurata nel parametro "action".
    Non è necessario impostare un valore troppo elevato che può, anzi, risultare deleterio: L'attività di scanner e bot generalmente produce occorrenze molto ravvicinate (anche una decina nello stesso secondo) e sono quindi sufficienti per far scattare quasi tutte le jail. Un utente impastato che sbaglia a digitare la password 3 volte di file difficilmente lo farà in meno di 10 secondi mentre se impostiamo un findtime di un'ora o di un giorno non è così improbabile che ci finisca dentro qualche utente legittimo (ad esempio: un certo supermod che cercava di leggere la sua posta durante la pausa pranzo...)

    Il parametro backend è forse una delle opzioni più delicate. Fail2ban analizza i log che hanno subito modifiche recenti e per sapere quando ciè avviene può verificare il file di log ad intervalli regolari ("polling") oppure interfacciarsi con altri demoni in esecuzione sul server che si occupino per lui di monitorare le modifiche al filesystem. Di questi demoni ne esistono diversi e la documentazione sul sito ufficiale di fail2ban è un pò fumosa... L'attuale versione 0.8.x dovrebbe avere ufficialmente il supporto per i backend "FAM/Gamin/Pyinotify" anche se il supporto a "pyinotify" è indicato tra le feature della versione 0.9.x.
    Fatto stà che su CentOS 6 con SELinux attivo "inotify" è l'unico backend che funzioni veramente mentre su Debian ho provato tutti i valori possibili ma il tool sembra caricare sempre e solo il backend "poller" anche se non sò se è un problema del log o del tool....
    codice:
    2012-09-27 22:57:17,220 fail2ban.jail   : INFO   Jail 'vsftpd-xferlog' uses poller
    "pyinotify" dovrebbe essere il valore ottimale per un gran numero di configurazioni e comunque il tool funziona quindi ho preferito installare sul server le librerie necessarie per utilizzarlo ed impostare questo valore nella configurazione predefinita.
    codice:
    root@server:/home/matteo# apt-get install inotify-tools libinotifytools0 python-inotifyx python-pyinotify python-inotifyx
    Del significato di maxretry ho già parlato mentre bantime indica per quanto tempo l'IP individuato dovrà essere soggetto alle azioni indicate nella banaction. Il valore è ovviamente da valutare in base al servizio monitorato ed all'azione configurata.
    port permette di applicare le azioni di ban nel firewall a specifici servizi, coadiuvato dal parametro protocol.
    ignoreip imposta uno o più host che non devono essere soggetti alle azioni configurate e possono essere indicati come un IP, una subnet o un range di indirizzi, un nome host o un intero dominio. Ovviamente è consigliato inserirvi sia il localhost che la rete locale, per evitare di tagliarsi fuori dal server...

    codice:
    #
    # JAILS
    #
    # [SECTION_NAME]
    # enabled = true
    #
    
    [apache-access_log]
    enabled = true
    filter  = apache-access_log
    action  = iptables-multiport[name=apache-access, port="http,https"]
    logpath = /var/log/apache2/access.log
                     /var/log/apache2/ssl_access.log
    maxretry = 0
    bantime = 3600
    
    [apache-error_log]
    enabled = true
    filter  = apache-error_log
    action  = iptables-multiport[name=apache-error, port="http,https"]
    logpath = /var/log/apache2/error.log
    maxretry = 0
    bantime = 3600
    
    # Ban hosts which agent identifies spammer robots crawling the web
    # for email addresses. The mail outputs are buffered.
    # Il percorso "/var/www/*/logs/access_log" puo' essere utile da adattare
    # su una installazione che ospita molti siti.
    [apache-badbots]
    enabled  = true
    filter   = apache-badbots
    action   = iptables-multiport[name=apache-BadBots, port="http,https"]
    logpath  = /var/log/apache2/access.log
                     /var/log/apache2/ssl_access.log
    bantime  = 604800
    maxretry = 1
    Sfruttando la configurazione predefinita, ho ridotto in 3 JAILS la verifica dei log di apache: Una che si occupi di verificare il file access.log ed ssl_access.log, una dedicata al file error.log (che, avendo una sintassi diversa, necessità di diverse regex configurate nel parametro filter) e, dalla configurazione originale, ho tenuto la "apache-badbots" ma sono tentato di rimuoverla perchè non mi convince molto...

    codice:
    [vsftpd-log]
    enabled  = true 
    filter   = vsftpd-log
    findtime = 300
    port = ftp,ftp-data,ftps,ftps-data
    action   = iptables-multiport[name=vsftpd, port="ftp,ftp-data,ftps,ftps-data"]
    logpath  = /var/log/vsftpd_pubblico.log
    maxretry = 10
    
    [vsftpd-xferlog]
    enabled  = true
    filter   = vsftpd-xferlog
    port = ftp,ftp-data,ftps,ftps-data
    action   = iptables-multiport[name=vsftpd, port="ftp,ftp-data,ftps,ftps-data"]
    logpath  = /var/log/vsftpd_pubblico.xferlog
    maxretry = 3
    Ho qui raggruppato le JAILS che si occupano di monitorare il servizio ftp.


    codice:
    # Jail da iRedMail                     
    [roundcube-iredmail]
    enabled     = true
    filter      = roundcube.iredmail
    action      = iptables-multiport[name=roundcube, port="http,https"]
    logpath     = /var/log/mail.log
    maxretry    = 5
    bantime     = 3600
    
    [dovecot-iredmail]
    enabled     = true
    filter      = dovecot.iredmail
    action      = iptables-multiport[name=dovecot, port="submission,pop3,pop3s,imap,imaps"]
    logpath     = /var/log/dovecot.log
    maxretry    = 5
    bantime     = 3600
    
    [postfix-iredmail]
    enabled     = true
    filter      = postfix.iredmail
    action      = iptables-multiport[name=postfix, port="smtps,smtp,submission"]
    logpath     = /var/log/mail.log
    bantime     = 3600
    maxretry    = 5
    Queste sono invece le jail ereditate da iredmail. Di nuovo, molte grazie a Zhang...
    Ultima modifica di frakka : 06-10-2012 a 20:17

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  4. #24
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito 8.4_ filter.d/apache-access_log.conf

    Nella directory filter.d presente nello stesso percorso dei files precedenti, si trovano gli script contenenti le espressioni regolari utilizzate per analizzare i log del server.
    Le regex sono in perl e la rete è piena di istruzioni e tutorial: Ciò nonostante non sono così semplici da scrivere. Tempo fà l'utente Querty mi diede qualche utile indicazione qui, da cui ho attinto a piene mani. Sono sempre stato scarso e con poca pazienza in queste cose quindi le mio regex sono davvero molto rozze, ci sarebbe quasi da vergognarsi a pubblicarle... Però funzionano abbastanza bene, almeno per ora..

    Originariamente inviato da filter.d/apache-access_log.conf
    Aggiornato il: 29 Settembre 2012
    codice HTML:
    # Fail2Ban configuration file
    #
    # Author: Matteo Fracassetti
    # Ho semplicemente accorpato in una unica jail diversi filtri di
    # diversi autori, accomunate dal log a cui si riferiscono.
    #
    #
    
    [Definition]
    # Option:  failregex
    #
    failregex = <HOST> .*([/]+[\.]+[/]+)+.*$
                <HOST> .*/etc/passwd.*$
                <HOST> .*allow_url_include.*$
                <HOST> .*proc/self/environ.*$
                <HOST> .*HTTP\/(?: 1\.0|1\.1)\" 405.*$
                <HOST> .*CONNECT.*$
                <HOST> .*(?:WooT|w00t|wOOt|woot|Morfeus Fucking Scanner).*$
                <HOST> .*(?:GET|POST).*(?:http|https)[://].*HTTP\/.*$
    # Option:  ignoreregex
    # Notes.:  regex to ignore. If this regex matches, the line is ignored.
    # Values:  TEXT
    #
    ignoreregex = ^<HOST> -.*\"GET.*HTTP.*(?:Googlebot/2\.1.*|Googlebot-News|Googlebot-Image/1\.0|Googlebot-Video/1\.0|Mediapartners-Google/2\.1|Mediapartners-Google|AdsBot-Google)$
    Ho semplicemente accorpato diverse regex volte ad analizzare i log "access" di apache.
    Principalmente sfrutto i report di logwatch per identificare le stringhe da matchare nei log ed adeguare le jail. Non è un metodo molto evoluto, anche perchè le regex sono "case sensitive" quindi basta una sola maiuscola/minuscola invertita per rendere inefficace la regex.
    Inoltre, non su tutte le distro linux la stessa regex da gli stessi risultati: La quinta di questo elenco " .*/.\.\/.\.\/.*$" (o anche .*\/\.\.\/.*$) su CentOS non dà alcun riscontro: Per matchare le stesse occorrenze su CentOS6 ho dovuto riscriverla in questo modo: " .*\/[\.+]\/+.*$".

    La regex in versione CentOS è anche più flessibile in quanto matcha ogni occorrenze di un carattere "/" seguito da uno o più "." seguito da uno o più "/" ripetute una o più volte ma su Debian non mi dà alcun riscontro... Lo stesso risultato, su Debian mi viene invece con questa, che ho adottato come sesta dell'elenco: .*[/]+[\.]+[/]+.*$

    Per testare l'efficacia di una jail è possibile testarla con il comando seguente:
    codice:
    root@server:/etc/fail2ban# fail2ban-regex /var/log/apache2/ssl_access.log filter.d/apache-access_log.conf 
    /usr/share/fail2ban/server/filter.py:442: DeprecationWarning: the md5 module is deprecated; use hashlib instead
      import md5
    
    Running tests
    =============
    
    Use regex file : filter.d/apache-access_log.conf
    Use log file   : /var/log/apache2/ssl_access.log
    
    
    Results
    =======
    
    Failregex
    |- Regular expressions:
    |  [1]  .*"(GET|POST).*(http|https)[://].* HTTP\/.*$
    |  [2]  .*/.\.\/.\.\/.*$
    |  [3]  .*/etc/passwd.*$
    |  [4]  .*allow_url_include.*$
    |  [5]  .*proc/self/environ.*$
    |  [6]  .*HTTP\/1.0" 405.*$
    |  [7]  .*HTTP\/1.1" 405.*$
    |  [8]  .*CONNECT.*$
    |  [9]  .*(w00t|woot|WooT|wOOt).*$
    |  [10]  .*Morfeus Fucking Scanner.*$
    |
    `- Number of matches:
       [1] 0 match(es)
       [2] 1 match(es)
       [3] 0 match(es)
       [4] 0 match(es)
       [5] 0 match(es)
       [6] 0 match(es)
       [7] 0 match(es)
       [8] 0 match(es)
       [9] 0 match(es)
       [10] 0 match(es)
    
    Ignoreregex
    |- Regular expressions:
    |
    `- Number of matches:
    
    Summary
    =======
    
    Addresses found:
    [1]
    [2]
        115.248.95.147 (Tue Sep 25 01:46:48 2012)
    [3]
    [4]
    [5]
    [6]
    [7]
    [8]
    [9]
    [10]
    
    Date template hits:
    0 hit(s): MONTH Day Hour:Minute:Second
    0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year
    0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second
    0 hit(s): Year/Month/Day Hour:Minute:Second
    0 hit(s): Day/Month/Year Hour:Minute:Second
    0 hit(s): Day/Month/Year Hour:Minute:Second
    13351 hit(s): Day/MONTH/Year:Hour:Minute:Second
    0 hit(s): Month/Day/Year:Hour:Minute:Second
    0 hit(s): Year-Month-Day Hour:Minute:Second
    0 hit(s): Day-MONTH-Year Hour:Minute:Second[.Millisecond]
    0 hit(s): Day-Month-Year Hour:Minute:Second
    0 hit(s): TAI64N
    0 hit(s): Epoch
    0 hit(s): ISO 8601
    0 hit(s): Hour:Minute:Second
    0 hit(s): 
    
    Success, the total number of match is 1
    
    However, look at the above section 'Running tests' which could contain important
    information.
    root@server:/etc/fail2ban# fail2ban-regex /var/log/apache2/access.log filter.d/apache-access_log.conf 
    /usr/share/fail2ban/server/filter.py:442: DeprecationWarning: the md5 module is deprecated; use hashlib instead
      import md5
    
    Running tests
    =============
    
    Use regex file : filter.d/apache-access_log.conf
    Use log file   : /var/log/apache2/access.log
    
    
    Results
    =======
    
    Failregex
    |- Regular expressions:
    |  [1]  .*"(GET|POST).*(http|https)[://].* HTTP\/.*$
    |  [2]  .*/.\.\/.\.\/.*$
    |  [3]  .*/etc/passwd.*$
    |  [4]  .*allow_url_include.*$
    |  [5]  .*proc/self/environ.*$
    |  [6]  .*HTTP\/1.0" 405.*$
    |  [7]  .*HTTP\/1.1" 405.*$
    |  [8]  .*CONNECT.*$
    |  [9]  .*(w00t|woot|WooT|wOOt).*$
    |  [10]  .*Morfeus Fucking Scanner.*$
    |
    `- Number of matches:
       [1] 0 match(es)
       [2] 0 match(es)
       [3] 0 match(es)
       [4] 0 match(es)
       [5] 0 match(es)
       [6] 0 match(es)
       [7] 0 match(es)
       [8] 0 match(es)
       [9] 0 match(es)
       [10] 2 match(es)
    
    Ignoreregex
    |- Regular expressions:
    |
    `- Number of matches:
    
    Summary
    =======
    
    Addresses found:
    [1]
    [2]
    [3]
    [4]
    [5]
    [6]
    [7]
    [8]
    [9]
    [10]
        201.157.18.107 (Mon Sep 24 14:43:10 2012)
        117.79.149.219 (Tue Sep 25 22:16:11 2012)
    
    Date template hits:
    0 hit(s): MONTH Day Hour:Minute:Second
    0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year
    0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second
    0 hit(s): Year/Month/Day Hour:Minute:Second
    0 hit(s): Day/Month/Year Hour:Minute:Second
    0 hit(s): Day/Month/Year Hour:Minute:Second
    152 hit(s): Day/MONTH/Year:Hour:Minute:Second
    0 hit(s): Month/Day/Year:Hour:Minute:Second
    0 hit(s): Year-Month-Day Hour:Minute:Second
    0 hit(s): Day-MONTH-Year Hour:Minute:Second[.Millisecond]
    0 hit(s): Day-Month-Year Hour:Minute:Second
    0 hit(s): TAI64N
    0 hit(s): Epoch
    0 hit(s): ISO 8601
    0 hit(s): Hour:Minute:Second
    0 hit(s): 
    
    Success, the total number of match is 2
    
    However, look at the above section 'Running tests' which could contain important
    information.
    Che andando a vedere risulta questo:
    codice:
    115.248.95.147 - - [25/Sep/2012:01:46:48 +0200] "GET /vtigercrm/modules/com_vtiger_workflow/sortfieldsjson.php?module_name=../../../../../../../..//etc/amportal.conf%00 HTTP/1.1" 404 7912 "-" "-"
    
    201.157.18.107 - - [18/Sep/2012:16:35:56 +0200] "GET /user/soapCaller.bs HTTP/1.1" 404 475 "-" "Morfeus Fucking Scanner"
    201.157.18.107 - - [24/Sep/2012:14:43:10 +0200] "GET /user/soapCaller.bs HTTP/1.1" 404 475 "-" "Morfeus Fucking Scanner"
    117.79.149.219 - - [25/Sep/2012:22:16:11 +0200] "GET /user/soapCaller.bs HTTP/1.1" 404 475 "-" "Morfeus Fucking Scanner"
    Oggi pesca grama: Di solito va meglio...

    Il comando:
    root@server:/etc/fail2ban# fail2ban-regex /var/log/apache2/ssl_access.log " .*[/]+[\.]+[/]+.*$"
    può essere usato invece per testare la singola regex.
    Ultima modifica di frakka : 01-10-2012 a 20:26

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  5. #25
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito 8.4_ filter.d/apache-error_log.conf

    Originariamente inviato da filter.d/apache-error_log.conf
    codice HTML:
    #
    # Author: Matteo Fracassetti
    # Ho semplicemente accorpato in una unica jail diversi filtri di
    # diversi autori, accomunate dal log a cui si riferiscono.
    # Version. 2
    #
    
    [Definition]
    # Option:  failregex
    #
    failregex = [[]client <HOST>[]] (?:client denied by server configuration|Invalid URI in request|Invalid method in request|request failed: URI too long|erroneous characters after protocol string).*$
                [[]client <HOST>[]] user .* (authentication failure|not found|password mismatch).*$
                [[]client <HOST>[]] .*(?:awstat|awstats|awstatstotal|awstatstotals|stats|setup.php).*$
                [[]client <HOST>[]] File does not exist: .*(?:/~.|vtigercrm|bash_history).*$
                [[]client <HOST>[]] (?:File does not exist|script not found or unable to stat): /\S*(?: \.php|\.asp|\.exe|\.pl)
                [[]client <HOST>[]] File does not exist: .*(?:MyAdmin|myadmin|sql-admin|mysqladmin|mysql_admin|mysqlmanager|phpmanager|sqlmanager|sql|mysql|phpmyadmin|phpMyAdmin|mysqlphpadmin|websql|sqlweb|web|www-sql|webdb|roundcubemail).*$
                [[]client <HOST>[]] .*\/etc\/passwd.*$
                [[]client <HOST>[]] .*[\/]+[\.]+[\/]+.*$
    # Option:  ignoreregex
    # Notes.:  regex to ignore. If this regex matches, the line is ignored.
    # Values:  TEXT
    #
    ignoreregex =
    E questo è il risultato:

    codice:
    root@server:/etc/fail2ban# fail2ban-regex /var/log/apache2/error.log filter.d/apache-error_log.conf
    /usr/share/fail2ban/server/filter.py:442: DeprecationWarning: the md5 module is deprecated; use hashlib instead
      import md5
    
    Running tests
    =============
    
    Use regex file : filter.d/apache-error_log.conf
    Use log file   : /var/log/apache2/error.log
    
    
    Results
    =======
    
    Failregex
    |- Regular expressions:
    |  [1] [[]client []] (Invalid method in request||request failed: URI too long||erroneous characters after protocol string).*$
    |  [2] [[]client []] client denied by server configuration.*$
    |  [3] [[]client []] user .* (authentication failure||not found||password mismatch).*$
    |  [4] [[]client []] .*(awstat||awstats||awstatstotal||awstatstotals||stats||setup.php).*$
    |  [5] [[]client []] File does not exist: .*(/~. ||vtigercrm||bash_history).*$
    |  [6] [[]client []] (File does not exist||script not found or unable to stat): /\S*(\.php||\.asp||\.exe||\.pl)
    |  [7] [[]client []] File does not exist: .*(MyAdmin||myadmin||sql-admin||mysqladmin||mysql_admin).*$
    |  [8] [[]client []] File does not exist: .*(mysqlmanager||phpmanager||sqlmanager).*$
    |  [9] [[]client []] File does not exist: .*(sql||mysql||phpmyadmin||phpMyAdmin||mysqlphpadmin||websql||sqlweb||www-sql||webdb).*$
    |  [10] [[]client []] File does not exist: .*roundcubemail.*$
    |
    `- Number of matches:
       [1] 8 match(es)
       [2] 0 match(es)
       [3] 0 match(es)
       [4] 8 match(es)
       [5] 8 match(es)
       [6] 8 match(es)
       [7] 8 match(es)
       [8] 8 match(es)
       [9] 8 match(es)
       [10] 4 match(es)
    
    Ignoreregex
    |- Regular expressions:
    |
    `- Number of matches:
    
    Summary
    =======
    
    Addresses found:
    [1]
        62.163.93.29 (Sun Sep 23 09:49:07 2012)
        201.157.18.107 (Mon Sep 24 14:43:10 2012)
        115.248.95.147 (Tue Sep 25 01:46:48 2012)
        118.217.12.31 (Tue Sep 25 21:41:29 2012)
        117.79.149.219 (Tue Sep 25 22:16:11 2012)
        94.24.41.133 (Wed Sep 26 15:44:25 2012)
        146.185.20.124 (Thu Sep 27 01:51:08 2012)
        70.36.118.56 (Thu Sep 27 08:04:06 2012)
    [2]
    [3]
    [4]
        62.163.93.29 (Sun Sep 23 09:49:07 2012) (already matched)
        201.157.18.107 (Mon Sep 24 14:43:10 2012) (already matched)
        115.248.95.147 (Tue Sep 25 01:46:48 2012) (already matched)
        118.217.12.31 (Tue Sep 25 21:41:29 2012) (already matched)
        117.79.149.219 (Tue Sep 25 22:16:11 2012) (already matched)
        94.24.41.133 (Wed Sep 26 15:44:25 2012) (already matched)
        146.185.20.124 (Thu Sep 27 01:51:08 2012) (already matched)
        70.36.118.56 (Thu Sep 27 08:04:06 2012) (already matched)
    [5]
        62.163.93.29 (Sun Sep 23 09:49:07 2012) (already matched)
        201.157.18.107 (Mon Sep 24 14:43:10 2012) (already matched)
        115.248.95.147 (Tue Sep 25 01:46:48 2012) (already matched)
        118.217.12.31 (Tue Sep 25 21:41:29 2012) (already matched)
        117.79.149.219 (Tue Sep 25 22:16:11 2012) (already matched)
        94.24.41.133 (Wed Sep 26 15:44:25 2012) (already matched)
        146.185.20.124 (Thu Sep 27 01:51:08 2012) (already matched)
        70.36.118.56 (Thu Sep 27 08:04:06 2012) (already matched)
    [6]
        62.163.93.29 (Sun Sep 23 09:49:07 2012) (already matched)
        201.157.18.107 (Mon Sep 24 14:43:10 2012) (already matched)
        115.248.95.147 (Tue Sep 25 01:46:48 2012) (already matched)
        118.217.12.31 (Tue Sep 25 21:41:29 2012) (already matched)
        117.79.149.219 (Tue Sep 25 22:16:11 2012) (already matched)
        94.24.41.133 (Wed Sep 26 15:44:25 2012) (already matched)
        146.185.20.124 (Thu Sep 27 01:51:08 2012) (already matched)
        70.36.118.56 (Thu Sep 27 08:04:06 2012) (already matched)
    [7]
        62.163.93.29 (Sun Sep 23 09:49:07 2012) (already matched)
        201.157.18.107 (Mon Sep 24 14:43:10 2012) (already matched)
        115.248.95.147 (Tue Sep 25 01:46:48 2012) (already matched)
        118.217.12.31 (Tue Sep 25 21:41:29 2012) (already matched)
        117.79.149.219 (Tue Sep 25 22:16:11 2012) (already matched)
        94.24.41.133 (Wed Sep 26 15:44:25 2012) (already matched)
        146.185.20.124 (Thu Sep 27 01:51:08 2012) (already matched)
        70.36.118.56 (Thu Sep 27 08:04:06 2012) (already matched)
    [8]
        62.163.93.29 (Sun Sep 23 09:49:07 2012) (already matched)
        201.157.18.107 (Mon Sep 24 14:43:10 2012) (already matched)
        115.248.95.147 (Tue Sep 25 01:46:48 2012) (already matched)
        118.217.12.31 (Tue Sep 25 21:41:29 2012) (already matched)
        117.79.149.219 (Tue Sep 25 22:16:11 2012) (already matched)
        94.24.41.133 (Wed Sep 26 15:44:25 2012) (already matched)
        146.185.20.124 (Thu Sep 27 01:51:08 2012) (already matched)
        70.36.118.56 (Thu Sep 27 08:04:06 2012) (already matched)
    [9]
        62.163.93.29 (Sun Sep 23 09:49:07 2012) (already matched)
        201.157.18.107 (Mon Sep 24 14:43:10 2012) (already matched)
        115.248.95.147 (Tue Sep 25 01:46:48 2012) (already matched)
        118.217.12.31 (Tue Sep 25 21:41:29 2012) (already matched)
        117.79.149.219 (Tue Sep 25 22:16:11 2012) (already matched)
        94.24.41.133 (Wed Sep 26 15:44:25 2012) (already matched)
        146.185.20.124 (Thu Sep 27 01:51:08 2012) (already matched)
        70.36.118.56 (Thu Sep 27 08:04:06 2012) (already matched)
    [10]
        115.248.95.147 (Tue Sep 25 01:46:48 2012) (already matched)
        118.217.12.31 (Tue Sep 25 21:41:29 2012) (already matched)
        94.24.41.133 (Wed Sep 26 15:44:25 2012) (already matched)
        70.36.118.56 (Thu Sep 27 08:04:06 2012) (already matched)
    
    Date template hits:
    200 hit(s): MONTH Day Hour:Minute:Second
    0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year
    0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second
    0 hit(s): Year/Month/Day Hour:Minute:Second
    0 hit(s): Day/Month/Year Hour:Minute:Second
    0 hit(s): Day/Month/Year Hour:Minute:Second
    0 hit(s): Day/MONTH/Year:Hour:Minute:Second
    0 hit(s): Month/Day/Year:Hour:Minute:Second
    0 hit(s): Year-Month-Day Hour:Minute:Second
    0 hit(s): Day-MONTH-Year Hour:Minute:Second[.Millisecond]
    0 hit(s): Day-Month-Year Hour:Minute:Second
    0 hit(s): TAI64N
    0 hit(s): Epoch
    0 hit(s): ISO 8601
    0 hit(s): Hour:Minute:Second
    0 hit(s): 
    
    Success, the total number of match is 60
    
    However, look at the above section 'Running tests' which could contain important
    information.
    Questa è andata meglio!
    Ultima modifica di frakka : 29-09-2012 a 20:44

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  6. #26
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito 3.6_ Aggiornamento di iRedMail.

    Periodicamente Zhang pubblica gli aggiornamenti ad iRedMail.
    La disponibilità di aggiornamenti è verificabile nella homepage del sito oppure nella homepage del pannello iRedAdmin.

    Alla data corrente, l'ultimo aggiornamento è la versione iRedMail-0.8.2 bugfix release, pubblicata il 19 Settembre 2012. Tra i cambiamenti, c'è l'aggiornamento alla versione 0.8.1 di Rouncube, che io avevo già eseguito.
    Per ogni aggiornamento, vengono anche pubblicate le istruzioni da seguire: Generalmente non è necessario scaricare nulla, si tratta di apportare le modifiche indicate ai file di configurazione e aggiungere o modificare delle tabelle sui database MySQL a seconda delle modifiche che Zhang ha implementato.

    Il passaggio da un versione all'altra non è sempre banale ne scontato e l'unica procedura supportata ufficialmente prevede il passaggio attraverso tutte le release, da una versione rilasciata a quella immediatamente successiva. I tutorial e le istruzioni fornite sono solitamente molto precise e dettagliate quindi è sufficiente metterci un pò di attenzione.


    A fagiolo, questa release fà eccezione: Vengono toccati un sacco di componenti e quindi la procedura di aggiornamento è più articolata del solito. Inoltre ci sono da scaricare le versioni aggiornate di iRedAPD e iRedAdmin. Le istruzioni sono comunque molto precise.
    Ultima modifica di frakka : 06-10-2012 a 19:25

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  7. #27

    Predefinito

    Salve Sig. Frakka posso farle una domanda?

  8. #28
    mebibyte L'avatar di pgfiore
    Registrato
    Jun 2011
    Località
    Genova
    Età
    62
    Messaggi
    566

    Predefinito

    Necroposting
    Ci penserei mille volte prima di mettermi un server mail in casa nel 2017; offerte gratuite online come Google e Microsoft oppure Office365 con fee hanno cambiato le regole del gioco...

  9. #29
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito

    Originariamente inviato da lucatek
    Salve Sig. Frakka posso farle una domanda?
    Sì, certo.
    Se posso rispondere, volentieri...

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

  10. #30
    Super Moderatore L'avatar di frakka
    Registrato
    May 2001
    Località
    Casalecchio di Reno (Bo)
    Età
    44
    Messaggi
    23,415
    configurazione

    Predefinito

    Originariamente inviato da pgfiore
    Necroposting
    Ci penserei mille volte prima di mettermi un server mail in casa nel 2017; offerte gratuite online come Google e Microsoft oppure Office365 con fee hanno cambiato le regole del gioco...
    Abbastanza d'accordo, anche io ho dismesso questo server circa un anno e mezzo fa.
    Mi pare che qualcuno di questi provider adesso permetta di usare il proprio dominio anche con la loro infrastruttura ma probabilmente solo per i contratti Business.
    Io ho il dominio su Aruba, quindi ho spostato tutto sui loro server e mi trovo abbastanza bene.

    Questa è la storia di 4 persone chiamate Ognuno, Qualcuno, Ciascuno e Nessuno. C'era un lavoro importante da fare e Ognuno era sicuro che Qualcuno lo avrebbe fatto. Ciascuno poteva farlo, ma Nessuno lo fece, Qualcuno si arrabbiò perché era il lavoro di Ognuno. Ognuno pensò che Ciascuno potesse farlo, ma Ognuno capì che Nessuno l'avrebbe fatto. Finì che Ognuno incolpò Qualcuno perché Nessuno fece ciò che Ciascuno avrebbe potuto fare.

Pagina 3 di 4
prima
1 2 3 4 ultimo

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Tags

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022