- kote2.tokyo
- >
- Blog
- >
- さくらVPSで1からサーバーを立てる(LAMP)[1]
さくらVPSで1からサーバーを立てる(LAMP)[1]
- Update2016-07-28
- Category
- Backend
- Other--
備忘録として。
サーバーの構築
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/にアクセスするとページが開く。