このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

swatch_action.shにて適切なIPアドレスを拾わない このメッセージに返信する
日時: 2020/05/14(Thu) 19:24
名前: 松木
URL:
いつもお世話になっております。
ふとした事から、迷惑メール対策用にswatchを利用しようと試みていますが、
以下の設定では、IPアドレスとして208.67.222.222をブロックしてしまいます。
何が間違いなのでしょうか?
ご教示ください。
maillog.confの内容です。

watchfor /postfix.*Domain not found/
pipe "/usr/local/bin/swatch_action.sh ' ' 10 Block"
throttle=00:00:10

以下がログです。
test.log

May 14 19:02:33 xxxx postfix/smtpd[26366]: NOQUEUE: reject: RCPT from unknown[134.73.221.214]: 450 4.1.8 <nissenrenid@wfxxm40c81.208.67.222.222>: Sender address rejected: Domain not found; from=<nissenrenid@wfxxm40c81.208.67.222.222> to=<xxx@xxxxx.co.jp> proto=ESMTP helo=<mail05.a04ayouozaon.shop>

swatch -c maillog.conf -f test.log

208.67.222.222

がブロックされます。
10番目を指定しているので、134.73.221.214がブロックされてるべきだとおもうのですが・・・
記事編集 編集
Re: swatch_action.shにて適切なIPアドレスを拾わない このメッセージに返信する
日時: 2020/05/15(Fri) 10:14
名前: stranger
URL:
ここのサイトのswatch_action.shの構文に合わせて
awk -F " " "{print $"10"}" test.log | sed -e 's/.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/p' -e d
を実行すると
134.73.221.214
になりますよね
あとはよくわかりません
記事編集 編集
Re: swatch_action.shにて適切なIPアドレスを拾わない このメッセージに返信する
日時: 2020/05/15(Fri) 14:16
名前: 松木
URL:
>ここのサイトのswatch_action.shの構文に合わせて
>awk -F " " "{print $"10"}" test.log | sed -e 's/.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/p' -e d
>を実行すると
>134.73.221.214
>になりますよね
>あとはよくわかりません

そうなんです。
という事で、echo文などを入れて、調べてみました。
すると、
IPADDR=`echo $LOG|awk -F "$1" '{print $"$2"}'`
の結果が意図したとおりの文字列ではなく、LOGの行頭から取得されていました。
あれこれ悩んだ末、awkを使わずにcutで代用したところ、うまく取得できました。
IPADDR=`echo $LOG|cut -d "$1" -f "$2"`

これで解決とします。
ありがとうございました。
記事編集 編集
Re: swatch_action.shにて適切なIPアドレスを拾わない このメッセージに返信する
日時: 2020/05/15(Fri) 16:53
名前: stranger
URL:
swatch_action_test.sh

#!/bin/bash

read LOG < test.log
IPADDR=`echo $LOG|awk -F " " "{print $"10"}"`
echo "$IPADDR"|sed -e 's/.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/p' -e d

readでtest.logを読み込んでLOG変数に収納する
echoでLOG変数を表示してawkで切り出してIPADDR変数に収納する
echoでIPADDR変数を表示してsedでIPアドレスのみ取り出す

swatchは起動スクリプトのなかで設定ファイルから該当するログファイルを読み出して
swatch_action.shに渡して処理します

設定ファイルにtest.logを記入して
swatchをbashスクリプトの中で実行してみたらどうなりますか
起動スクリプトのこの部分ね
WATCHLOG=`grep "^# logfile" $conf | awk '{ print $3 }'`
swatch --config-file $conf --tail-file $WATCHLOG
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -