freebsd 상자에 클라이언트로 tacacs 인증을 구현하려고 합니다. 상자는 실제로 네트워크 장치이며 이 구성이 cli/ui에 내장되어 있어야 하지만 그렇지 않습니다. freebsd를 기반으로 구축되었기 때문에pam_tacplus.so내장 라이브러리.
내 문제는 tacacs 서버에 인증하고 싶지만 장치에서 로컬 계정을 구성하고 싶지 않다는 것입니다. pam.conf 파일은 다음과 같습니다.
su auth sufficient pam_rootok.so
su auth sufficient pam_unix.so
login auth required pam_unix.so
login account required pam_unix.so
login password required pam_permit.so
login session required pam_permit.so
ftpd auth required pam_unix.so
sshd auth sufficient pam_tacplus.so template_user=testuser
sshd auth required pam_unix.so
sshd account required pam_unix.so
sshd password required pam_permit.so
sshd session required pam_permit.so
telnetd auth required pam_unix.so
passwd password required pam_unix.so no_warn try_first_pass nullok
other auth required pam_unix.so
tacacs 서버의 IP 주소는 /etc/tacplus.conf에 저장되어 있는데, tacacs 서버 로그에 장애가 발생한 것을 보니 통신이 성공한 것으로 판단됩니다. 또한 포트 49에서 서버와의 TCP 세션을 설정할 수 있습니다.
SSH를 통해 jimbob으로 로그인하려고 하면 /var/log/auth.log에 다음과 같은 내용이 표시됩니다.
<auth.info> Lab-2 sshd[4952]: Invalid user jimbob from 10.0.0.1
<auth.info> Lab-2 sshd[4952]: input_userauth_request: invalid user jimbob
<auth.info> Lab-2 sshd[4952]: Failed none for invalid user jimbob from 10.0.0.1 port 52069 ssh2
<auth.info> Lab-2 sshd[4952]: Failed publickey for invalid user jimbob from 10.0.0.1 port 52069 ssh2
<auth.info> Lab-2 sshd[4952]: Postponed keyboard-interactive for invalid user jimbob from 10.0.0.1 port 52069 ssh2
<auth.info> Lab-2 sshd[4952]: Postponed keyboard-interactive/pam for invalid user jimbob from 10.0.0.1 port 52069 ssh2
<auth.err> Lab-2 sshd[4953]: error: ssh_msg_send: write
여기저기 찾아본 후,이것적용되는 것 같습니다. 그러나 여기서 설명하는 NSS는 이 시스템에 존재하지 않는 nsswitch.conf에 의해 제어됩니다. NSS에는 tacacs 플러그인이 없는 것 같습니다. 제 경우에는 그것이 중요한지 잘 모르겠습니다.
그렇다면 pam_tacplus.so 라이브러리에 액세스하기 전에 사용자의 로컬 비밀번호 파일 확인을 건너뛸 수 있는 방법이 있습니까? 나는 하나가 있다면 template_user= 옵션이 시작되어 로컬 사용자로 존재하는 "testuser"를 사용하려고 시도한다고 추측합니다.
pw user show testuser
testuser:*:1003:1003::0:0:User &:/home/testuser:/usr/bin/bash
답변1
저처럼 쉽게 달성하실 수 있습니다. 맞습니다. nsswitch.conf 파일을 사용해야 합니다. 그러나 All-To-One을 의미하는 타사 프로그램 libnss-ato를 설치해야 합니다. 구성된 tacacs+ 서버에 대해 로컬이 아닌 사용자를 인증한 다음 원하는 작업을 정확하게 수행합니다.
여기에서 패키지와 세부정보를 확인할 수 있습니다. https://github.com/donapieppo/libnss-ato