SQLITEサポートを使用してFreeRADIUS 3をビルドおよび構成する

こんにちは

1つの創造的な問題の解決策を共有したいと思います。 誰かが助けてくれることを願っています。

だから



だの:



ARMプロセッサを搭載した低電力ハードウェアで、そのために構築され、Debian 7 wheezyをインストールしました。



タスク:



FreeRADIUS 3.0.Xをインストールし、SQLITEデータベースで動作するように構成します。 つまり、ユーザーアカウント(認証が必要)RADIUSはSQLITEデータベースから取得する必要があります。



この図は、コンポーネントの相互作用のトップレベルの図を示しています。







このソリューションを説明することにしたのはなぜですか?



このタスクに直面してグーグルを使い始めたとき、freeradiusを構築するための詳細な説明がなく、さらにSQLITEサポートがあることに驚いた。 したがって、私は自分自身や他の人のために記念品としてメモをとることにしました。



解決策:



3つの部分で構成されます。

1)SQLiteをサポートしてFreeradius 3.0.3をビルドします(このバージョンを選択しました。後ですべてがこのようになります)。

2)FreeradiusとSQLiteの束をセットアップします。

3)ユーザーが認証されるサーバーをセットアップします(上の図-「サーバー」)。



1 SQLiteをサポートするFreeradius 3.0.3をビルドする



radius 3.0.3を正常に構築するには、次の手順に従う必要があります。

1.1ソースコードをダウンロードします: ftp.freeradius.org/pub/freeradius/old/freeradius-server-3.0.3.tar.gz 、それを別のフォルダーに解凍します;

1.2 apt-getを介して以下のパッケージをインストールします:libtalloc2、libtalloc-dev、libssl-dev、libperl-dev、libpam0g-dev、libsqlite3-dev、libgdbm-dev(他のデータベースのサポートが必要な場合、適切なdevパッケージ、たとえばmysqlを提供する必要があります-dev);

1.3ソースを含む解凍されたアーカイブのあるフォルダーに移動し、簡単に、

./configure make checkinstall
      
      





初めて./configureが機能しない場合、他のパッケージがシステムにない可能性があります。出力を注意深く読んでインストールしてください。



2 FreeradiusとSQLiteの束を構成する



freeradius + sqliteバンドルを構成するには、次の手順を実行します。



2.1 sqliteユーザーデータベースの作成と構成



2.1.1半径が機能するデータベースにsqliteベースとスキーマを作成します。

 sqlite3 /etc/raddb/sqlite_rad.db < /etc/raddb/mods-config/sql/main/sqlite/schema.sql
      
      





/etc/raddb/sqlite_rad.dbはデータベースファイルへのパスであり、任意の便利な場所に配置できます。

2.1.2データベースにユーザーアカウントを作成します。

 sqlite3 /etc/raddb/sqlite_rad.db insert into radcheck values ('1','user','Cleartext-Password',':=','secret');
      
      





データベースの上記のクエリを使用して、radcheckテーブルに入力します。このテーブルには、ユーザーの超音波に関する情報が次の情報とともに保存されます。

一意のユーザーID = 1; ユーザー名=ユーザー; 属性KM = Cleartext-Password; 演算子=“:=”; 属性値=「秘密」。 ロシア語の場合、UZユーザーのパスワードを設定します。パスワードはクリアテキストで保存され、その値は「秘密」です。 radiusとunlangの公式ドキュメントで、属性と値のペア(avペア)と比較演算子の詳細を読むことができます。 freeradius.org/radiusd/man/unlang.html



2.2 freeradiusの構成:



2.2.1使用可能なすべてのRADIUSモジュール構成ファイルは、/ etc / raddb / mods-availableにあります。 それらを有効にするには、/ etc / raddb / mods-enabledフォルダーにモジュールへのリンクを作成する必要があります。

 cd /etc/raddb/mods-enabled ln -s /etc/raddb/mods-available/sql sql
      
      





2.2.2 / etc / raddb / mods-enabled / sqlを次のように編集します。

 sql { ………… driver = "rlm_sql_sqlite" ………… sqlite { filename = "/etc/raddb/sqlite_rad.db" } ………… dialect = "sqlite" ………..
      
      





filename変数は、2.1.1節で作成されたデータベースファイルを指している必要があります。

2.2.3クライアントの半径、つまり ユーザーがこの半径を介して認証するサーバー(またはネットワーク機器)。 これを行うには、/ etc / raddb / clients.confファイルに次の行を追加します。

 client 192.168.0.4 { secret = testing123 shortname = new_server }
      
      





この場合のsecretは、クライアントを認証するための秘密の単語の半径です。

ショートネーム-任意の「ショートネーム」。この値は省略できます。

2.2.4 / etc / raddb / sites-enabled / defaultファイルの「authorize」セクションに「-sql」があることを確認します。

 authorize { ........ -sql ........
      
      







3 RADIUSクライアントの構成



3.1クライアントで、pam_radiusパッケージをインストールします。

 apt-get install libpam-radius-auth
      
      





3.2クライアントの/etc/pam_radius_auth.confファイルに次の行を追加します。

 other-server other-secret 3
      
      





ここで、other-serverはRADIUSサーバーのIPアドレスであり、other-secretは構成アイテム2.2.3のシークレットワードです。

 192.168.0.2 testing123 3
      
      





3.3行の上の/etc/pam.d/sshdファイル

 # Standard Un*x authentication. @include common-auth
      
      





行を追加

 auth sufficient pam_radius_auth.so
      
      







以上です。 RADIUSを起動して、利益を享受してください。



All Articles