- 締切済み
Debian: Swatchパッケージについて
サーバーに対するある特定のIPアドレスから不正なアクセスが3回以上試みた場合、動的に iptable にてそのトラフィックを drop するため、swatch にて常時ログ監視かつ、スクリプトにて iptable にリストを追加するということを行いたいと考えております。必要なパッケージとして swatch をインストールしようとしたのですが、そのインストで問題が発生しております。 apt-get install swatch にて swatch のパッケージをインストールしたのですが、/etc/init.d/swatch と /etc/swatch.conf の肝心の両ファイルが存在しません。下記公式サイトにてパッケージ内容を確認したのですが、そのリストに該当の2つのファイルが存在しませんでした。 http://packages.debian.org/stable/admin/swatch 無理矢理、自分でファイルを作成し、/etc/init.d/swatch start と起動を試みたのですが、 : bad interpreter: No such file or directory と言うエラーメッセージを受け取ってしまいました。そのファイルは間違いなく存在するのですが…。 ./sh /etc/init.d/swatch をすると : numeric argument required: exit: 0 というエラーが帰ってきます。 /etc/init.d/swatch の設定ファイルとして参考にしたのが、下記サイトです。 http://www.kids-clinic.jp/uni/deb_sec.html どなたか、問題解決方法をご存知でしたら、よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mtfoggy
- ベストアンサー率14% (37/255)
>無理矢理、自分でファイルを作成し、/etc/init.d/swatch start と起動を試みたのですが、 あなたがどんなスクリプトを作ったのか、サッパリわからないので 「がんばってデバッグして下さい。」 としかアドバイスできません。 がんばってください。
お礼
http://cubic9.com/Linux/Swatch/ http://www.kids-clinic.jp/uni/deb_sec.html 上記2つのサイトを元に再度設定を行った結果無事に動作致しました。 原因は改行コード等かもしれません…。 失礼致しました。
補足
>あなたがどんなスクリプトを作ったのか、サッパリわからないので /etc/init.d/swatch の設定ファイルとして参考にしたのが、下記サイトです。 http://www.kids-clinic.jp/uni/deb_sec.html と記載したつもりでしたが。 #!/bin/sh PATH="/sbin:/bin:/usr/sbin:/usr/bin" NAME="swatch" DAEMON="/usr/bin/swatch" DESC="simple watcher" CONFFILE="/etc/swatch.conf" #LOGFILE="/var/log/secure" LOGFILE="/var/log/auth.log" PIDFILE="/var/run/swatch.pid" SCRIPTDIR="/var/log/swatch" OPTS="--config-file $CONFFILE --tail-file $LOGFILE --pid-file=$PIDFILE --script-dir=$SCRIPTDIR \ --awk-field-syntax --daemon" test -x $DAEMON || exit 0 start() { if [ ! -f "$CONFFILE" ]; then echo "Error: $CONFFILE does not exist." exit 1 fi if [ ! -f "$LOGFILE" ]; then echo "Error: $LOGFILE does not exist." exit 1 fi if [ -f "$PIDFILE" ] then echo "Error: $NAME is already running." else /usr/bin/nohup $DAEMON $OPTS & fi } stop() { if [ -f "$PIDFILE" ] then PID=`cat $PIDFILE` if ps h $PID > /dev/null then pkill -P $PID rm -f /root/.swatch-script* else echo "Error: $NAME is not running, but PID file exists. Deleting it." fi rm -f $PIDFILE else echo "Error: $NAME is not running." fi } case "$1" in start) echo "Starting $DESC: $NAME" start ;; stop) echo "Stopping $DESC: $NAME" stop ;; restart) echo "Restarting $DESC: $NAME" stop sleep 1 start ;; *) echo "Usage: $0 start|stop|restart" exit 1 ;; esac exit 0 です。