web-dev-qa-db-ja.com

追加のチェックを追加するfreeradiusサーバー

私はfreeradiusサーバーのデプロイに成功し、ユーザーに対して追加のチェックを行うpythonスクリプト(着信リクエスト)を作成しました。インターネットをチェックしました(freeradiusのリソースはかなりひどいです)が見つかりました。 pythonスクリプトをプロセスに追加することに関するいくつかの基本を説明するスレッド。

現在、/ etc/freeradius/sites-enabled/default内のauthorizeセクションにあります。

update control {
       Auth-Type := `/usr/bin/python /etc/test.py '%{User-Name}' '%{User-Password}'`
}

私のtest.pyファイルはRejectまたはAcceptを吐き出します。また、freeradiusを使用してsql認証を設定していますが、問題は、スクリプトがAcceptを返した場合、他の認証要求が無視されることです。 Acceptチェックでユーザーが拒否された場合でも、応答はsqlのままです。

私が理解していることから、freeradiusを続行できるようにするには、noopの代わりにAcceptを渡す必要があり、ユーザーを拒否する必要がある場合にのみRejectを渡す必要がありますが、noopで応答するとサーバーが文句を言います。

何か案は?たぶん、コードをAuthentication.セクションに追加する必要がありますか?どうやって?

1
Romeo Mihalcea

...スクリプトが「Accept」を返した場合、他の承認リクエストは無視されます

はい。これは仕様によるものです。 FreeRADIUSにそのユーザーを受け入れるように指示しています。承認セクションで他に何も気にすることはありません。他の認証メソッドをスクリプトと組み合わせて使用​​する場合は、スクリプトがnoopではなくAcceptを返すようにするという点で正しいと思います。

Rlm_pythonのマンページをまだ確認していない場合は、 nlang のマンページを確認する必要があります。構成ファイルのallコメントも読んでください。

FreeRADIUSに何をさせようとしているのかを概念レベルで指定していないので、さらにアドバイスする方法がよくわかりません。しかし、FreeRADIUS-Usersメーリングリストで素晴らしい結果が得られました。 FreeRADIUSとその機能を深く理解している開発者や多くの人々が頻繁に訪れます。投稿する前に彼らのFAQ(禁止されていないユーザー))を読み、幅広い概念レベルと実装レベル(あなたのように)の両方で何をしたいのかを説明しますここで実行しました)、デバッグ出力全体を送信するようにしてください。

メーリングリストにアクセスすることをお勧めする理由は、目標を達成するためのより良い方法があると思うのですが、rlm_pythonに精通していないため、先に進む方法を提案できません。とにかく、unlangルールを使用してpython script.。を呼び出すのは正しくないようです。

0
user62491