イメージ画像

さくらのVPSでサーバー構築(4)

VPSサーバーはレンタルサーバーと違って、セキュリティは自分で設定しなくてはいけません。サーバー攻撃を避けるためにも、セキュリティは確実に設定しましょう。

Sudoの設定

まず、rootユーザーでアクセスしないように、一般ユーザー(例:hide)を作成し、Sudoを設定します。

useradd hide
passwd hide
visudo
sudo vi /etc/ssh/sshd_config
sudo systemctl restart sshd
  1. 「useradd ユーザー名」で新規ユーザーを作成します。
  2. 「passwd ユーザー名」の後に、新規ユーザーのパスワードを2回入力します。
  3. 「visudo」コマンドで、Sudo設定ファイルを開き、最終行に「hide  ALL=(ALL) ALL」を追加します。
  4. 次に、rootユーザーのログインを禁止します。
  5. sudo vi /etc/ssh/sshd_config で設定ファイルを開き、『#PermitRootLogin yes』を『PermitRootLogin no』に変更します。
  6. sshサービスを再起動します。『sudo systemctl restart sshd』

これで、一般ユーザーにroot権限を委譲しました。root権限が必要なコマンドに関しては、先頭にsudoを付与して、コマンドを実行することができます。※パスワードを尋ねられた場合は、一般ユーザーのパスワードを入力します。

ファイアウォールの設定

CentOS6まではLinuxサーバ上でファイアウォールを稼働する場合、iptablesを使ったフィルタを実装するのが一般的でしたが、CentOS7では、新たなファイアウォールとしてfirewalldという機能が実装されました。このfirewalldは内部的にiptablesを利用しているのですが、firewalldとiptablesを併用することはできませんので注意が必要です。

このfirewalldは事前にゾーンというものを定義し、そのゾーンに対して許可するサービスを定義していきます。いろいろなゾーンがありますが、デフォルトのpublicゾーンに対して、定義を設定します。

それでは、現在のファイアウォールを確認してみましょう。

systemctl status firewalld

※Active:acitve(running)….となっている場合は、稼働中です。Activeになっていない場合は、下記の要領で稼働中にします。

systemctl start firewalld
systemctl enable firewalld

現在の設定を表示します。

firewall-cmd --list-all

下記のように表示されます。(環境によって異なります。)※デフォルトのpublicゾーンでは、dhcpv6-clientとsshのみがサービスとして許可されています。

public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

それでは、下記のようにして、httpサービスを追加します。

sudo firewall-cmd --add-service=http --permanent

successと表示されたら、OKです。下記のコマンドで稼働中のサービスのみを確認できます。

sudo firewall-cmd --reload
firewall-cmd --list-service

パスワード認証から鍵認証へ変更する

最近はパスワード総当たり攻撃が非常に多くなっています。そこで、より安全にサイトを管理するために、パスワード認証から、鍵認証へ変更しましょう。

一般ユーザーのまま、下記のコマンドを入力して、鍵ペアを作成します。

ssh-keygen -t rsa
  • 保存場所は、/home/ユーザー名/.ssh/id_rsa と入力します。
  • パスフレーズを設定します。(空のままでも設定できます。)

作成できているかどうか確認してみます。

ls .ssh
  • id_rsaとid_rsa.pubの2種類のファイルが作成されていると思います。

公開鍵の名前を変更し、パーミッションも変更します。

mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
  • 作成されたid_rsa.pubをauthorized_keysに変更します。
  • ファイルのパーミッションを、600に変更します。

次に、WinSCPで作成したid_rsaをローカルのPCにダウンロードします。ダウンロードの箇所は、どこでもいいのですが、例として、C:\Users\ユーザー名\.ssh\sakuraに保存します。

