
FTPのログイン履歴を取得するには?
環境
CentOS 5.4
vsftpd
サーバ管理の勉強で,空き資源の一部をユーザに貸し出しているのですが,各ユーザのFTPログイン履歴を管理したいと思っています.
考えている方法はいくつかあるのですが,どれも一長一短あるので,こうすれば短所は解決するとか,他に良い方法などがありましたらご教授いただけると幸いです.
方法1
/var/log/vsftpd.logを監視し,認証ログを抽出してデータベースへ格納
短所
cronで定期的に回しても,リアルタイム性が確保されない
ログの量が多く,cronで毎回ログファイル全体を読み込み・抽出するのはムダすぎる.
方法2
FTPログイン時にシェルスクリプトを自動実行し,データベースへ格納する.
短所
そもそもFTPログイン時にシェルスクリプトを自動実行できるのか不明.
(できなくはないけど,vsftpdのサービスを変更する必要があるらしい…?<http://webcache.googleusercontent.com/search?q=c …)
方法3
lastやlastlogコマンドで,ftpのログイン履歴も記録対象とする.
記録対象とする設定方法が不明.
短所
lastコマンドはftpにも対応しているはずではあるが,実際にコマンドを発行してみると,ftpのログイン情報が記録されていない.
vsftpdのログは,認証ログと,ファイル転送などの動作ログが分かれていないので,ログイン履歴を取得しにくいのです.
何か良い方法がありましたら,アドバイスいただけると幸いです.
よろしくお願い致します.
No.1ベストアンサー
- 回答日時:
ログのリアルタイム監視は swatch が定番です。
参考 URL に解説があるので試してみてはいかがでしょうか。
参考URL:http://www.atmarkit.co.jp/flinux/rensai/root04/r …
ありがとうございました.
swatchとシェススクリプトを組み合わせ,FTPの認証履歴の取得のデータベース化に成功しました.
以下,私が行った手順です.
もしこのあと同じ事をやりたいと思っている方の参考になれば幸いです.
(ソースコードはとても汚いし,もっと効率の良い書き方ができると思いますが,そこはご容赦ください)
ディストリビューションはCentOS5.4です.
作業前にrootになってください.
DAGリポジトリをインストール
rpm -Uvh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpm …
Swatchをインストール
yum -y install swatch
.swatchrcを作成
vi ~/.swatchrc
watchfor /LOGIN/
exec ./ftplog.sh $_
throttle 00:00:05
ftplog.shを作成
#!/bin/sh
# 変数の設定
LOGALL=$*
LOG=($LOGALL)
# $LOGの分解
userid=${LOG[7]}
result=${LOG[8]}
ip=${LOG[11]}
# ユーザIDの整形
userid=`echo $userid | sed -e 's/\[//g'`
userid=`echo $userid | sed -e 's/\]//g'`
# データベースへ格納
mysql --user=root --password=********<<eof
use system;
INSERT INTO ftplog SET userid='$userid',ip='$ip',result='$result';
eof
データベース設計
CREATE TABLE IF NOT EXISTS `ftplog` (
`userid` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`result` varchar(255) NOT NULL,
`ip` varchar(255) NOT NULL,
KEY `userid` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Swatchを起動します.
swatch --tail-file=/var/log/vsftpd.log &
サーバのリブート時,自動的に起動させます.
echo "swatch -c /root/.swatchrc -t /var/log/vsftpd.log &" >> /etc/rc.local
これで,FTPサーバにアクセスがあると,認証履歴がデータベースに記録されます.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) wordpress 管理画面にログインについて(ftpファイル抹消してしまう) 2 2023/02/06 19:45
- その他(パソコン・スマホ・電化製品) Google ドライブのようにXnBay ストレージ サーバのストレージスペースをコンピュータのエク 2 2023/04/28 19:09
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- デスクトップパソコン ウイルスに感染しないファイルのバックアップ方法について 5 2022/09/11 11:27
- プロバイダー・ISP hpb22の接続方法の変更 1 2023/08/06 18:47
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
- その他(セキュリティ) アカウントの乗っ取りで質問です。長いです。 先月ツイッターの乗っ取りにあい、アカウントを全て新しくし 2 2022/03/25 20:47
- YouTube SMS認証が出来なくて乗っ取られたアカウントを取り戻せません。 2 2023/04/02 15:29
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
NetBTエラーとbrowserエラーが多発
-
Tera Termでのコマンド流し込み...
-
date /t > nulの意味を教えてく...
-
icaclsの読み方
-
【Ciscoコマンド】interface As...
-
NICを2枚差しで、インターネッ...
-
VBSを作成
-
Powershellの使い方について (...
-
コマンドプロンプトを非表示に...
-
ブラウザにIPアドレスを直打ち...
-
centos7で、rshコマンドが使用...
-
コマンドの戻り値が「130」
-
コマンドプロンプト
-
Thunderbird 振り分けされなく...
-
フォルダのサムネイル画像
-
ブックマークしたことは、サイ...
-
JP1で月末以外で毎週月曜日のジ...
-
システムの復元後のエラー
-
xcopyバッチを管理者として実行...
-
大量のフォルダへのハイパーリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
NetBTエラーとbrowserエラーが多発
-
Tera Termでのコマンド流し込み...
-
ブラウザにIPアドレスを直打ち...
-
【Ciscoコマンド】interface As...
-
icaclsの読み方
-
コマンドの戻り値が「130」
-
NICを2枚差しで、インターネッ...
-
centos7で、rshコマンドが使用...
-
FTPのログイン履歴を取得するに...
-
date /t > nulの意味を教えてく...
-
ネットワーク上で存在するマシ...
-
コマンドプロンプトで、コマン...
-
データグリッドとは?
-
RTX 1000のネットボランチDNSの...
-
ADでユーザ名と表示名をコマン...
-
windows7 シンボリックリンク...
-
Active Directryのグループ内の...
-
IPアドレスからPC/サーバ検索
-
FTPサーバーについて
-
コマンドでネットワーク上の全...
おすすめ情報