Server

CentOS7でwebサーバの初期設定

投稿日:

はじめに

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

page_footer_300rect




page_footer_300rect




-Server

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

MyCoachのDocker環境を変えてみた

1 はじめに2 なんで改修しようと思ったか3 構成3.1 使用するコンテナ3.2 各Dockerfile3.3 docker-compose.yml3.4 Unicorn3.5 database.rb ...

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

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

Google

【Google Invisible reCAPTCHA】Railsサイトにキャプチャ導入

1 はじめに2 reCAPTCHAとは3 Site keyとSecret keyの取得4 Rails gemの導入5 サイトへの組み込み6 さいごに はじめに こんにちは、最近休みなく仕事をいただいて ...

aws

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

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

CircleCIを使ってみた(RailsのRSpecとデプロイのサンプル)

1 はじめに2 導入するにあたって3 項目B4 補足4.1 開発環境とCI環境でdatabase.ymlが異なる5 さいごに はじめに 個人的に作成しているアプリケーションのCIツールとして、Circ ...

AppLink

page_side_300rect

アプリ情報

私たちは、目標を達成したい方を応援する、TODOアプリもリリースしております。
下記のアイコンから無料でダウンロードできます。

フォロー

follow us in feedly
2018年6月
« 5月 7月 »
 12
3456789
10111213141516
17181920212223
24252627282930

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。 下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。