fail2ban –          おやじdemo_CentOSを使う
4月 082015
 

自宅のAtomサーバーのセキュアーな事を書きます。
CentOSサーバーですが、dovecotへの攻撃がとても多いです。
どこから匂いをかぎ分けて来るのか分かりませんが困った輩達です。

これは運用をしていれば、必ず攻撃があるものと認識をした上でiptablesやFail2banなどで防いでいますが、基本的にはIDとパスワードを頑丈な内容にするというのもとても大事かと思います。安易なtestとかinfoとかaccessなどはアウトです。

現在までの怪しい奴らを列記します。
サーバー運用している方は先回りしてdeny_ipのリストに仲間入りをさせてください。

★最近の攻撃元IP★
61.8.128.93
203.122.9.14
180.74.54.104
200.12.50.155
82.79.52.167
198.12.107.187
92.223.249.113
98.190.203.159
172.245.225.122
104.236.219.141
94.102.60.183
199.180.112.34
197.45.44.107
162.195.125.39

特に172.245.225.122はしつこいIPです。

回数にして84回のbrute_force_attackをしていました。

本当にdovecotにはFail2banは必要だと思います。

以下はAtomサーバーの#top画面です。

49 days, 15 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 129 total,   1 running, 128 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3914548k total,  2384296k used,  1530252k free,   191576k buffers
Swap:  4095992k total,        0k used,   4095992k free,  1280948k cached

今日で49日間連続で運用していますが、4GB搭載メモリで使用量が約2.4GBあります。
しかし、cacheとbuffersで1.3GBありますから、全然余裕があります。
SWAP領域はHDDに4GB空けてありますが、もちろん使用量は0です。

仕事が忙しくあまり相手にしない時でもSSHでアクセスすれば必ず応答してくれる。
攻撃も防いでいてくれて、メールで報告までしてくれる。

なんか、頼もしい部下のようなAtomサーバーです。

1月 302014
 

花粉が飛び始めました。特に関東圏については飛散が1週間昨年よりも早いとの事です。
仕事先でもくしゃみや鼻水全開で集中力が無くなります。
早めに処置をしようと思います。

さて、今回はサーバーの攻撃について書きたいと思います。
というのが、ちょっと前の投稿で攻撃についての記事を書きましたが、この2.3か月にサーバーのhttpdやNTP、そしてdovecotなどのサービスに毎日のようにしつこい攻撃跡がlogに残されています。

その対応として、攻撃先のIPを遮断したり、エラーログから自動的に該当するIPを停止させていますが、それでも攻撃が無くなりません。

毎日のようにメールで止めたIPの報告が自動的に上がってきます。

仕事が忙しい人はサーバーのlogをゆっくり見るという行為が出来ないので心配な面が多々あると思います。攻撃を受けても、サーバーが遮断、httpdであれば404で返すという一連の仕事をサーバーがこなしてくれている分には心配ありませんが、自分の知らないソフトの脆弱性や攻撃を仕掛けてくる連中の「これがダメなら、違うやり方で突破する」という考え方があるので、そのまま放置という訳にもいきません。

事前に怪しいIPはdenyIPにすべきです。

私の場合にはSSHはローカルのみでしか使えないように設定してありますが、外部から操作出来るように設定をされている方は、安易なIDやパスワードは止めて、合鍵を作るかなどの方策を取った方が良いと思います。一度突破されてしまうと裏口を作られてしまい、いつでも侵入を許す事にもなりかねます。

また、不要なサービスを停止させる事も忘れないでください。

結構な量のIPアドレスをdenyにしていますが、それでも攻撃があるという事は、その分の量が乗っ取られているという風にも考えられます。特にIPアドレスが連続しているものは、企業のIPアドレスなど使用しているように思えます。

◎個人サーバー=個人の責任
◎企業サーバー=会社(部署)の責任?

企業と言っても、大きな企業から中小企業まで存在しています。
その中でも社内にシステム部門や情報管理部門が無い企業のサーバーが狙われていると思います。

◎システム(情報部門)が無い=誰かが兼任で時間の空いている時に作業している

こんな構図になると思います。
そうなると、サーバーの日々の内容やlogなど誰が責任をもって管理しているかが曖昧になってしまい、もし問題が起きても最悪気が付かない、気が付いた時点でもう乗っ取られた後という最悪のシナリオが待っています。このような企業のIPがこのような攻撃IPに活用されてしまっているのが多いと考えます。問題点は経営者がPCの知識やセキュリティ面について投資をするつもりもないし、理解度が低いという事もあるかと思います。

