私は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.
セクションに追加する必要がありますか?どうやって?
...スクリプトが「Accept」を返した場合、他の承認リクエストは無視されます
はい。これは仕様によるものです。 FreeRADIUSにそのユーザーを受け入れるように指示しています。承認セクションで他に何も気にすることはありません。他の認証メソッドをスクリプトと組み合わせて使用する場合は、スクリプトがnoop
ではなくAccept
を返すようにするという点で正しいと思います。
Rlm_pythonのマンページをまだ確認していない場合は、 nlang のマンページを確認する必要があります。構成ファイルのallコメントも読んでください。
FreeRADIUSに何をさせようとしているのかを概念レベルで指定していないので、さらにアドバイスする方法がよくわかりません。しかし、FreeRADIUS-Usersメーリングリストで素晴らしい結果が得られました。 FreeRADIUSとその機能を深く理解している開発者や多くの人々が頻繁に訪れます。投稿する前に彼らのFAQ(禁止されていないユーザー))を読み、幅広い概念レベルと実装レベル(あなたのように)の両方で何をしたいのかを説明しますここで実行しました)、デバッグ出力全体を送信するようにしてください。
メーリングリストにアクセスすることをお勧めする理由は、目標を達成するためのより良い方法があると思うのですが、rlm_pythonに精通していないため、先に進む方法を提案できません。とにかく、unlangルールを使用してpython script.。を呼び出すのは正しくないようです。