海外からのスパームメール対応qmail+ipfilter
No:195 Time[2008-10-28 02:44:28]
海外からのスパームメール対応qmail+ipfilter
ある日突然すさまじいspamメールがやってきた。
今までHP作成には熱心だったがメールについては
関心がなかった。まあ適当に使えるからいいだろうくらいに考えていたら、HDが回りっぱなしである。
そこでqmailのログを見ていたらなにやらipが同じ所にむけて書かれている。
ははんここが原因だなとまずは。
/var/qmail/control/badmailfrom
@163.com
とspm拒否メールを書いてみる。
そして163.comを見てみると中国だ。
又中国か。。。むかつきながら
しかし一向にアクセスは減らない。
/var/qmail/bin/qmail-qstat
でキューを確認するとすさまじい勢いで増えていく。
そしてふと思ったメールサーバーに届いて振り分けていたんではそもそも不正なspamをcpu処理能力を大きく奪われてしまう。
メールが届く前に処理しなくては。
ではメールを送ってくる相手のipを拒否すればよかろう。
安易にipfilterに拒否してみたが一向に減らない。
163.comのIPブロックを入れて拒否してみたが減らない
おかしい。
それで少し悩んだり、自分ならspamをどう送るか考えてみたり、はたまたそもそも、あまり
関心がなくて忘れてしまっていたipfilterの設定を見直してみたりした。
もし自分がspamを送ると考えたらきっと返信先は偽造するだろう。
偽造して例えば、フリーメールを使うだろう。
まてよということは、偽造されたIPにたいしてqmailがそんなアドレスないよとご丁寧に答えたら
うちがメールを送信することになる。
すると、大量のバウンスメール待ちが発生する。
本来こういったメールは無視するべき品物なのにご丁寧にqmailは答えるのである。
ああ、qmailのセキュリティが高いのはあくまで進入その他に対して高いだけであって、
所詮は今の時代背景にあうような、spamメールが送られることに対するさまざまな弊害まで考えては
作られていないでもバウンスメールのことは考えて
/var/qmail/alias/.qmail-default
からゴミメールとして処理していたはず。事実すこしは、届いている。
しかしほとんどはバウンスメールとかしている。
しかし、qmailに処理が移ってしまっては処理のcpuパワーが食われて遅いということなど考えると
ipfilterで該当するものを殺さないといけない。
ちょぃとまてよ、その前提にたてば、163.comのipがqmailにのっていたのは、こちらから送信しているバウンズメールか!
ごめんなさい。
ごめんなさい。
ちょいと中国のせいにしました。
ごめんなさい。
それでは、ipfilterでいらないところからのspamをすべてブロックすることにする。
qmailのログなんてみてもどこから配送されてきたなんてことはわからない。
そこで
netstat -n
してみた。
ななんだ、このたくさんの攻撃は!
MTAレベルでさばく以外に正当なメールの場合もあるからできないんだから。
そしてipfilterの設定を見直して、
前に作った内容追加する。
vi /etc/ipf.rules
block in log quick from any to any with ipopts
block in log quick proto tcp from any to any with short
block in quick from 10.0.0.0/8 to any
block in quick from 172.16.0.0/12 to any
block in quick from 192.168.0.0/16 to any
block in quick from 0.0.0.0/8 to any
block in quick from 169.254.0.0/16 to any
block in quick from 192.0.2.0/24 to any
block in quick from 224.0.0.0/4 to any
block in quick from 240.0.0.0/4 to any
block in log all
block out all
pass in quick on lo0 all
pass out quick on lo0 all
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 80 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 443 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 21 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 14412 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 587 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 110 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 53 keep state
pass in quick proto udp from any to xxx.xxx.xxx.xxx/32 port = 53 keep state
pass out quick proto tcp/udp from any to any keep state
pass out quick proto icmp from any to any keep state
↓ここから
block in quick from 203.116.173.0/24 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 220.181.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 203.142.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 124.155.211.0/24 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.56.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.59.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.220.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.221.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.222.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.223.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.224.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.225.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.226.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.227.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 202.136.0.0 /16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 210.254.61.224/29 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 203.211.146.0 /16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.112.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.113.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.114.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.115.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.116.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.117.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.118.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.119.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.120.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.121.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
↑ここまでがspam対策。
pass in proto tcp from any to xxx.xxx.xxx.xxx/32 port = 25 flags S/SA keep state
ここで、あまりフィルターに興味がない人でおちいりやすい話。
quickはその行の条件を満たせば後のことは無視することになるのでだから、最初に
block in log all
block out all
ですべての通信を拒否する設定をするけども決してquickは入れてはいけない。
何もつながらなくなる。quickを入れなければ順番に条件を読んでいき最後のものが繁栄される。
だからこの場合は、
すべて拒否するけども後から改変ok
サービスとして必要なポートからの入力を受け付けてあとの条件は無視
spamで拒否するipはそれで決定あとの条件は無視
最後に25番ポートにくるipは許可します。ただし、それ以前の条件がある場合はそちら優先。
といったフィルターになります。
これを設定して
netstat -nすると見事こなくなりました。
では、ここでひとつ疑問がる人がいると思います。
netstat -nしても、でてくるipだけ拒否していては膨大な数かかないといけないでそと
そうです。だからそのipを
http://www.whois.sc/
で調べて、許可されてるブロックごとサブネットで範囲指定して拒否するのです。
今回拒否したとこはほとんど、シンガポールと台湾でした。
ちなみに
ipfstat
すると
bad packets: in 0 out 0
IPv6 packets: in 0 out 0
input packets: blocked 1246 passed 673 nomatch 0 counted 0 short 0
output packets: blocked 0 passed 687 nomatch 0 counted 0 short 0
ほらね、1246もブロックしてる。どんだけくるのよ。。。。
さあ、qmailの突然のHDかちゃかちゃに困ってしまったそこのあなた。
その場でありがとうといいなさい。
ふふ。
追伸:どんどん世界中から送られてきりがない。
よくよく調べてみると、これらはダブルバウンスメールらしい。
これ自身はqmailの重大なバグといってもいいだろう。
これを放置しつづければ、ネットインフラ自身を食いつぶす。
そもそもダブルバウンスを無視するposfixに移行するのが吉。
ということでpostfixにすることにした。
さようなら、qmail。
と思ったけど、なんか納得できなくてバウンスメールもあります。ダブルバウンスメールもあります。がどう考えてもおかしい。
なんで、.qmail-defaltで設定しているのに
こんなにもメールがくるんだ。
vi /etc/tcp.smtpはちゃんとメールが送れないようになっている!?
!!!!!!!!!!!!!!!!!!!!!!!!!
ちょいとまてよよよよよよよよよよよ
netstat すると
確かに拒否しているのに、このサーバー以外のホストからのアクセスがある!
これはははははははははははは
管理するためのwindowsのpcでる。がこれはnetのルーターの中、要するに
サーバー--------ルーター----windows
tlsがfreebsd7.0から利かなくなったので、いろいろ試しているときにルーターのIP
からはサーバーをメール送信できるようにした。
どうもそのルーター経由でサーバーを経由してspamの踏み台にされたらしい!
なんたる汚点!
しかも、サーバーだけを既存のspamチェックにかけてもこれでは、サーバーしかチェックしないから合格するのは間違いない。
こりゃtlsがfreebsd7.0でうまく動かなかったからといって安易にipで開放する人ふえてまさか踏み台にされてるとは思わないうちに踏み台にされちゃうことがあるんだろう。ここ2日くらいへんなメールがいった外国の人ごめんなさい。こりゃ規制の安物ルーターに問題があるのか、まあ、優秀なspamソフトが自動機にしたんだとは思うけど、
なんてこったい。
これじゃいくらバウンスメールだけ処理しても手におえないよね。
メールは興味なくて適当だったからな~
バウンスメールばかりだと思うまえにまさかの設定ミスも考えないといけないですね。
ある日突然すさまじいspamメールがやってきた。
今までHP作成には熱心だったがメールについては
関心がなかった。まあ適当に使えるからいいだろうくらいに考えていたら、HDが回りっぱなしである。
そこでqmailのログを見ていたらなにやらipが同じ所にむけて書かれている。
ははんここが原因だなとまずは。
/var/qmail/control/badmailfrom
@163.com
とspm拒否メールを書いてみる。
そして163.comを見てみると中国だ。
又中国か。。。むかつきながら
しかし一向にアクセスは減らない。
/var/qmail/bin/qmail-qstat
でキューを確認するとすさまじい勢いで増えていく。
そしてふと思ったメールサーバーに届いて振り分けていたんではそもそも不正なspamをcpu処理能力を大きく奪われてしまう。
メールが届く前に処理しなくては。
ではメールを送ってくる相手のipを拒否すればよかろう。
安易にipfilterに拒否してみたが一向に減らない。
163.comのIPブロックを入れて拒否してみたが減らない
おかしい。
それで少し悩んだり、自分ならspamをどう送るか考えてみたり、はたまたそもそも、あまり
関心がなくて忘れてしまっていたipfilterの設定を見直してみたりした。
もし自分がspamを送ると考えたらきっと返信先は偽造するだろう。
偽造して例えば、フリーメールを使うだろう。
まてよということは、偽造されたIPにたいしてqmailがそんなアドレスないよとご丁寧に答えたら
うちがメールを送信することになる。
すると、大量のバウンスメール待ちが発生する。
本来こういったメールは無視するべき品物なのにご丁寧にqmailは答えるのである。
ああ、qmailのセキュリティが高いのはあくまで進入その他に対して高いだけであって、
所詮は今の時代背景にあうような、spamメールが送られることに対するさまざまな弊害まで考えては
作られていないでもバウンスメールのことは考えて
/var/qmail/alias/.qmail-default
からゴミメールとして処理していたはず。事実すこしは、届いている。
しかしほとんどはバウンスメールとかしている。
しかし、qmailに処理が移ってしまっては処理のcpuパワーが食われて遅いということなど考えると
ipfilterで該当するものを殺さないといけない。
ちょぃとまてよ、その前提にたてば、163.comのipがqmailにのっていたのは、こちらから送信しているバウンズメールか!
ごめんなさい。
ごめんなさい。
ちょいと中国のせいにしました。
ごめんなさい。
それでは、ipfilterでいらないところからのspamをすべてブロックすることにする。
qmailのログなんてみてもどこから配送されてきたなんてことはわからない。
そこで
netstat -n
してみた。
ななんだ、このたくさんの攻撃は!
MTAレベルでさばく以外に正当なメールの場合もあるからできないんだから。
そしてipfilterの設定を見直して、
前に作った内容追加する。
vi /etc/ipf.rules
block in log quick from any to any with ipopts
block in log quick proto tcp from any to any with short
block in quick from 10.0.0.0/8 to any
block in quick from 172.16.0.0/12 to any
block in quick from 192.168.0.0/16 to any
block in quick from 0.0.0.0/8 to any
block in quick from 169.254.0.0/16 to any
block in quick from 192.0.2.0/24 to any
block in quick from 224.0.0.0/4 to any
block in quick from 240.0.0.0/4 to any
block in log all
block out all
pass in quick on lo0 all
pass out quick on lo0 all
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 80 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 443 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 21 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 14412 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 587 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 110 flags S/SA keep state
pass in quick proto tcp from any to xxx.xxx.xxx.xxx/32 port = 53 keep state
pass in quick proto udp from any to xxx.xxx.xxx.xxx/32 port = 53 keep state
pass out quick proto tcp/udp from any to any keep state
pass out quick proto icmp from any to any keep state
↓ここから
block in quick from 203.116.173.0/24 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 220.181.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 203.142.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 124.155.211.0/24 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.56.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.59.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.220.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.221.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.222.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.223.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.224.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.225.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.226.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 61.227.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 202.136.0.0 /16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 210.254.61.224/29 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 203.211.146.0 /16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.112.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.113.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.114.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.115.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.116.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.117.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.118.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.119.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.120.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
block in quick from 59.121.0.0/16 to xxx.xxx.xxx.xxx/32 port = 25
↑ここまでがspam対策。
pass in proto tcp from any to xxx.xxx.xxx.xxx/32 port = 25 flags S/SA keep state
ここで、あまりフィルターに興味がない人でおちいりやすい話。
quickはその行の条件を満たせば後のことは無視することになるのでだから、最初に
block in log all
block out all
ですべての通信を拒否する設定をするけども決してquickは入れてはいけない。
何もつながらなくなる。quickを入れなければ順番に条件を読んでいき最後のものが繁栄される。
だからこの場合は、
すべて拒否するけども後から改変ok
サービスとして必要なポートからの入力を受け付けてあとの条件は無視
spamで拒否するipはそれで決定あとの条件は無視
最後に25番ポートにくるipは許可します。ただし、それ以前の条件がある場合はそちら優先。
といったフィルターになります。
これを設定して
netstat -nすると見事こなくなりました。
では、ここでひとつ疑問がる人がいると思います。
netstat -nしても、でてくるipだけ拒否していては膨大な数かかないといけないでそと
そうです。だからそのipを
http://www.whois.sc/
で調べて、許可されてるブロックごとサブネットで範囲指定して拒否するのです。
今回拒否したとこはほとんど、シンガポールと台湾でした。
ちなみに
ipfstat
すると
bad packets: in 0 out 0
IPv6 packets: in 0 out 0
input packets: blocked 1246 passed 673 nomatch 0 counted 0 short 0
output packets: blocked 0 passed 687 nomatch 0 counted 0 short 0
ほらね、1246もブロックしてる。どんだけくるのよ。。。。
さあ、qmailの突然のHDかちゃかちゃに困ってしまったそこのあなた。
その場でありがとうといいなさい。
ふふ。
追伸:どんどん世界中から送られてきりがない。
よくよく調べてみると、これらはダブルバウンスメールらしい。
これ自身はqmailの重大なバグといってもいいだろう。
これを放置しつづければ、ネットインフラ自身を食いつぶす。
そもそもダブルバウンスを無視するposfixに移行するのが吉。
ということでpostfixにすることにした。
さようなら、qmail。
と思ったけど、なんか納得できなくてバウンスメールもあります。ダブルバウンスメールもあります。がどう考えてもおかしい。
なんで、.qmail-defaltで設定しているのに
こんなにもメールがくるんだ。
vi /etc/tcp.smtpはちゃんとメールが送れないようになっている!?
!!!!!!!!!!!!!!!!!!!!!!!!!
ちょいとまてよよよよよよよよよよよ
netstat すると
確かに拒否しているのに、このサーバー以外のホストからのアクセスがある!
これはははははははははははは
管理するためのwindowsのpcでる。がこれはnetのルーターの中、要するに
サーバー--------ルーター----windows
tlsがfreebsd7.0から利かなくなったので、いろいろ試しているときにルーターのIP
からはサーバーをメール送信できるようにした。
どうもそのルーター経由でサーバーを経由してspamの踏み台にされたらしい!
なんたる汚点!
しかも、サーバーだけを既存のspamチェックにかけてもこれでは、サーバーしかチェックしないから合格するのは間違いない。
こりゃtlsがfreebsd7.0でうまく動かなかったからといって安易にipで開放する人ふえてまさか踏み台にされてるとは思わないうちに踏み台にされちゃうことがあるんだろう。ここ2日くらいへんなメールがいった外国の人ごめんなさい。こりゃ規制の安物ルーターに問題があるのか、まあ、優秀なspamソフトが自動機にしたんだとは思うけど、
なんてこったい。
これじゃいくらバウンスメールだけ処理しても手におえないよね。
メールは興味なくて適当だったからな~
バウンスメールばかりだと思うまえにまさかの設定ミスも考えないといけないですね。