WinSCPの設定

  1. WinSCPを起動したら、新しいサイトをクリックし、ホスト名にVPSサーバーのIPアドレス、ユーザー名に一般ユーザー、パスワードに一般ユーザーのパスワードを入力します。
  2. 設定をクリックし、左メニューの認証をクリックします。
  3. 秘密鍵に、先ほどダウンロードしたid_rsaを選択して、OKをクリックします。
  4. すると、『この秘密鍵OpenSSH SSH-2をPutTTYgenでPuTTY形式の秘密鍵に交換しますか?』のダイアログが表示されますので、OKをクリックします。
  5. PuTTYgen:Enter Passphraseとパスフレーズを入力する小さなダイアログが表示されますので、先ほど鍵ペアを作成するときに入力したパスフレーズを入力します。
  6. 『Successfully imported foreign key…』と表示されたら、PuTTYgen形式の秘密鍵が完成しましたので、OKをクリックします。
  7. PuTTY Key Generatorが起動したら、『Save private key』ボタンをクリックし、C:\Users\ユーザー名\.ssh\sakuraに名前を付けて保存します。例:sakura.ppk
  8. 保存したら、PuTTY Key Generatorを終了します。
  9. WinSCPの画面に戻ったら、今保存した秘密鍵を選択して、OKをクリックします。
  10. トップに戻ったら、保存して、ログインボタンをクリックするとサイトにログインすることができます。

Rloginの設定

次にRLoginを設定します。

  1. ファイル→サーバーに接続から、今まで、使用していたサーバーを選択し、編集ボタンをクリックします。
  2. SSH Identity Keyの参照(K)ボタンをクリックします。
  3. C:\Users\ユーザー名\.ssh\sakuraフォルダのid_rsaファイルか、sakura.ppkファイルを選択します。
  4. OKボタンをクリックすると、サーバーに接続することができます。

パスワード認証の禁止

上記の設定が完成したら、パスワード認証を禁止し、鍵認証でのみ認証できるように環境ファイルを変更します。

sudo vi /etc/ssh/sshd_config
  • 77行目のパスワード認証の箇所を探します。
  • #PasswordAuthentication yes
  • 下記のように変更します。
  • PasswordAuthentication no

ファイルを保存したら、sshdを再起動します。

sudo systemctl restart sshd

これで、一応基本的なセキュリティ対策は、OKです。それでは、快適なVPSサーバー生活をお楽しみ下さい。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

2016年6月27日 | コメント/トラックバック(0) |

カテゴリー:CentOS さくらのVPS

祝!PHP7.0.0リリース

phpの10年ぶりとなるメジャーバージョンアップ『PHP7.0.0』の正式版が2015年12月3日についにリリースされました。php6.0へのバージョンアップの模索及び断念から、紆余曲折を経ての誕生に、感慨一入です。

そこで、今日はCentOS7にPHP7.0.0をyumコマンドでインストールする方法をご紹介したいと思います。と、いっても以前ご紹介した方法ですが(*^▽^*)

remiリポジトリのインストール

一番簡単に、PHP7.0.0をインストールするには、remi-php70リポジトリを利用します。

まず最初にwgetコマンドで、最新のremiリポジトリをダウンロードします。

wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

wgetコマンドがインストールされていない場合は、yumコマンドでインストールしてください。

yum -y install wget

次に、rpm(Red Hat package manager)で、remiリポジトリをインストールします。

rpm -Uvh remi-release-7.rpm
  • -Uオプションは、RPMパッケージをインストール又は、アップグレードします。
  • -Vオプションは、RPMパッケージを検査します。
  • -Hオプションは、RPMパッケージの進行状況を「#」記号で表示します。
  • ※尚、epelがインストールされていない場合は、エラーになりますので、下記のコマンドでepelをインストールしてから、再度上記コマンドを実行してください。
  • yum -y install epel-release

最新のremiリポジトリをインストールしたら、/etc/yum.repos.dディレクトリ内にあるremi-php70.repoという名前のレポジトリを利用してインストールします。

yumコマンドでインストール

