WordPressの記事をWordpressに書くと、もれなく何処からともなく、ログインしようとしてくる奴らが集まってくる。
ログファイルには、phpの脆弱性を狙った攻撃の痕跡が。
自分の家の中のローカル環境ではごまかしが効いても、外では効かない。外は世紀末状態だ。
”彼ら”に対する最初の対策はなんだろうか。
まず、家からVPSにリモートアクセスしなければならない以上、SSHを利用しなければならないだろう。
侵入者はroot、admin、guestのユーザー名で最初にアクセスしようと狙ってくる。ここでパスワードが六文字以内だったり、辞書に乗っているような単語だったり、以下の様な”2012年度最悪パスワード”だったら、小学生にでも簡単にハック出来る。
password
123456
12345678
abc123
qwerty
monkey
letmein
dragon
111111
baseball
iloveyou
trustno1
1234567
sunshine
master
123123
welcome
shadow
ashley
football
jesus
michael
ninja
mustang
password1
その他にも、英語、日本語に関わらず、辞書に載ってる単語、固有名詞、二つの単語を連結したもの、apple123のようなに前後に数字を付け加えたものも簡単にテストされ突破されてしまう。
個人情報が漏洩した場合は、郵便番号、電話番号、誕生日、ナンバープレートなども危ない。
ちょっとひねったつもりの、aを@とかoを0、bを6にしたり、逆スペルにしてもツールで突破されてしまう。
sshへの辞書攻撃の例
10分頃から辞書攻撃でサイトのログインパスワード見つける実践
一つ目の対策としてはパスワードの強度テスト等のサービスを使って、普通以下のパスワードの使用を避けなければならい。 さくらのVPSで最初にしなければならないのは、初回起動の場合、rootのパスワード変更をして、サーバーを守らなければならない。 [root@centos ~]# passwd ユーザー root のパスワードを変更。 新しいパスワード: 新しいパスワードを再入力してください: passwd: 全ての認証トークンが正しく更新できました。 次にSSHの設定が必要になる。
通常はSSHは鍵方式にして、接続と、通信内容両方をまもらなければならない。 鍵方式とは、秘密鍵と公開鍵という二つのペアの鍵を作り出し、秘密鍵は自分だけが保持し、公開鍵をリモートのサーバー等暗号化して通信したいところに置くものである。 例えるなら、鍵のかけ方は公開するが、開けるほうの鍵は自分しか持たないということ。 CentOSにユーザーを追加
[root@centos ~]# useradd ken ←kenというユーザーを追加 [root@centos ~]# passwd ken ←kenのログインパスワードを設定 ユーザー ken のパスワードを変更。 新しいパスワード: ←十分な強度のパスワード入力 新しいパスワードを再入力してください: ←再入力 passwd: 全ての認証トークンが正しく更新できました。 [root@centos ~]# 公開鍵保存ディレクトリ作成 [ken@centos ~]$ mkdir .ssh ←kenのホームディレクトリに.sshというディレクトリを追加。このディレクトリ内に authorized_keysという名前で公開鍵を保存。 sshがデフォルトでこれを公開鍵ファイ ルとみなして 読みに来るため [ken@centos ~]$ chmod 700 .ssh ←.sshディレクトリはkenだけが全てのアクセスを出来るようにする tera termでの鍵生成 鍵生成をクリックして、パスフレーズを入力して、公開鍵と秘密鍵両方を、保存する。 id_rsa が秘密鍵 id_rsa.pubが公開鍵 ![]() tera term上にid_rsa.pubをドラッグアンドドロップすればホームディレクトリに送信できるのでそれを.ssh配下にauthorized_keysというファイル名でコピーする。 [ken@centos ~]$ cp id_rsa.pub .ssh/authorized_keys [ken@centos ~]$ rm id_rsa.pub ←これはもういらないので削除 [ken@centos ~]$ chmod 600 .ssh/authorized_keys sshdの設定ファイルを編集する [root@centos ~]# vim /etc/ssh/sshd_config Port 22 ↓ Port ( 65535までの 任意の番号) ←22だと攻撃対象になりやすいので変更 #PermitRootLogin yes ↓ PermitRootLogin no ← rooでのログインを禁止 #PasswordAuthentication yes ↓ PasswordAuthentication no ← パスワードでのログインを禁止(鍵方式によるログインのみ許可) #PermitEmptyPasswords no ↓ PermitEmptyPasswords no ← パスワードなしでのログインを禁止 sshdの再起動 [root@centos ~]# service sshd restart sshd を停止中: [ OK ] sshd を起動中: [ OK ] [root@centos ~]# |