GNU/Linux >> Linux の 問題 >  >> Linux

privacyIDEAを使用してOTPアプライアンスをセットアップする方法


by Nemo @ pixabay

このハウツーでは、ネットワーク内のすべての認証デバイスを管理する、独自の個人用OTPアプライアンスとして機能できるシステムをセットアップします。次に、このマシンに対して認証するようにサービスを構成できます。仮想化メカニズムを使用することをお勧めします。古いハードウェアがあれば、これも同様に優れています。

ここまたはここで以前に見たかもしれないUbuntu14.04LTSシステムにprivacyIDEAをインストールします。しかし、今回はさらにスムーズでエレガントになります!

基本インストール

免責事項: このシナリオでは、あなたがユーザーrootであると想定しています。そうでない場合は、すべてのコマンドの前に「sudo」を追加する必要があります。

そこで、最初に何も載せていないプレーンなubuntuサーバー14.04LTSをインストールします。データベースやウェブサーバーはインストールしないでください。このマシンでサービスとして実行するには、opensshのみを選択する必要があります。

privacyIDEAをインストールする

privacyIDEA 1.3.3には、ランチパッドリポジトリに多数の新しいDebianパッケージが付属しており、セットアップが簡単になります。

まず、リポジトリをシステムに追加する必要があります:

apt-get install software-properties-common
add-apt-repository ppa:privacyidea / privateidea
apt-get update

プライバシーアイデアリポジトリを追加したので、利用可能なものを確認できます:

[メールで保護]:〜#apt-cache search privacyidea
privacyidea-2要素認証システム(例: OTPデバイス用
privacyideaadm-privacyIDEAの管理クライアント
privacyidea-radius-privacyIDEA用のFreeRADIUSモジュール、OTP認証
privacyidea-all-2要素認証システム。これはすべてをインストールするためのメタパッケージです。
privacyidea-otrs-privacyIDEA用のOTRSモジュール、OTP認証
privacyidea-nginx-2要素認証システム。これは、nginx
privacyidea-appliance-2要素認証システムを使用してprivacyideaをインストールするためのメタパッケージです。これは、システムを簡単にセットアップするためのセットアップツールです。

シナリオごとに異なる(メタ)パッケージがあります。前述のように、一種の「電化製品」を設置したいと思います。さあ、やってみましょう:

apt-get install privacyidea-appliance privacyidea-radius

これにより、Nginx Webサーバー、MySQLデータベース、FreeRADIUSサーバー、およびすべてのPython依存関係を持つprivacyIDEAがインストールされます。

MySQLのルートパスワードを入力するように求められます。良いものを選んでください-後でそれは必要ありません!;-)

インストール後、アプライアンスを構成する準備が整います。

アプライアンスを構成します

アプライアンスに必要なすべての手段を構成するためのツールがあります。コマンドラインでユーザーrootとして起動します。

privacyidea-setup-tui


これはダイアログベースのテキストUIツールであり、トークン管理者の管理、ログレベルの設定、暗号化と署名キーの再生成、適切なWebサービスとRADIUSサービスの設定、RADIUSクライアントの管理など、オペレーティングシステムレベルで関連するすべてのタスクを実行できます。

少なくとも、次のタスクを実行する必要があります。

  • 少なくとも1人のトークン管理者を作成します
  • MySQLデータベースを作成する
  • RADIUSクライアントを作成する
ツールに目を通し、何ができるかを理解します。

このツールは、FreeRADIUSクライアントファイル、privacyIDEA iniファイル、およびnginxファイルのパーサーロジックに基づいています。したがって、コマンドラインでファイルを編集することもでき、変更は保持されます。

注: これらのファイルを手動で編集した場合、セットアップツールはファイル内のコメントを保持しません。

トークン管理者を作成する

トークン管理者を管理するには、 privateにアクセスしてください ? 管理者の管理

そこで、新しい管理者を追加を選択できます 。

次のメッセージが表示されます:

  • adminを選択したユーザー名 および
  • 画面にエコーされないパスワード(2回!)。
その後、リストに新しいトークン管理者が表示されます。この手順は何度でも繰り返すことができます。リストから管理者を選択することにより、管理者を削除したり、パスワードを変更したりできます。


これで管理者が作成されました。[キャンセル]をクリックしてキャンセルし、メインメニューに戻ることができます。

MySQLデータベースを作成する

このステップをスキップすることもできます。その後、privacyIDEAは/ var / lib /privacyidea/にあるSQLiteデータベースで実行されます。ただし、このシナリオではMySQLデータベースを使用することを選択します。

だからprivacyIDEAに行く ? データベース ...


そこで、ローカルでリセットを選択できます 、MySQLデータベースを作成し、ユーザーを作成し、データベーステーブルを設定します。


はい、そうです!


最後に、MySQLデータベースを使用した新しい構成が表示されます。

RADIUSクライアントを作成する


メインメニューでFreeRADIUSを選択します ? client config RADIUSクライアントを管理します。デフォルトの/etc/freeradius/clients.confにはローカルホストクライアントが付属しています。これが、リストにすでに1つのクライアントが表示されている理由です。

注: 最後のクライアントは削除できないので、新しいクライアントを作成します!

システムに対してテストを実行するために、ネットワーク内のすべての可能なクライアントとクライアントローカルホストに対処するためのクライアントネットワークを作成します。したがって、これらの値を選択します。それに応じてネットワークを調整する必要があります。

  1. mynetwork
      名前:mynetwork
      ip:172.16.200.0
      ネットマスク:24
      秘密:topSecret4All
      短縮名:
  2. localhost
      名前:localhost
      ip:127.0.0.1
      ネットマスク:32
      秘密:topSecretOnce
      短縮名:

