deploy_mate 0.18.1 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +1 -0
 - data/deploy-mate.gemspec +1 -1
 - data/lib/capistrano/configs/fail2ban-nginx-request-limit-filter.conf.erb +13 -0
 - data/lib/capistrano/configs/fail2ban-nginx-request-limit-jail.conf.erb +494 -0
 - data/lib/capistrano/configs/nginx_app.conf.erb +5 -0
 - data/lib/capistrano/deploy_mate_capfile.rb +1 -1
 - data/lib/capistrano/tasks/fail2ban.rake +26 -0
 - data/lib/capistrano/tasks/machine.rake +1 -0
 - metadata +4 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 1c147b5057ab98f1b7d09135001e7429c94e4351
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 5c887841bef0409e4546798816488780dd3d4f5c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: baf968bb63926b1a15a0603536de6d5d49c15afaeae205ef5486ed4088e530a9abadbd65c2c1f0dd25522d75eac184cabfce90c0b108d57f2842c776c98537de
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f26223846beef52a51e4be1c13904ef7b61a8a4268a729bb2b424d3b84404a06d9b716c637d2d0a27ac54164acf150be996183ebb6bbf2fd14635f7de117c039
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -29,6 +29,7 @@ It uses the following Capistrano-roles to divide the installed components: 
     | 
|
| 
       29 
29 
     | 
    
         
             
            - **cronjobs**: [OPTIONAL] For environments where `whenever` should manage/run cronjobs
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
            ## Changelog
         
     | 
| 
      
 32 
     | 
    
         
            +
            * **0.18.2 (2016-03-08)**: Added basic DDoS and flooding-proof via nginx `req_limit` and `fail2ban`
         
     | 
| 
       32 
33 
     | 
    
         
             
            * **0.18.1 (2016-03-01)**: Added support for memcached
         
     | 
| 
       33 
34 
     | 
    
         
             
            * **0.18 (2016-02-25)**: Added support for capistrano 3.4, Ask before overwriting existing config-files
         
     | 
| 
       34 
35 
     | 
    
         
             
            * **2016-02-19**: Made selection of a deployed branch possible
         
     | 
    
        data/deploy-mate.gemspec
    CHANGED
    
    
| 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Fail2Ban configuration file
         
     | 
| 
      
 2 
     | 
    
         
            +
            #
         
     | 
| 
      
 3 
     | 
    
         
            +
            # supports: ngx_http_limit_req_module module
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            [Definition]
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            failregex = limiting requests, excess:.* by zone.*client: <HOST>
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            # Option: ignoreregex
         
     | 
| 
      
 10 
     | 
    
         
            +
            # Notes.: regex to ignore. If this regex matches, the line is ignored.
         
     | 
| 
      
 11 
     | 
    
         
            +
            # Values: TEXT
         
     | 
| 
      
 12 
     | 
    
         
            +
            #
         
     | 
| 
      
 13 
     | 
    
         
            +
            ignoreregex =
         
     | 
| 
         @@ -0,0 +1,494 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Fail2Ban configuration file.
         
     | 
| 
      
 2 
     | 
    
         
            +
            #
         
     | 
| 
      
 3 
     | 
    
         
            +
            # This file was composed for Debian systems from the original one
         
     | 
| 
      
 4 
     | 
    
         
            +
            # provided now under /usr/share/doc/fail2ban/examples/jail.conf
         
     | 
| 
      
 5 
     | 
    
         
            +
            # for additional examples.
         
     | 
| 
      
 6 
     | 
    
         
            +
            #
         
     | 
| 
      
 7 
     | 
    
         
            +
            # Comments: use '#' for comment lines and ';' for inline comments
         
     | 
| 
      
 8 
     | 
    
         
            +
            #
         
     | 
| 
      
 9 
     | 
    
         
            +
            # To avoid merges during upgrades DO NOT MODIFY THIS FILE
         
     | 
| 
      
 10 
     | 
    
         
            +
            # and rather provide your changes in /etc/fail2ban/jail.local
         
     | 
| 
      
 11 
     | 
    
         
            +
            #
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            # The DEFAULT allows a global definition of the options. They can be overridden
         
     | 
| 
      
 14 
     | 
    
         
            +
            # in each jail afterwards.
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            [DEFAULT]
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
         
     | 
| 
      
 19 
     | 
    
         
            +
            # ban a host which matches an address in this list. Several addresses can be
         
     | 
| 
      
 20 
     | 
    
         
            +
            # defined using space separator.
         
     | 
| 
      
 21 
     | 
    
         
            +
            ignoreip = 127.0.0.1/8 217.111.74.210
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            # "bantime" is the number of seconds that a host is banned.
         
     | 
| 
      
 24 
     | 
    
         
            +
            bantime  = 600
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            # A host is banned if it has generated "maxretry" during the last "findtime"
         
     | 
| 
      
 27 
     | 
    
         
            +
            # seconds.
         
     | 
| 
      
 28 
     | 
    
         
            +
            findtime = 600
         
     | 
| 
      
 29 
     | 
    
         
            +
            maxretry = 3
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            # "backend" specifies the backend used to get files modification.
         
     | 
| 
      
 32 
     | 
    
         
            +
            # Available options are "pyinotify", "gamin", "polling" and "auto".
         
     | 
| 
      
 33 
     | 
    
         
            +
            # This option can be overridden in each jail as well.
         
     | 
| 
      
 34 
     | 
    
         
            +
            #
         
     | 
| 
      
 35 
     | 
    
         
            +
            # pyinotify: requires pyinotify (a file alteration monitor) to be installed.
         
     | 
| 
      
 36 
     | 
    
         
            +
            #            If pyinotify is not installed, Fail2ban will use auto.
         
     | 
| 
      
 37 
     | 
    
         
            +
            # gamin:     requires Gamin (a file alteration monitor) to be installed.
         
     | 
