6月某日。
自宅のPT2搭載Debianマシンに、海外サーバから不正ログインがされた現象が確認された。
ちなみにログインが確認されたのはシンガポールのIPアドレスであった。
なんで気が付いたかというと、自宅のマシンはほぼ毎日ログインを実施して、root権限でepgrec用のスクリプトを手動で実施しているのだが、その作業実施時にはhistoryを利用して過去に実施したコマンドを呼び出している。
今回、historyを呼び出したら、普段全く使わないコマンドが羅列されていた。
あわせてログの確認。
# cat /var/log/auth.log | grep sshd
実行すると出るわ出るわ、sshdへのアタック。
iptables利用して基本的には怪しいアクセス(パスワードアクセス失敗など)は、一回のログイン失敗でhost.denyに記載されるようdenyhost利用している。
今回はどういうわけかログインできたらしい。
仕方ないので、history呼び出して実行したコマンド全て確認。
(もしかしたら消されてるかもしれないけど)
その情報を元に、何にアクセスしたか確認実施。
あるわあるわ、ログ、Apach、epgrec、ユーザ情報追加、samba、proftpdなどにアクセスされました。
基本的にepgrec操作しようとして断念したらしき結果が残ってました。
どちらにしても、epgrecに仕掛けられたファイルの削除、Apach修正、追加ユーザの削除、パスワード変更、samba情報修正を実施。
なお、うちはproftpdは利用しているけど、ルータで外部とはftpポート開けてないので、アクセスは不可となっている。
これがもしアクセス可だったら、ファイルを抜き取られていたかもしれない。
なお、アクセスしてきた(不正ログイン実施した)IPアドレスは、これ。
219.74.8.103
その他調べると中国、フランス、韓国、カナダからもアクセス(失敗)あり。
中国に関しては、中国のIPアドレス範囲全て調べてhost.denyに登録してるので、そもそもアクセスしようとしてrefuse→ログに記載なのであまり気にしてない。
韓国フランスカナダは困ってる。まあ韓国も基本IPアドレス範囲でブロックで問題無い。
フランスに関しては、ちょっと検索してみたら、過去にアニメ録画をして抜き取ろうとした奴の話が載ってた。
同じとは思わないけど、可能性はある。
SSHに関しては、まずはrootのパスワード変更を実施し、RSA認証式に変更を実施した。
RSA認証の設定は下記を参考にした。
いなた屋 Debian etchでSSHを使う(RSA認証編)
鍵自体は過去にも何度か作ってたのでそのまま利用してもよかったが、今回のログインで抜き取られてたら意味が無いので、過去のは全て削除して、最初から作成しなおし。
これを普段使っている自分のメインマシンとスマフォに搭載しておいた。
鍵作成
# ssh-keygen
パスフレーズはきちんと設定。
# cd .ssh
# mv id_rsa.pub authorized_keys
# chmod 600 authorized_keys
id_rsaをメインマシンとスマフォに移動。
今回はローカルにあるマシンなので鍵の移動はsambaを利用した。
パスワード変更を実施してるので、すぐには再アクセスできないはずなので、この方法を取ったが、もし他のネットワークへのマシンだったりした場合は、USBメモリ等でコピーの必要がある。
あとは、SSHそのものをパスワード認証できないように修正。
#vi /etc/ssh/sshd_config
/PasswordAuthentication で検索、
PasswordAuthentication no
を設定。
また、
/PubkeyAuthentication で検索、
PubkeyAuthentication yes
であることを確認。
ファイルを保存。
# /etc/init.d/ssh restart
をして、SSH再起動、さらにSSHのクライアントを立ち上げ、
1.パスワード認証(通常のログインができるパスワード入力)でログインできない事
2.RSA鍵で認証できログインできること
を確認。
これでもう、こちらから鍵を渡さない限りログインは不可です。
その後、まだ何度もアクセスしようとしてるみたいですが、パスワード認証できないから弾かれてますね。
反省。
今回の件は、いつかはRSA認証にしなければと思ってたのを、先延ばしにしていたのが悪かった。
他にもセキュリティ強化策が色々残ってるので、それを実施したい。
今回運が良かったのは、epgrecがあくまでもLAN内からアクセスしたときだけ表示されるように設定していたこと。
もともと、VPN接続してLANからのみ設定できるようにしようとしていたのでそれが幸いして、情報がインターネット側から更新できるようにはなってなかったので、被害は殆ど無くて済んだ。
今現在はアクセスログを確認して、変なアクセスが無いか監視を実施している。
そろそろsnortとか導入したいね。