「そんな企業のサーバーだから乗っ取られても当然の結果だろ」

と感じる人も多いと思いますが、兼任で管理させられていても、最低限やるべきことはやっておく、それが出来ないなら、一時的にも外部の技術者に依頼をして、攻撃されても遮断されるような機能を追加しておくべきです。後々、IPがブラックになっている事実が分かってからでは遅いですからね。最悪はネットバンクのIDやパスワードを盗んだりするような犯罪に使われる可能性だってある訳です。

我々が趣味として運用しているサーバーもきちんとした管理をしなくてはなりません。
本当にセキュアーな面が不安な人は外部との接続を停止して、その間、自分なりにファイヤーウォールを作ってから接続をするという方式も検討すべきではないかと思います。

8月 202013
 

毎日暑い日が続いています。
仕事が終わり帰って来ても、何もやる気が起きません。
でもサーバーのログチェックは毎日欠かさずやらなければなりません。

とりあえずlogwatchで昨日の状況を確認してみました。
すると・・・・・

dovecot:
Authentication Failures:
abc rhost=194.75.49.235 : 2 Time(s)
albany rhost=194.75.49.235 : 2 Time(s)
christy rhost=194.75.49.235 : 2 Time(s)
cornelius rhost=194.75.49.235 : 2 Time(s)
einstein rhost=194.75.49.235 : 2 Time(s)
marketing rhost=194.75.49.235 : 2 Time(s)
albert rhost=194.75.49.235 : 1 Time(s)
alicia rhost=194.75.49.235 : 1 Time(s)
alisa rhost=194.75.49.235 : 1 Time(s)
allison rhost=194.75.49.235 : 1 Time(s)
amorphous rhost=194.75.49.235 : 1 Time(s)
amy rhost=194.75.49.235 : 1 Time(s)
angie rhost=194.75.49.235 : 1 Time(s)
anita rhost=194.75.49.235 : 1 Time(s)
anna rhost=194.75.49.235 : 1 Time(s)
anne rhost=194.75.49.235 : 1 Time(s)
arlene rhost=194.75.49.235 : 1 Time(s)
badass rhost=194.75.49.235 : 1 Time(s)
bailey rhost=194.75.49.235 : 1 Time(s)
barbara rhost=194.75.49.235 : 1 Time(s)
barber rhost=194.75.49.235 : 1 Time(s)
baritone rhost=194.75.49.235 : 1 Time(s)
bassoon rhost=194.75.49.235 : 1 Time(s)
batch rhost=194.75.49.235 : 1 Time(s)
becky rhost=194.75.49.235 : 1 Time(s)
berkeley rhost=194.75.49.235 : 1 Time(s)
betsie rhost=194.75.49.235 : 1 Time(s)
betty rhost=194.75.49.235 : 1 Time(s)
bishop rhost=194.75.49.235 : 1 Time(s)
cardinal rhost=194.75.49.235 : 1 Time(s)
caren rhost=194.75.49.235 : 1 Time(s)
carole rhost=194.75.49.235 : 1 Time(s)
cathy rhost=194.75.49.235 : 1 Time(s)
chen rhost=194.75.49.235 : 1 Time(s)
collins rhost=194.75.49.235 : 1 Time(s)
daemon: 1 Time(s)
erica rhost=194.75.49.235 : 1 Time(s)
gao rhost=194.75.49.235 : 1 Time(s)
gina rhost=194.75.49.235 : 1 Time(s)
golf rhost=194.75.49.235 : 1 Time(s)
guo rhost=194.75.49.235 : 1 Time(s)
hamlet rhost=194.75.49.235 : 1 Time(s)
huang rhost=194.75.49.235 : 1 Time(s)
informix rhost=194.75.49.235 : 1 Time(s)
kerrie rhost=194.75.49.235 : 1 Time(s)
key rhost=194.75.49.235 : 1 Time(s)
kristen rhost=194.75.49.235 : 1 Time(s)
kristie rhost=194.75.49.235 : 1 Time(s)
kristin rhost=194.75.49.235 : 1 Time(s)
lambda rhost=194.75.49.235 : 1 Time(s)
lara rhost=194.75.49.235 : 1 Time(s)
larry rhost=194.75.49.235 : 1 Time(s)
leland rhost=194.75.49.235 : 1 Time(s)
li rhost=194.75.49.235 : 1 Time(s)
linda rhost=194.75.49.235 : 1 Time(s)
lisa rhost=194.75.49.235 : 1 Time(s)
lizzy rhost=194.75.49.235 : 1 Time(s)
louis rhost=194.75.49.235 : 1 Time(s)
love rhost=194.75.49.235 : 1 Time(s)
lucy rhost=194.75.49.235 : 1 Time(s)
marci rhost=194.75.49.235 : 1 Time(s)
maria rhost=194.75.49.235 : 1 Time(s)
marvin rhost=194.75.49.235 : 1 Time(s)
meagan rhost=194.75.49.235 : 1 Time(s)
nancy rhost=194.75.49.235 : 1 Time(s)
network rhost=194.75.49.235 : 1 Time(s)
news rhost=194.75.49.235 : 1 Time(s)
newton rhost=194.75.49.235 : 1 Time(s)
nita rhost=194.75.49.235 : 1 Time(s)
olivia rhost=194.75.49.235 : 1 Time(s)
orca rhost=194.75.49.235 : 1 Time(s)
orwell rhost=194.75.49.235 : 1 Time(s)
oxford rhost=194.75.49.235 : 1 Time(s)
pacific rhost=194.75.49.235 : 1 Time(s)
pam rhost=194.75.49.235 : 1 Time(s)
pat rhost=194.75.49.235 : 1 Time(s)
patricia rhost=194.75.49.235 : 1 Time(s)
philip rhost=194.75.49.235 : 1 Time(s)
robin rhost=194.75.49.235 : 1 Time(s)
summercamps rhost=194.75.49.235 : 1 Time(s)
wu rhost=194.75.49.235 : 1 Time(s)
www rhost=194.75.49.235 : 1 Time(s)
yang rhost=194.75.49.235 : 1 Time(s)
zhao rhost=194.75.49.235 : 1 Time(s)
Unknown Entries:
check pass; user unknown: 89 Time(s)