| 
      
 38 
     | 
    
         
            +
            #            If Gamin is not installed, Fail2ban will use auto.
         
     | 
| 
      
 39 
     | 
    
         
            +
            # polling:   uses a polling algorithm which does not require external libraries.
         
     | 
| 
      
 40 
     | 
    
         
            +
            # auto:      will try to use the following backends, in order:
         
     | 
| 
      
 41 
     | 
    
         
            +
            #            pyinotify, gamin, polling.
         
     | 
| 
      
 42 
     | 
    
         
            +
            backend = auto
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            # "usedns" specifies if jails should trust hostnames in logs,
         
     | 
| 
      
 45 
     | 
    
         
            +
            #   warn when reverse DNS lookups are performed, or ignore all hostnames in logs
         
     | 
| 
      
 46 
     | 
    
         
            +
            #
         
     | 
| 
      
 47 
     | 
    
         
            +
            # yes:   if a hostname is encountered, a reverse DNS lookup will be performed.
         
     | 
| 
      
 48 
     | 
    
         
            +
            # warn:  if a hostname is encountered, a reverse DNS lookup will be performed,
         
     | 
| 
      
 49 
     | 
    
         
            +
            #        but it will be logged as a warning.
         
     | 
| 
      
 50 
     | 
    
         
            +
            # no:    if a hostname is encountered, will not be used for banning,
         
     | 
| 
      
 51 
     | 
    
         
            +
            #        but it will be logged as info.
         
     | 
| 
      
 52 
     | 
    
         
            +
            usedns = warn
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            #
         
     | 
| 
      
 55 
     | 
    
         
            +
            # Destination email address used solely for the interpolations in
         
     | 
| 
      
 56 
     | 
    
         
            +
            # jail.{conf,local} configuration files.
         
     | 
| 
      
 57 
     | 
    
         
            +
            destemail = root@localhost
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            #
         
     | 
| 
      
 60 
     | 
    
         
            +
            # Name of the sender for mta actions
         
     | 
| 
      
 61 
     | 
    
         
            +
            sendername = Fail2Ban
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            #
         
     | 
| 
      
 64 
     | 
    
         
            +
            # ACTIONS
         
     | 
| 
      
 65 
     | 
    
         
            +
            #
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            # Default banning action (e.g. iptables, iptables-new,
         
     | 
| 
      
 68 
     | 
    
         
            +
            # iptables-multiport, shorewall, etc) It is used to define
         
     | 
| 
      
 69 
     | 
    
         
            +
            # action_* variables. Can be overridden globally or per
         
     | 
| 
      
 70 
     | 
    
         
            +
            # section within jail.local file
         
     | 
| 
      
 71 
     | 
    
         
            +
            banaction = iptables-multiport
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            # email action. Since 0.8.1 upstream fail2ban uses sendmail
         
     | 
| 
      
 74 
     | 
    
         
            +
            # MTA for the mailing. Change mta configuration parameter to mail
         
     | 
| 
      
 75 
     | 
    
         
            +
            # if you want to revert to conventional 'mail'.
         
     | 
| 
      
 76 
     | 
    
         
            +
            mta = sendmail
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            # Default protocol
         
     | 
| 
      
 79 
     | 
    
         
            +
            protocol = tcp
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            # Specify chain where jumps would need to be added in iptables-* actions
         
     | 
| 
      
 82 
     | 
    
         
            +
            chain = INPUT
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
            #
         
     | 
| 
      
 85 
     | 
    
         
            +
            # Action shortcuts. To be used to define action parameter
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
            # The simplest action to take: ban only
         
     | 
| 
      
 88 
     | 
    
         
            +
            action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            # ban & send an e-mail with whois report to the destemail.
         
     | 
| 
      
 91 
     | 
    
         
            +
            action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
         
     | 
| 
      
 92 
     | 
    
         
            +
                          %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s", sendername="%(sendername)s"]
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            # ban & send an e-mail with whois report and relevant log lines
         
     | 
| 
      
 95 
     | 
    
         
            +
            # to the destemail.
         
     | 
| 
      
 96 
     | 
    
         
            +
            action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
         
     | 
| 
      
 97 
     | 
    
         
            +
                           %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s", sendername="%(sendername)s"]
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            # Choose default action.  To change, just override value of 'action' with the
         
     | 
| 
      
 100 
     | 
    
         
            +
            # interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local
         
     | 
| 
      
 101 
     | 
    
         
            +
            # globally (section [DEFAULT]) or per specific section
         
     | 
| 
      
 102 
     | 
    
         
            +
            action = %(action_)s
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
            #
         
     | 
| 
      
 105 
     | 
    
         
            +
            # JAILS
         
     | 
| 
      
 106 
     | 
    
         
            +
            #
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            # Next jails corresponds to the standard configuration in Fail2ban 0.6 which
         
     | 
| 
      
 109 
     | 
    
         
            +
            # was shipped in Debian. Enable any defined here jail by including
         
     | 
| 
      
 110 
     | 
    
         
            +
            #
         
     | 
| 
      
 111 
     | 
    
         
            +
            # [SECTION_NAME]
         
     | 
| 
      
 112 
     | 
    
         
            +
            # enabled = true
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
            #
         
     | 
| 
      
 115 
     | 
    
         
            +
            # in /etc/fail2ban/jail.local.
         
     | 
| 
      
 116 
     | 
    
         
            +
            #
         
     | 
| 
      
 117 
     | 
    
         
            +
            # Optionally you may override any other parameter (e.g. banaction,
         
     | 
| 
      
 118 
     | 
    
         
            +
            # action, port, logpath, etc) in that section within jail.local
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
            [ssh]
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
            enabled  = true
         
     | 
| 
      
 123 
     | 
    
         
            +
            port     = ssh
         
     | 
| 
      
 124 
     | 
    
         
            +
            filter   = sshd
         
     | 
