2018年7月24日火曜日

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

https://blog.nzakr.com/vps-setting/

さくら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のコマンドでログインしていきます。パスワードを求められるので、パスワードも入力しましょう。ちなみに、コマンドライン上でパスワードを入力する際は、文字はもちろん「***」も表示されません。

1ssh root@XXX.XXX.XXX.XXX

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

rootのパスワードを変更

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

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

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

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

1$ useradd YYYYY
2$ passwd YYYYY

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

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

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

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

1$ visudo

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

1## Allows people in group wheel to run all commands
2#%wheel        ALL=(ALL)       ALL
3
4## Allows people in group wheel to run all commands
5%wheel        ALL=(ALL)       ALL

コンソールの日本語化

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

1$ vi /etc/sysconfig/i18n
1#変更前
2LANG="C"
3SYSFONT="latarcyrheb-sun16"
4 
5#変更後
6LANG="ja_JP.UTF-8"
7SYSFONT="latarcyrheb-sun16"

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

パスの設定

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

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

1$ vi .bash_profile

下記内容を記述します。

1PATH=$PATH:$HOME/bin
2PATH=$PATH:/sbin
3PATH=$PATH:/usr/sbin
4PATH=$PATH:/usr/local/sbin

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

1$ source .bash_profile

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

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

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

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

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

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

SSHログインの設定

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

1sudo vim /etc/ssh/sshd_config

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

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

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

1#PermitRootLogin yes
2PermitRootLogin no

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

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

・iptablesの設定

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

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

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

1#サーバへの攻撃対策
2sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
3sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
4sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
5 
6#通信内容の制限
7sudo iptables -A INPUT -i lo -j ACCEPT
8sudo iptables -A INPUT -p icmp -j ACCEPT
9 
10#確立済みの通信を許可
11sudo iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
12 
13#パケットの設定
14sudo iptables -P INPUT DROP
15sudo iptables -P OUTPUT ACCEPT

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

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

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

1#設定を保存
2sudo service iptables save
3#再起動
4sudo service iptables restart

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

1sudo vi /etc/sysconfig/iptables
2 
3*filter
4:INPUT DROP [0:0]
5:FORWARD ACCEPT [0:0]
6:OUTPUT ACCEPT [34:3560]
7-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
8-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
9-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
10-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
11-A INPUT -i lo -j ACCEPT
12-A INPUT -p icmp -j ACCEPT
13-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
14-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
15-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
16COMMIT

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

yumのアップデート

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

1sudo yum update

まとめ

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

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

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