さくらVPS 初期設定メモ
さくらのVPSを借りました。
初期設定についてまとめました。
やったこと一覧
- さくらVPSの起動
- 基本設定
- 作業ユーザーの設定
- 認証鍵の設定
- SSHの設定
- ファイアーウォールの設定
- Webサーバーの設定
- PHPの設定
- MySQLの設定
1.さくらVPSの起動
VPS申し込みから起動まで
申し込み
ここから申し込む
申し込むと数分後に [さくらのVPS] 仮登録完了のお知らせ というメールが届く。
パスワードやIPアドレスが書かれているので忘れないようにする。
VPSの起動
先ほどのメールの情報を元にログインを済ませる。
- IPアドレス
- パスワード
- コントロールパネルのURL
VPSは初期状態だと停止している。稼動させる。
コントロールパネルに起動と書かれてるボタンがあるので押す。
「停止中」が「稼働中」に変わればVPSの起動は成功です。
2.基本設定
ここでターミナルを準備する。IPアドレス等をしてVPSに接続する。
私はPuTTY ごった煮版を使っています。
アプリケーションを最新版に更新
$ yum update
yumとはCentOSなどで利用されるパッケージ管理ツールです。
yum updateでVPSのアプリケーションを最新の状態にします。
更新が無ければ以下の表示がされる。
No Packages marked for Update
ある場合は(y/n)で聞かれる。yで更新をかける。
日本語化
$ vim /etc/sysconfig/i18n
LANGの値を変える。
LANG="ja_JP.UTF-8"
反映のため、一度ログアウトしログインする。
3.作業ユーザーの設定
ユーザーを追加する。
$ useradd ユーザー名
$ passwd パスワード
sudo権限を与える
sudoは、ユーザーが別ユーザーの権限でプログラムを実行するためのコマンドです。
root権限を利用するために必要になります。
ユーザをwheelグループに変更する
このwheelグループがsudoできるようにする。
$ usermod -G wheel ユーザー名
sudoersファイル(sudo周りの設定ファイル)を編集する。
$ visudo
コメントアウトを外す
#%wheel ALL=(ALL) ALL
↓
%wheel ALL=(ALL) ALL
保存して設定終了
追加したユーザー名、パスワードでログインできれば成功です
4.認証鍵の設定
公開鍵を入れるディレクトリを作る
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
公開鍵・秘密鍵を生成する、生成方法は環境によって変わるため割愛します。
私はPuttyに付属している鍵生成を使いました。
生成した公開鍵は以下のように保存する。
秘密鍵はローカルで保持する。
~/.ssh/authorized_keys
パーミッション変更
$ chmod 600 ~/.ssh/authorized_keys
設定した鍵認証でログインできれば成功です。
5.SSHの設定
鍵認証の設定だけではrootログイン等できてしまう。
さらにセキュリティを高める設定する。
- ポート番号の変更
- rootログインの禁止
- パスワードログインの禁止
root権限での処理が続くので変更する。
$ sudo -s
sshd_configを編集する。
SSHの設定します。
$ vim /etc/ssh/sshd_config
ポート番号の変更
ポートはデフォルトで22が割り振られている。
そのため攻撃の対象になりやすいです。1024~65535までの範囲で設定する。
/Portで検索し、編集
#Port 22
↓
Port 1024~65535
パスワードログインの禁止
PasswordAuthentication yes
↓
PasswordAuthentication no
rootログインの禁止
#PermitRootLogin yes
↓
PermitRootLogin no
ここまで設定したら保存して終了し、sshdを再起動する。
$ service sshd restart
OKと出れば設定完了です。
6.ファイアーウォールの設定
iptablesを使います。
これはLinuxに実装されているパケットフィルタリング型のファイアウォール機能です。
新規作成し記述します。
$ vim /etc/sysconfig/iptables
例
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:SERVICES - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j SERVICES
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
-A SERVICES -p tcp --dport 80 -j ACCEPT
-A SERVICES -p tcp --dport 443 -j ACCEPT
-A SERVICES -p tcp --dport (上で設定したポート番号) -j ACCEPT
COMMIT
iptablesを有効にします。
$ service iptables restart
OKが出れば設定完了です。
設定の確認をする。
$ iptables -L
ファイアーウォールの設定はこれで終了です。
7.Webサーバーの設定
Apacheをインストールする。
CentOSではhttpdはApacheのことを指します。
$ yum install httpd
自動起動するようにする。
$ chkconfig httpd on
セキュリティの設定をする。
$ vim /etc/httpd/conf/httpd.conf
3箇所以下のように書き換える。
ServerTokens OS
↓
ServerTokens Prod
ServerSignature On
↓
ServerSignature Off
Options Indexes FollowSymLinks
↓
Options -Indexes FollowSymLinks
設定が正しいかチェックし、起動する。
$ service httpd configtest
$ service httpd start
ブラウザでVPSのIPアドレスを入力し、Apache Test Pageと表示されればWebサーバーの設定は成功です。
8.PHPの設定
PHPをインストールする。
$ yum install php php-devel php-mysql php-mbstring php-gd
設定ファイルを編集する。
$ vim /etc/php.ini
エラーログの出力場所をわかりやすい場所に変更
;error_log = php_errors.log
↓
error_log = /var/log/php.log
日本語にする設定
;mbstring.language = Japanese
↓
mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
↓
mbstring.internal_encoding = UTF-8
;mbstring.http_input = auto
↓
mbstring.http_input = auto
;expose_php = On
↓
expose_php = Off
タイムゾーンの設定
;date.timezone =
↓
date.timezone = Asia/Tokyo
設定を反映させるため、httpdを再起動する。
$ service httpd restart
OKが出ればPHPの設定は完了です
9.MySQLの設定
MySQLをインストールする。
$ yum install mysql-server
設定ファイルを編集する。
$ vim /etc/my.cnf
文字コードをUTF8にするため、追記する。
[mysqld]
character-set-server = utf8
MySQLを起動する。
$ service mysqld start
セキュリティの設定をします。
$ mysql_secure_installation
いくつか質問をされます。
- rootパスワードの変更
- rootのリモートホストからのログインの禁止
- testデータベースの削除
- 匿名ユーザーの削除
基本的にyで承諾しながら進みます。
自動起動の設定もします。
$ chkconfig mysqld on
動作確認。
先ほど設定したパスワードを入力し、ログインする。
mysql -u root -p
MySQLが立ち上がれば設定完了です。
Author And Source
この問題について(さくらVPS 初期設定メモ), 我々は、より多くの情報をここで見つけました https://qiita.com/potion/items/173e091514f185d109b1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .