diff --git a/README.md b/README.md index dfb3eac..96c5c66 100644 --- a/README.md +++ b/README.md @@ -111,7 +111,18 @@ Configures usage of the http_proxy environment variable. There is not default for this setting. ####`manage_ssh [optional]` -Configures whether or not to allow the module to manage the SSH service/package. +Configures whether or not to allow the module to manage the SSH service/package. +The default is *true*. + +####`manage_repo [optional]` +Configures whether or not to allow the module to add/manage the apt/yum repository. +<<<<<<< HEAD +The default is *true*. + +####`manage_pam [optinal]` +Configures whether or not to allow the module to manage the system PAM configuration. +======= +>>>>>>> 941610fa2019b7ad0b9353b049204b5069b0e6a0 The default is *true*. ####`pam_unix_control [optional]` diff --git a/manifests/apt.pp b/manifests/apt.pp index a530060..38a586e 100644 --- a/manifests/apt.pp +++ b/manifests/apt.pp @@ -18,30 +18,31 @@ } package { $duo_unix::duo_package: - ensure => $package_state, - require => [ - File[$repo_file], - Exec['Duo Security GPG Import'], - Exec['duo-security-apt-update'] - ] + ensure => $package_state } - file { $repo_file: - owner => 'root', - group => 'root', - mode => '0644', - content => "deb ${repo_uri}/${::operatingsystem} ${::lsbdistcodename} main", - notify => Exec['duo-security-apt-update'] - } + if $duo_unix::manage_repo { + file { $repo_file: + owner => 'root', + group => 'root', + mode => '0644', + content => "deb ${repo_uri}/${::operatingsystem} ${::lsbdistcodename} main", + notify => Exec['duo-security-apt-update'], + before => Package[$duo_unix::duo_package] + } - exec { 'duo-security-apt-update': - command => '/usr/bin/apt-get update', - refreshonly => true - } + exec { 'duo-security-apt-update': + command => '/usr/bin/apt-get update', + refreshonly => true, + require => File[$repo_file], + before => Package[$duo_unix::duo_package] + } - exec { 'Duo Security GPG Import': - command => '/usr/bin/apt-key add /etc/apt/DEB-GPG-KEY-DUO', - unless => '/usr/bin/apt-key list | grep "Duo Security"', - notify => Exec['duo-security-apt-update'] + exec { 'Duo Security GPG Import': + command => '/usr/bin/apt-key add /etc/apt/DEB-GPG-KEY-DUO', + unless => '/usr/bin/apt-key list | grep "Duo Security"', + notify => Exec['duo-security-apt-update'], + before => Package[$duo_unix::duo_package] + } } } diff --git a/manifests/init.pp b/manifests/init.pp index 0d21b5e..8076284 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -20,6 +20,8 @@ $prompts = '3', $accept_env_factor = 'no', $manage_ssh = true, + $manage_pam = true, + $manage_repo = true, $pam_unix_control = 'requisite', $package_version = 'installed', ) { diff --git a/manifests/login.pp b/manifests/login.pp index 2c458d9..0ba6ca0 100644 --- a/manifests/login.pp +++ b/manifests/login.pp @@ -6,7 +6,7 @@ # # Mark Stanislav # -class duo_unix::login { +class duo_unix::login inherits duo_unix { file { '/etc/duo/login_duo.conf': ensure => present, diff --git a/manifests/pam.pp b/manifests/pam.pp index e93feaa..101ec98 100644 --- a/manifests/pam.pp +++ b/manifests/pam.pp @@ -6,7 +6,7 @@ # # Mark Stanislav # -class duo_unix::pam { +class duo_unix::pam inherits duo_unix { $aug_pam_path = "/files${duo_unix::pam_file}" $aug_match = "${aug_pam_path}/*/module[. = '${duo_unix::pam_module}']" @@ -31,31 +31,32 @@ } } - if $::osfamily == 'RedHat' { - augeas { 'PAM Configuration': - changes => [ - "set ${aug_pam_path}/2/control ${duo_unix::pam_unix_control}", - "ins 100 after ${aug_pam_path}/2", - "set ${aug_pam_path}/100/type auth", - "set ${aug_pam_path}/100/control sufficient", - "set ${aug_pam_path}/100/module ${duo_unix::pam_module}" - ], - require => Package[$duo_unix::duo_package], - onlyif => "match ${aug_match} size == 0"; - } + if $duo_unix::manage_pam { + if $::osfamily == 'RedHat' { + augeas { 'PAM Configuration': + changes => [ + "set ${aug_pam_path}/2/control ${duo_unix::pam_unix_control}", + "ins 100 after ${aug_pam_path}/2", + "set ${aug_pam_path}/100/type auth", + "set ${aug_pam_path}/100/control sufficient", + "set ${aug_pam_path}/100/module ${duo_unix::pam_module}" + ], + require => Package[$duo_unix::duo_package], + onlyif => "match ${aug_match} size == 0"; + } - } else { - augeas { 'PAM Configuration': - changes => [ - "set ${aug_pam_path}/1/control ${duo_unix::pam_unix_control}", - "ins 100 after ${aug_pam_path}/1", - "set ${aug_pam_path}/100/type auth", - "set ${aug_pam_path}/100/control '[success=1 default=ignore]'", - "set ${aug_pam_path}/100/module ${duo_unix::pam_module}" - ], - require => Package[$duo_unix::duo_package], - onlyif => "match ${aug_match} size == 0"; + } else { + augeas { 'PAM Configuration': + changes => [ + "set ${aug_pam_path}/1/control ${duo_unix::pam_unix_control}", + "ins 100 after ${aug_pam_path}/1", + "set ${aug_pam_path}/100/type auth", + "set ${aug_pam_path}/100/control '[success=1 default=ignore]'", + "set ${aug_pam_path}/100/module ${duo_unix::pam_module}" + ], + require => Package[$duo_unix::duo_package], + onlyif => "match ${aug_match} size == 0"; + } } } - } diff --git a/manifests/yum.pp b/manifests/yum.pp index c1c3738..8f13df1 100644 --- a/manifests/yum.pp +++ b/manifests/yum.pp @@ -30,12 +30,15 @@ $releasever = '$releasever' } - yumrepo { 'duosecurity': - descr => 'Duo Security Repository', - baseurl => "${repo_uri}/${os}/${releasever}/\$basearch", - gpgcheck => '1', - enabled => '1', - require => File['/etc/pki/rpm-gpg/RPM-GPG-KEY-DUO']; + if $duo_unix::manage_repo { + yumrepo { 'duosecurity': + descr => 'Duo Security Repository', + baseurl => "${repo_uri}/${os}/${releasever}/\$basearch", + gpgcheck => '1', + enabled => '1', + require => File['/etc/pki/rpm-gpg/RPM-GPG-KEY-DUO'], + before => Package[$duo_unix::duo_package]; + } } if $duo_unix::manage_ssh { @@ -46,7 +49,7 @@ package { $duo_unix::duo_package: ensure => $package_state, - require => [ Yumrepo['duosecurity'], Exec['Duo Security GPG Import'] ]; + require => [ Exec['Duo Security GPG Import'] ]; } exec { 'Duo Security GPG Import': diff --git a/metadata.json b/metadata.json index 1498a3b..b6d673a 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "duosecurity-duo_unix", - "version": "0.3.2", + "version": "0.3.3", "author": "Duo Security", "summary": "Installs, configures, and manages Duo Unix.", "license": "GPL-2.0", diff --git a/templates/duo.conf.erb b/templates/duo.conf.erb index 68c0503..63df6a1 100644 --- a/templates/duo.conf.erb +++ b/templates/duo.conf.erb @@ -33,7 +33,7 @@ motd=<%= @motd %> <% if @group != '' -%> ; Group restriction -group=<%= @group %> +groups=<%= @group %> <% end -%> <% if @http_proxy != '' -%>