ミニプログラムコーナ

ここでは、公開する程の物でもないけどと私が思っているプログラムを、あえて公開します。
なお、ご利用は自己責任でお願い致します。
また、FreeBSD5.3Rでの動作確認を行っていますが、非常に単純な内容なので、概念さえ理解すれば大抵のOSで動かすことが可能でしょう。


プログラム一覧


送信元メールアドレス抽出プログラム

概要: sendmailのメールログから、指定されたメールボックスに送信したメールアドレスと時刻を抽出する。

目的: ある特定のアカウント宛に送られた送信者の一覧を調べたい事がありました。メールログ自体も500MB近くあり、手作業では対応しきれないので、スクリプトを作成してみました。

動作詳細: たいした事をやっていないのでプログラムを見て下さい。

設置方法: コマンドラインから実行すると標準出力に結果が出力されます。
ex) mkfromadr.sh <メールボックス名>

言語:sh

プログラム:mkfromadr.tar.gz


回線障害時リブートプログラム

概要:pingによるネットワークの死活監視を行って、ダメだったら自分自身をリブートします。

目的:PPPOE接続でサーバを立てていると上流の認証サーバ周りのメンテナンスで、接続が切れたままになることが偶にありますよね。その場合リブートを行えばなんとかなってしまいます。そのためのプログラムです。

動作詳細:pingをyahoo等に投げて、応答が無かったら'shutdown -r now'コマンドを実行するだけです。一寸したパケットロスでリブートされたらかなわないので、yahoo , google , lycos を5分間隔で2回チェックを行って全てNGの場合にリブートします。つまり、遮断を検出してからリブートするまで30分は必要なわけです。

設置方法:cronで定期的に呼び出すだけで良いです。ちなみに私は2時間間隔で呼び出しています。

言語:sh

プログラム:chkreboot.tar.gz


自動遮断プログラム

概要:許可されないユーザ名でsshを接続して来たマシンのIPアドレスをパケットフィルタリングで動的に遮断する。

目的:メンテナンス用にsshのポートを開けている人も多いと思われます。しかし、最近sshに攻撃が多いです。反撃したいのは山々ですが、反撃すると逆に問題になる可能性もあります。そこで、攻撃を検出した瞬間に攻撃元のIPアドレスを拒否するようにパケットフィルタリングで設定してしまおうと考えて作ったプログラムです。

動作詳細:sshdの出力するログから'Illegal user'という文字列があったらそれに記述されているIPアドレスを無条件にipfwコマンドで拒否してしまいます。

設置方法:'Illegal user'というエラーメッセージを出すためには、sshd_configにAllowUsers 設定を行いログイン可能なユーザ名のみ登録しておきます。次に/etc/syslog.confにプログラムへパイプで流し込む設定を行います。
----------- syslog.conf へ追加
auth.info           | /どっかのディレクトリ/chksshautherr.pl
----------- ここまで
すると、syslogからプログラムへメッセージを流し込むことが可能です。
このプログラムは300番に拒否リストを追加しますので、まずければ適当に変えて下さい。また、通常使用している端末からログインする場合、typoで閉め出されては困ってしまうので、300番未満に通常使用する端末からは許可する設定を入れておいて下さい。
ipfwはファーストマッチ適用なので回避できるでしょう。

言語:perl

プログラム:chksshautherr.tar.gz

お薦め:sshd_configのAllowUsers は、うっかりミスを防いでくれるので絶対に設定した方が良いです(実験でtestっていうユーザを作ってもAllowUsersに記述しない限り絶対にログイン出来ないので。)。


デジカメ写真一覧

概要:デジタルカメラで撮った写真を手軽に公開します。

目的:デジタルカメラで撮った写真を公開する場合、色々加工(htmlファイルを作ったり、サムネールを作ったり)が必要です。それ自身は大して大変でもないですが、もっと手軽に公開できると楽だなと考えて作った作ったプログラムです。

動作詳細:デジカメの写真にはEXIFという領域があってサムネイルや撮影年月日や撮影時の詳細な情報が入っています。それらから必要な情報を取得して一覧表形式htmlで表示する為のプログラムです。また、元画像へのリンクも設定されます。
表示サンプル例

設置方法:phpで書かれているのでphpの環境が必要です。また、写真の情報を取得する場合にexifの機能を利用するのでexifを有効にしてコンパイルしてある必要があります。写真の入っているディレクトリに解凍したプログラム一式を投げ込んで下さい。あとは、ブラウザから表示させれば表示サンプル例の様にサムネイルが表示されます。サムネイルの写真をクリックすると元データが表示されます。

言語:php

プログラム:ichiran.tar.gz


更新日:2005/01/03