ここではFreeRADIUS2の構築とそのユーザ認証にLDAPを使う設定を行っていきます。
初めにFreeRADIUS2とモジュール等をインストールします。
#yum -y install freeradius2 freeradius2-utils freeradius2-ldap |
インストールが完了したら設定を行っていきます。
初めにclients.confを設定します。
#vi /etc/raddb/clients.conf |
clients.confには認証にくる機器のアドレスを設定します。例として192.168.10.100の機器が認証に来るとして設定します。
黄文字部分が追記箇所です。
#client 192.168.0.0/16 { # secret = testing123-2 # shortname = private-network-2 #} client 192.168.10.100 { secret = secret shortname = test } #client 10.10.10.10 { # # secret and password are mapped through the "secrets" file. # secret = testing123 # shortname = liv1 # # the following three fields are o |
次にdictionaryファイルを編集します。
#vi /etc/raddb/dictionary |
dictionaryの最終行に下記黄文字部分を追記します。
#ATTRIBUTE My-Local-String 3000 string #ATTRIBUTE My-Local-IPAddr 3001 ipaddr #ATTRIBUTE My-Local-Integer 3002 integer VALUE Auth-Type LDAP 5 |
#vi /etc/raddb/users |
usersファイルに下記黄文字部分を追記します。
#DEFAULT # Service-Type = Login-User, # Login-Service = Rlogin, # Login-IP-Host = shellbox.ispdomain.com DEFAULT Auth-Type := LDAP Fall-Through = 1 # # # # Last default: shell on the local terminal server. # # |
次にmodulesディレクトリ内のldapファイルを編集します。
#vi /etc/raddb/modules/ldap |
下記部分を編集。黄文字部分が編集対象になります。ldapサーバがanonymous bindを有効にしていない場合は青文字部分のコメントを外します。赤文字部分はそれぞれの環境に合わせて設定します。
# Setting "Auth-Type = LDAP" is ALMOST ALWAYS WRONG. We # really can't emphasize this enough. # ldap { # # Note that this needs to match the name in the LDAP # server certificate, if you're using ldaps. server = "192.168.10.200" #identity = "cn=cauth,dc=otyanoma,dc=net" #password = secret basedn = "ou=People,dc=otyanoma,dc=net" #base_filter = "(objectclass=radiusprofile)" filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
# How many connections to keep open to the LDAP server. |
serverの項目はldapサーバのアドレスになります。ここでは192.168.10.200がldapサーバであるとして設定しています。
identifyとpasswordはldapサーバにsimple bindを行う場合にコメントアウトをします。ここではcauthというアカウント、パスワードをsecretで認証するような設定を入れています。
basednはユーザ検索を行うdnを記述します。ここではPeopleというou内をユーザ検索する設定にしています。
次にdefaultファイルを編集します。
#vi /etc/raddb/sites-available/default |
下記項目を編集します。青文字部分がコメント化、黄文字部分がコメントアウトする場所です。設定ファイルが長いので一部省略しています。編集箇所に注意してください。
authorize { 省略 # for the many packets that go back and forth to set up TTLS # or PEAP. The load on those servers will therefore be reduced. # # eap { # ok = return # } # 省略 # # The ldap module will set Auth-Type to LDAP if it has not # already been set ldap # 省略 # authenticate { # 省略 # Uncomment it if you want to use ldap for authentication # # Note that this means "check plain-text password against # the ldap database", which means that EAP won't work, # as it does not supply a plain-text password. Auth-Type LDAP { ldap |
authorize内のeapをコメント化。(他設定次第でコメントする必要ないかもしれないが、本検証では時間的な問題もあり、コメント化し動作させている)
同authorize内のldapのコメントをはずします。
次にauthenticate内のAuth-Type LDAP関連のコメントをはずします。
以上で設定は完了です。
次に動作試験を行います。
下記コマンドを実行しFreeRADIUSをデバッグモードで起動します。
#radiusd -X |
デバッグモードで起動したら別コンソールで下記コマンドを実行し認証ができるか試験します。ldap上にtest01というユーザ、パスワード1234で登録されていると仮定します。
#radtest test01 1234 localhost 0 testing123 |
Access-Acceptが返ってくれば認証OKです。ctrl+cでデバッグモードを終了します。
下記コマンドでRADIUSサービスを起動し起動時の自動起動も有効にしておきます。
# service radiusd start # chkconfig radiusd on |