yum -y install --enablerepo=remi-php70 php php-mbstring php-pear php-fpm phpMyAdmin php-mcrypt

たったこれだけでphp7.0.0がインストールできました。簡単ですね。

さあ皆さん、php7を堪能してください。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

2015年12月5日 | コメント/トラックバック(0) |

カテゴリー:CentOS

CentOS7にMySQL5.7のインストール

飛躍的に処理能力がアップしたと評判の最新のMySQL5.7.9をCentOS7にインストールする方法を調べてみたいと思います。

  1. 現状のインストールされているMySQLを調べてみます。
    rpm -qa | grep mysql
  2. 現状のMySQLのバージョンを削除します。
    yum remove mysql*
  3. rmpを追加します。
    yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
  4. yum-utilsを先にインストールします。
    yum -y install yum-utils
  5. MySQLをインストールできるように調整します。
    yum-config-manager --disable mysql56-community
    yum-config-manager --enable mysql57-community-dmr
  6. インストールを開始します。※結構時間がかかります。
    yum install -y mysql mysql-devel mysql-server mysql-utilities
  7. MySQLのバージョンを確認してみましょう。5.7.9がインストールされています。
    mysql --version
  8. MySQLを起動します。
    systemctl start mysqld
  9. 初期パスワードを確認します。
    vi /var/log/mysqld.log
  10. 6行目あたりに、A temporary password….と表示されている箇所root@localhost:以下にパスワードが表示されています。
    2015-11-21 17-15-23
  11. 上記のパスワードでMySQLを起動します。
    mysql -u root -p'J;ULqQ+-a6<t'
  12. MySQLが起動したら、早速パスワードを変更します。尚、新規パスワードには、大文字、小文字、数字、記号の全てが入っている必要があります。
    set PASSWORD='Winroad.*1234';
  13. my.confファイルを修正します。
    vi /etc/my.cnf
  14. MySQL5.7からは、デフォルトでパスワードの保存期間が、360日に指定されていますので、パスワードの保存期間を無期限に変更します。my.cnfファイルの最後に下記を追加します。
    default_password_lifetime = 0

これで、MySQL5.7が無事インストールできました。

2015-11-21 20-43-13

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

2015年11月21日 | コメント/トラックバック(0) |

カテゴリー:CentOS さくらのVPS

CentOS7+NginxにLaravel5のインストール

Laravelのインストールは、Apache環境では何度もやっているのですが、今回はCentOS7+Nginx+PHP-FPM環境でLaravelが動くように設定してみたいと思います。

Composerのインストール

LaravelをインストールするにはComposerが必要ですが、まだ導入していない場合は、下記のコマンドでインストールします。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Laravelのインストール

  1. nginxのWebのデフォルトルートは、/usr/share/nginx/htmlですが、ApacheのWebルートフォルダの方がなじみがあるので、Laravelを下記の箇所(/var/www/laravel)にインストールします。
    cd /var/www
    composer create-project laravel/laravel laravel dev-master --prefer-dist
  2. サブドメイン(laravel.winroad.org)を作成します。サブドメインの作成方法は、こちらをご参照下さい。

この投稿の続きを読む »

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

さくらのVPSでサーバー構築(3)

今日は、PHP、MySQL5.7、phpMyAdminをインストールしたいと思います。

PHP及びPHP-FPMのインストール

  1. epelでインストールします。
    yum --enablerepo=epel -y install php php-mbstring php-pear php-fpm
  2. php-FPMを設定します。
    vi /etc/php-fpm.d/www.conf
  3. デフォルトでuserとgoupがapacheに設定されていますので、nginxに変更します。
  4. 39行目のuser=apacheを下記に変更します。
    user = nginx
  5. 41行目のgroup=apacheを下記に変更します。
    group = nginx
  6. php-fpmの起動と自動起動を設定します。
    systemctl start php-fpm
    systemctl enable php-fpm

この投稿の続きを読む »

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

