さくらVPSサーバを契約した後の初期設定の方法

ブログのサーバをレンタルサーバからVPSサーバに移転したので、今回はVPSサーバの初期設定を紹介します。VPSサーバは何も設定されていないので、全て自分でセットアップする必要があります。
LAMP環境の構築、そしてWordpressのインストールまでの流れは別記事にして紹介します。

移転先のサーバは下記です。
さくらVPSサーバ 1G

VPSサーバはレンタルサーバと違いOSがインストールされているだけなので、様々な設定を自分でやる必要があります。基本的に作業はコマンドライン上で行います。Macでいうとターミナルですね。Windowsの場合はTeraTermなどのソフトウェアを利用します。

利用しているサーバがさくらVPSなので、さくらVPSで話がベースになりますが、基本的に作業内容は同じです。
なお、コマンドライン上でのファイルの編集はvi(vim)で行います。viはキーバインドがかなり独特なので、慣れるまではかなり使いにくいかもしれません。ファイルの一部書き換え程度のことしかしないので、下記使い方を見ながらやっていきましょう。

Mac de UNIX – UNIX入門-viエディタの使い方

【スポンサーリンク】

基本的な設定

まずは基本的な設定をしていきます。手順は以下ですね。

  • 1. サーバの起動
  • 2. rootのパスワードを変更
  • 3. ユーザーの作成とsudo権限付与
  • 4. コンソールの日本語化
  • 5. パスの設定

サーバの起動

VPSを契約したら、コントロールパネルにログインします。
契約時に入力したメールアドレス等に以下のような内容が届いていると思います。

URL : コントロールパネルのURL
IP : XXX.XXX.XXX.XXX
PASS : xxxxxxxxxxxxxxxxxx

コントロールパネルにログインしてサーバを起動しましょう。IPアドレスとパスワードでログインできると思います。
さくらVPSの場合は以下のような感じです。

起動したらSSHでログインします。ここからコマンドライン上で作業していきます。
まずはSSHのコマンドでログインしていきます。パスワードを求められるので、パスワードも入力しましょう。ちなみに、コマンドライン上でパスワードを入力する際は、文字はもちろん「***」も表示されません。

ssh root@XXX.XXX.XXX.XXX

ログインに成功すると以下のような表示がでます。
SAKURA Internet [Virtual Private Server SERVICE]
※ さくらVPSの場合

rootのパスワードを変更

ログインしたらまずはrootのパスワードを変更しましょう。
初期パスワードのままはセキュリティ的にかなり危ないです。「passwd」というコマンドで変更できます。

$ passwd
Changing password for user root.
New UNIX password: #新しいパスワード
Retype new UNIX password: #確認用パスワード

ユーザーの作成とsudo権限付与

さて、rootのパスワードを変更しましたが、そもそもrootでログインすること自体がセキュリティ的によくないので、ログイン用のユーザーを作成します。

$ useradd YYYYY
$ passwd YYYYY

YYYYYはユーザー名なので自由に設定して下さい。ユーザーを作成したら、そのユーザーのパスワードを設定しましょう。今後はこちらのユーザーでログインしていきます。

作成したユーザーにsudo権限を付与します。sudoとは一時的にroot権限を得るためのコマンドです。システムに関するような重要ファイルの編集はrootしかできませんが、毎回rootユーザーを利用するのはセキュリティ的によくないので、sudoを通して実行するのが慣習です。
sudo権限を付与するには「wheel」というグループにユーザーを追加します。

#wheelグループに追加
$ usermod -G wheel YYYYY
#追加されているかどうか確認 wheelがあればOK
$ id YYYYY
uid=500(YYYYY) gid=500(YYYYY) groups=500(YYYYY),10(wheel)

続いて、wheelグループがsudoコマンドを使えるようにします。
visudoコマンドでsudoの設定ファイルを開きます。

$ visudo

開いたファイルの中の下記場所のコメントアウト「#」を消せばOKです。

## Allows people in group wheel to run all commands
#%wheel        ALL=(ALL)       ALL
↓
## Allows people in group wheel to run all commands
%wheel        ALL=(ALL)       ALL

コンソールの日本語化

細かい設定に入る前にコンソールを日本語化しておきます。

$ vi /etc/sysconfig/i18n
#変更前
LANG="C"
SYSFONT="latarcyrheb-sun16"

#変更後
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"

これで、lsコマンド等でファイルを表示した時に一部情報が日本語になります。

パスの設定

初期設定の最後にパスの設定します。
コマンドは本来そのコマンドの設定ファイルが置かれている場所を含めてフルパスで実行するものなのですが、実行したい場所をPATHに設定しておくことで省略できるようになります。

「.bash_profile」を編集していきます。

$ vi .bash_profile

下記内容を記述します。

PATH=$PATH:$HOME/bin
PATH=$PATH:/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/local/sbin

記述が完了したら保存して、設定内容を反映させます。

$ source .bash_profile

ここまでの作業を終えたら、いったんサーバからログアウトしましょう。その後、さきほど作成したユーザーでログインしましょう。パスワードはユーザー作成時に設定したパスワードです。

ここまで設定したら、いったんログアウトして新規で作成したYYYYYユーザーで作業していきます。

