簡単な半径認証

簡単な半径認証

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が最善です。

おすすめ記事