2015年11月15日 | コメント/トラックバック(0) |

カテゴリー:CentOS さくらのVPS

さくらのVPSでサーバー構築(2)

今日は、急激にシェアを伸ばして、Apacheを脅かす存在に成長したWebサーバーのNginxをインストールしたいと思います。

リポジトリの追加

Nginxをインストールする前に、EpelとRPMForgeリポジトリを追加しておきます。

Server World様の『リポジトリを追加する』を参照して、追加してください。

Nginxのインストール

EPELからNginxをインストールします。インストールされたnginxのバージョンは、1.6.3でした。

yum --enablerepo=epel -y install nginx

インストールしたら、Nginxを起動及び自動起動設定をします。

systemctl start nginx
systemctl enable nginx

この投稿の続きを読む »

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

さくらのVPSでサーバー構築(1)

今回、下記の内容で、さくらのVPSサーバーを借りましたので、実際にサーバーを構築する手順等を書き留めていきたいと思います。

  • ゾーン 東京第2ゾーン
  • メモリ 2GB
  • ディスク SSD 50GB
  • CPU 3コア

OSの再インストール

さくらのVPSの標準OSは、CentOS6ですので、まず、最初にCentOS7にアップグレードしたいと思います。

この投稿の続きを読む »

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

2015年11月12日 | コメント/トラックバック(0) |

カテゴリー:CentOS さくらのVPS

Laravel5で社内専用サイト(6-4)

さて、前回までで基本的なデータベースは完成しました。尚、UserとRoleの関連づけは本サイトでは、ご紹介していませんが、そんなに難しくないと思いますので、各自で作成してください。※Userの修正ページでロールのリストからRole_idを選択するように作成すればいいと思います。

まず、ACL(アクセスコントロールリスト)ですが、認証のauthも兼ねて作成するのも1つですが、authとは、別で作成する方法を考えてみたいと思います。ですので、アクセス制限するページには、$this->middleware(‘auth’)の後に、$this->middleware(‘acl’)と入力します。

こうすれば、$this->middleware(‘acl’,[‘only’=>[‘getDelete’,’postDelete’]])とすることで、削除用のメソッド以外には、一般的なログインユーザーがアクセスすることができるようになります。

この投稿の続きを読む »

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

2015年8月20日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5で社内専用サイト(6-3)

前回は、ロールとパーミッションのデータをいくつか入力してみました。今回は、このロールとパーミッションを関連づけしたいと思います。

ロールとパーミッションの関連づけ

ロールの詳細ページから、パーミッションの許可(allow)の設定を行いたいと思います。getViewを下記のように作成します。

app/Http/ControllersAuth/AclController.php

//ロールの詳細
 public function getView($role_id)
 {
 $role=Role::find($role_id);
 //ユーザーが取得しているパーミッションのリスト
 $lists=$role->permissions->lists('id');
 //全パーミッションから取得済みパーミッションを除外して取得
 $permissions=Permission::whereNotIn('id',$lists)->get();
 return view('acl.view',compact('role','permissions'));
 }

この投稿の続きを読む »

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

2015年8月19日 | コメント/トラックバック(0) |

カテゴリー:Laravel

Laravel5で社内専用サイト(6-2)

前回、テーブルとモデルを作成しましたので、本日は、それらのテーブルにデータを入力してみたいと思います。まず最初にAclコントローラを作成します。

ACLコントローラの作成

AclController.phpを作成するために、コマンドプロンプトに下記のように入力します。

php artisan make:controller Auth\AclController

これで、app/Http/Controllers/Authフォルダ内にAclController.phpが生成されます。

ルーターにAclControllerを登録します。

app/Http/routes.php

Route::controller('acl','Auth\AclController');

それでは、まず最初に、AclControllerで使用するモデルをuse演算子で追加します。

この投稿の続きを読む »

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

2015年8月18日 | コメント/トラックバック(0) |

カテゴリー:Laravel

このページの先頭へ