Blog

さくらVPSで1からサーバーを立てる(LAMP)[1]

  • Update2016-07-28
  • Category
    • Backend
  • Other--
さくらVPSで1からサーバーを立てる(LAMP)[1]のサムネイル画像

備忘録として。

サーバーの構築

CentOS7を流れに沿って構築(省略)

サーバーの設定

さくらVPSの管理画面に入ってからインストール時に作成したユーザー名・パスワードでログイン
管理者モードにする(要パスワード)

su -

vimをインストール

yum -y install vim 

SSHサーバーの設定ファイルを編集する

vim /etc/ssh/sshd_config
17行目 #Port22 → Prot10022
49行目 #PermitRootLogin yes → PermitRootLogin no
:wq

SELinuxをインストール

yum -y install policycoreutils-python

ファイヤーウォールを変更

semanage port -a -t ssh_port_t -p tcp 10022
semanage port -l | grep ssh #確認
# ssh_port_t      tcp    10022, 22
ならOK

ファイヤーウォールの設定

cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
vim /etc/firewalld/services/ssh.xml
port="22" → port="10022"
に変更

ファイヤーウォールの設定変更を反映、サーバー再起動

firewall-cmd --reload
systemctl restart sshd.service

putty(win)やターミナル(Mac)で接続してみる
以下はターミナルの場合

ssh -p 10022 kote2@xxx.xxx.xxx.xxx

※SSHサーバーが変わったら
秘密鍵を使って接続し、再度OSを再インストールするなどしてSSHサーバーが変わった場合以下エラーが出る

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:a9uv6Qx4rT8vRMwHuhv3mZMaqxwTqlIFDRCfo65IHxU.
Please contact your system administrator.
Add correct host key in /Users/kote2/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/kote2/.ssh/known_hosts:1
ECDSA host key for [1xxx.xxx.xxx.xxx]:10022 has changed and you have requested strict checking.
Host key verification failed.

その場合は接続するマシン上の一度接続したリストから削除を行わなければいけない。

vi /Users/kote2/.ssh/known_hosts

詳しくはこちら。
http://www.profaim.jp/tools/soft/network/ssh/server_changed.php

秘密鍵、公開鍵の設定

詳しくは
ttp://knowledge.sakura.ad.jp/beginner/3543/

SSHにパスワードフレーズのみの接続ではセキュリティ的に安全でない。そのため、更に公開鍵認証をして、その鍵が入っているマシンでしか接続できないようにする。

■手順
1.秘密鍵と公開鍵をクライアント側に作成する
2.公開鍵をコピー
3.公開鍵コピーをサーバー側に作成
4.パスフレーズログインを解除にする

まず、MAC及びWinマシン側に鍵を作成する。
ここではMACターミナルのやり方を説明。

鍵用のディレクトリを作り鍵を作成

pwd #現在のディレクトリを確認
/Users/kote2
ls -a #ディレクトリ内を一覧表示(隠しディレクトリ、ファイルも含む)
mkdir .ssh
cd .ssh
ssh-keygen #鍵を作成
(鍵を作成するか聞いてくるのでリターン後、パスフレーズ入力)
ls #鍵を確認

id_rsa と id_rsa.pub 2つの鍵が作成される。また接続をすると known_hosts というファイルも作成される。id_rsaが秘密鍵、id_rsa.pubが公開鍵になる。known_hostsはSSHで繋いだことのあるホストサーバーリスト。

公開鍵の内容をコピーする

cat id_rsa.pub
(表示された内容をvimでコピー)

サーバー側に移り、パスフレーズログイン後(またはさくらVPSのコントロールパネル上のコンソールを使用して)公開鍵を格納するディレクトリを作成

mkdir .ssh
chmod 700 .ssh
cd .ssh

authorized_keysの作成。先ほどコピーした内容をペーストして保存

vim authorized_keys
(vimでペースト)
:wq #保存
chmod 600 authorized_keys #自分専用読み書き。これをやらないとパス無しでログインできない

ターミナルに戻り、ログインできるか確認をする

ssh -i .ssh/id_rsa kote2@xxx.xxx.xxx.xxx -p 10022

無事ログインできたらパスフレーズログインを「なし」にする

su -
cd /etc/ssh
vim sshd_config
(PasswordAuthentication no)
service sshd restart

SSHでログイン

ssh -i .ssh/id_rsa kote2@xxx.xxx.xxx.xxx -p 10022

で、接続。パスフレーズ入力でログイン。以降、パスフレーズは聞かれない。

2台目以降のマシンからのSSH接続

秘密鍵と公開鍵認証で更に安全性は高まったが、他の管理者やモバイルなど別のマシンで接続する状況がある。その場合は以下を行う。

詳しくは

http://d.hatena.ne.jp/eitya/20110627/1309167111

ソフトウェアのアップデート

まず、アプリケーションをインストールできるように一般ユーザーから管理者権限のコマンドを出来るsudoコマンドを実行できるようにする。通常ではrootに切り替えて行えるが、root権限は全実行権限を与えてしまうので、sudoコマンドで一部利用する形を取る。

サーバーにrootでアクセスして/etc/sudoersを変更

ssh -i .ssh/id_rsa kote2@xxx.xxx.xxx.xxx -p 10022
su -
cd /
vi /etc/sudoers
(最後の行に kote2 ALL=(ALL) ALL を加える)

一般ユーザーに戻って一括アップデートをする。

exit #rootをログアウト
sudo yum -y update

※アップデータがあるのにないよと言われた時(CentOS7など)
CentOS7系は新しいので本当にアップデートがない場合がある。それでも確かめたいときはyumのキャッシュを削除するコマンドを使う。

yum clean all
sudo yum -y update

OSの自動アップデート

sudo yum -y install yum-cron
sudo vi /etc/yum/yum-cron.conf
(apply_update = yesにする)
sudo systemctl start yum-cron.service
sudo systemctl enable yum-cron.service

※自動アップデートにしたくない場合(セキュリティアップデート限定にしたい)は、 update_cmd = default の値を変更。

基本的なサーバー管理

システム負荷の確認

uptime

ディスク使用量の確認

df -h

メモリとスワップ

free -h

実行中のプロセスの確認

ps aux
ps aux | less
top #システムの状態をモニタ(←かっこいい)

WEBページのアップ

Aptchをインストールし、設定、パスワード認証など行う。
まずはApatchのインストールからファイヤーウォールの解除まで。

sudo yum -y install httpd
sudo vi /etc/httpd/conf/httpd.conf
(#ServerName www.example.com:80 → ServerName www.example.com)
 httpd -t #確認
sudo systemctl start httpd.service #起動
sudo systemctl enable httpd.service #自動で起動
sudo firewall-cmd --permanent --add-service=http #firewallの設定変更
sudo firewall-cmd --reload

以上でhttp://xxx.xxx.xxx.xxx/にアクセスするとページが開く。