dovecotが辞書攻撃を受けておりました。
まぁ1ヶ月に一度くらいは、以前からもありました。
ちょくちょく、Logを見てはdeny-IPにセットしていましたが、これだけえげつなくやられると腹が立ってきますね~。

ちょっと前に伏線がありまして、導入しているFail2banに引っかかっていたIPです。
何度もbannedされてIPを止められていました。Fail2banの場合には、同じIDで何回かパスワードを入力ミスするとbannedになります。bannedになるとIPを一時的に止められてしまいますが、これが、伏線としてあり、どのIDも1回、2回の攻撃で止めbannedにならないように再度、攻撃をしてきたと言うことになります。

そこで、swatchを導入することにしました。
swatchの場合にはIPで何回か指定された回数のエラーをすると、IPを止める事の出来るログ監視ツールです。突破されていないから大丈夫ではあるのですが、無駄なリソースを使ってしまうので動作も重たくなるし、余計な負荷をサーバーにかけないという観点から導入を決めました。

導入に際して参考にさせて頂いたサイトは・・・CentOSで自宅サーバー構築 です。
いつもいつも感謝です。

ちょっと変わったところは、レポジトリがRPMからEPELでインストールが出来る事でした。
これはCentOS5とCentOS6の違いか32bit、64bitの違いかと思います。CentOS6.4-64bitの方はEPELでOKかと思います。また、perlの一部が不足して、logにエラー表示が出ますが、[Can’t locate *.pm in @INC]その場合には、# yum -y install perl-File-Tail でインストールして下さい。

再度、logを確認(パスは/var/log/swatch/swatch.logです)してエラーが無ければ成功です。あとは・・・

# chmod +x /etc/rc.d/init.d/swatch  起動用スクリプトに実行権を与え
# /etc/rc.d/init.d/swatch start     swatchのサービスを開始して
# chkconfig swatch on        自動起動設定をして
# chkconfig –list swatch       確認をすれば出来上がりです。

※ちょっと端折って書きましたので抜けがあるかも知れませんので、必ずサーバー構築の際には確認をお願いします。

これでATOM鯖がどうなるか?
辞書攻撃でbannedになるのが楽しみになってきました。