質問: samba4ではLDAPSサーバーとしての機能を内包しているので、 WifiのRadiusサーバーを構築し、ユーザー認証とMACアドレス認証の両方を行いたいです。 その際、保存する情報(認証情報及びMACアドレス)はLDAPSに集約したいのですが、可能でしょうか。 詳細 -- FreeRADIUSを導入し、MACアドレス認証を行うことを検討しましたが、ストアがファイルかデータベースサーバ(MySQL)しかありませんでした。 設定でLDAPから関連するMACアドレスを抽出し、認証をかけることは可能でしょうか。 環境 -- * samba-dc (v4.6.x、ldapと読み替えていただいてもよいです) * alpine linux (debian 等でも構いません) 補足 -- 検証はこちらで行うつもりですので、ヒントをいただければと存じます。 eg: 設定ファイルでLDAPから情報を読み出す方法 フィードバックは進展があれば行いたいです。
回答: 定期的にMACアドレスのリストをLDAPからファイルに落とすようにとかはどうでしょうか? [追記] 私の持っているldap認証に対応した freeradius サーバでテストしてみました。 radiusd を -X オプションで起動した時に私のサーバでは認証時に下記のリクエストが届きます。 vpnの接続時のppp認証で使用しているので Request に Macアドレスがありません。 Macアドレスがある場合は、 Calling-Station-Id に値が入っていると思います。 ``` (1) Received Accounting-Request Id 11 from 127.0.0.1:56766 to 127.0.0.1:1813 length 108 (1) Acct-Session-Id = "5C95EDCF6BEF00" (1) User-Name = "scsi@example.com" ※認証ID (1) Acct-Status-Type = Start (1) Service-Type = Framed-User (1) Framed-Protocol = PPP (1) Acct-Authentic = RADIUS (1) NAS-Port-Type = Async (1) Framed-IP-Address = 192.168.0.101 (1) NAS-IP-Address = 123.123.123.123 ※サーバのIP(仮) (1) NAS-Port = 0 (1) Acct-Delay-Time = 0 ``` NAS-IP-Address を Mac アドレスと見立てて、 description アトリビュートに登録しました。 ``` ldapの登録情報 ldapsearch -x mailroutingaddress=scsi@example.com mailroutingaddress description dn: uid=scsi,ou=People,dc=example,dc=com mailRoutingAddress: scsi@example.com description: 123.123.123.123 ``` この状態で /etc/raddb/mods-available/ldap の filter を下記にしました。 ``` filter = "(&(mailRoutingAddress=%{%{Stripped-User-Name}:-%{User-Name}})(description=%{NAS-IP-Address}))" ``` これで認証が成功しましたので、応用すれば Macアドレスでのフィルタリングはldapでできるのではないでしょうか?