さくらのVPS/サーバテンプレート
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2011/09/18からのアクセス回数 &counter;
CMS(コンテンツマネジメントシステム)の各記事にふさわしい広...
Sageの公開サーバを構築するために、さくらのVPSを使うことに...
ここでは、VPSの申し込み直後から最低限必要な設定
- 管理ユーザアカウントの作成
- SSHの設定
- IPTables(ファイアーウォール)の設定
- Apacheの設定
- MySQLの設定
- PHPの設定
方法を紹介します。
** さくらコントロールパネル [#wafc7333]
さくらのVPSを申し込むと、「さくらコントロールパネル」のUR...
VPSの初期画面は以下のようなものです。
&ref(さくらVPSコントロールパネル.png);
何の準備もなく、いきなりサーバを起動するのは危険です。
必要最低限のセキュリティ対策を整えてからはじめましょう。
** テンプレートの必要性 [#gc443693]
少し調べて見ましたが、さくらのサイトには、VPSサーバ構築の...
((すみません、[[さくらインターネット創業日記>http://tanak...
ユーザが何の対処もしないでVPSサーバを起動した場合、セキュ...
Googleで検索したところ、色々な方がさくらのVPSの構築方法を...
ここでは、独断と偏見で参考になるサイトを紹介し、私の取っ...
参考にしたサイト、
- 樋口 彰久氏の
[[さくらVPSでWebサーバを構築するテンプレ>http://www.unlim...
- cross cloverの
[[[さくらのVPS] サーバ移行戦記 (2)>http://www.cross-clove...
[[サーバ移行戦記 (3)>http://www.cross-clover.cc/memo/arch...
- jitsu102の日記の
[[さくらVPSサーバの初期設定いろいろ>http://d.hatena.ne.jp...
です。
** 管理者アカウントの作成 [#need3c8d]
「さくらコントロールパネル」「起動」ボタンを押して、サー...
続いて、「リモートコンソール」ボタンを押して、リモートコ...
改行キーを押すとloginプロンプトが表示されますので、rootと...
&ref(remote_console.png);
*** rootパスワードの変更 [#ad1c6d16]
最初にrootのパスワードを自分の覚えやすいものに変更します。
#pre{{
# passwd
}}
*** 管理者アカウントの作成 [#sa3ff185]
インターネットと直接つながったサーバなので、
- rootでのログインは、リモートコンソールに限定する
- 管理者は、suコマンドを使用しようしないで、すべてsudoコ...
ことを原則します。
まず、管理者用のアカウントを作成します。
#pre{{
# useradd 管理者アカウント
# passwd 管理者アカウント
}}
suコマンドの使用をwheelグループに限定します。
#pre{{
# cp /etc/pam.d/su /etc/pam.d/su.org
# vi /etc/pam.d/su
以下の行のコメント(#)を外す
# auth required pam_wheel.so use_uid
}}
これで、wheelグループ以外のユーザがsuコマンドを使用すると
#pre{{
$ su
su: incorrect password
}}
のエラーが表示され、suコマンドが使えなくなります。
どうしても管理者アカウントにsuコマンドの使用を許したい場...
#pre{{
# usermod -G wheel 管理者アカウント
}}
としてください。
*** sudoの設定 [#m5f58300]
管理者にsudoコマンドの使用を許可するために以下の行を追加...
#pre{{
# visudo
管理者アカウント ALL=(ALL) ALL
}}
これで、管理者アカウントの設定は完了です。rootアカウント...
** SSHの設定 [#ka7543f8]
SSHの設定ポリシーは、
- SSHでのrootログインを許可しない
- パスワード認証を許可しない
- RSA認証のみを許可する
とします。
まず、管理者アカウントにSSH用のディレクトリを作成します。
#pre{{
$ mkdir .ssh
$ chmod 700 .ssh
}}
*** クライアントの公開鍵の転送 [#eeaa970b]
クライアント側のホームディレクトリに.sshが存在しない場合、
#pre{{
$ ls -a
}}
で.sshが表示されない時には、クライアント側の公開鍵を作成...
#pre{{
$ ssh-keygen -t rsa
}}
作成された公開鍵をVPSサーバに転送します。
((SCPの認証はデフォルトのパスワード認証を使っています。))
#pre{{
$ scp .ssh/id_rsa.pub 管理者アカウント@サーバアドレス:/ho...
}}
*** サーバ側のSSH設定 [#bf54c1a9]
サーバに戻って、sshdの設定をします。
#pre{{
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
$ sudo vi /etc/ssh/sshd_config
以下の項目を追加・変更します
Port 10022
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
$ sudo /etc/init.d/sshd restart
}}
*** SSH接続元の制限 [#u1636c05]
SSHのポート番号を22から10022に変更した他に、SSH接続元の制...
以下の例では.jpとしましたが、VPSに接続するポートやプロバ...
#pre{{
$ sudo vi /etc/hosts.allow
以下を追加
ALL: 127.0.0.1
sshd: .jp
$ sudo vi /etc/host.deny
以下を追加
sshd: ALL
}}
ここで、クライアントからパスワード入力なしで、VPSサーバに...
確認しましょう。
** IPTablesの設定 [#n0fc4a91]
ファイアウォールは以下のポリシーで設定します。
- 不要なパケットは破棄する
- 必要なパケットのみ通す
*** ファイアウォール停止とオリジナル設定の保存 [#x0162330]
IPTablesの設定は、/etc/sysconfig/iptablesにあります。
#pre{{
$ sudo /etc/init.d/iptables stop
$ sudo cp /etc/sysconfig/iptables /etc/sysconfig/iptables...
}}
*** デフォルトルール設定 [#d193f608]
既存の設定をクリアし、ポリシーに従ってデフォルトのルール...
ここで、ループバックloのルールをセットするのを忘れないよ...
#pre{{
$ sudo iptables -F
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT ACCEPT
$ sudo iptables -P FORWARD DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
}}
*** プライベートなIPアドレスからの接続を拒否 [#q340c935]
インターネットからの接続でプライベートIPアドレスからの接...
#pre{{
$ sudo iptables -A INPUT -s 10.0.0.0/8 -j DROP
$ sudo iptables -A INPUT -s 172.16.0.0/12 -j DROP
$ sudo iptables -A INPUT -s 192.168.0.0/16 -j DROP
}}
*** PINGの許可 [#k1b735ef]
PINGを許可します。
((ネット攻撃を考えるとすべてのPINGを許可するのは問題があ...
#pre{{
$ sudo iptables -A INPUT -p icmp --icmp-type echo-request...
}}
*** ブロードキャストアドレス、マルチキャストアドレス宛の...
#pre{{
$ sudo iptables -A INPUT -d 255.255.255.255 -j DROP
$ sudo iptables -A INPUT -d 224.0.0.1 -j DROP
}}
*** サーバで必要とするポートへのアクセスを許可 [#y79f6231]
構築するサーバで若干ことなりますが、
ここではSSH, HTTP, Sage用の8000, HTTPS, DNS, SMTP, POP3, ...
#pre{{
$ sudo iptables -A INPUT -p tcp --dport 10022 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT
$ sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 465 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 995 -j ACCEPT
}}
*** 設定の後処理 [#rc97c3d9]
既に接続されているコネクションの処理を追加し、設定を保存...
#pre{{
$ sudo iptables -A INPUT -m state --state ESTABLISHED,REL...
$ sudo /etc/init.d/iptables save
$ sudo /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
$ sudo /etc/init.d/iptables restart
}}
** Apacheの導入 [#k36b02a7]
yumを使ってApacheをインストールした後、必要な設定を行いま...
#pre{{
$ sudo yum install httpd
$ sudo ln -s /usr/bin/perl /usr/local/bin/perl
$ sudo chown -R apache:apache /var/www
$ sudo chmod 2775 /var/www/cgi-bin
$ sudo mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf....
e.conf.org
$ sudo mv /var/www/error/noindex.html /var/www/error/noin...
.org
$ sudo vi /etc/httpd/conf/httpd.conf
以下の項目を追加・変更
ServerTokens Prod
ServerName サブドメイン名.sakura.ne.jp:80
DirectoryIndex index.php index.html
ServerSignature Off
}}
** MySQLの導入 [#l7ab0ad9]
Apacheと同様yumでmysqlをインストールした後、必要な設定を...
#pre{{
$ sudo yum install mysql.x86_64 mysql-devel.x86_64 mysql-...
$ sudo vi /etc/my.cnf
以下を追加
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
}}
** PHPの導入 [#gc171e96]
PHPでは、DBとしてMySQLを想定し、マルチバイト対応とPearの...
((各自のニーズに合わせて変更してください))
#pre{{
$ sudo yum install php
$ sudo yum install php-mbstring php-mcrypt php-mysql php-...
$ sudo vi /etc/php.ini
以下を追加・変更
expose_php = off
error_log = /var/log/php-errors.log
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
$ sudo pear channel-update pear.php.net
$ sudo pear upgrade –force PEAR
$ sudo pear upgrade-all
}}
** コメント [#nbb5d09f]
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2011/09/18からのアクセス回数 &counter;
CMS(コンテンツマネジメントシステム)の各記事にふさわしい広...
Sageの公開サーバを構築するために、さくらのVPSを使うことに...
ここでは、VPSの申し込み直後から最低限必要な設定
- 管理ユーザアカウントの作成
- SSHの設定
- IPTables(ファイアーウォール)の設定
- Apacheの設定
- MySQLの設定
- PHPの設定
方法を紹介します。
** さくらコントロールパネル [#wafc7333]
さくらのVPSを申し込むと、「さくらコントロールパネル」のUR...
VPSの初期画面は以下のようなものです。
&ref(さくらVPSコントロールパネル.png);
何の準備もなく、いきなりサーバを起動するのは危険です。
必要最低限のセキュリティ対策を整えてからはじめましょう。
** テンプレートの必要性 [#gc443693]
少し調べて見ましたが、さくらのサイトには、VPSサーバ構築の...
((すみません、[[さくらインターネット創業日記>http://tanak...
ユーザが何の対処もしないでVPSサーバを起動した場合、セキュ...
Googleで検索したところ、色々な方がさくらのVPSの構築方法を...
ここでは、独断と偏見で参考になるサイトを紹介し、私の取っ...
参考にしたサイト、
- 樋口 彰久氏の
[[さくらVPSでWebサーバを構築するテンプレ>http://www.unlim...
- cross cloverの
[[[さくらのVPS] サーバ移行戦記 (2)>http://www.cross-clove...
[[サーバ移行戦記 (3)>http://www.cross-clover.cc/memo/arch...
- jitsu102の日記の
[[さくらVPSサーバの初期設定いろいろ>http://d.hatena.ne.jp...
です。
** 管理者アカウントの作成 [#need3c8d]
「さくらコントロールパネル」「起動」ボタンを押して、サー...
続いて、「リモートコンソール」ボタンを押して、リモートコ...
改行キーを押すとloginプロンプトが表示されますので、rootと...
&ref(remote_console.png);
*** rootパスワードの変更 [#ad1c6d16]
最初にrootのパスワードを自分の覚えやすいものに変更します。
#pre{{
# passwd
}}
*** 管理者アカウントの作成 [#sa3ff185]
インターネットと直接つながったサーバなので、
- rootでのログインは、リモートコンソールに限定する
- 管理者は、suコマンドを使用しようしないで、すべてsudoコ...
ことを原則します。
まず、管理者用のアカウントを作成します。
#pre{{
# useradd 管理者アカウント
# passwd 管理者アカウント
}}
suコマンドの使用をwheelグループに限定します。
#pre{{
# cp /etc/pam.d/su /etc/pam.d/su.org
# vi /etc/pam.d/su
以下の行のコメント(#)を外す
# auth required pam_wheel.so use_uid
}}
これで、wheelグループ以外のユーザがsuコマンドを使用すると
#pre{{
$ su
su: incorrect password
}}
のエラーが表示され、suコマンドが使えなくなります。
どうしても管理者アカウントにsuコマンドの使用を許したい場...
#pre{{
# usermod -G wheel 管理者アカウント
}}
としてください。
*** sudoの設定 [#m5f58300]
管理者にsudoコマンドの使用を許可するために以下の行を追加...
#pre{{
# visudo
管理者アカウント ALL=(ALL) ALL
}}
これで、管理者アカウントの設定は完了です。rootアカウント...
** SSHの設定 [#ka7543f8]
SSHの設定ポリシーは、
- SSHでのrootログインを許可しない
- パスワード認証を許可しない
- RSA認証のみを許可する
とします。
まず、管理者アカウントにSSH用のディレクトリを作成します。
#pre{{
$ mkdir .ssh
$ chmod 700 .ssh
}}
*** クライアントの公開鍵の転送 [#eeaa970b]
クライアント側のホームディレクトリに.sshが存在しない場合、
#pre{{
$ ls -a
}}
で.sshが表示されない時には、クライアント側の公開鍵を作成...
#pre{{
$ ssh-keygen -t rsa
}}
作成された公開鍵をVPSサーバに転送します。
((SCPの認証はデフォルトのパスワード認証を使っています。))
#pre{{
$ scp .ssh/id_rsa.pub 管理者アカウント@サーバアドレス:/ho...
}}
*** サーバ側のSSH設定 [#bf54c1a9]
サーバに戻って、sshdの設定をします。
#pre{{
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
$ sudo vi /etc/ssh/sshd_config
以下の項目を追加・変更します
Port 10022
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
$ sudo /etc/init.d/sshd restart
}}
*** SSH接続元の制限 [#u1636c05]
SSHのポート番号を22から10022に変更した他に、SSH接続元の制...
以下の例では.jpとしましたが、VPSに接続するポートやプロバ...
#pre{{
$ sudo vi /etc/hosts.allow
以下を追加
ALL: 127.0.0.1
sshd: .jp
$ sudo vi /etc/host.deny
以下を追加
sshd: ALL
}}
ここで、クライアントからパスワード入力なしで、VPSサーバに...
確認しましょう。
** IPTablesの設定 [#n0fc4a91]
ファイアウォールは以下のポリシーで設定します。
- 不要なパケットは破棄する
- 必要なパケットのみ通す
*** ファイアウォール停止とオリジナル設定の保存 [#x0162330]
IPTablesの設定は、/etc/sysconfig/iptablesにあります。
#pre{{
$ sudo /etc/init.d/iptables stop
$ sudo cp /etc/sysconfig/iptables /etc/sysconfig/iptables...
}}
*** デフォルトルール設定 [#d193f608]
既存の設定をクリアし、ポリシーに従ってデフォルトのルール...
ここで、ループバックloのルールをセットするのを忘れないよ...
#pre{{
$ sudo iptables -F
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT ACCEPT
$ sudo iptables -P FORWARD DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
}}
*** プライベートなIPアドレスからの接続を拒否 [#q340c935]
インターネットからの接続でプライベートIPアドレスからの接...
#pre{{
$ sudo iptables -A INPUT -s 10.0.0.0/8 -j DROP
$ sudo iptables -A INPUT -s 172.16.0.0/12 -j DROP
$ sudo iptables -A INPUT -s 192.168.0.0/16 -j DROP
}}
*** PINGの許可 [#k1b735ef]
PINGを許可します。
((ネット攻撃を考えるとすべてのPINGを許可するのは問題があ...
#pre{{
$ sudo iptables -A INPUT -p icmp --icmp-type echo-request...
}}
*** ブロードキャストアドレス、マルチキャストアドレス宛の...
#pre{{
$ sudo iptables -A INPUT -d 255.255.255.255 -j DROP
$ sudo iptables -A INPUT -d 224.0.0.1 -j DROP
}}
*** サーバで必要とするポートへのアクセスを許可 [#y79f6231]
構築するサーバで若干ことなりますが、
ここではSSH, HTTP, Sage用の8000, HTTPS, DNS, SMTP, POP3, ...
#pre{{
$ sudo iptables -A INPUT -p tcp --dport 10022 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT
$ sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 465 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 995 -j ACCEPT
}}
*** 設定の後処理 [#rc97c3d9]
既に接続されているコネクションの処理を追加し、設定を保存...
#pre{{
$ sudo iptables -A INPUT -m state --state ESTABLISHED,REL...
$ sudo /etc/init.d/iptables save
$ sudo /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
$ sudo /etc/init.d/iptables restart
}}
** Apacheの導入 [#k36b02a7]
yumを使ってApacheをインストールした後、必要な設定を行いま...
#pre{{
$ sudo yum install httpd
$ sudo ln -s /usr/bin/perl /usr/local/bin/perl
$ sudo chown -R apache:apache /var/www
$ sudo chmod 2775 /var/www/cgi-bin
$ sudo mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf....
e.conf.org
$ sudo mv /var/www/error/noindex.html /var/www/error/noin...
.org
$ sudo vi /etc/httpd/conf/httpd.conf
以下の項目を追加・変更
ServerTokens Prod
ServerName サブドメイン名.sakura.ne.jp:80
DirectoryIndex index.php index.html
ServerSignature Off
}}
** MySQLの導入 [#l7ab0ad9]
Apacheと同様yumでmysqlをインストールした後、必要な設定を...
#pre{{
$ sudo yum install mysql.x86_64 mysql-devel.x86_64 mysql-...
$ sudo vi /etc/my.cnf
以下を追加
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
}}
** PHPの導入 [#gc171e96]
PHPでは、DBとしてMySQLを想定し、マルチバイト対応とPearの...
((各自のニーズに合わせて変更してください))
#pre{{
$ sudo yum install php
$ sudo yum install php-mbstring php-mcrypt php-mysql php-...
$ sudo vi /etc/php.ini
以下を追加・変更
expose_php = off
error_log = /var/log/php-errors.log
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
$ sudo pear channel-update pear.php.net
$ sudo pear upgrade –force PEAR
$ sudo pear upgrade-all
}}
** コメント [#nbb5d09f]
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc