【VPS】さくらのVPSの設定まとめ (CentOS 6.3)
ドットインストールで学んだことを自分用にまとめ。
下記作業内容。
◼︎VPSへ接続
ssh root@153.126.~~
最初に繋ぐ時は「接続できますか?」と聞かれるので「yes」と答える。
パスワードはメールで聞かれたやつ。
上手くいけばログインできてる感じのメッセージ出てくる。
そしたら、
yum update
をして、入ってるアプリケーション全てを最新の状態にしてくれる。
更新がある場合は「y/n」で聞かれるので「y」
(日本語にしたい場合は)
vi /etc/sysconfig/i18n
のLANGを
"ja_JP.UTF-8"
と入力。
◼︎作業用ユーザの設定
普段はroot以外の普通のユーザーを使うのが一般的。
ユーザーを作る時
useradd ユーザー名
そのユーザーのパスワードを設定する
passwd ユーザー名
終わったら、一般ユーザーでもroot権限で作業ができるsudoの設定。
これは決まり文句らしい。
usermod -G wheel ユーザー名
指定したユーザーを「wheel」グループに入れるように変更している。
そして、wheelグループがsudoのコマンドを使えるようにしたいので、
visudo
をして「/」を押して「wheel」を検索。
## Allows people in group wheel to run all commands
の下の# %wheelの#を削除。
保存。
これで、ターミナル再起動からのssh ユーザー名@153.126.~~でパスワードを入れると通るとパスワード認証ができる。
しかし、パスワード認証はセキュリティ的に良くないので、鍵認証の設定をする。
◼︎鍵認証の設定
公開鍵をVPSに置いて秘密鍵をMac側に置く。
まずはVPS側に公開鍵を置く場所を作る。
ログインしたら
/home/ユーザー名
にいると思うので、
mkdir ~/.ssh
chmod 700 ~/.ssh
で700にしておく。
次はMac側の作業。
鍵のペアを作るコマンドは
ssh-keygen -t rsa -v
という決まり文句がある(Macの場合)。
鍵の名前をどうするか聞かれるがデフォルトでokなのでReturn。
passphraseもデフォルトで良いのでReturn, Return。
そしたら鍵完成。
「id_ras」が秘密鍵。
「id_rsa.pub」が公開鍵。
公開鍵を転送する前にパーミッションの変更を忘れずに。
chmod 600 .ssh/id_ras.pub
転送にはscpを使う。入れる場所は.sshディレクトリだが、「authorized_keys」と変えている。
決まり文句らしいのでyesとして、ユーザー名のパスワードを聞かれるので入力。
scp ~/.ssh/id_rsa.pub ユーザー名@IP.ADD.RE.SS:~/.ssh/authorized_keys
ここまでで転送が完了しているはず。
ちゃんとできるかをMacから鍵認証でログインしてみる。
ssh -i ~/.ssh/id_rsa ユーザー名@IP.ADD.RE.SS
ただ、-i ~/.ssh/id_rsa はデフォルト値なので、同じ名前なら
ssh ユーザー名@IP.ADD.RE.SS
というように省略できる。
◼︎SSHのセキュリティ設定をする
ここまでで鍵認証ができるようになったが、まだパスワードでも認証ができてしまうなどのセキュリティ的に安全ではない部分があるので、セキュリティを高める3つのことをする。
- ポート番号の変更
- パスワードログインの禁止
- rootログインの禁止
ポート番号の変更
ポート番号はSSHで通信するときはデフォルトは22番だが危ないので変更する。
1024~65535までの中から好きな番号を使えるので適当に選んで設定する。
これらの設定はrootで作業したいのでVPSにログインした状態で、
sudo -s
を入力してパスワードを入れるとrootで作業ができる。コマンドプロンプトが$から#になっていればおっけー。
そして、設定ファイルをいじるのだがまずは設定ファイルのバックアップを取ることにする
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
.orgという拡張子はoriginalという意味らしい。.orgでバックアップをとってくれるみたい。
ということで設定ファイルを弄ってポート番号を変更する。
vi /etc/ssh/sshd_config
からのー、/Portで検索してみる。
(vimは#がコメントでxで消去できるよ。wで次の単語に移動だよ)
22番から好きな番号に変更する。
#取るの忘れずに!!
escで抜けて/PasswordAuthで検索する。
PasswordAuthentication をyesからnoにする。
エスケープで抜けてwqで保存。
ここまでの設定を反映させたいので
service sshd restart
で反映。新しくタブを作って
ssh -p YOUR_PORT_NUMBER ユーザー名@IP.ADD.RE.SS
でログインできればok!!
22番ではもうログインできないので、上記コマンド以前のログイン方法ではログインできない。
◼︎ファイアーウォールの設定
ファイアーウォールは外部のネットワークと内部のネットワークを遮断してくれてセキュリティを高めている。(後日この辺書く。)
VPSにログイン後に
vi /etc/sysconfig/iptables
で設定ファイルを作る。
設定ファイルは長いからドットインストールで用意してくださったやつを使う。
ざっくり言うと指定したポート番号だけは空けておいてという感じに設定してるみたい。
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :SERVICES - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p tcp -m state --state NEW -j SERVICES -A INPUT -p udp --sport 53 -j ACCEPT -A INPUT -p udp --sport 123 --dport 123 -j ACCEPT -A SERVICES -p tcp --dport 自分で決めたポート番号 -j ACCEPT -A SERVICES -p tcp --dport 80 -j ACCEPT -A SERVICES -p tcp --dport 443 -j ACCEPT COMMIT
保存したら、
service iptables restart
で再起動で設定を反映させてあげる。
設定が反映されているかの確認は
iptables -L
でどこのポートが空いてるかを確認することができる。
◼︎Webサーバ(Apache)の設定
Webサーバで代表的なApacheを入れる手順。
インストール。
yum install httpd
再起動後に自動立ち上げ。
chkconfig httpd on
設定ファイルを弄ってセキュリティを高める。
さっきやったみたいに設定ファイルのバックアップをとり、
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
編集する
vi /etc/httpd/conf/httpd.conf
ServerTokensを検索して「OS」から「Prod」に変更する。
ServerSignatureを検索して「On」から「OFF」に変更する。
Options Indexを検索してvar/www/htmlの下にあるOptions IndexのIndexの前に「-」(ハイフン)を入れてあげる。
<Directory "/var/www/icons"> Options -Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
ここまで出来たら保存。
設定の確認方法は、
service httpd configtest
でテストができるみたい。okだったら
service httpd start
でApacheを再起動する。
◼︎ Webサーバにファイルを置いてみる
まずは、ブラウザでIPアドレスを打ってみて「Apache 2 Test Page」みたいなタイトルのページになればok。
ドキュメントルートにまだファイルがないのでそこにファイルを置く。
設定ファイルにpathが書いてあるので、
vi /etc/httpd/conf/httpd.conf
で見て、DocumentRootで検索すると「/var/www/html」以下にあるものというようにデフォルトで指定されているはず。
ファイルを置いたりするには権限が必要で、さっき作ったユーザー名で転送したりすると思うので権限の変更をする。
chown -R ユーザー名:ユーザー名 /var/www/html
- Rはこれ以下の全部のフォルダをユーザー名が所有するようにという指定。
ここまでできたら、ファイル転送ソフトでもなんでも良いのだがファイルを置いてみて確認。
ということでWebサーバの設置までできたのであとはPHPとかMySQLとかWordpressとかのインストールでも書こうかな。
■なんかエラーでうまくいかない時
SSH接続エラー回避方法:.ssh/known_hostsから特定のホストを削除する/削除しないで対処する3つの方法 - Qiita