#rootをログアウト
exit
#新規で作成したユーザーでログイン
ssh XXX.XXX.XXX.XXX -l YYYYY

セキュリティに関する設定

ひと通り基本的な設定が完了したら、セキュリティの設定をしていきます。
セキュリティの設定は最低限のことに絞ってやっていきます。

  • 1. SSHログインの設定
  • 2. iptablesの設定
  • 3. yumのアップデート

SSHログインの設定

まずはSSHでログインする際の設定をしていきます。
具体的にはポートの変更とrootログインの禁止設定です。
SSHの設定は「/etc/ssh/sshd_config」というファイルで管理されているので、このファイルをvi(vim)で編集します。

sudo vim /etc/ssh/sshd_config

まずは、ポートを変更します。初期では22番のポートが指定されていますが、22ポートは初期値で攻撃対象になりやすいので、変更していきます。数値は「0 ~ 65535」で自由に選べます。
他でよく使う80(http)、443(https)、20(FTP)、21(FTP)、3306(Mysql)などは避けたほうが楽です。

Port 22 #変更前
Port XXXXX #変更後

続いて、rootでのログインをできないようにします。PermitRootLoginという項目が”yes”になっているので、noにします。

#PermitRootLogin yes
PermitRootLogin no

ここまで設定したら、下記コマンドでSSHを再起動します。

sudo /etc/rc.d/init.d/sshd restart

・iptablesの設定

続いて、iptablesを設定していきます。
iptablesはlinuxのファイアウォール機能です。

設定方法はけっこう高度なので、さくらVPSの公式サイトを確認してやっていきます。
iptablesの設定方法

下記の通りにコマンドを実行していけばOKです。
rootユーザーで作業していない場合は、sudoをつけて実行していきます。

#サーバへの攻撃対策
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

#通信内容の制限
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p icmp -j ACCEPT

#確立済みの通信を許可
sudo iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#パケットの設定
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT

ここまで実行したら、続いて利用するポートを指定していきます。
ひとまずhttp(80)、https(443)、ssh(XXXXX)の番号を指定していきましょう。
sshのポート番号については、この記事の最初に22番から変更した後の番号を入力します。

#httpのポートを指定(80)
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#httpsのポートを指定(443)
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
#sshのポートを指定(XXXXX)
sudo iptables -A INPUT -p tcp -m tcp --dport XXXXX -j ACCEPT

これでひとまずOKです。
設定を保存して再起動していきましょう。

#設定を保存
sudo service iptables save
#再起動
sudo service iptables restart

設定ファイル「/etc/sysconfig/iptables」を見てみると、下記のように記述されているかと思います。

sudo vi /etc/sysconfig/iptables

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [34:3560]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
COMMIT

これでiptableの設定は完了です。
FTPやMysqlなど他にポート開放が必要になったら再度設定していきます。

yumのアップデート

最後にパッケージ管理のyumをアップデートしていきましょう。
サーバにいろいろな機能を入れていくのですが、その機能を一括で管理できるツールみたいなものです。

sudo yum update

まとめ

ざーっと初期設定してみました。
公開鍵の設定などもできればしておきたいところですが、今回は省略しました。
コマンドラインになれていない人は「面倒!」と感じるかと思いますが、慣れていくとそうでもないです。

次回はVPSサーバ上にLAMP環境を構築してWordpressを導入していきます。

さくらVPSとWordpressに関する記事

利用しているサーバはこちら

Webサーバなどに関する知識に不安のある方にオススメ

この記事についたタグ
この記事を書いた人
ねづ
『NEZU.log』運営管理者。Webエンジニアの傍ら、趣味でこのブログを運営。シェアハウス在住。2015年は海外情報(主にアジア圏)と効率のよい生活の情報発信がテーマ。
この記事が面白かったらいいねしよう!
記事のタイトルとURLをコピーするコピーしました!
こちらの記事もどうぞ
こちらの記事もどうぞ
このブログへのコメント
  • お世話になります。
    参考にさせていただきながら設定しています。
    全くの初心者で解らない事ばかりです。
    Tera Termで設定した後の保存方法がわかりません。
    設定を保存でiniが増えていきますが、どうすればよいのですか。
    お忙しい所申し訳ありませんが、教えてください。

    投稿した人 : 矢山 香恵子15年01月09日
  • > 矢山様
    コメントありがとうございます。
    長くなってしまうため、コメント時に入力いただいたメールアドレスに連絡させていただきました。
    ご確認いただけたら幸いです。

    投稿した人 : nezu15年01月12日

コメントを残す

コメント※必須
名前※必須
メールアドレス※必須(非公開)

このブログを書いている人

運営者 : ねづ

主にWebの企画、開発の仕事をしています。
海外が好きで、仕事、旅行問わずよく行きます。
フィリピン(セブ)で10週間留学後、現在はカナダ(バンクーバー)に滞在。留学、海外生活や旅行記をこのブログで書いています。

詳しいプロフィールはこちら

LINE@作成しました!お気軽にどうぞ!
友達登録は下記QRコードを読み取ってください
LINE@ QRコード

カテゴリ一覧
キーワードで記事を探す
下記から更新情報を受け取れます!