新しいクライアントを追加を選択します 新しいクライアント「mynetwork」を作成すると、ダイアログで上記の値の入力を求められます。したがって、ネットワーク172.16.200.0/24上のすべてのクライアントは、RADIUSシークレット「topSecret4All」を使用してRADIUS要求を発行できます。


クライアント構成の名前


IPアドレス


ネットマスク


共有シークレット


短縮名は空白のままにすることができます

クライアント「localhost」を選択して削除できます。その後、上記の設定に従って新しいクライアント「localhost」を作成できます。

構成が完了しました

これで、基本システムの構成は完了です。セットアップツールは、重要なデータを変更してサービスを再起動することを認識している必要があります。ただし、これを手動で実行できることを確認するために:

service uwsgi restart
service freeradius restart

トークンを登録する

これで、管理WebUIを使用して認証デバイスを登録できます。ブラウザでhttps:// your-serverにアクセスし、自己署名証明書の証明書警告を受け入れると、ログイン画面が表示されます。

このログイン画面では、トークン管理者としてログインできます。作成したすべてのトークン管理者は、名前に「@admin」を追加して、管理者であることを示す必要があります。

Web UIは、トークン、ユーザー、ポリシー、マシン、および監査ログのビューを提供します。

ユーザーソースに接続

privacyIDEAはユーザー自体を管理しないため、何らかのソースからユーザーを読み取る必要があります。 / etc/passwdファイルを使用します。

privateIDEA configをクリックします ? useridresolvers 、[新規]ボタンをクリックします Flatfileを選択します 。

[保存]をクリックします 「local」という名前でリゾルバー定義を保存します。

注: いつでも、緑色の円の白い疑問符をクリックすると、別のブラウザウィンドウのコンテキストオンラインヘルプに移動できます。実際、リゾルバーとレルムについて何かを読むのは良い考えかもしれません;-)。

リゾルバーウィンドウを閉じると、自動的にレルムウィンドウに移動するか、 privacyIDEA Configをクリックします。 ? レルム 新しいレルムを作成します。このダイアログで、新規をクリックする必要があります 。

レルムの名前( "realm1")を入力し、リゾルバー( "local")を選択して、保存をクリックします。 。

次に、レルムリストに新しいレルムが表示されます。

ウィンドウを閉じて、[ユーザービュー]タブをクリックします。 。

ユーザーにトークンを登録する

下部にある「r*」と入力して検索をクリックすると、ユーザーを検索できます。 ボタン。ユーザーrootが表示されます。ユーザーをクリックして選択します。ユーザーは、選択したユーザーとして左側のサイドバーに表示されます。これで、[登録]ボタンをクリックできます 左側のサイドバーにあります。

次に、登録ダイアログが開きます。 「HMACイベントベース」トークンタイプを選択し、HMACキーの生成を選択します 。

[登録]ボタンをクリックします 。サーバーは秘密鍵を作成し、Google認証システムアプリでスキャンできるQRコードをレンダリングします。このGoogle認証システムアプリは、認証デバイスとして機能するようになります。

QRコードをスキャンしたら、[ OK]をクリックします。 そして最後に、このトークンにPIN(あなただけが知っているパスワード)を設定します。

これで、認証に使用する2つの要素があります。認証デバイスによって生成されたPINとOTP値です。

システムをテストする

これで、このアプライアンスにRADIUS要求を発行してシステムを確認できます。次のようなコマンドを使用して、ssh経由でrootとしてログインしているシステム自体から実行します。

echo "User-Name =root、Password =PIN + OTP" | radclient -s 127.0.0.1 auth topSecretOnce

パスワード PINとOTP値から連結され、「topSecretOnce」がローカルホストの共有シークレットになります。

[メール保護]:〜#echo "User-Name =root、Password =test570391" | radclient -s 127.0.0.1 auth topSecretOnce
受信した応答ID209、コード3、長さ=55
返信メッセージ="privacyIDEAサーバーがアクセスを拒否しました!"

承認された認証の総数: 0
拒否された認証の総数:1
失われた認証の総数:0

[メール保護]:〜#echo "User-Name =root、Password =test137634" | radclient -s 127.0.0.1 auth topSecretOnce
受信した応答ID180、コード2、長さ=48
返信メッセージ="privacyIDEAアクセスが許可されました"

承認された認証の総数:1
拒否された認証の総数:0
失われた認証の総数:0

注: アプリとサーバーの開始カウンターが異なるため、最初の認証は失敗します。

これで、すべてのRADIUS対応アプリケーション(ファイアウォール、OpenVPN)を取得し、以前に定義された共有シークレットを使用してprivacyIDEAに対して認証するように構成できます。

ハッピー認証!


Linux
  1. SELinuxでコンテナを保護する

  2. Ubuntu 20.04 で Nginx を使用して MERN スタックをインストールおよびセットアップする方法

  3. EasyEngine セットアップで WordPress をインストールまたは移行する方法

  1. tcpdumpを使用してネットワークのトラブルシューティングを行う

  2. DNSサーバーをセットアップするためのバインドをインストールおよび構成する方法は?

  3. LinuxサーバーにDockerを使用してNextcloudをインストールする方法

  1. Flatpakを使用してLinuxにアプリをインストールする

  2. LVMを使用してLinuxをインストールする

  3. このオープンソースツールを使用してSSH接続を管理します