Index.
私の自宅サーバでは自作のPOPbeforeその他サービスという意味不明なシェルによってPOPで受信したら一定時間TCP Wrapperに対応してるサービスに関して接続元IPに許可を与える仕組みを使っています。
原理はPOPbeforeSMTPとかとほぼ一緒ですw
昨今の設定の甘いSSHを開いているサーバへのアタックの増加の影響か微妙に需要があるようなので
後悔公開してみたいと思います。
・概要
POPbeforeTELNETやPOPbeforeSSH、POPbeforeその他のサービスを実装するために作った常駐するタイプのシェルスクリプト
デフォルト設定では、20秒に一回動作する。
IPが許可される時間はdracのタイムアウトになるまでの時間と同じである。
ただし、TELNETやSSHは一度セッションが張られれば切られない限りセッションは張られ続け、DBファイルからIPが消えたからといってセッションが切断されることは無い。
・動作環境
とりあえずTCP Wrapper、dracd、pop、が正常に動作してること。
推奨動作環境はRedhatLinux、Fedora、CentOSぐらいかな。
動作確認はRedhatLinux8で確認を取っています。
・必要パッケージというか依存環境
db3、dracdが必要です。
・注意
hosts.allow ファイルを直接書き換えるためroot権限で起動してください。
子プロセスを作って親死ぬとかいう高度なことやってないので、バックグラウンドで実行してください。
このスクリプトは自己責任で使ってください。
特にそんあ深刻な影響は無いとは思いますが、システムに重要なファイルをいじるので心してください。
あと、POP認証に関してはできるだけセキュアな手法を採用することをオススメします。
ユーザー、パスワードが漏れればどんなセキュアなサーバでも意味ありませんw
まぁ、セキュアなサーバは漏れにくいとは思いますが。
できるだけ、hosts.allowファイルは独自にバックアップしとくことをオススメします。
・インストール
既存のhosts.allow に以下の一文を書き加えてください。
# access-allow
・初期設定
スクリプト上部のDefault setting を環境に合わせて変更して下さい。
初期状態ではtelnetでの使用を想定して作成しています。
一工夫すれば、複数のサービスに関しても適用可能です。
(SERVISE変数を止め、引数として渡したり、サービスを羅列したファイルを渡すなど)
Temporaryファイルは容易に想像できるようなファイル名はやめて下さい。
・ダウンロード
access-allow.sh ver1.2
・改変、再配布
全面的に許可します。できればコピーライト消さないでくれるとうれしいですが。
・更新履歴
2005/08/18 いきなりVer1.2配布開始
・注意点
スクリプト内にあるコメントの英語はExcite翻訳に頼ってるのでおかしいですw
とりあえず、英語については突っ込まないで下さい。
どうしても気になる方は自分で勝手に直して下さい。
苦情は受け付けませんが、”ココ”を直せばもっとスマートになるよ。みたいなコメントは大変ありがたいですw
掲示板か
メールに宜しくお願いします。
あと最後にもう一回、このスクリプトつかって起きたいかなる損害も責任は一切負いません。
自己責任で使用してください。