Server

CentOS7でwebサーバの初期設定

投稿日:2018年6月25日 更新日:

はじめに

CentOSでのサーバ構築は6までしか経験してなかったのですが、今後建てるなら7でしょ、ということで手順をまとめてみます。

設定内容

VPSでCentOS7を選び、webサーバとして最低限の機能を構築することを想定しています。

  • 必要なパッケージをインストール
  • SSH設定
  • httpd2.4 + let’s encryptでhttps接続

必要なパッケージをインストール

まずはカーネルその他諸々アップデート

yum -y install yum-priorities yum-fastestmirror
yum update

dnf

yumの後継として、Fedoraでは22以降で標準になっているパッケージ管理システムです。
CentOS7でも使えますが、標準では入っておらず、yumでインストールすることもできないようです。

ということで、RPMを直接ダウンロードしてインストールします。
参考:CentOS 7.2でdnfを使う方法

以後はdnfを使っていきます。yumと同じような感じで使えます。

SSH設定

ユーザー作成・設定

ローカル側で鍵作成

パスなしで作成します(何も入力せずEnterでOK)。
hoge_rsaとhoge_rsa.pubが作成されるので.pubの方をリモートにアップロードします。
scp -P ポート番号 ローカルからアップロードしたいファイルのパス ユーザ名@リモートのホスト名:リモートのコピー先ディレクトリ

サーバにアップロードした公開鍵をリネーム

sshd_config編集

ここまでやったらsshdを再起動します。
sudo systemctl restart sshd

サービスの自動起動は最後にまとめて設定します。

ファイアウォールの設定変更

参考:CentOS7でSSHのポート番号を変更する

ローカルから鍵認証でSSHログインできるかを確認します。
ssh -p 23456 -i ~/.ssh/hoge_rsa xxx@xxx.xxx.xxx.xxx

httpd2.4

インストール

Baseリポジトリには2.4系の古いバージョンしかないので、最新バージョンを扱うリポジトリを登録します。
参考:CentOS7にApache2.4最新版をyum installする
dnf -y install https://centos7.iuscommunity.org/ius-release.rpm

iusリポジトリに無いが、httpdインストール時に必要となるパッケージをBaseリポジトリから入れておきます。
dnf install expat-devel libdb-devel cyrus-sasl-devel

これで準備完了です。httpdの古いバージョンが入ることを防ぐため、Baseリポジトリを無効化してインストールします(ついでにopensslとmod_sslも)。
dnf install --disablerepo=base --enablerepo=ius httpd-devel openssl-devel mod_ssl

ファイアウォール設定

httpで80番、httpsは443番を開放します。

ここまででhttp接続はできるようになっているはずです。ブラウザでアクセスして、おなじみの It works! が表示されればOKです。

let’s encryptでhttps化

certbotインストール&実行

let’s encryptで取得した証明書の期限は3ヶ月なので、定期的(ここでは毎月1日の04:00)に更新するようにcronを設定します。

正常に終了していれば、公開鍵ファイルが生成されています。

ssl.conf編集

以前にも紹介した「Mozilla SSL Configuration Generator」が便利です。

httpd2.4.33 + openssl1.0.2k + Modern(セキュリティ強め設定、要件次第では不要かも)

SSLProtocolSSLCipherSuite はVirtualHostディレクティブの外で設定しましょう。

サービスの自動起動設定

サーバが再起動した際、自動でサービスが立ち上がるようにします。

  • CentOS6まで: chkconfig サービス名 on
  • CentOS7: systemctl enable サービス名.service

.serviceは省略してもいいようです。

確認コマンドは下記の通りです。 enabled になっていればOKです。

httpsで接続確認

ブラウザで再度アクセスしてみます。
ssl.confで Strict-Transport-Security が有効になっていれば、http接続しても強制的にhttpsにリダイレクトされます。
It works! が出てくればOKです。お疲れ様でした。

さいごに

いかがでしたしょうか。元々あったCentOS6向けの自分用メモを更新して、その内容を一部改変し、説明を付け足した感じです。ある程度は定型的な作業になると思いますので、こうやって手順を整理して、サクサクできるように心がけています。

blog-page_footer_336




blog-page_footer_336




-Server

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

aws

Amazon ECSでGoのEchoサーバを立ち上げる

1 はじめに2 全体の流れ3 サービスの概要3.1 IAM(Identity and Access Management)3.2 VPC(Virtual Private Cloud)3.3 ECR(E ...

WordPressのサーバ移設とnginxで無料SSLをやってみた

1 はじめに1.1 環境2 サーバー準備2.1 ConohaのVPSサーバーの契約2.2 sshログイン用のユーザーを作成2.3 必要なソフトウェアのインストール3 WordPressの移行3.1 D ...

laravel logo

Laravel Cashierでサブスクリプションを実装する

1 はじめに2 Stripeの準備3 Laravel Cachierの初期設定3.1 インストール3.2 APIキーの設定3.3 Userモデルへの実装4 支払い方法の登録4.1 支払い方法の登録5 ...

aws

MyCoachの本番環境をAWS上に構築する 〜ネットワーク編〜

1 はじめに1.1 関連記事2 MyCoachのネットワーク構成3 VPCとは3.1 設定する項目4 VPCの設定5 インターネットゲートウェイの設定6 サブネットの設定6.1 公開ネットワークの設定 ...

Docker上でTensorFlowのチュートリアルをやってみた

1 はじめに1.1 環境2 TensorFlowのコンテナを起動する3 チュートリアルをやってみた3.1 ソースコード4 さいごに はじめに こんにちは、最近個人的な勉強でPython、ディープラーニ ...

フォロー

blog-page_side_responsive

2018年6月
 12
3456789
10111213141516
17181920212223
24252627282930

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。