書籍「できるPRO CentOS 7サーバー」のまとめ。
点数
75点
感想
初心者向けの書籍だが、ownCloud, GitLab, Dockerなど実用的なものも扱われていた。
サービス起動デーモンやファイアウォールのCentOS 6とCentOS 7での違いは参考になった。
bashでbraces(波括弧)内の値はリストとして展開される
cp org.{txt,txt.bk}
はcp org.txt org.txt.bk
に展開される。cp .env{.example,}
はcp .env.example .env
に展開される。
サービス起動デーモン
CentOS 6まではSysVinit/Upstartだったが、CentOS 7からはsystemdになった。
これにより、サービス管理コマンドが以下のように変わった。
- CentOS 6:
/etc/init.d/サービス名 xxx
- CentOS 7:
/usr/bin/systemctl xxx サービス名
パッケージを最新の状態に保つ
sudo yum update
自動更新する場合はyum-cronをインストールする。
sudo yum install yum-cron
sudo vi /etc/yum/yum-cron.conf
apply_updates = yessudo systemctl start yum-cron.service
firewalld
CentOS 7ではファイアウォールが iptablesからfirewalld に変わった。
firewalldデーモンがファイアウォールを管理している。
firewalldの設定はfirewall-cmdコマンドを使う。
firewall-cmd --list-services
:許可されているサービスを表示。firewall-cmd --get-services
:全サービスを表示。sudo firewall-cmd -add-service xxx
:サービスを許可。再起動後も有効にする場合は–permanentを付ける。
Apache2.4でのアクセス制限
Apache2.4からアクセス制限の記述方法が変更された。
(Orderを使う古い記述を使うことも可能)
- httpd.confなどで
AllowOverrideにAuthConfig
を追加する。 - .htaccessに以下を記述。
<RequireAll>
Require ip 100.100.100.0/24
</RequireAll>
SSLの認証局とは
ブラウザにはルートCA(認証局)の情報があらかじめインストールされている。
ルートCAが発行した証明書を使って中間CA証明書を発行する中間CAが多数存在する。
ブラウザやOSごとのルートCAの登録状況の違いに対応するためのクロスルート証明書という証明書が発行される場合もある。
SSLの設定
ApacheでSSLを使うにはmod_sslモジュールをインストールする必要がある。 http://www.i2kt.com/linux/centos/package/index_mod_ssl.html
インストール
sudo yum install mod_ssl
秘密鍵の作成
cd /etc/pki/tls/certs
sudo make xxx.com.key
sudo openssl rsa -in xxx.com.key -out xxx.com.nopass.key
※ パスワード解除sudo chmod 600 xxx.com.nopass.key
CSRファイルの作成
cd /etc/pki/tls/certs
sudo make xxx.com.csr
作成したCSRをCAに送って証明書を購入する。
CAから送られてきたサーバ証明書は/etc/pki/tls/certs/xxx.com.crtに格納する。
CAから送られてきた中間証明書とクロスルート証明書はcatコマンドで1つのファイルにまとめて/etc/pki/tls/certs/xxx.com.chain.crtに格納する。sudo vi /etc/httpd/conf.d/ssl.conf SSLCertificateFile
/etc/pki/tls/certs/xxx.com.crt SSLCertificateKeyFile
/etc/pki/tls/certs/xxx.com.nopass.key SSLCertificateChianFile
/etc/pki/tls/certs/xxx.com.chain.crt- httpsが許可されていない場合:
sudo firewall-cmd --add-service https
ownCloud
フリーのオンラインストレージ作成ソフトウェア。
sudo yum install epel-release
sudo yum install owncloud-httpd
ln -s /etc/httpd/conf.d/owncloud-access.conf.avail /etc/httpd/conf.d/z-owncloud-access.conf
- apacheを再起動すると/owncloud/でアクセスできる。
GitLab
GitHubと同等の機能を自分のサーバに構築することができる。
https://www.gitlab.jp/install/#centos-7
chrony
NTPクライアントとNTPサーバーの実装のひとつであり、ntpdよりも正確な時刻同期を提供してくれる。
CentOS 8からはChronyのみがサポートされるようになった。