| 
      
 125 
     | 
    
         
            +
            logpath  = /var/log/auth.log
         
     | 
| 
      
 126 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 127 
     | 
    
         
            +
             
     | 
| 
      
 128 
     | 
    
         
            +
            [dropbear]
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 131 
     | 
    
         
            +
            port     = ssh
         
     | 
| 
      
 132 
     | 
    
         
            +
            filter   = dropbear
         
     | 
| 
      
 133 
     | 
    
         
            +
            logpath  = /var/log/auth.log
         
     | 
| 
      
 134 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
            # Generic filter for pam. Has to be used with action which bans all ports
         
     | 
| 
      
 137 
     | 
    
         
            +
            # such as iptables-allports, shorewall
         
     | 
| 
      
 138 
     | 
    
         
            +
            [pam-generic]
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 141 
     | 
    
         
            +
            # pam-generic filter can be customized to monitor specific subset of 'tty's
         
     | 
| 
      
 142 
     | 
    
         
            +
            filter   = pam-generic
         
     | 
| 
      
 143 
     | 
    
         
            +
            # port actually must be irrelevant but lets leave it all for some possible uses
         
     | 
| 
      
 144 
     | 
    
         
            +
            port     = all
         
     | 
| 
      
 145 
     | 
    
         
            +
            banaction = iptables-allports
         
     | 
| 
      
 146 
     | 
    
         
            +
            port     = anyport
         
     | 
| 
      
 147 
     | 
    
         
            +
            logpath  = /var/log/auth.log
         
     | 
| 
      
 148 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
      
 150 
     | 
    
         
            +
            [xinetd-fail]
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
            enabled   = false
         
     | 
| 
      
 153 
     | 
    
         
            +
            filter    = xinetd-fail
         
     | 
| 
      
 154 
     | 
    
         
            +
            port      = all
         
     | 
| 
      
 155 
     | 
    
         
            +
            banaction = iptables-multiport-log
         
     | 
| 
      
 156 
     | 
    
         
            +
            logpath   = /var/log/daemon.log
         
     | 
| 
      
 157 
     | 
    
         
            +
            maxretry  = 2
         
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
            [ssh-ddos]
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 163 
     | 
    
         
            +
            port     = ssh
         
     | 
| 
      
 164 
     | 
    
         
            +
            filter   = sshd-ddos
         
     | 
| 
      
 165 
     | 
    
         
            +
            logpath  = /var/log/auth.log
         
     | 
| 
      
 166 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
             
     | 
| 
      
 169 
     | 
    
         
            +
            # Here we use blackhole routes for not requiring any additional kernel support
         
     | 
| 
      
 170 
     | 
    
         
            +
            # to store large volumes of banned IPs
         
     | 
| 
      
 171 
     | 
    
         
            +
             
     | 
| 
      
 172 
     | 
    
         
            +
            [ssh-route]
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
            enabled = false
         
     | 
| 
      
 175 
     | 
    
         
            +
            filter = sshd
         
     | 
| 
      
 176 
     | 
    
         
            +
            action = route
         
     | 
| 
      
 177 
     | 
    
         
            +
            logpath = /var/log/sshd.log
         
     | 
| 
      
 178 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 179 
     | 
    
         
            +
             
     | 
| 
      
 180 
     | 
    
         
            +
            # Here we use a combination of Netfilter/Iptables and IPsets
         
     | 
| 
      
 181 
     | 
    
         
            +
            # for storing large volumes of banned IPs
         
     | 
| 
      
 182 
     | 
    
         
            +
            #
         
     | 
| 
      
 183 
     | 
    
         
            +
            # IPset comes in two versions. See ipset -V for which one to use
         
     | 
| 
      
 184 
     | 
    
         
            +
            # requires the ipset package and kernel support.
         
     | 
| 
      
 185 
     | 
    
         
            +
            [ssh-iptables-ipset4]
         
     | 
| 
      
 186 
     | 
    
         
            +
             
     | 
| 
      
 187 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 188 
     | 
    
         
            +
            port     = ssh
         
     | 
| 
      
 189 
     | 
    
         
            +
            filter   = sshd
         
     | 
| 
      
 190 
     | 
    
         
            +
            banaction = iptables-ipset-proto4
         
     | 
| 
      
 191 
     | 
    
         
            +
            logpath  = /var/log/sshd.log
         
     | 
| 
      
 192 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 193 
     | 
    
         
            +
             
     | 
| 
      
 194 
     | 
    
         
            +
            [ssh-iptables-ipset6]
         
     | 
| 
      
 195 
     | 
    
         
            +
             
     | 
| 
      
 196 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 197 
     | 
    
         
            +
            port     = ssh
         
     | 
| 
      
 198 
     | 
    
         
            +
            filter   = sshd
         
     | 
| 
      
 199 
     | 
    
         
            +
            banaction = iptables-ipset-proto6
         
     | 
| 
      
 200 
     | 
    
         
            +
            logpath  = /var/log/sshd.log
         
     | 
| 
      
 201 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
      
 203 
     | 
    
         
            +
             
     | 
| 
      
 204 
     | 
    
         
            +
            #
         
     | 
| 
      
 205 
     | 
    
         
            +
            # HTTP servers
         
     | 
| 
      
 206 
     | 
    
         
            +
            #
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
            [apache]
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 211 
     | 
    
         
            +
            port     = http,https
         
     | 
| 
      
 212 
     | 
    
         
            +
            filter   = apache-auth
         
     | 
