Puppet Class: ufw
- Defined in:
- manifests/init.pp
Overview
Installs, configures and enables UFW
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'manifests/init.pp', line 2
class ufw (
Boolean $ipv6 = true
) {
# Variables for config file
$_ipv6 = $ipv6 ? {
false => 'IPV6=no',
default => 'IPV6=yes'
}
# Install package
package { 'ufw': }
# Deny all
exec { 'ufw-deny':
command => 'ufw default deny',
unless => 'ufw status verbose | grep -q "Default: deny (incoming)"',
path => '/bin:/usr/bin:/sbin:/usr/sbin',
require => Package['ufw']
}
# Enable UFW
exec { 'ufw-enable':
command => 'ufw --force enable',
unless => 'ufw status | grep -q "Status: active"',
path => '/bin:/usr/bin:/sbin:/usr/sbin',
require => Package['ufw']
}
# Define service
service { 'ufw':
ensure => 'running',
enable => true,
require => Package['ufw']
}
# Disable IPv6
file_line { 'ufw-ipv6':
line => $_ipv6,
match => '^IPV6=',
path => '/etc/default/ufw',
notify => Service['ufw'],
require => Package['ufw']
}
}
|