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ライブラリにアクセスする前に、ユーザーのローカルパスワードファイルの確認をスキップする方法はありますか?私が1つある場合は、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