KVMの上のAlpineLinuxの上のFreeRADIUSサーバ
はじめに
802.1X認証がしたかったのでRADIUSサーバを構築する.
物理マシンに空きはないのでKVM上にちょこんと載せる.
構築
ゲストの作成
virt-install
でサクっと作る.
virt-install --connect qemu:///system \ --virt-type kvm \ --os-type linux \ --name VM_RADIUS \ --ram 512 \ --disk path=/var/lib/libvirt/images/VM_RADIUS.img,size=4 \ --graphics vnc,port=5902,keymap=ja,listen=0.0.0.0,password=password \ --cdrom=/iso/alpine-extended-3.6.2-x86_64.iso
ここでハマった点は以下の通り
--location
でISOを指定するとエラーが出て動作しなかったCould not find an installable distribution at ...
なエラー- 解決のために参考にしたページ
- VNCクライアントから接続した際にキー入力が残念なことになる
- パイプ
|
や アンスコ_
が打てないのは致命的 keymap
オプションで明示することで解決
- パイプ
VNCクライアントで接続できたら, あとは setup-alpine
でインストールを進めていく.
FreeRADIUSのインストール
> apk update > apk add freeradius > apk add freeradius-radclient
クライアントの設定
テスト用にインストールしたRADIUSクライアントの設定
/etc/raddb/client.conf
の末尾に以下を追記.(IPアドレスは変更)
client 192.168.0.21 { secret = shared-key }
PAP-CHAP通信のテスト
radclient
に読み込ませるアトリビュートファイルを作成する.
ファイル名は何でも良い.
User-Name=alice User-password=hello # 上記のものを利用するとPAP認証になる # 下記のものを利用するとCHAP認証になる #Chap-password=hello
次にRADIUSサーバにユーザ登録を行う.
/etc/raddb/users
の末尾に下記の内容を追記.
alice Cleartext-Password := "alice"
この状態でRADIUSデーモンを起動させる.
単発で起動させるなら radiusd &
で構わない.
> rc-update radiusd default > rc-service radiusd start
これでRADIUS認証の準備が整ったので radclient
でテスト通信を行う.
> radclient -x -f alice.attr 192.168.0.21 auth shared-key
認証が通れば Accept-Acceps
と返ってくる.
アトリビュート内のパスワードを変えるなどすると Accept-Reject
などと返ってくることが確認できる.
no reply from server
などというワードが出てきたのならサーバの設定が怪しい.
参考文献
FreeRadiusの初期設定はこのページ通りに行えば上手くいきます.
http://www.nttpc.co.jp/technology/free_radius.html