VPSってどのくらいのサイトまで運用できるんだろう

平日は、あまりVPSいじってる時間がありません。

ところでVPS(今回のさくらのVPS)一台(?)で、どのくらいのサイトを運用可能なんだろう?

サーバースペックをスコアリングして、どんなサービスなら○○点以上必要とか、そんな指標ってないですかね。

さくらの場合、リアルタイムのパフォーマンスグラフが見れるから、運用中のそれは、なんとなく分かりそうなんですが、できれば運用前、サーバー選定の段階で案件とそれに必要なスペックが分かるとスゴイ便利なんですけど。

ggrksってみよっと

さくらのVPS借りてみたので使ってみる【二日目】

さくらのVPS借りてみた二日目。

今回は前回の続きで、FTPのセットアップをします。

今回は、vsFTPd をyumで一発インストール!
ソースからやれとか、他のFTPがいいとか言う人がいますが、とりあえずとにかく簡単にセットアップしたいんで yum で簡単にいれときます。

# yum install vsftpd

そしておもむろに、startすれば、匿名アクセスが出来てしまいます。

# /etc/rc.d/init.d/vsftpd start

でもそれじゃあ、実用する上でマズイので、ユーザーを作って、そのユーザーでFTPアクセス出来るようにします。

# vi /etc/vsftpd/vsftpd.conf

vsfttpd.conf を修正する前に念のため、ファイルをバックアップしておきます。

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.ORG

ファイルをバックアップしたら、改めて vsftpd.conf ファイルを編集します。

# vi /etc/vsftpd/vsftpd.conf

設定する項目は非常に多岐に渡るので、詳細はggrksですね。

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
user_localtime=YES
force_dot_file=YES
hide_ids=NO

設定する内容は、匿名アクセス(anonymous)を拒否し、user_listにあるユーザーは、接続を拒否するという設定です。

あとは、 user_list と、chroot_list にFTPユーザーにするユーザー名を登録します。

それから、useradd でFTPユーザーとして使用するユーザーを作成し、ホームディレクトリを /var/www/html に設定したらOKです。

今回、バーチャルホストの設定まで行こうと思いましたが、思いのほか、vsftpdの設定に手こずられたので、今日はここまで!

【次回予告】バーチャルホスト設定

さくらのVPS借りてみたので使ってみる【一日目】

さくらインターネットのVPSを借りてみた。

第一回目の今回は、初期状態からウェブサーバーを立ち上げるまで。

久しぶりに、(ほぼ)空のLinuxサーバーをいじるので悪戦苦闘です(笑)
VPSのいいところは、コンパネから簡単にOSの再インストールが出来るところですね。コンパネからrootパスワードを設定したら、ものの数分で初期状態のサーバーが立ち上がります。これは、便利!

ではでは私がやってみた手順をババッと

SSHにrootでアクセスしない

SSHにrootでログインできるようにしておくとセキュリティ上、マズイのでSSHログイン用のユーザーをつくります。

ここから、しばらくは「VPSコントロールパネル」のリモートコンソールから作業します。

# useradd –m USERNAME
# passwd USERNAME

※USERNAME…新しく作るユーザー名に置き換えてください。

そしたら、今作ったユーザー名でSSHログインできるか確認します。問題なくログインが出来れば、次にrootのSSHログインを停止する作業です。

/etc/ssh/sshd_config ファイルを編集します。

PermitRootLogin no

既にコメントアウトされた PermitRootLogin yes の行があると思いますので、その近くに記述しておけばいいでしょう。

さらにSSHで使用するポートの変更もすれば、セキュリティ的には少し安心かもしれません。

Port 10022

例)SSHポートを 10022 にする設定(初期値は 22 )

SSHを再起動!

/etc/init.d/sshd restart

SSHを再起動したら、設定が反映されているか確認します。rootでSSHログインできなくなっているか?(ポートを変更した場合)変更したポートでSSHログインできるか?などなど。

パケットフィルタの設定

さくらのVPSは初期状態で、「全開」状態になってます。
まあ、公開用サーバーとして使うので、そんなに気にしなくてもいいのかもしれませんが、気持ち悪い感じがするかもなので必要なパケット以外はフィルタしちゃいます。

今回は、WWW(80)、FTP(20)、SSH(22)、それとDNS(53)を許可する設定にします。

適当なところに、iptables 設定用のスクリプトを書いておきます。
コマンドラインから、1行ずつ実行しちゃダメですよ。コマンドでやってると最初の INPUT DROP の後から、何もできなくなっちゃいます!

vi /home/USERNAME/IPTABLES_SH

#!/bin/sh
iptables -F
iptables -X

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 20 -j ACCEPT

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p udp -m udp –sport 53 -j ACCEPT
iptables -A INPUT -p udp -m tcp –sport 53 -j ACCEPT

service iptables save
service iptables restart

ip6tables -F
ip6tables -P INPUT DROP
ip6tables -P OUTPUT ACCEPT
ip6tables -P FORWARD DROP

service ip6tables save
service ip6tables restart

スクリプトの説明をブロックごとに簡単に…

  1. 最初のブロックで iptables に関する設定をクリア(初期化)します。
  2. 出力(OUTPUT)を許可(ACCEPT)し、入力(INPUT)とパケット転送(FORWARD)を破棄(DROP)する。
  3. ローカルの出力と入力をともに許可します。
  4. 宛先ポート(–dport)ごとに許可するパケットを指定します。
  5. セッション確立したパケットは許可します。
  6. DNS(53)はudpを使うので、5の許可では通信できないので別途指定します。
  7. ここまでの設定を保存(save)し、iptables を再起動(restart)します。
  8. 8,9番目のブロックは、IPv6に関する設定ですが、今回は特に使用しないで、出力以外は破棄(DROP)にしておきます。

スクリプトの記述ができましたら、パーミッションを変更して実行します。

# chmod 744 /home/USERNAME/IPTABLES_SH

# /home/USERNAME/IPTABLES_SH

ウェブサーバーパッケージのインストール

ウェブサーバーに必要なパッケージは、とりあえず、httpd、php、mysqlくらいでしょうか、必要になったらあとで追加しましょう。

ちゃちゃっとやってしまいたいので yum で簡単にインストールしちゃいます。

# yum install httpd http-devel
# yum install php php-mbstring php-mysql php-gd php-pear
# yum install mysql mysql-devel mysql-server

それぞれ、実行するとインストールするパッケージの一覧と(y/n)表示されますので、 y を押してインストールを完了します。(-y オプションをつけてやっちゃっていいかも)

自動起動スクリプトをつくる

「つくる」とか言っちゃってますが、シンボリックリンクを作成するだけです。

yumでインストールしたパッケージの起動スクリプトが /etc/rc.d/init.d 以下に保存されていますので、そこから必要なパッケージをランレベル3( /etc/rc.d/rc3.d )にシンボリックリンクを作成します。

# cd /etc/rc.d/rc3.d
# ln –s ../init.d/httpd S40httpd
# ln –s ../init.d/mysqld S41mysqld

できたら、おもむろに reboot してみましょう。

そして起動したらブラウザでサーバーにアクセスしてみます。
Apacheのテストページが表示されれば、セットアップ完了です。

とりあえず、今日はここまで。

【次回予告】FTP、バーチャルホストの設定 の予定