TryIT! - とりあえず、おもいついたらやってみる!

SAKURA VPS 1Gを最小限の手間でセキュアにインストールする - 初心者編

SAKURA VPS は業者だけでなく、普通の人でも便利じゃないですか?

巷では、Dropboxとか、Google Driveとかオンラインストレージが流行っています

まあ、無料のうちはいいですよ

有料のオンラインストレージを使うって何でしょうねぇ

そんな人はSAKURAのVPSを使いましょう!
だって、年間1万円で、100Gついてくるんですよ!
しかもDropboxだったらはるかに早い(ハズ、環境によって変わります)

というわけで、SAKURA VPS 1Gを最小限の手間でセキュアにインストールする場合のメモ
いわゆるLAMPサーバー立ち上げまで

※ できる限りわかりやすく解説していますが、PCの操作に自信がない人は難しいので諦めてください(^^;

前もって準備するツール

SAKURA VPS の申し込みはこちらから (http://vps.sakura.ad.jp/)

お試し無料なんで、はじめはこの手順で試してみたらどうでしょう?

さて前準備として、VPSを制御するためにツールを準備します

WinSCP (http://www.forest.impress.co.jp/lib/inet/servernt/ftp/winscp.html)
Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)

とりあえず、この2つは必須でしょう、といいますか、この2つがあればとりあえずOK!

2つのツールをインストールしたら

まず後々の作業を楽にするために、WinSCPの環境設定を変更します

 起動画面から

「設定」-「環境設定」を選択します

 自分の好きなエディタを設定します

 

 PuTTYの実行ファイルを指定しておきます


SSH接続用のRSAファイル作成

VPS起動するまえにセキュアな接続のための、SSH接続用のRSAファイルを作ります

プログラムメニューのWinSCP中に「鍵関連ツール」というメニューがあるのでその中の「PuTTYgen」を選択します

 起動して、[Ganerate]ボタンをクリックして

マウスをグリグリ回すと作成できます

Public Key for ...

と書かれているところをコピペし、

エディタなどに貼り付けておきます 

ssh-rsa AAAAB3NzaC1yc...

と書かれている部分です

かなり長い一行文字列です

 

次に、[Save private key]で適当な名前をつけて保存します
ここでは pub.ppk という名前で保存します

ファイルを準備したら、早速VPSを起動
VPSの起動方法は説明しません、SAKURAの説明書を読んでね 

rootでターミナルを開きます

方法は色いろあるんですが、おすすめするのはWinSCP経由で開く方法です

後々を考えてその方法で説明します

まず、WinSCPを起動して

 ホスト名に

VPSに割り振られたIPを設定

ユーザー名はroot

パスワードは

SAKURAから指定されたものを使います

一旦、WinSCPを起動した後に、ツールバーに表示されているPuTTYのアイコンをクリックします

するとターミナルが起動します

ここからターミナルを使ってインストール作業をします

インストール手順1ーユーザーの追加

まず初めに、VPSのプログラムを最新版にします

通常は一番後にすると思いますが、今回ちょっとトラブったので、一番先にすることに

トラブった時の詳細はこちら

http://thinkit.x-sys.net/?blog=1024

ここに、普段使いするユーザー名を記入してください

 後は、以下のテキストを順次コピーペしてください  

ここでは、yamada にします

useradd yamada 

passwd yamada 

 ここでは普段使いのアカウントを作成します

パスワードを2階聞いてきますので2回同じ物を入力、せめて8文字以上で!

 

  

 

su yamada 
cd $HOME
mkdir .ssh
chmod 700 .ssh
cd .ssh

 
追加したユーザーでログインしSSH接続用のRSAファイルを作成
 

  

 
nano authorized_keys
 

エディタ起動し、先程コピーした

SSH接続用のRSAの文字列(長い一行のやつ)

をコピペします

 

  

 

chmod 600 authorized_keys
exit

 

パーミッションを変更し、

一旦セッションを閉じます

 

  

 
nano /etc/ssh/sshd_config
 
SSHのポートを適当な値に変更
 

 はじめの方の

Port 22 と書いてあるところを、22224 とか、456225とか5桁ぐらいの値に変更します

ここでは、12345を使用します

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

でサービスを再起動して

先程追加した yamada で正常にログインできるか確認します

WinSCPの設定を変更してください  

 
ホスト名は変更しません

ポート番号は、先ほど変更した

ポート番号 12345 に変更します

ユーザー名は先ほどの yamada にします

パスワードは不要です

 万が一うまくログインできなかったら、ポート22 ユーザー名rootで入りなおして原因を調べてください

正常にログインできたら、rootログイン出来ない様に、rootによるログインを停止します

ま、セキュリティ対策ですね

nano /etc/ssh/sshd_config

で、ファイルを開き、
PermitRootLogin no
PasswordAuthentication no

と設定し、sshを再起動します

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

インストール手順2 - ファイヤーウオールの設定

次にファイヤーウオールの設定です

WinSCP経由でターミナルを開きます

入っただけだと、yamada アカウントになっていますので、root昇格します

su

iptablesを作成

nano /etc/sysconfig/iptables

iptablesは、存在しないので新規作成します

以下のテキストをコピーしてください

*filter

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
#特定IPのDROPはここへ
#-A INPUT -s 111.111.10.1 -j DROP
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 30022 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
#
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

ファイヤーウオールを再起動します
/etc/rc.d/init.d/iptables restart
OKと表示されたら正常です

443を開けているのは、phpmyadminを使用するためです

インストール手順3 -  Webサーバーなどをインストールします

Webサーバーとして動作させるためのパッケージを一式インストールします
yum install mysql-server phpmyadmin openssl openssl-devel perl perl-Net-SSLeay perl-Crypt-SSLeay mod_ssl

これでひと通りインストールできます

続いて、MySQLのrootパスワードを設定します

MySQLを起動して
/etc/rc.d/init.d/mysqld start

パスワード設定します
/usr/bin/mysqladmin -u root password パスワード(英数字)

再起動時にサーバーが起動するように設定します
chkconfig mysqld on
chkconfig httpd on

phpMyAdminにIP制限をかけます
あなたのIPは 3.239.58.199 です
以下のようにエントリを変更しまします

nano /etc/httpd/conf.d/phpMyAdmin.conf

の該当部分を以下のように変更します
<Location /phpmyadmin>
Order deny,allow
Deny from all
SSLRequireSSL
Allow from 127.0.0.1
Allow from ::1
Allow from 3.239.58.199 <ー追加部分、自IPが表示されているはずです
</Location>

これだと、IPアドレスが変わるたびに設定ファイルを弄る必要があります
ただ、phpMyAdminは結構危険なので私は面倒でもIPが変わるたびに設定ファイルを触っています
私の環境は固定IPではないので、IPは変更されますがそう頻度は高くはありませんね

なお、接続には必ずhttpsを利用してください、やはりDBのデータが生のままネットを流れることは好ましくありません

phpadminが動作しているか確認するためには以下のURLを使用します

https://サーバーIP/phpMyAdmin/

apacheの設定でバーチャルドメイン設定を行います

バーチャルドメインに設定する必要はないんですが、ま、後々考えるとつぶしが効くかと

変更するファイルは /etc/httpd/conf/httpd.conf です

これもnanoでへんこうしていいんですが、後々面倒なのでWinSCPで変更したほうがいいと思います

WinSCPで直接変更するとyamadaユーザーでは権限がありませんとエラーになるとおもいますので

その場合は適当にパーミッションを切ってください

/etc/httpd/conf/httpd.confの最後に以下を追加します

NameVirtualHost *:80
TraceEnable Off
<VirtualHost *:80>
DocumentRoot "/var/www/html/root"
ServerName any
<Directory "/var/www/html/root">
allow from all
Options -Indexes
</Directory>
</VirtualHost>

ついでに
ServerTokens OS

ServerTokens Prod
に変更します

同じく
ServerSignature On
->
ServerSignature Off

338行目の
AllowOverride None
->
AllowOverride All
に変更します

適当なindex.htmlファイルを/var/www/html/rootに作成しておきます

/var/www/html/root/index.html

また、apacheのテストページが表示されるとメンテナンスしていないような印象がありますので
これも消してしまいます
rm /etc/httpd/conf.d/welcome.conf

ここで一旦リブートします
エラーが出ていないことを確認するため、
SAKURAのリモートコンソールでリブートをかけることをおすすめします

https://secure.sakura.ad.jp/vpscontrol/main/console

reboot

http://サーバーIP/

で設定したindexファイルが出来ればOKです

まとめ

これでひと通りのサーバー設定が終わりました

個人で使用するには、ドメインを使わず、アドレス直でもいいんじゃないでしょうかね?

ドメインを公開していないので攻撃される可能性も少しは少ないかもしれませんが、Webサーバーのログはたまに見ないと怖いですね

Webサーバーを使わずにFTPのみつかうというのもありかもしれません

バーチャルドメインも設定しているので、ドメインを取得すれば複数サイトの運営も可能ですね

ま、業者の方しか使わないでしょうかど(笑

その場合は、PostFix + PostFix.Admin+dovecotの運用が面倒くさくなくていいと思いますが

インストールが糞面倒なので、別の機会に紹介したいと思います

あ、WebDavでも入れてみようかな?続く(笑

 

 

 

 

 

 

  

« お料理イベントに... 牛乳からバターを... »
2012-04-28 00:21:59