diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/system-login.py | 11 | ||||
| -rw-r--r-- | src/pam-configs/tacplus | 17 | ||||
| -rw-r--r-- | src/pam-configs/tacplus-mandatory | 19 | ||||
| -rw-r--r-- | src/pam-configs/tacplus-optional | 19 | 
4 files changed, 45 insertions, 21 deletions
| diff --git a/src/conf_mode/system-login.py b/src/conf_mode/system-login.py index be5ff2d4c..87a269499 100755 --- a/src/conf_mode/system-login.py +++ b/src/conf_mode/system-login.py @@ -389,11 +389,14 @@ def apply(login):              pam_profile = 'radius-optional'          cmd(f'pam-auth-update --enable {pam_profile}') -    # Enable/Disable TACACS in PAM configuration -    pam_cmd = '--remove' +    # Enable/disable TACACS+ in PAM configuration +    cmd('pam-auth-update --disable tacplus-mandatory tacplus-optional')      if 'tacacs' in login: -        pam_cmd = '--enable' -    cmd(f'pam-auth-update --package {pam_cmd} tacplus') +        if login['tacacs'].get('security_mode', '') == 'mandatory': +            pam_profile = 'tacplus-mandatory' +        else: +            pam_profile = 'tacplus-optional' +        cmd(f'pam-auth-update --enable {pam_profile}')      return None diff --git a/src/pam-configs/tacplus b/src/pam-configs/tacplus deleted file mode 100644 index 66a1eaa4c..000000000 --- a/src/pam-configs/tacplus +++ /dev/null @@ -1,17 +0,0 @@ -Name: TACACS+ authentication -Default: no -Priority: 257 -Auth-Type: Primary -Auth: -    [default=ignore success=ignore] pam_succeed_if.so user ingroup aaa quiet -    [authinfo_unavail=ignore success=end auth_err=bad default=ignore] pam_tacplus.so include=/etc/tacplus_servers login=login - -Account-Type: Primary -Account: -    [default=ignore success=ignore] pam_succeed_if.so user ingroup aaa quiet -    [authinfo_unavail=ignore success=end perm_denied=bad default=ignore] pam_tacplus.so include=/etc/tacplus_servers login=login - -Session-Type: Additional -Session: -    [default=ignore success=ignore] pam_succeed_if.so user ingroup aaa quiet -    [authinfo_unavail=ignore success=ok default=ignore] pam_tacplus.so include=/etc/tacplus_servers login=login diff --git a/src/pam-configs/tacplus-mandatory b/src/pam-configs/tacplus-mandatory new file mode 100644 index 000000000..92da02327 --- /dev/null +++ b/src/pam-configs/tacplus-mandatory @@ -0,0 +1,19 @@ +Name: TACACS+ authentication (mandatory mode) +Default: no +Priority: 576 + +Auth-Type: Primary +Auth-Initial: +    [default=ignore success=end perm_denied=bad auth_err=bad] pam_tacplus.so include=/etc/tacplus_servers login=login +Auth: +    [default=ignore success=end perm_denied=bad auth_err=bad] pam_tacplus.so include=/etc/tacplus_servers login=login use_first_pass + +Account-Type: Primary +Account: +    [default=ignore success=1] pam_succeed_if.so user notingroup tacacs quiet +    [default=ignore new_authtok_reqd=done success=end perm_denied=bad auth_err=bad] pam_tacplus.so include=/etc/tacplus_servers login=login + +Session-Type: Additional +Session: +    [default=ignore success=1] pam_succeed_if.so user notingroup tacacs quiet +    [default=ignore success=ok perm_denied=bad auth_err=bad] pam_tacplus.so include=/etc/tacplus_servers login=login diff --git a/src/pam-configs/tacplus-optional b/src/pam-configs/tacplus-optional new file mode 100644 index 000000000..deed537d3 --- /dev/null +++ b/src/pam-configs/tacplus-optional @@ -0,0 +1,19 @@ +Name: TACACS+ authentication (optional mode) +Default: no +Priority: 576 + +Auth-Type: Primary +Auth-Initial: +    [default=ignore success=end] pam_tacplus.so include=/etc/tacplus_servers login=login +Auth: +    [default=ignore success=end] pam_tacplus.so include=/etc/tacplus_servers login=login use_first_pass + +Account-Type: Primary +Account: +    [default=ignore success=1] pam_succeed_if.so user notingroup tacacs quiet +    [default=ignore new_authtok_reqd=done success=end perm_denied=bad auth_err=bad] pam_tacplus.so include=/etc/tacplus_servers login=login + +Session-Type: Additional +Session: +    [default=ignore success=1] pam_succeed_if.so user notingroup tacacs quiet +    [default=ignore success=ok perm_denied=bad auth_err=bad] pam_tacplus.so include=/etc/tacplus_servers login=login | 
