diff --git a/CHANGELOG.md b/CHANGELOG.md index b1eb116..9946873 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org). +## [v5.1.0](https://github.com/ghoneycutt/puppet-module-pam/tree/v5.1.0) (2024-03-15) + +[Full Changelog](https://github.com/ghoneycutt/puppet-module-pam/compare/v5.0.0...v5.1.0) + +### Merged pull requests: + +- Support managing faillock.conf and pwquality.conf [\#270](https://github.com/ghoneycutt/puppet-module-pam/pull/270) ([treydock](https://github.com/treydock)) + ## [v5.0.0](https://github.com/ghoneycutt/puppet-module-pam/tree/v5.0.0) (2023-12-08) [Full Changelog](https://github.com/ghoneycutt/puppet-module-pam/compare/v4.3.0...v5.0.0) diff --git a/REFERENCE.md b/REFERENCE.md index 7e1fbac..e679cd3 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -9,7 +9,9 @@ * [`pam`](#pam): This module manages PAM. * [`pam::accesslogin`](#pam--accesslogin): Manage login access See PAM_ACCESS(8) +* [`pam::faillock`](#pam--faillock): Manage faillock.conf * [`pam::limits`](#pam--limits): Manage PAM limits.conf +* [`pam::pwquality`](#pam--pwquality): Manage pwquality.conf ### Defined types @@ -41,6 +43,8 @@ The following parameters are available in the `pam` class: * [`sshd_pam_access`](#-pam--sshd_pam_access) * [`limits_fragments`](#-pam--limits_fragments) * [`limits_fragments_hiera_merge`](#-pam--limits_fragments_hiera_merge) +* [`manage_faillock`](#-pam--manage_faillock) +* [`manage_pwquality`](#-pam--manage_pwquality) * [`package_name`](#-pam--package_name) * [`pam_conf_file`](#-pam--pam_conf_file) * [`services`](#-pam--services) @@ -142,6 +146,22 @@ the hierarchy and having them all included in the catalog. Default value: `false` +##### `manage_faillock` + +Data type: `Boolean` + +Controls whether to manage faillock.conf + +Default value: `false` + +##### `manage_pwquality` + +Data type: `Boolean` + +Controls whether to manage pwquality.conf and pwquality.conf.d + +Default value: `false` + ##### `package_name` Data type: `Optional[Variant[Array, String]]` @@ -598,6 +618,168 @@ origin 'ALL'. Default value: `$pam::allowed_users` +### `pam::faillock` + +Manage faillock.conf + +#### Parameters + +The following parameters are available in the `pam::faillock` class: + +* [`config_file`](#-pam--faillock--config_file) +* [`config_file_owner`](#-pam--faillock--config_file_owner) +* [`config_file_group`](#-pam--faillock--config_file_group) +* [`config_file_mode`](#-pam--faillock--config_file_mode) +* [`config_file_template`](#-pam--faillock--config_file_template) +* [`config_file_source`](#-pam--faillock--config_file_source) +* [`dir`](#-pam--faillock--dir) +* [`audit_enabled`](#-pam--faillock--audit_enabled) +* [`silent`](#-pam--faillock--silent) +* [`no_log_info`](#-pam--faillock--no_log_info) +* [`local_users_only`](#-pam--faillock--local_users_only) +* [`deny`](#-pam--faillock--deny) +* [`fail_interval`](#-pam--faillock--fail_interval) +* [`unlock_time`](#-pam--faillock--unlock_time) +* [`even_deny_root`](#-pam--faillock--even_deny_root) +* [`root_unlock_time`](#-pam--faillock--root_unlock_time) +* [`admin_group`](#-pam--faillock--admin_group) + +##### `config_file` + +Data type: `Stdlib::Absolutepath` + +The faillock config path + +Default value: `'/etc/security/faillock.conf'` + +##### `config_file_owner` + +Data type: `String[1]` + +The faillock config owner + +Default value: `'root'` + +##### `config_file_group` + +Data type: `String[1]` + +The faillock config group + +Default value: `'root'` + +##### `config_file_mode` + +Data type: `Stdlib::Filemode` + +The faillock config mode + +Default value: `'0644'` + +##### `config_file_template` + +Data type: `String[1]` + +The faillock config template + +Default value: `'pam/faillock.conf.erb'` + +##### `config_file_source` + +Data type: `Optional[Stdlib::Filesource]` + +The faillock config source + +Default value: `undef` + +##### `dir` + +Data type: `Stdlib::Absolutepath` + +The faillock 'dir' config option + +Default value: `'/var/run/faillock'` + +##### `audit_enabled` + +Data type: `Optional[Boolean]` + +The faillock 'audit' config option + +Default value: `undef` + +##### `silent` + +Data type: `Optional[Boolean]` + +The faillock 'silent' config option + +Default value: `undef` + +##### `no_log_info` + +Data type: `Optional[Boolean]` + +The faillock 'no_log_info' config option + +Default value: `undef` + +##### `local_users_only` + +Data type: `Optional[Boolean]` + +The faillock 'local_users_only' config option + +Default value: `undef` + +##### `deny` + +Data type: `Integer[0]` + +The faillock 'deny' config option + +Default value: `3` + +##### `fail_interval` + +Data type: `Integer[0]` + +The faillock 'fail_interval' config option + +Default value: `900` + +##### `unlock_time` + +Data type: `Integer[0]` + +The faillock 'unlock_time' config option + +Default value: `600` + +##### `even_deny_root` + +Data type: `Optional[Boolean]` + +The faillock 'even_deny_root' config option + +Default value: `undef` + +##### `root_unlock_time` + +Data type: `Integer[0]` + +The faillock 'root_unlock_time' config option + +Default value: `$unlock_time` + +##### `admin_group` + +Data type: `Optional[String[1]]` + +The faillock 'admin_group' config option + +Default value: `undef` + ### `pam::limits` Manage PAM limits.conf @@ -688,6 +870,311 @@ A glob or array of file names to ignore when purging limits.d Default value: `undef` +### `pam::pwquality` + +Manage pwquality.conf + +#### Examples + +##### + +```puppet +This class is included by the pam class for platforms which use it. +``` + +#### Parameters + +The following parameters are available in the `pam::pwquality` class: + +* [`config_file`](#-pam--pwquality--config_file) +* [`config_file_owner`](#-pam--pwquality--config_file_owner) +* [`config_file_group`](#-pam--pwquality--config_file_group) +* [`config_file_mode`](#-pam--pwquality--config_file_mode) +* [`config_file_source`](#-pam--pwquality--config_file_source) +* [`config_file_template`](#-pam--pwquality--config_file_template) +* [`config_d_dir`](#-pam--pwquality--config_d_dir) +* [`config_d_dir_owner`](#-pam--pwquality--config_d_dir_owner) +* [`config_d_dir_group`](#-pam--pwquality--config_d_dir_group) +* [`config_d_dir_mode`](#-pam--pwquality--config_d_dir_mode) +* [`purge_config_d_dir`](#-pam--pwquality--purge_config_d_dir) +* [`purge_config_d_dir_ignore`](#-pam--pwquality--purge_config_d_dir_ignore) +* [`difok`](#-pam--pwquality--difok) +* [`minlen`](#-pam--pwquality--minlen) +* [`dcredit`](#-pam--pwquality--dcredit) +* [`ucredit`](#-pam--pwquality--ucredit) +* [`lcredit`](#-pam--pwquality--lcredit) +* [`ocredit`](#-pam--pwquality--ocredit) +* [`minclass`](#-pam--pwquality--minclass) +* [`maxrepeat`](#-pam--pwquality--maxrepeat) +* [`maxsequence`](#-pam--pwquality--maxsequence) +* [`maxclassrepeat`](#-pam--pwquality--maxclassrepeat) +* [`gecoscheck`](#-pam--pwquality--gecoscheck) +* [`dictcheck`](#-pam--pwquality--dictcheck) +* [`usercheck`](#-pam--pwquality--usercheck) +* [`usersubstr`](#-pam--pwquality--usersubstr) +* [`enforcing`](#-pam--pwquality--enforcing) +* [`badwords`](#-pam--pwquality--badwords) +* [`dictpath`](#-pam--pwquality--dictpath) +* [`retry`](#-pam--pwquality--retry) +* [`enforce_for_root`](#-pam--pwquality--enforce_for_root) +* [`local_users_only`](#-pam--pwquality--local_users_only) + +##### `config_file` + +Data type: `Stdlib::Absolutepath` + +Path to pwquality.conf. + +Default value: `'/etc/security/pwquality.conf'` + +##### `config_file_owner` + +Data type: `String[1]` + +Owner for pwquality.conf + +Default value: `'root'` + +##### `config_file_group` + +Data type: `String[1]` + +Group for pwquality.conf + +Default value: `'root'` + +##### `config_file_mode` + +Data type: `Stdlib::Filemode` + +Mode for config_file. + +Default value: `'0644'` + +##### `config_file_source` + +Data type: `Optional[Stdlib::Filesource]` + +String with source path to a pwquality.conf + +Default value: `undef` + +##### `config_file_template` + +Data type: `String[1]` + +Template to render pwquality.conf + +Default value: `'pam/pwquality.conf.erb'` + +##### `config_d_dir` + +Data type: `Stdlib::Absolutepath` + +Path to pwquality.conf.d directory. + +Default value: `'/etc/security/pwquality.conf.d'` + +##### `config_d_dir_owner` + +Data type: `String[1]` + +Owner for pwquality.conf.d + +Default value: `'root'` + +##### `config_d_dir_group` + +Data type: `String[1]` + +Group for pwquality.conf.d + +Default value: `'root'` + +##### `config_d_dir_mode` + +Data type: `Stdlib::Filemode` + +Mode for pwquality.conf.d + +Default value: `'0755'` + +##### `purge_config_d_dir` + +Data type: `Boolean` + +Boolean to purge the pwquality.conf.d directory. + +Default value: `true` + +##### `purge_config_d_dir_ignore` + +Data type: `Optional[Variant[String[1], Array[String[1]]]]` + +A glob or array of file names to ignore when purging pwquality.conf.d + +Default value: `undef` + +##### `difok` + +Data type: `Integer[0]` + +The pwquality.conf 'difok' option + +Default value: `1` + +##### `minlen` + +Data type: `Integer[6]` + +The pwquality.conf 'minlen' option + +Default value: `8` + +##### `dcredit` + +Data type: `Integer` + +The pwquality.conf 'dcredit' option + +Default value: `0` + +##### `ucredit` + +Data type: `Integer` + +The pwquality.conf 'ucredit' option + +Default value: `0` + +##### `lcredit` + +Data type: `Integer` + +The pwquality.conf 'lcredit' option + +Default value: `0` + +##### `ocredit` + +Data type: `Integer` + +The pwquality.conf 'ocredit' option + +Default value: `0` + +##### `minclass` + +Data type: `Integer[0]` + +The pwquality.conf 'minclass' option + +Default value: `0` + +##### `maxrepeat` + +Data type: `Integer[0]` + +The pwquality.conf 'maxrepeat' option + +Default value: `0` + +##### `maxsequence` + +Data type: `Integer[0]` + +The pwquality.conf 'maxsequence' option + +Default value: `0` + +##### `maxclassrepeat` + +Data type: `Integer[0]` + +The pwquality.conf 'maxclassrepeat' option + +Default value: `0` + +##### `gecoscheck` + +Data type: `Integer[0]` + +The pwquality.conf 'gecoscheck' option + +Default value: `0` + +##### `dictcheck` + +Data type: `Integer[0]` + +The pwquality.conf 'dictcheck' option + +Default value: `1` + +##### `usercheck` + +Data type: `Integer[0]` + +The pwquality.conf 'usercheck' option + +Default value: `1` + +##### `usersubstr` + +Data type: `Integer[0]` + +The pwquality.conf 'usersubstr' option + +Default value: `0` + +##### `enforcing` + +Data type: `Integer[0]` + +The pwquality.conf 'enforcing' option + +Default value: `1` + +##### `badwords` + +Data type: `Optional[Array[String[1]]]` + +The pwquality.conf 'badwords' option + +Default value: `undef` + +##### `dictpath` + +Data type: `Optional[Stdlib::Absolutepath]` + +The pwquality.conf 'dictpath' option + +Default value: `undef` + +##### `retry` + +Data type: `Integer[0]` + +The pwquality.conf 'retry' option + +Default value: `1` + +##### `enforce_for_root` + +Data type: `Optional[Boolean]` + +The pwquality.conf 'enforce_for_root' option + +Default value: `undef` + +##### `local_users_only` + +Data type: `Optional[Boolean]` + +The pwquality.conf 'local_users_only' option + +Default value: `undef` + ## Defined types ### `pam::limits::fragment` diff --git a/metadata.json b/metadata.json index e310860..496a34f 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "ghoneycutt-pam", - "version": "5.0.0", + "version": "5.1.0", "author": "ghoneycutt", "summary": "Manage PAM", "license": "Apache-2.0",