| 
      
 213 
     | 
    
         
            +
            logpath  = /var/log/apache*/*error.log
         
     | 
| 
      
 214 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 215 
     | 
    
         
            +
             
     | 
| 
      
 216 
     | 
    
         
            +
            # default action is now multiport, so apache-multiport jail was left
         
     | 
| 
      
 217 
     | 
    
         
            +
            # for compatibility with previous (<0.7.6-2) releases
         
     | 
| 
      
 218 
     | 
    
         
            +
            [apache-multiport]
         
     | 
| 
      
 219 
     | 
    
         
            +
             
     | 
| 
      
 220 
     | 
    
         
            +
            enabled   = false
         
     | 
| 
      
 221 
     | 
    
         
            +
            port      = http,https
         
     | 
| 
      
 222 
     | 
    
         
            +
            filter    = apache-auth
         
     | 
| 
      
 223 
     | 
    
         
            +
            logpath   = /var/log/apache*/*error.log
         
     | 
| 
      
 224 
     | 
    
         
            +
            maxretry  = 6
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
      
 226 
     | 
    
         
            +
            [apache-noscript]
         
     | 
| 
      
 227 
     | 
    
         
            +
             
     | 
| 
      
 228 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 229 
     | 
    
         
            +
            port     = http,https
         
     | 
| 
      
 230 
     | 
    
         
            +
            filter   = apache-noscript
         
     | 
| 
      
 231 
     | 
    
         
            +
            logpath  = /var/log/apache*/*error.log
         
     | 
| 
      
 232 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 233 
     | 
    
         
            +
             
     | 
| 
      
 234 
     | 
    
         
            +
            [apache-overflows]
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
      
 236 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 237 
     | 
    
         
            +
            port     = http,https
         
     | 
| 
      
 238 
     | 
    
         
            +
            filter   = apache-overflows
         
     | 
| 
      
 239 
     | 
    
         
            +
            logpath  = /var/log/apache*/*error.log
         
     | 
| 
      
 240 
     | 
    
         
            +
            maxretry = 2
         
     | 
| 
      
 241 
     | 
    
         
            +
             
     | 
| 
      
 242 
     | 
    
         
            +
            # Ban attackers that try to use PHP's URL-fopen() functionality
         
     | 
| 
      
 243 
     | 
    
         
            +
            # through GET/POST variables. - Experimental, with more than a year
         
     | 
| 
      
 244 
     | 
    
         
            +
            # of usage in production environments.
         
     | 
| 
      
 245 
     | 
    
         
            +
             
     | 
| 
      
 246 
     | 
    
         
            +
            [php-url-fopen]
         
     | 
| 
      
 247 
     | 
    
         
            +
             
     | 
| 
      
 248 
     | 
    
         
            +
            enabled = false
         
     | 
| 
      
 249 
     | 
    
         
            +
            port    = http,https
         
     | 
| 
      
 250 
     | 
    
         
            +
            filter  = php-url-fopen
         
     | 
