このブログは下記の“さくらインターネット”さんのVPS(仮想専用サーバ)を借りて開設しました。

・さくらのVPS
http://vps.sakura.ad.jp/

ブログシステムはWordPressです。

こういうのは、理解してから始めるんじゃない!
殺っちゃってから後悔理解するんだよ!!(仕事じゃない場合)

ということで何番煎じか知りませぬが、
備忘録らしくやったことを書いておきます。

目次

1.初期設定(ココ

  1. ログインする
  2. 初期パスワードを変更
  3. 管理用ユーザを作成
  4. 新ユーザでログイン
  5. 公開鍵でssh接続
  6. ssh接続の制限
  7. システムの文字コードを日本語にする
  8. システム(パッケージ)を最新にする
  9. root宛のメールアドレスを普段使っているメルアドに変更する
  10. kernel panic時の自動再起動
  11. iptablesの設定

2.WEBサーバの設定

  1. Apacheをインストール
  2. マルチドメインの設定
  3. ネームサーバーの設定
  4. PHPのインストール
  5. MySQLのインストール

3.WordPressのインストール

  1. DBの作成
  2. アップロード
  3. 微調整

1.初期設定

1.1 ログインする

何はともあれ、ログインしなくちゃ始まらない。

sakuraVPSの場合、管理画面(コントロールパネル)の「サーバ一覧」ページ「コンソール」ボタンでVNCコンソール(html5版かJavaApplet版)を開けます。

もちろん、先にサーバーは起動しておく。

黒い画面(VNCコンソール)で

[shell]www****gi login:[/shell]

と出るので、rootと入力してenter。
※は数字、人によって多少違うと思う。

[shell]Password:[/shell]

とくるので、初期パスワードを入力します。
初期パスワードは、VPS借りたら届くメールに書いてると思うよ!

[shell]SAKURA Internet [Virtual Private Server SERVICE]

[root@www****gi ~]#[/shell]

とでればログイン成功。

1.2 初期パスワードを変更

初期パスワードのままでいるのは、セキュリティ上良くないってのが通説さ。

[shell]passwd[/shell]

と入力したら

[shell]New password:[/shell]

と聞かれるので、新しいパスワードを入れる。二回目も同じく。

1.3 管理用ユーザを作成する

ここから都度、使用するシェルスクリプトの大雑把な説明いれてます。

さて、今ログインしてるrootってアカウントは、全権限を持ちミスが取り返しが付かなったりするので管理用ユーザを別に作ります。
必要がある時のみrootに切り替えて作業するのが安全です。
下記のusername部分は自身の新しいユーザーネームに打ち変えてね。

[shell]useradd username[/shell]

新しいユーザーを作成。

※useraddコマンド(ユーザーアッド)はユーザの追加

[shell]passwd username[/shell]

※passwdコマンド(パスワード)はユーザのパスワード設定

パスワード設定。
新規パスワードを聞かれるので入力×2。

[shell]usermod -G wheel username[/shell]

次に作成したユーザーを管理用グループをwheelに追加します。
最後にsudoersファイルを編集する。

※usermodコマンド(ユーザモード)はユーザー情報を変更

[shell]visudo[/shell]

でsudoersファイルを開いた状態になる。
viってエディタで開いてるわけだけど、操作が独特なのでくわしくは説明しません。

※visudoコマンド(ビ・サブスティテュートユーザードゥー)は特別なsudoersファイルの編集

※vi(visual display editor)通称:ビはエディタだよ。うん。

[vim]#%wheel ALL=(ALL) ALL[/vim]

って行があるから先頭の#を消す。(#はコメントアウト)
十字キーでカーソル持っていきxキーで一文字削除したあと:wqと入力したら保存して編集終了したことになります。はい。
※編集失敗して、文法おかしい場合はエラー出ます。

無事出来たら、新しいユーザーでも一時的にroot権限で操作が行えるsudoコマンドが使えるようになるよ!

1.4 新ユーザでログイン

さあ、VNCコンソールを閉じ、通称「黒い画面」を起動しようではないか!
Macは白いけどね。

Macならプリインストール済みのターミナル(Terminal.app)。
WindowsならTera Termなどをダウンロードしてくるの?
ボクマカーだから分かんない(○´σ‥`)ホジホジ

以下はターミナルでの作業の話です。
Tera Termとかは最初にログイン情報入力するから1.4は関係ないかもね。

[shell]ssh username@***.***.***.** [/shell]

usernameは…以下略、***.***.***.**の部分はvpsのIPアドレスに書き換える。
sshでのログイン確認できたら

※sshコマンド(セキュアシェル)は暗号や認証を使い安全にサーバと通信を開始する

[shell]exit[/shell]

でログアウトします。

※exitコマンド(イグジット)はshellの終了

1.5 公開鍵でssh接続

公開鍵ってのは、
このYahoo知恵袋(http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1348505418)の回答が分かりやすい。

[shell]mkdir ~/.ssh[/shell]

でお使いのPC内(Mac)に鍵ファイル入れておくフォルダ(一般的にweb系の人はディレクトリと呼ぶが同じ意味さ)を作成。ちなみにwindowsではc:/Users/[ユーザ名]/.sshとかになるのかな。

※mkdirコマンド(メイクディレクトリ)はディレクトリ作成

[shell]chmod 700 ~/.ssh[/shell]

で.sshフォルダのパーミッション(アクセス権)を変更する。
※chmodコマンド(チェンジモード)はパーミッションの変更

[shell]cd ~/.ssh[/shell]

で.sshフォルダに移動。
※cdコマンド(カレントディレクトリ)はディレクトリを移動

[shell]ssh-keygen[/shell]

keyとかpassとか聞かれるが、何も入力せずenterしつづけてね!
これで、id_rsa(秘密鍵)とid_rsa.pug(公開鍵)ができます。
秘密鍵は、あなたのPC側で大事に保管することになります。

※ssh-keygenコマンド(セキュアシェルキージェネレーター )は秘密鍵・公開鍵のペアを生成

[shell]scp ~/.ssh/id_rsa.pub username@***.***.***.**:~/authorized_keys[/shell]

usernameと***.***.***.**は打ち替えてね。scpコマンドでid_rsa.pub(公開鍵)をサーバにアップロードする。パスワード聞かれたら入力してね。

※scpコマンド(セキュアコピー)は手元のPCとサーバの間でファイルをコピーする

[shell]ssh username@***.***.***.**[/shell]

でまたサーバにログインする。手元のPCでの作業は終わりさ。

[shell]mkdir ~/.ssh
chmod 0700 ~/.ssh[/shell]

サーバー内にも.sshディレクトリを作りパーミッションを変更する。

[shell]mv ~/authorized_keys ~/.ssh
chmod 0600 ~/.ssh/authorized_keys[/shell]

さっきアップロードした公開鍵authorized_keysを.sshディレクトリに入れて、パーミッションを変更する。

※mvコマンド(ムーブ)はファイルやディレクトリの移動かつ名前の変更もできる

 

1.6 ssh接続の制限

[shell]sudo vi /etc/ssh/sshd_config[/shell]

ssh接続の設定ファイル(/etc/ssh/sshd_config)を編集します。

※sudoコマンド(サブスティテュートユーザードゥー)はroot権限で実行

以下、viでの編集内容ですが、その前にviの使い方に追加情報

検索
[shell]/******[/shell]

スラッシュのあとに検索ワードで検索できます。目グレップ(grepコマンドを体現すること)が大変な場合に使ってね!

挿入モードに切り替え
[shell]i[/shell]

iを押すと文字が入力できるようになります。escでモード解除。
viはそもそも起動直後の編集モードと挿入モードを切り替えながら作業するエディタです。

ではでは、以下が編集内容。

PermitRootLogin noを#PermitRootLogin yesの次の行に追加
rootでのログインを禁止。

PubkeyAuthentication yesを#PubkeyAuthentication yesの次の行に追加
公開鍵認証を許可。

PasswordAuthentication noを#PasswordAuthentication yesの次の行に追加
パスワードログインを禁止します。
公開鍵認証があるから要らないよね。

全部で3箇所の編集が終わったかな?

[shell]:wq[/shell]

で編集を終了保存しましょう。

[shell]sudo /sbin/service sshd restart[/shell]

パスワード聞かれたら入力してね!
sudoコマンドを使って、sshを再起動します。

1.7 システムの文字コードを日本語にする

システムの言語設定ファイル(/etc/sysconfig/i18n)を変更します。

[shell]sudo vi /etc/sysconfig/i18n[/shell]
でLANG=”C”の箇所をLANG=”ja_JP.UTF-8″して:wqで編集終了
これで再ログイン後は、黒い画面の一部のメッセージが日本語になるよ。

1.8システム(パッケージ)を最新にする

[shell]sudo yum -y update[/shell]

sudoでyumコマンドを実行するよ。

※yumコマンド(イエロードッグアップデーター)通称ヤムはパッケージを取得してインストール/アップデートする

これからsudoコマンド多用するけど、いちいちsudoつけるの面倒くさい場合は、

[shell]su[/shell]

でパスワード聞かれるのでrootのパスワードを入力。
rootに切り替わるので、sudo部分を省略できます。

1.9 root宛のメールアドレスを普段使っているメルアドに変更する

[shell]sudo sed -i ‘/^root:/d’ /etc/aliases[/shell]

root宛メール転送設定(/^root:/d)が書かれた(/etc/aliases)に書き換える。

※sedコマンド(ストリームエディタ)は文字列を全置換したり削除したり色々できる

[shell]sudo vi /etc/aliases[/shell]

で(/etc/aliases)をviで編集。
[vim]root: ******@******[/vim]
最下行に追加。******@******部分はメールアドレスに書き換えて編集終了。

[shell]sudo newaliases
echo test | mail root[/shell]

testって文章でroot宛にメールを送信。これで設定したメールアドレスにメールが届けばOK.

※newaliasesコマンド(ニューエイリアス)は/etc/mail/aliases書かれたメール設定を反映させるよ

1.10 kernel panic時の自動再起動

カーネルパニック(OSのエラーでサーバー死亡)になったら、
10秒後に自動で再起動するように設定します。
[shell]sudo vi /etc/sysctl.conf[/shell]
でカーネルパラメータの設定ファイルを編集。

[shell]# When kernel panic’s, reboot after 10 second delay
kernel.panic = 10[/shell]

一番最後に追加する。

[shell]sudo sysctl -p[/shell]

で設定を反映

※sysctlコマンド(システムコントロール)はカーネルパラメータを修正する

[shell]cat /proc/sys/kernel/panic[/shell]

設定が反映されてるか確認する。
10と表示されれば成功している。

※catコマンド(カット)はファイルの内容を閲覧する

1.11 iptablesの設定

ファイアーウォールの設定します。

[shell]sudo vi /etc/sysconfig/iptables[/shell]

設定ファイルをviで編集。

[shell]

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth0 -p all -s 127.0.0.1 -j DROP
-A INPUT -i eth0 -p all -s 10.0.0.0/8 -j DROP
-A INPUT -i eth0 -p all -d 10.0.0.0/8 -j DROP
-A INPUT -i eth0 -p all -s 172.16.0.0/12 -j DROP
-A INPUT -i eth0 -p all -d 172.16.0.0/12 -j DROP
-A INPUT -i eth0 -p all -s 192.168.0.0/16 -j DROP
-A INPUT -i eth0 -p all -d 192.168.0.0/16 -j DROP

-A INPUT -d 255.255.255.255 -j DROP
-A INPUT -d 224.0.0.1 -j DROP
-A INPUT -p tcp –dport 113 -j REJECT –reject-with tcp-reset
-A INPUT -i eth0 -p tcp ! –syn -m state –state NEW -j DROP

:RH-Firewall-1-INPUT – [0:0]
-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 -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 ******* -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 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50000:50030 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT[/shell]

1箇所ある********の部分は1024~49151の間で、好きなポート番号に変更してください。一応、下記サイトで使われてないか確認するといいかもね。

TCPやUDPにおけるポート番号の一覧

長文を挿入するときは、最初と最後がチョン切れてないか確認してね。よくコピペって失敗しますから。

[shell]sudo /etc/rc.d/init.d/iptables restart[/shell]

でファイアーウォールを再起動。

ではでは、今日はこのへんで。

>続きのWEBサーバー編はこちら