0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

freeRADIUSのAccountingログについてのあれこれ

Last updated at Posted at 2021-11-22

#前置き
初投稿です、宜しくお願いします。
freeRADIUSのAccountingに関して、
あまり日本語の説明記事がなく調べるのに苦労したため備忘録がてらまとめました。

Accountingの概要やログメッセージの例については以下のサイトが大変参考になりました。
FreeRADIUSとdaloRADIUSのアカウンティング - デージーネット

#内容
以下について記載します。
使用機器はLinuxのCentOS7の想定です。

  1. Accountingログの場所
  2. Accountingログのファイル名、ディレクトリ名の設定
  3. logrotateの設定

#Accountingログの場所
デフォルトでは**/var/log/radius/radacct配下に各NASのIPアドレスごとにディレクトリが生成され、
その中にそれぞれ溜まっていきます。(radacctはradius-accountingの略だと思われる)
ファイル名は
details-YYYYMMDD**という形で日ごとに別ファイルになっています。

# cd /var/log/radius/radacct
# ls -l
合計 10
drwx----- 2 radiusd radiusd 4096 11月 10 08:52 192.168.0.1 
drwx----- 2 radiusd radiusd 4096 11月 10 08:20 192.168.10.99 
drwx----- 2 radiusd radiusd 4096 11月 10 08:01 192.168.99.33

# cd 192.168.0.1
# ls -l
-rw------ 1 radiusd radiusd 12542 11月 1 23:03 details-20211101 
-rw------ 1 radiusd radiusd 13675 11月 2 23:12 details-20211102 
-rw------ 1 radiusd radiusd 19847 11月 3 23:54 details-20211103 
-rw------ 1 radiusd radiusd 22456 11月 4 23:57 details-20211104 
-rw------ 1 radiusd radiusd 12980 11月 5 23:59 details-20211105
(省略)

#Accountingログのファイル名、ディレクトリ名の設定
続いてこのログファイルのファイル名や格納場所を変える場合の設定です。
freeRADIUSは設定ファイルがたくさんあって分かりにくいです、、
今回変更が必要なファイルは以下です。
 -/etc/raddb/mods-enabled/detail
  (/etc/raddb/mods-available/detailのシンボリックリンクなのでそちらでも可)

33行目あたりに以下の記載があります。

/etc/raddb/mods-enabled/detail
filename = ${radacctdir}/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d

ここを変更することでファイル名や保存するディレクトリを変更できます。
変更後プロセスの再起動を実施すれば反映されます。

ちなみにradacctdirという変数はradiusd.confで定義されています。

/etc/raddb/radiusd.conf
localstatedir = /var
logdir = ${localstatedir}/log/radius
radacctdir = ${logdir}/radacct

そのため、ログが/var/log/radius/radacct配下に各NASのIPごとにディレクトリ分けされ、
日ごとにファイル分けされて溜められています。

#logrotateの設定
デフォルトではfreeRADIUS自体で簡易的に日ごとにAccountingログファイルを生成していました。
ただ、10世代だけ残しておきたい、月ごとにローテーションしたい、●時×分にローテーションしたい...
などの小回りは効きません。
細かくローテーションの設定をしたい場合は、logrotateを利用すると良いです。
freeRADIUSはインストールすると
/etc/logrotate.d/radiusdというlogrotate用の設定ファイルを生成してくれているので、
そちらを編集するのがおすすめです。

デフォルトでは以下のように対象ファイルを**/var/log/radius/radacct/*/detail**と記述しているため、
detail-YYYYMMDDとして生成されるAccountingログファイルは対象外となっており、
logrotateではローテーションされていません。

/etc/logrotate.d/radiusd
/var/log/radius/radacct/*/detail{
    monthly
    rotate 4
    nocreate
    missingok
    compress
    su radiusd radiusd
}

ローテーションの設定がしやすいように、
まずは**/etc/raddb/mods-enabled/detail**を編集してファイル名が動的に変化しないものにしたうえで、
組み立てていくと良いと思います。

参考サイト

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?