読者です 読者をやめる 読者になる 読者になる

CentOS6.5+nginx1.6+PHP5.6+MySql5.6+WordPres4.0 構築日記 その4

VPS基本設定(2/2)

前回の続き。 今回やることは以下の通り。

  • rootユーザでの直接ログインを不可に
  • SSH接続を公開鍵認証に変更
  • SSHポート番号の変更
  • iptableの編集

rootユーザでの直接ログインを不可に

今のままだと、rootユーザのパスが割れたが最後、大変なことになってしまう。 なので、rootユーザで直接SSHログインできないようにする。

$ sudo vi /etc/ssh/sshd_config

#rootユーザでのログイン可否
#PermitRootLogin yes
↓ コメントアウトを解除し、noにする
PermitRootLogin no

#ログインユーザの限定
AllowUsers testUser

以上でこのサーバにはtestUserしかログインできなくなった SSHDを再起動して、動作を確認する。

# sshdの再起動
$ sudo service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

※NGとなる場合は、先に編集したsshd_configの編集誤りの可能性がある。

SSH接続を公開鍵認証に変更

rootユーザで直接ログインすることは不可能になったものの、 作業ユーザは依然パスワードのみでアクセスが可能な状況。 これをどうにかする。

keyPairの生成

まず、teratermを使用して公開鍵と秘密鍵のkeyPairを生成する。 「設定」⇒「SSH鍵生成」で開いたウインドウで生成ボタンを押下し、 鍵のパスフレーズを入力した上で、公開鍵と秘密鍵を保存しておく。

サーバへの転送

teratermから転送してもいいけど、折角なのでダウンロードしたばかりのwinSCPを使う。

起動時に表示されるウインドウにて「新しいサイト」を選択し、 転送プロトコルからパスワードまで入力する。 ユーザはtestUserを利用する。 (というか先ほどの手順によってtestUserしかログインできない)

転送プロトコルはここではSFTPもしくはSCPを選択しておく。 ※あんまり調べてないけどSFTPの方が遅いけど高機能らしい。 そうすると、こんな画面が出てくる。

左側がローカル、右側がサーバ

早速前の手順で作成した公開鍵をサーバに転送する。 初期状態ではサーバ側のディレクトリは/home/testUser/になっているはずなので ここに".ssh"ディレクトリを生成する。 パーミッションは0700に。

次にローカル側のディレクトリを操作し、生成したid_rsa.pubを /home/testUser/.ssh/に転送する。

そして転送したid_rsa.pubをリネームし、authorized_keysとする。 authorized_keysのパーミッションは0600に。

以前ここでrootでログインした状態でファイル転送などを行ってしまい、 ファイルの所有者がrootの状態で進めようとして詰まったことがあるのは内緒の話。

公開鍵認証方式への変更。

操作をteratermに戻し、認証方式の変更を行う。

$ sudo vi /etc/ssh/sshd_config

#rsa鍵認証を有効にする
#RSAAuthentication yes
↓ コメントアウトを解除する
RSAAuthentication yes

#公開鍵認証を有効にする
#PubkeyAuthentication yes
↓ コメントアウトを解除する
PubkeyAuthentication yes

#公開鍵ファイルの場所を設定する
#AuthorizedKeysFile     .ssh/authorized_keys
↓ コメントアウトを解除する
AuthorizedKeysFile .ssh/authorized_keys

#パスワード鍵認証を無効にする
#PasswordAuthentication yes
↓ コメントアウトを解除し、noにする
PasswordAuthentication no

以上で公開鍵認証方式への変更が終了。

以降、teratermでログインする際は、 ユーザ名 :testUser パスワード:keyPairの生成時に設定したパスフレーズ "RSA/DSA/ECDSA/ED25519鍵を使う"をチェックし、 秘密鍵はkeyPair生成時に作成されたid_rsaを利用する。

SSHポート番号の変更

最後にSSHのポート番号を変更する。 SSHはデフォルトでは22番ポートで接続を受け付けている。 これを別の値に変更することで少しばかりの精神的安寧を手に入れる。

ここでは便宜上22⇒2222として書く。

$ sudo vi /etc/ssh/sshd_config

#SSH接続のポート番号を変更する
#Port 22
↓ コメントアウトを解除し、目的のポート番号に変更
Port 2222

これでポート番号の変更が終了。 最後に再起動して設定を再読み込みしておく。

# sshdの再起動
$ sudo service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

iptableの編集

ついでにfirewallも編集しちゃえ!

まずはiptabaleの存在確認

#おるかー?
$ yum list | grep iptables

iptables.x86_64                          1.4.7-11.el6                   @anaconda-CentOS-201311272149.x86_64/6.5
iptables-ipv6.x86_64                     1.4.7-11.el6                   @anaconda-CentOS-201311272149.x86_64/6.5
iptables.i686                            1.4.7-11.el6                   base
iptables-devel.i686                      1.4.7-11.el6                   base
iptables-devel.x86_64                    1.4.7-11.el6                   base
#よーし、おるな!いくわ!

$ sudo vi /etc/sysconfig/iptables

---------------------------------------------------------------------------------
*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT
---------------------------------------------------------------------------------

上記内容はアカベコマイリさんの内容を丸パクリしました。陳謝

さくらのVPS を改めて使いはじめる 3 – iptables と logwatch – アカベコマイリ

よしよし、基本設定は以上で完了。

再起動して、設定内容を確認する。

再起動
$ sudo service iptables restart

今回はここまで!