- さくらVPSの契約
- 表示を日本語化
- 作業用ユーザーの作成
- SSHの設定
- 作業用ユーザーを sudo できるようにする
- 鍵認証の作成と保存
- SSHログイン方法を鍵認証に変更
- iptables(ファイアウォール)の設定
- PHPのインストール
- Apache(httpd)のインストール
- Apacheの設定
- Mysqlのインストール
- phpMyAdminのインストール
- FTP接続できるようにする(vsftpd)
- バーチャルホストの設定
- バリュードメインで取得したドメインをさくらのVPSに設定
- ベーシック認証の設定
さくらVPSの契約
2週間お試しはクレジットカードのみ。
お試し期間中は機能制限がある。
→お試し期間中の制限と本登録について
vps.sakura.ad.jp/flow.html
契約後にメールで管理用ユーザー情報が送られてくる。
1 2 3 4 5 6 7 8 9 |
メール件名:[さくらのVPS] 仮登録完了のお知らせ ------------------------------------------------ [サーバ基本情報] IPアドレス:***.***.**.*** [管理用ユーザ] ユーザ名 :root (※) 初期パスワード:********** ------------------------------------------------ |
Cent OS バージョン確認
1 |
cat /etc/redhat-release |
yum updateの実行
1 |
yum update |
表示を日本語化
設定ファイルを開く
1 |
vim /etc/sysconfig/i18n |
下記に変更
1 2 3 4 5 |
LANG="C" SYSFONT="latarcyrheb-sun16" ↓↓↓↓ LANG="ja_JP.UTF-8" SYSFONT="latarcyrheb-sun16" |
その後、再起動を行う。
作業用ユーザーの作成
複数人で作業したいため、グループを先に作成
1 |
groupadd GROUP_NAME |
ユーザーの作成
1 |
useradd -g GROUP_NAME USER_NAME |
作成したユーザーのパスワードを設定
1 |
passwd USER_NAME |
ユーザー一覧
1 |
cut -d: -f1 /etc/passwd |
SSHの設定
1 |
vim /etc/ssh/sshd_config |
ポート番号の変更
1 2 3 |
#Port 22 ↓↓↓ Port 2468 |
SSH接続でrootでログインを禁止
1 2 3 |
#PermitRootLogin yes ↓↓↓ PermitRootLogin no |
SSH許可ユーザーの設定
1 2 |
# hoge というユーザだけログインを許可する AllowUsers hoge |
wqで保存して再起動
1 |
/etc/init.d/sshd restart |
作業用ユーザーを sudo できるようにする
設定ファイルを開く
1 |
visudo |
sudo できるユーザー、またはグループを追記
1 |
%GROUP_NAME ALL=(ALL) NOPASSWD: ALL |
鍵認証の作成と保存
秘密鍵・公開鍵の作成
teraterm の メニューから、
1 |
設定 → SSH鍵生成 → 生成(RSA・2048bit) → 任意のパスフレーズ入力 → 公開鍵と秘密鍵をローカルに保存 |
鍵認証用の保存場所として、ユーザーのホームディレクトリの直下にフォルダを作成
1 |
mkdir /home/USER_NAME/.ssh |
パーミッションは700に設定
1 |
chmod 700 /home/USER_NAME/.ssh |
公開鍵の設定ファイルを作成(USER_NAMEはユーザー名)
authorized_keysファイルを作成し、ローカルに保存した公開鍵の内容をコピペする。
1 |
vim /home/USER_NAME/.ssh/authorized_keys |
authorized_keysのパーミッションは600に設定(USER_NAMEはユーザー名)
1 |
chmod 600 /home/USER_NAME/.ssh/authorized_keys |
SSHのログイン方法を鍵認証に変更
SSH設定ファイルを開く
1 |
vim /etc/ssh/sshd_config |
鍵認証を使うように変更
1 2 3 4 5 6 7 |
#RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys ↓↓↓↓↓ RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys |
パスワード認証ログインを無効に変更
※鍵認証でログインできた後に変更する
1 2 3 |
#PasswordAuthentication yes ↓↓↓↓↓ PasswordAuthentication no |
SSHを再起動
1 |
service sshd restart |
うまくログインできない場合
ディレクトリ・ファイルのパーミッションをよく確認する。
ユーザーのホームディレクトリは、自分以外に書き込み権限を与えてはいけない。(777や775の場合は755に変更)
1 |
chmod 755 /home/USER_DIR/ |
iptables(ファイアウォール)の設定
設定ファイルを開く
1 |
vim /etc/sysconfig/iptables |
→ポート番号は適宜変更
→COMMIT以降に改行やスペースを入れてはいけない。
→無駄なスペースが入っているとエラーになる場合がある(ここらへんのルールが分からない)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :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 -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 2468 -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 3306 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT |
iptables再起動
1 |
/etc/init.d/iptables restart |
PHPのインストール
1 |
yum -y install php php-cli php-fpm php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml php-imap php-pecl php-mcrypt php-common |
タイムゾーンの設定
php.iniを開く
1 |
vim /etc/php.ini |
下記に設定
1 |
date.timezone = "Asia/Tokyo" |
Apache(httpd)のインストール
Apacheをyumでインストール
1 |
yum -y install httpd |
Apacheを起動
1 |
/etc/rc.d/init.d/httpd start |
自動起動設定をONに設定
1 |
/sbin/chkconfig httpd on |
Apacheの設定
Apache設定ファイルを開く
1 |
vim /etc/httpd/conf |
Webサーバーにアクセスしたクライアントに返す情報を最小限にする
(OS情報等を返すと攻撃者にヒントを与えてしまうため)
1 2 3 |
ServerTokens OS ↓↓↓↓ ServerTokens Prod |
404等のエラーページに表示されるサーバー情報を非表示に変更
(ServerTokensと同様の理由)
1 2 3 |
ServerSignature On ↓↓↓↓ ServerSignature Off |
Mysqlのインストール
Mysqlをyumでインストール
1 |
yum -y install mysql-server |
Mysqlを起動
1 |
service mysqld start |
自動起動設定
1 |
chkconfig mysqld on |
再起動
1 |
service mysqld restart |
設定されたか確認
1 |
chkconfig --list mysqld |
2~5までがonになっていればOK
phpMyAdminのインストール
yumでインストール
1 |
yum install phpmyadmin |
※設定を変更したら、httpdを再起動して反映。
1 |
service httpd restart |
yumに入っていない場合、remiでインスト
qiita.com/kidachi_/items/40f862181050b78b9cc7
ブラウザからアクセスできるように変更
設定ファイルを開く
1 |
vim /etc/httpd/conf.d/phpMyAdmin.conf |
下記のように変更
1 2 3 4 5 6 7 |
# Apache 2.2 #Order Deny,Allow ←コメントアウト #Deny from All ←コメントアウト #Allow from 127.0.0.1 ←コメントアウト #Allow from ::1 ←コメントアウト Order allow,deny ←追加 Allow from all ←追加 |
認証方法をベーシック認証からCookie認証に変更
設定ファイルを開く
1 |
vim /etc/phpMyAdmin/config.inc.php |
パスフレーズを入力(適当な乱数)
1 |
$cfg['blowfish_secret'] = 'abcdefghijasklmnopqrssssdtuvwxyz0123456789'; |
auth_typeをhttpからcookieに変更
1 |
$cfg['Servers'][$i]['auth_type'] = 'cookie'; |
phpMyadminのURLを変更
設定ファイルを開く
1 |
vim /etc/httpd/conf.d/phpMyAdmin.conf |
下記にように変更
1 2 3 |
#Alias /phpMyAdmin /usr/share/phpMyAdmin ←コメントアウト #Alias /phpmyadmin /usr/share/phpMyAdmin ←コメントアウト Alias /XXX-pma /usr/share/phpMyAdmin //←任意のURLを設定 |
hogehoge.jp/XXX-pma/でphpMyAdminにアクセスできる。
FTP接続できるようにする(vsftpd)
vsftpdをyumからインストール
1 |
yum -y install vsftpd |
vsftpdを起動する
1 |
/etc/rc.d/init.d/vsftpd start |
設定方法は下記のサイトが分かりやすい
pro-grammer.info/archives/902
バーチャルホストの設定
設定ファイルを作成
1 |
vim /etc/httpd/conf.d/vhost.conf |
下記を適宜変更して記述する。
XXXXXの部分を取得したドメインに変更
1 2 3 4 5 6 7 8 9 10 |
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/html/ ServerName XXXXX.info ServerAlias www.XXXXX.info <Directory "/var/www/html/"> AllowOverride All </Directory> </VirtualHost> |
Apacheを再起動
1 |
/etc/rc.d/init.d/httpd restart |
バリュードメインで取得したドメインをさくらのVPSに設定
DNS設定
xxx.xxx.xx.xxxはVPSのIPアドレス
1 2 |
a @ xxx.xxx.xx.xxx cname www @ |
ネームサーバー変更
1 2 3 4 5 |
ns1.value-domain.com ns2.value-domain.com ns3.value-domain.com ns4.value-domain.com ns5.value-domain.com |
ベーシック認証の設定
httpd.conf または.htaccessに記述
1 2 3 4 5 6 |
<Directory "/home/"> AuthType Basic AuthName "ID and password" AuthUserFile /etc/httpd/conf/.htpasswd Require valid-user </Directory> |
htpasswdの作成
.htpasswdの内容
1 2 |
/etc/httpd/conf/.htpasswdファイル USER_NAME:PASSWORD // PASSWORDは暗号化されたもの |
.htpasswd をコマンドで作成
1 |
htpasswd -c .htpasswd USER_NAME |
ユーザの追加(オプションの c が不要)
1 |
htpasswd .htpasswd USER_NAME |
ユーザーの削除
1 |
htpasswd -D .htpasswd USER_NAME |
特定のディレクトリを除外
1 2 3 4 |
// httpd.confファイル または.htaccess <Directory "/DIR_PATH/"> satisfy any </Directory> |