ブログのサーバをレンタルサーバから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に関する記事
- VPSサーバとレンタルサーバの違いを比較してまとめてみた
- さくらVPSサーバを契約した後の初期設定の方法
- さくらVPSサーバにLAMP環境(Apache,PHP,Mysql)を設定する
- さくらVPSサーバにFTPを使ってWordPressをインストールする方法
Webサーバなどに関する知識に不安のある方にオススメ