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


関連記事

CentOS6のLAMP環境でTLS1.2対応

1 はじめに2 業界団体レベルでのTLS1.2移行3 構成4 ssl.confを編集する5 ジェネレータ任せでOK6 設定変更の影響7 さいごに はじめに ものすごくひさしぶりにLAMP環境のSSL設 ...

配牌からアガれるかアガれないか予測する

1 はじめに1.1 趣旨1.2 筆者のスペック1.3 環境1.4 機能概要2 実装に関して2.1 教師データ2.2 前処理2.3 各ノードの重みの学習3 実際に使ってみた3.1 再テスト4 学習させた ...

単体のORMライブラリとしてEloquentを使う

1 はじめに2 Eloquentとは3 導入3.1 Composerインストール3.2 Eloquentインストール4 DB接続4.1 illuminate/database4.2 モデルクラス作成4 ...

Conohaのサーバーを借りて、CentOS+MySQL+nginxの環境を作ってみた。

1 はじめに1.1 環境2 Conohaでサーバーをレンタル3 サーバーの初期設定3.1 サーバーにrootユーザーでログイン3.2 ユーザー作成3.3 SSHログインを許可3.4 秘密鍵を生成3.5 ...

同じレコードがないときだけインサートする!

はじめに あるアイテムを持っていない人だけ、別のアイテムをあげたい! もしくはその逆で、あるアイテムを持っている人に追加でアイテムをあげたい! そういうことってないでしょうか? 先日、僕がそのような状 ...

フォロー

blog-page_side_responsive

2018年6月
 12
3456789
10111213141516
17181920212223
24252627282930

アプリ情報

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