さくらVPS(仮想専用サーバ)の設定方法
2014.03.22
この記事は最終更新日から1年以上が経過しています。
サーバーを自前で建てたいなぁ。思い色々と検討しましたが、やはり色々と大変そうである。
色々と検討したなか、「さくらVPS」がコストも優しく扱いやすそうだったので使用することにしました。
VPSとはバーチャル・プライベート・サーバ(仮想専用サーバ)の略で、一台の物理的なサーバコンピュータ上で仮想的なサーバコンピュータを何台も起動する技術(Virtual Machine)によってつくられた仮想的なサーバコンピュータであります。
ホスティングサービスも行っており、今回さくらインターネットが提供する「さくらVPS」を使っていきます。
さくらVPS
公式サイト
まずは、こちらのページから契約を行います。
プランは以下の様な感じとなっております。
最安で月額980円〜用意されております。
お申し込みボタンを押して契約。
こちらにも記載されているとおり、クレジットカード入力すると2週間お試し期間として無料で利用出来ます。
2週間以内で契約解除すれば支払いは発生しないようなので、試しに使ってみるのも良いかもしれません。
お申し込みボタンを押すと、以下の様な画面になり必要事項を入力していきましょう。
さくらインターネットのアカウントをすでにお持ちの方は、「会員ID」「パスワード」を入力しましょう。
一通り契約するとメールが届きます。
こちらはお申込受付完了のお知らせで、数分経つともう1通メールが届きます。
こちらは仮登録のメールとなりますので、大事に保管し以下の情報でコントロールパネルにアクセスします。
さくらVPS コントロールパネル
https://secure.sakura.ad.jp/vpscontrol/
こちらの画面から送られて来たメールに記載された 「IPアドレス」「パスワード」を入力しログインしましょう。
現段階では、サーバーが起動していない状態ですので「起動ボタン」を押し起動します。
しばらくすると、ステータスが「停止」から「稼働中」になります。
これで起動完了。
その他、リモートコンソールや、OSの再イントールもここから行えるので覚えておきましょう。
作業用ユーザー設定
それでは、例のこの子(mac ターミナル)を使ってログインしましょう。
ssh root@ipアドレス
rootでssh接続を行います。
Are you sure you want to continue connecting (yes/no)?
このような表示が出ますので、yes リターン。
root@153.121.36.151's password:
パスワードを聞かれますので、メールに記載されたパスワードを入力。
サーバーを起ち上げてなかったりすると
ssh: connect to host 153.121.36.151 port 22: Connection refused
のようなメッセージが出ますので、起ち上げるのを忘れない様にしましょう。
(起動しても出ましたが再起動でログイン出来ました。)
ログインしたら、yumコマンドが使用出来ますので、
yum updae
で最新にしておきます。
特に変更がない場合は以下の様なメッセージが表示します。
No Packages marked for Update
日本語設定
デフォルトでは英語の設定となっていますので日本語に変更します。
/etc/sysconfig/i18n のファイルをvimで編集します。
vim /etc/sysconfig/i18n
LANG="C" SYSFONT="latarcyrheb-sun16
とありますので、
LANG="ja_JP.UTF-8" SYSFONT="latarcyrheb-sun16
に変更。
date 等を入力すると、このような感じで日本語に変更しているのが確認できます。
ユーザー設定
ユーザの追加を行います。
useradd ユーザー名
でユーザーを追加出来ます。
passwd ユーザー名
でパスワードの設定を行えます。
設定するパスワードと確認のパスワードを入力し、
このような表示になれば完了です。
好ましくないパスワードの際も注意してくれます。
追加したユーザーにrootの権限を付与していきます。
usermod -G wheel ユーザー名
visudo
で、wheelの設定を変更します。
/wheel
で検索を行い、以下の部分の「#」(コメントアウト)を削除し有効にします。
# %wheel ALL=(ALL) ALL
↓
%wheel ALL=(ALL) ALL
ここまで完了したら、ターミナルのタブを新しく開き確認していきます。
ssh ユーザー名@ipアドレス
でssh接続すると、パスワードを聞かれますので
password:
先ほど設定したパスワードを入力しログイン出来れば成功となります。
example
ssh webcyou@153.121.36.151
セキュリティ強化 SSHキー・鍵認証設定
SSHでアクセス出来るように設定を行います。
VPSの方に、.sshフォルダを作成
mkdir ~/.ssh
パーミッションの変更
chmod 700 ~/.ssh
クライアント側(PC,mac側)でSSHキーが無い場合作成
SSHキー作成
ssh-keygen -t rsa -v
パスワード、etc等どうしますか?と聞かれますがリターンでOK。
SSHキーが生成されたらこちらもパーミッションの変更を行います。
chmod 600 ~/.ssh/id_rsa.pub
生成された鍵は、「id_rsa」「id_rsa.pub」がありますが、「id_rsa」が秘密鍵となりクライアント(PC,mac)
で保管する鍵となります。
「id_rsa.pub」が公開鍵となり、SSH接続登録する際に利用する鍵となります。
- id_rsa 秘密鍵
- id_rsa.pub 公開鍵
VPS 鍵転送
では作成した鍵をVPSの方に転送を行います。
scp ~/.ssh/id_rsa.pub ユーザー名@ipアドレス:~/.ssh/authorized_keys
scpコマンドで転送を行います。
authorized_keysはお決まりとなっております。
例:
scp ~/.ssh/id_rsa.pub webcyou@153.121.36.151:~/.ssh/authorized_keys
完了すると、以下の様な表示が出るかと思います。
id_rsa.pub 100% 399 0.4KB/s 00:00
それでは、クライアント側からSSH接続を行いましょう。
ssh -i ~/.ssh/id_rsa ユーザー名@ipアドレス
例:
ssh -i ~/.ssh/id_rsa webcyou@153.121.36.151
-i オプションを付与しておりますが、
-i ~/.ssh/id_rsaはデフォルトで見に行くので、省略が可能となります。
省略時
ssh webcyou@153.121.36.151
セキュリティ強化 ポート設定
続いて、ポートの設定となります。
デフォルトだとポート番号22にアクセスするのですが、このままだと攻撃の標的になりかねないのでポート番号を変更していきます。
1024〜65535の任意の番号を設定していきます。
・ポート番号変更 22 -> 1024 ~ 65535
VPS側で設定していきます。
sudo -s
でsudoコマンドの持ったroot権限ユーザーに切り替わるので変更しておきます。
コマンドラインの左の文字が変更するかと思います。
となっております。
/etc/ssh/sshd_config を編集していきますが、編集する前にバックアップをとりましょう。
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
.org付与してバックアップを保存。
vimで編集していきます。
vim /etc/ssh/sshd_config
ポート番号を変更していくので、ポート番号記述の/Portで検索を行います。
/Port
# Port
の#のコメントアウトを削除し有効化し、任意のポート番号を記述。
続いてパスワード認証でのログインを行わない様にします。
/PasswordAuth で検索
ポート番号同様、#を削除し PasswordAuthentication no を有効。
PasswordAuthentication no
続いてroot権限によるログインも許可しないように行います。
/PermitRoot
で検索
ポート番号同様、#を削除しPermitRootLogin noを有効。
PermitRootLogin no
編集完了したらescキーで抜け、 :wqで保存終了します。
編集内容を適応します。
service sshd restart
間違えがなければ上記の表示となります。
クライアント側からアクセスできるかチェックを行います。
ssh -p ポート番号 ユーザー名@ipアドレス
例:
ssh -p 5963 webcyou@153.121.36.151
セキュリティ強化 ファイアウォール設定
ファイアウォールの設定を行っていきます。
ファイアウォールとは、不正アクセスを防ぐための技術の総称です。
設定ファイルは /etc/sysconfig/iptables に格納します。
vim /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 5963 -j ACCEPT -A SERVICES -p tcp --dport 80 -j ACCEPT -A SERVICES -p tcp --dport 443 -j ACCEPT COMMIT
-A SERVICES -p tcp --dport 5963 -j ACCEPT
この行に関しては設定した任意のポート番号に置き換えてください。
–dport ポート番号
設定ファイルを作成したら起動します。
service iptables start
また、 iptablesの確認は
iptables -L
のコマンドで確認できます。
webサーバー 設定
webサーバーとして利用できる様に設定していきます。
yumコマンドでhttpdをインストールします。
yum install httpd
chkconfig https on
上記のコマンドで自動起動をonにしておきます。
/etc/httpd/conf/httpd.conf を編集していくのですが、
何か問題が発生してしまったら戻れるように、
sshd_config と同様バックアップファイルをとっておきます。
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
バックアップとりましたら編集していきます。
vim /etc/httpd/conf/httpd.conf
「ServerTokens OS」 を「 ServerTokens Prod」に変更するため以下を入力で検索。
/ServerToken
ServerTokens Prod
「 ServerSignature ON」を「ServerSignature Off」に変更していきますので、
以下のコマンドで検索。
/ServerSignature
ServerSignature Off
「Options Indexes FollowSymLinks」 を 「 Options -Indexes FollowSymLinks」に変更する為、
以下のコマンドで検索。
/Options Index
Options -Indexes FollowSymLinks
上記の記述場所は
<Directory "/var/www/html"]]>
の後にある記述となります。
ここまで編集完了しましたら :wqで保存終了。
正常に起動するか、テストを行います。
service httpd configtest
問題無ければ上記の表示となります。
httpsを起動。
service https start
ブラウザで ipアドレスを入力し、Apacheのtestpageが表示すればOK!
ファイル転送
FTPソフト等を利用してファイルを転送出来るように設定していきます。
macでは、Cyberduck 等が有名なので、Cyberduckを使って例で
権限付与するためパーミッションを変更します。
chown -R ユーザー名:ユーザー名 /var/www/html
Cyberduckだと、以下の様な設定することでアクセス出来るかと思います。
・SFTP(SSHによる暗号化FTP)
・ニックネーム: 任意の名前
・サーバ:ipアドレス
・ポート:任意のポート番号
・ユーザ名:ユーザ名
・パス:/var/www/html
公開鍵認証を使用する
といった感じの設定になります。
これでFTPソフトを用いてファイルを転送できます。
と、今回はhttpの設定まで行いました。
次回はその他の設定を行います。