SSH経由でアクセスするときは、一部のUbuntuサーバーの認証サーバーとしてRadiusを使用することを検討しています。私はlibpam-radius-authを使ってみましたが、正確に必要な方法で動作しません。
私の目標は、認証にTACACS / Radiusを使用するCiscoデバイスと同様のソリューションを持つことです。ただし、ローカルユーザーでない場合は認証できません。
sshd[3200]: 198.18.18.22 の無効なユーザー testacc
sshd[3200]: input_userauth_request: 無効なユーザー testacc [preauth]
私が見つけた解決策は、NFSを使用してホームフォルダをマウントするか、LDAPサービスを設定することでした。ユーザーがSSH経由でサーバーにログインし、Radius経由で認証する簡単な方法はありますか?できるだけ簡単にしたいです。
ベストアンサー1
libpam-radius-auth
必要に応じて正しく動作する必要があります。この程度の容量での使用には問題ありません。あなたはただ必要です
/etc/pam.d
おそらくどこかにそれを構成しますcommon-auth
。- RADIUS サーバーの構成
/etc/raddb/server
ただし、ローカルユーザーでない場合は認証できません。
ええ、これは本当です。まず、ユーザーが存在する必要があります。
ここで認証とは異なる問題を扱っているようです。次の2つのサブシステムの違いを覚えておいてください。
- 国家安全保障局(ネームサービススイッチ):ユーザー(およびグループ、ホストなど)のデータベースを実装します。ユーザーを一覧表示し、名前、uid、ホームディレクトリ、シェルなどのプロパティを取得するクエリをサポートします。最も一般的なNSSバックエンドは "file"で、からユーザー情報を取得しますが、
/etc/passwd
他の多くのバックエンドを使用してDBファイル、LDAPなどから情報をインポートすることもできます。 - ポリアクリルアミド(プラグイン認証モジュール):認証(アカウントとパスワードの変更を含む)を実装します。システムはプラグインモジュールを使用してユーザー認証を確認し、ログインを許可または許可しません。最も一般的なPAMバックエンドは、ユーザーに簡単なパスワードを要求してハッシュと比較して確認するファイルですが
/etc/shadow
、他の多くのバックエンドを使用してRADIUS、ワンタイムパスワードシステム、Kerberosなどのサービスを照会できます。
認証(PAM)にRADIUSを使用しているようですが、ユーザーデータベース(NSS)自体にはネットワークベースのコンテンツも使用したいと思います。これはまったく異なる問題であり、認証とは何の関係もありません。
RADIUS プロトコルはデータベース機能を提供しないため、RADIUS をデータベースのバックエンドとして使用することはできません。つまり、データベース内のユーザーを列挙するだけでなく、ユーザーのuid、ホームディレクトリ、シェルなどの詳細を照会することもできません。したがって、RADIUS NSSバックエンドはありません(家庭libnss-radius
)。
ネットワークベースのユーザーデータベースには、LDAP、MySQL、またはPostgresを使用できます。おそらくLDAPが最善です。