| 
      
 251 
     | 
    
         
            +
            logpath = /var/www/*/logs/access_log
         
     | 
| 
      
 252 
     | 
    
         
            +
             
     | 
| 
      
 253 
     | 
    
         
            +
            # A simple PHP-fastcgi jail which works with lighttpd.
         
     | 
| 
      
 254 
     | 
    
         
            +
            # If you run a lighttpd server, then you probably will
         
     | 
| 
      
 255 
     | 
    
         
            +
            # find these kinds of messages in your error_log:
         
     | 
| 
      
 256 
     | 
    
         
            +
            #   ALERT – tried to register forbidden variable ‘GLOBALS’
         
     | 
| 
      
 257 
     | 
    
         
            +
            #   through GET variables (attacker '1.2.3.4', file '/var/www/default/htdocs/index.php')
         
     | 
| 
      
 258 
     | 
    
         
            +
             
     | 
| 
      
 259 
     | 
    
         
            +
            [lighttpd-fastcgi]
         
     | 
| 
      
 260 
     | 
    
         
            +
             
     | 
| 
      
 261 
     | 
    
         
            +
            enabled = false
         
     | 
| 
      
 262 
     | 
    
         
            +
            port    = http,https
         
     | 
| 
      
 263 
     | 
    
         
            +
            filter  = lighttpd-fastcgi
         
     | 
| 
      
 264 
     | 
    
         
            +
            logpath = /var/log/lighttpd/error.log
         
     | 
| 
      
 265 
     | 
    
         
            +
             
     | 
| 
      
 266 
     | 
    
         
            +
            # Same as above for mod_auth
         
     | 
| 
      
 267 
     | 
    
         
            +
            # It catches wrong authentifications
         
     | 
| 
      
 268 
     | 
    
         
            +
             
     | 
| 
      
 269 
     | 
    
         
            +
            [lighttpd-auth]
         
     | 
| 
      
 270 
     | 
    
         
            +
             
     | 
| 
      
 271 
     | 
    
         
            +
            enabled = false
         
     | 
| 
      
 272 
     | 
    
         
            +
            port    = http,https
         
     | 
| 
      
 273 
     | 
    
         
            +
            filter  = suhosin
         
     | 
| 
      
 274 
     | 
    
         
            +
            logpath = /var/log/lighttpd/error.log
         
     | 
| 
      
 275 
     | 
    
         
            +
             
     | 
| 
      
 276 
     | 
    
         
            +
            [nginx-http-auth]
         
     | 
| 
      
 277 
     | 
    
         
            +
             
     | 
| 
      
 278 
     | 
    
         
            +
            enabled = false
         
     | 
| 
      
 279 
     | 
    
         
            +
            filter  = nginx-http-auth
         
     | 
| 
      
 280 
     | 
    
         
            +
            port    = http,https
         
     | 
| 
      
 281 
     | 
    
         
            +
            logpath = /var/log/nginx/error.log
         
     | 
| 
      
 282 
     | 
    
         
            +
             
     | 
| 
      
 283 
     | 
    
         
            +
            # Monitor roundcube server
         
     | 
| 
      
 284 
     | 
    
         
            +
             
     | 
| 
      
 285 
     | 
    
         
            +
            [roundcube-auth]
         
     | 
| 
      
 286 
     | 
    
         
            +
             
     | 
| 
      
 287 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 288 
     | 
    
         
            +
            filter   = roundcube-auth
         
     | 
| 
      
 289 
     | 
    
         
            +
            port     = http,https
         
     | 
| 
      
 290 
     | 
    
         
            +
            logpath  = /var/log/roundcube/userlogins
         
     | 
| 
      
 291 
     | 
    
         
            +
             
     | 
| 
      
 292 
     | 
    
         
            +
             
     | 
| 
      
 293 
     | 
    
         
            +
            [sogo-auth]
         
     | 
| 
      
 294 
     | 
    
         
            +
             
     | 
| 
      
 295 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 296 
     | 
    
         
            +
            filter   = sogo-auth
         
     | 
| 
      
 297 
     | 
    
         
            +
            port     = http, https
         
     | 
| 
      
 298 
     | 
    
         
            +
            # without proxy this would be:
         
     | 
| 
      
 299 
     | 
    
         
            +
            # port    = 20000
         
     | 
| 
      
 300 
     | 
    
         
            +
            logpath  = /var/log/sogo/sogo.log
         
     | 
| 
      
 301 
     | 
    
         
            +
             
     | 
| 
      
 302 
     | 
    
         
            +
             
     | 
| 
      
 303 
     | 
    
         
            +
            #
         
     | 
| 
      
 304 
     | 
    
         
            +
            # FTP servers
         
     | 
| 
      
 305 
     | 
    
         
            +
            #
         
     | 
| 
      
 306 
     | 
    
         
            +
             
     | 
| 
      
 307 
     | 
    
         
            +
            [vsftpd]
         
     | 
| 
      
 308 
     | 
    
         
            +
             
     | 
| 
      
 309 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 310 
     | 
    
         
            +
            port     = ftp,ftp-data,ftps,ftps-data
         
     | 
| 
      
 311 
     | 
    
         
            +
            filter   = vsftpd
         
     | 
| 
      
 312 
     | 
    
         
            +
            logpath  = /var/log/vsftpd.log
         
     | 
| 
      
 313 
     | 
    
         
            +
            # or overwrite it in jails.local to be
         
     | 
| 
      
 314 
     | 
    
         
            +
            # logpath = /var/log/auth.log
         
     | 
| 
      
 315 
     | 
    
         
            +
            # if you want to rely on PAM failed login attempts
         
     | 
| 
      
 316 
     | 
    
         
            +
            # vsftpd's failregex should match both of those formats
         
     | 
| 
      
 317 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 318 
     | 
    
         
            +
             
     | 
| 
      
 319 
     | 
    
         
            +
             
     | 
| 
      
 320 
     | 
    
         
            +
            [proftpd]
         
     | 
| 
      
 321 
     | 
    
         
            +
             
     | 
| 
      
 322 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 323 
     | 
    
         
            +
            port     = ftp,ftp-data,ftps,ftps-data
         
     | 
| 
      
 324 
     | 
    
         
            +
            filter   = proftpd
         
     | 
| 
      
 325 
     | 
    
         
            +
            logpath  = /var/log/proftpd/proftpd.log
         
     | 
| 
      
 326 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 327 
     | 
    
         
            +
             
     | 
| 
      
 328 
     | 
    
         
            +
             
     | 
| 
      
 329 
     | 
    
         
            +
            [pure-ftpd]
         
     | 
| 
      
 330 
     | 
    
         
            +
             
     | 
| 
      
 331 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 332 
     | 
    
         
            +
            port     = ftp,ftp-data,ftps,ftps-data
         
     | 
| 
      
 333 
     | 
    
         
            +
            filter   = pure-ftpd
         
     | 
| 
      
 334 
     | 
    
         
            +
            logpath  = /var/log/syslog
         
     | 
| 
      
 335 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 336 
     | 
    
         
            +
             
     | 
| 
      
 337 
     | 
    
         
            +
             
     | 
| 
      
 338 
     | 
    
         
            +
            [wuftpd]
         
     | 
| 
      
 339 
     | 
    
         
            +
             
     | 
| 
      
 340 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 341 
     | 
    
         
            +
            port     = ftp,ftp-data,ftps,ftps-data
         
     | 
| 
      
 342 
     | 
    
         
            +
            filter   = wuftpd
         
     | 
| 
      
 343 
     | 
    
         
            +
            logpath  = /var/log/syslog
         
     | 
| 
      
 344 
     | 
    
         
            +
            maxretry = 6
         
     | 
| 
      
 345 
     | 
    
         
            +
             
     | 
| 
      
 346 
     | 
    
         
            +
             
     | 
| 
      
 347 
     | 
    
         
            +
            #
         
     | 
| 
      
 348 
     | 
    
         
            +
            # Mail servers
         
     | 
| 
      
 349 
     | 
    
         
            +
            #
         
     | 
| 
      
 350 
     | 
    
         
            +
             
     | 
| 
      
 351 
     | 
    
         
            +
            [postfix]
         
     | 
| 
      
 352 
     | 
    
         
            +
             
     | 
| 
      
 353 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 354 
     | 
    
         
            +
            port     = smtp,ssmtp,submission
         
     | 
| 
      
 355 
     | 
    
         
            +
            filter   = postfix
         
     | 
| 
      
 356 
     | 
    
         
            +
            logpath  = /var/log/mail.log
         
     | 
| 
      
 357 
     | 
    
         
            +
             
     | 
| 
      
 358 
     | 
    
         
            +
             
     | 
| 
      
 359 
     | 
    
         
            +
            [couriersmtp]
         
     | 
| 
      
 360 
     | 
    
         
            +
             
     | 
| 
      
 361 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 362 
     | 
    
         
            +
            port     = smtp,ssmtp,submission
         
     | 
| 
      
 363 
     | 
    
         
            +
            filter   = couriersmtp
         
     | 
| 
      
 364 
     | 
    
         
            +
            logpath  = /var/log/mail.log
         
     | 
| 
      
 365 
     | 
    
         
            +
             
     | 
| 
      
 366 
     | 
    
         
            +
             
     | 
| 
      
 367 
     | 
    
         
            +
            #
         
     | 
| 
      
 368 
     | 
    
         
            +
            # Mail servers authenticators: might be used for smtp,ftp,imap servers, so
         
     | 
| 
      
 369 
     | 
    
         
            +
            # all relevant ports get banned
         
     | 
| 
      
 370 
     | 
    
         
            +
            #
         
     | 
| 
      
 371 
     | 
    
         
            +
             
     | 
| 
      
 372 
     | 
    
         
            +
            [courierauth]
         
     | 
| 
      
 373 
     | 
    
         
            +
             
     | 
| 
      
 374 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 375 
     | 
    
         
            +
            port     = smtp,ssmtp,submission,imap2,imap3,imaps,pop3,pop3s
         
     | 
| 
      
 376 
     | 
    
         
            +
            filter   = courierlogin
         
     | 
| 
      
 377 
     | 
    
         
            +
            logpath  = /var/log/mail.log
         
     | 
| 
      
 378 
     | 
    
         
            +
             
     | 
| 
      
 379 
     | 
    
         
            +
             
     | 
| 
      
 380 
     | 
    
         
            +
            [sasl]
         
     | 
| 
      
 381 
     | 
    
         
            +
             
     | 
| 
      
 382 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 383 
     | 
    
         
            +
            port     = smtp,ssmtp,submission,imap2,imap3,imaps,pop3,pop3s
         
     | 
| 
      
 384 
     | 
    
         
            +
            filter   = postfix-sasl
         
     | 
| 
      
 385 
     | 
    
         
            +
            # You might consider monitoring /var/log/mail.warn instead if you are
         
     | 
| 
      
 386 
     | 
    
         
            +
            # running postfix since it would provide the same log lines at the
         
     | 
| 
      
 387 
     | 
    
         
            +
            # "warn" level but overall at the smaller filesize.
         
     | 
| 
      
 388 
     | 
    
         
            +
            logpath  = /var/log/mail.log
         
     | 
| 
      
 389 
     | 
    
         
            +
             
     | 
| 
      
 390 
     | 
    
         
            +
            [dovecot]
         
     | 
| 
      
 391 
     | 
    
         
            +
             
     | 
| 
      
 392 
     | 
    
         
            +
            enabled = false
         
     | 
| 
      
 393 
     | 
    
         
            +
            port    = smtp,ssmtp,submission,imap2,imap3,imaps,pop3,pop3s
         
     | 
| 
      
 394 
     | 
    
         
            +
            filter  = dovecot
         
     | 
| 
      
 395 
     | 
    
         
            +
            logpath = /var/log/mail.log
         
     | 
| 
      
 396 
     | 
    
         
            +
             
     | 
| 
      
 397 
     | 
    
         
            +
            # To log wrong MySQL access attempts add to /etc/my.cnf:
         
     | 
| 
      
 398 
     | 
    
         
            +
            # log-error=/var/log/mysqld.log
         
     | 
| 
      
 399 
     | 
    
         
            +
            # log-warning = 2
         
     | 
| 
      
 400 
     | 
    
         
            +
            [mysqld-auth]
         
     | 
| 
      
 401 
     | 
    
         
            +
             
     | 
| 
      
 402 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 403 
     | 
    
         
            +
            filter   = mysqld-auth
         
     | 
| 
      
 404 
     | 
    
         
            +
            port     = 3306
         
     | 
| 
      
 405 
     | 
    
         
            +
            logpath  = /var/log/mysqld.log
         
     | 
| 
      
 406 
     | 
    
         
            +
             
     | 
| 
      
 407 
     | 
    
         
            +
             
     | 
| 
      
 408 
     | 
    
         
            +
            # DNS Servers
         
     | 
| 
      
 409 
     | 
    
         
            +
             
     | 
| 
      
 410 
     | 
    
         
            +
             
     | 
| 
      
 411 
     | 
    
         
            +
            # These jails block attacks against named (bind9). By default, logging is off
         
     | 
| 
      
 412 
     | 
    
         
            +
            # with bind9 installation. You will need something like this:
         
     | 
| 
      
 413 
     | 
    
         
            +
            #
         
     | 
| 
      
 414 
     | 
    
         
            +
            # logging {
         
     | 
| 
      
 415 
     | 
    
         
            +
            #     channel security_file {
         
     | 
| 
      
 416 
     | 
    
         
            +
            #         file "/var/log/named/security.log" versions 3 size 30m;
         
     | 
| 
      
 417 
     | 
    
         
            +
            #         severity dynamic;
         
     | 
| 
      
 418 
     | 
    
         
            +
            #         print-time yes;
         
     | 
| 
      
 419 
     | 
    
         
            +
            #     };
         
     | 
| 
      
 420 
     | 
    
         
            +
            #     category security {
         
     | 
| 
      
 421 
     | 
    
         
            +
            #         security_file;
         
     | 
| 
      
 422 
     | 
    
         
            +
            #     };
         
     | 
| 
      
 423 
     | 
    
         
            +
            # };
         
     | 
| 
      
 424 
     | 
    
         
            +
            #
         
     | 
| 
      
 425 
     | 
    
         
            +
            # in your named.conf to provide proper logging
         
     | 
| 
      
 426 
     | 
    
         
            +
             
     | 
| 
      
 427 
     | 
    
         
            +
            # !!! WARNING !!!
         
     | 
| 
      
 428 
     | 
    
         
            +
            #   Since UDP is connection-less protocol, spoofing of IP and imitation
         
     | 
| 
      
 429 
     | 
    
         
            +
            #   of illegal actions is way too simple.  Thus enabling of this filter
         
     | 
| 
      
 430 
     | 
    
         
            +
            #   might provide an easy way for implementing a DoS against a chosen
         
     | 
| 
      
 431 
     | 
    
         
            +
            #   victim. See
         
     | 
| 
      
 432 
     | 
    
         
            +
            #    http://nion.modprobe.de/blog/archives/690-fail2ban-+-dns-fail.html
         
     | 
| 
      
 433 
     | 
    
         
            +
            #   Please DO NOT USE this jail unless you know what you are doing.
         
     | 
| 
      
 434 
     | 
    
         
            +
            #[named-refused-udp]
         
     | 
| 
      
 435 
     | 
    
         
            +
            #
         
     | 
| 
      
 436 
     | 
    
         
            +
            #enabled  = false
         
     | 
| 
      
 437 
     | 
    
         
            +
            #port     = domain,953
         
     | 
| 
      
 438 
     | 
    
         
            +
            #protocol = udp
         
     | 
| 
      
 439 
     | 
    
         
            +
            #filter   = named-refused
         
     | 
| 
      
 440 
     | 
    
         
            +
            #logpath  = /var/log/named/security.log
         
     | 
| 
      
 441 
     | 
    
         
            +
             
     | 
| 
      
 442 
     | 
    
         
            +
            [named-refused-tcp]
         
     | 
| 
      
 443 
     | 
    
         
            +
             
     | 
| 
      
 444 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 445 
     | 
    
         
            +
            port     = domain,953
         
     | 
| 
      
 446 
     | 
    
         
            +
            protocol = tcp
         
     | 
| 
      
 447 
     | 
    
         
            +
            filter   = named-refused
         
     | 
| 
      
 448 
     | 
    
         
            +
            logpath  = /var/log/named/security.log
         
     | 
| 
      
 449 
     | 
    
         
            +
             
     | 
| 
      
 450 
     | 
    
         
            +
            # Multiple jails, 1 per protocol, are necessary ATM:
         
     | 
| 
      
 451 
     | 
    
         
            +
            # see https://github.com/fail2ban/fail2ban/issues/37
         
     | 
| 
      
 452 
     | 
    
         
            +
            [asterisk-tcp]
         
     | 
| 
      
 453 
     | 
    
         
            +
             
     | 
| 
      
 454 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 455 
     | 
    
         
            +
            filter   = asterisk
         
     | 
| 
      
 456 
     | 
    
         
            +
            port     = 5060,5061
         
     | 
| 
      
 457 
     | 
    
         
            +
            protocol = tcp
         
     | 
| 
      
 458 
     | 
    
         
            +
            logpath  = /var/log/asterisk/messages
         
     | 
| 
      
 459 
     | 
    
         
            +
             
     | 
| 
      
 460 
     | 
    
         
            +
            [asterisk-udp]
         
     | 
| 
      
 461 
     | 
    
         
            +
             
     | 
| 
      
 462 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 463 
     | 
    
         
            +
            filter	 = asterisk
         
     | 
| 
      
 464 
     | 
    
         
            +
            port     = 5060,5061
         
     | 
| 
      
 465 
     | 
    
         
            +
            protocol = udp
         
     | 
| 
      
 466 
     | 
    
         
            +
            logpath  = /var/log/asterisk/messages
         
     | 
| 
      
 467 
     | 
    
         
            +
             
     | 
| 
      
 468 
     | 
    
         
            +
             
     | 
| 
      
 469 
     | 
    
         
            +
            # Jail for more extended banning of persistent abusers
         
     | 
| 
      
 470 
     | 
    
         
            +
            # !!! WARNING !!!
         
     | 
| 
      
 471 
     | 
    
         
            +
            #   Make sure that your loglevel specified in fail2ban.conf/.local
         
     | 
| 
      
 472 
     | 
    
         
            +
            #   is not at DEBUG level -- which might then cause fail2ban to fall into
         
     | 
| 
      
 473 
     | 
    
         
            +
            #   an infinite loop constantly feeding itself with non-informative lines
         
     | 
| 
      
 474 
     | 
    
         
            +
            [recidive]
         
     | 
| 
      
 475 
     | 
    
         
            +
             
     | 
| 
      
 476 
     | 
    
         
            +
            enabled  = false
         
     | 
| 
      
 477 
     | 
    
         
            +
            filter   = recidive
         
     | 
| 
      
 478 
     | 
    
         
            +
            logpath  = /var/log/fail2ban.log
         
     | 
| 
      
 479 
     | 
    
         
            +
            action   = iptables-allports[name=recidive]
         
     | 
| 
      
 480 
     | 
    
         
            +
                       sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log]
         
     | 
| 
      
 481 
     | 
    
         
            +
            bantime  = 604800  ; 1 week
         
     | 
| 
      
 482 
     | 
    
         
            +
            findtime = 86400   ; 1 day
         
     | 
| 
      
 483 
     | 
    
         
            +
            maxretry = 5
         
     | 
| 
      
 484 
     | 
    
         
            +
             
     | 
| 
      
 485 
     | 
    
         
            +
             
     | 
| 
      
 486 
     | 
    
         
            +
            [nginx-req-limit]
         
     | 
| 
      
 487 
     | 
    
         
            +
             
     | 
| 
      
 488 
     | 
    
         
            +
            enabled = true
         
     | 
| 
      
 489 
     | 
    
         
            +
            filter = nginx-req-limit
         
     | 
| 
      
 490 
     | 
    
         
            +
            action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
         
     | 
| 
      
 491 
     | 
    
         
            +
            logpath = <%= shared_path %>/log/nginx_error.log
         
     | 
| 
      
 492 
     | 
    
         
            +
            findtime = 600
         
     | 
| 
      
 493 
     | 
    
         
            +
            bantime = 7200
         
     | 
| 
      
 494 
     | 
    
         
            +
            maxretry = 50
         
     | 
| 
         @@ -2,6 +2,8 @@ upstream appserver_upstream { 
     | 
|
| 
       2 
2 
     | 
    
         
             
              server unix:<%= shared_path %>/system/sockets/<%= fetch(:app_server) %>.sock;
         
     | 
| 
       3 
3 
     | 
    
         
             
            }
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            limit_req_zone $binary_remote_addr zone=rate_limit:10m rate=10r/s;
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
       5 
7 
     | 
    
         
             
            server {
         
     | 
| 
       6 
8 
     | 
    
         
             
              listen 80;
         
     | 
| 
       7 
9 
     | 
    
         
             
              server_name <%= fetch(:nginx_server_name) %>;
         
     | 
| 
         @@ -16,6 +18,9 @@ server { 
     | 
|
| 
       16 
18 
     | 
    
         
             
              root <%= current_path %>/public;
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
       18 
20 
     | 
    
         
             
              location @<%= fetch(:application) %> {
         
     | 
| 
      
 21 
     | 
    
         
            +
                limit_req zone=rate_limit burst=20;
         
     | 
| 
      
 22 
     | 
    
         
            +
                limit_req_status 444;
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       19 
24 
     | 
    
         
             
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         
     | 
| 
       20 
25 
     | 
    
         
             
                proxy_set_header X-Forwarded-Proto $scheme;
         
     | 
| 
       21 
26 
     | 
    
         
             
                proxy_set_header Host $http_host;
         
     | 
| 
         @@ -28,6 +28,6 @@ require "capistrano/helpers.rb" 
     | 
|
| 
       28 
28 
     | 
    
         
             
            end
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
            # Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
         
     | 
| 
       31 
     | 
    
         
            -
            %w(bluepill logrotate machine elasticsearch nginx rvm unicorn puma upstart).each do |t|
         
     | 
| 
      
 31 
     | 
    
         
            +
            %w(bluepill fail2ban logrotate machine elasticsearch nginx rvm unicorn puma upstart).each do |t|
         
     | 
| 
       32 
32 
     | 
    
         
             
              import File.expand_path("../tasks/#{t}.rake", __FILE__)
         
     | 
| 
       33 
33 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            namespace :fail2ban do
         
     | 
| 
      
 2 
     | 
    
         
            +
              include Shell
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
              desc "Installs the fail2ban configs"
         
     | 
| 
      
 5 
     | 
    
         
            +
              task :setup do
         
     | 
| 
      
 6 
     | 
    
         
            +
                on roles(:web) do
         
     | 
| 
      
 7 
     | 
    
         
            +
                  if file_new_or_overwrite?("/etc/fail2ban/jail.conf")
         
     | 
| 
      
 8 
     | 
    
         
            +
                    template "fail2ban-nginx-request-limit-jail.conf.erb", "/tmp/fail2ban_jail"
         
     | 
| 
      
 9 
     | 
    
         
            +
                    sudo "mv /tmp/fail2ban_jail /etc/fail2ban/jail.conf"
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
                  if file_new_or_overwrite?("/etc/fail2ban/filter.d/nginx-req-limit.conf")
         
     | 
| 
      
 12 
     | 
    
         
            +
                    template "fail2ban-nginx-request-limit-jail.conf.erb", "/tmp/fail2ban_req_filter"
         
     | 
| 
      
 13 
     | 
    
         
            +
                    sudo "mv /tmp/fail2ban_req_filter /etc/fail2ban/filter.d/nginx-req-limit.conf"
         
     | 
| 
      
 14 
     | 
    
         
            +
                  end
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              desc "Restart fail2ban"
         
     | 
| 
      
 19 
     | 
    
         
            +
              task :restart do
         
     | 
| 
      
 20 
     | 
    
         
            +
                on roles(:web) do
         
     | 
| 
      
 21 
     | 
    
         
            +
                  sudo "service fail2ban restart"
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              after "fail2ban:setup", "fail2ban:restart"
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: deploy_mate
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.18. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.18.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Tim Adler
         
     | 
| 
         @@ -85,6 +85,8 @@ files: 
     | 
|
| 
       85 
85 
     | 
    
         
             
            - deploy-mate.gemspec
         
     | 
| 
       86 
86 
     | 
    
         
             
            - lib/capistrano/README.md
         
     | 
| 
       87 
87 
     | 
    
         
             
            - lib/capistrano/configs/application.pill.erb
         
     | 
| 
      
 88 
     | 
    
         
            +
            - lib/capistrano/configs/fail2ban-nginx-request-limit-filter.conf.erb
         
     | 
| 
      
 89 
     | 
    
         
            +
            - lib/capistrano/configs/fail2ban-nginx-request-limit-jail.conf.erb
         
     | 
| 
       88 
90 
     | 
    
         
             
            - lib/capistrano/configs/logrotate.erb
         
     | 
| 
       89 
91 
     | 
    
         
             
            - lib/capistrano/configs/nginx_app.conf.erb
         
     | 
| 
       90 
92 
     | 
    
         
             
            - lib/capistrano/configs/nginx_base.conf.erb
         
     | 
| 
         @@ -105,6 +107,7 @@ files: 
     | 
|
| 
       105 
107 
     | 
    
         
             
            - lib/capistrano/scripts/set_defaults.sh
         
     | 
| 
       106 
108 
     | 
    
         
             
            - lib/capistrano/tasks/bluepill.rake
         
     | 
| 
       107 
109 
     | 
    
         
             
            - lib/capistrano/tasks/elasticsearch.rake
         
     | 
| 
      
 110 
     | 
    
         
            +
            - lib/capistrano/tasks/fail2ban.rake
         
     | 
| 
       108 
111 
     | 
    
         
             
            - lib/capistrano/tasks/logrotate.rake
         
     | 
| 
       109 
112 
     | 
    
         
             
            - lib/capistrano/tasks/machine.rake
         
     | 
| 
       110 
113 
     | 
    
         
             
            - lib/capistrano/tasks/nginx.rake
         
     |