☆☆ 新着記事 ☆☆

2018年12月23日日曜日

【Quick説明版】 WebArena VPS設定 (Apache -Firewall - Python3 -Let's Encrypt)



WebArena VPSに設定する項目のQuick説明版です。




1.  Apacheをインストールする。

1) httpdのインストール
# yum -y install httpd httpd-tools httpd-devel httpd-manual
Complete!

2)確認
[root@ /]# yum list installed | grep httpd
httpd.x86_64                       2.4.6-88.el7.centos            @base
httpd-devel.x86_64                 2.4.6-88.el7.centos            @base
httpd-manual.noarch                2.4.6-88.el7.centos            @base
httpd-tools.x86_64                 2.4.6-88.el7.centos            @base


3)  起動する。
# systemctl start httpd

4) 起動の状態を確認する。
$ systemctl status httpd

httpd.service - The Apache HTTP Server

5) httpd自動起動の設定
$ systemctl enable httpd
(確認)
systemctl list-unit-files | grep httpd
httpd.service                                 enabled

2. SELinuxの無効化

1) 現状の確認
[root@ /]# sestatus
SELinux status:                 enabled


2)Configファイルのコピーを保存。
[root@ /]#  cp -piv /etc/selinux/config  /etc/selinux/config.`date "+%Y%m%d"`
‘/etc/selinux/config’ -> ‘/etc/selinux/config.20181223’


3) Configファイルの修正
[root@ /]# cd  /etc/selinux/
[root@ selinux]# vi config

#SELINUX=enforcing
SELINUX=disabled


4) OSの再起動
shutdown -r now


5)再確認


[root@ /]#  sestatus
SELinux status:                 disabled
 
6httpd自動起動の設定


[root@ /]# systemctl enable httpd
[root@ /]# systemctl list-unit-files | grep httpd
httpd.service                                 enabled

 
 
3. Firewallを設定する。

1) ファイアウォールが起動中かどうかを確認

# firewall-cmd --state
running

2) ファイアウォール設定を確認
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

3) http/httpsのサービス追加
[root@ ~]# firewall-cmd --zone=public --add-service=http --permanent
success
[root@ ~]# firewall-cmd --zone=public --add-service=https --permanent
success
[root@ ~]# firewall-cmd --list-all
[root@ /]# firewall-cmd --reload
# firewall-cmd --list-all
 public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client http https
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:



4. https通信に関する設定する。

1) mod_sslがインストールされているかの確認。
 (Loaded Modulesの確認): # httpd -M   
  又は
 (Installed Packagesの確認): #yum list installed

2) mod_sslのインストール
[root@ /]# yum install mod_ssl
Complete!

3)再起動で変更を反映します。
 # systemctl restart httpd

4) (Loaded Modulesの確認): # httpd -M   
 ssl_module (shared)

ブラウザで表示できることの確認、
OK

5. Python 3 をインストールする

Let's Encriptで、SSLの証明書を取得するが、その時に、Pythonのバージョン指定をするので、
予め、Python3をインストールする。 

(Python3のインストール方法の比較は、
 【 CentOS 7 にPython 3系をインストールする4つの方法  】)

 
 今回は、SCL(Software Collection)を利用する。
 1)現状の確認
  [root@ /]# which python
  /usr/bin/python
  [root@ /]# python -V
  Python 2.7.5

 2)SCLを利用してPython3.6のインストール
  ・On CentOS, install package centos-release-scl available in CentOS repository
   $ sudo yum install centos-release-scl
      Installed:
     centos-release-scl.noarch 0:2-2.el7.centos

   $ sudo yum-config-manager (<- 入らない)
 ・Install the main SCL package (its name is identical to the name of the Software Collection):
  $ yum install rh-python36
  Installing:
   rh-python36                   x86_64 2.0-1.el7            centos-sclo-rh 2.7 k
  Installing for dependencies:
  dwz                           x86_64 0.11-3.el7           base            99 k
  iso-codes                     noarch 3.46-2.el7           base           2.7 M
  perl-srpm-macros              noarch 1-8.el7              base           4.6 k
  redhat-rpm-config             noarch 9.1.0-87.el7.centos  base            81 k
  rh-python36-python            x86_64 3.6.3-3.el7          centos-sclo-rh  55 k
  rh-python36-python-devel      x86_64 3.6.3-3.el7          centos-sclo-rh 840 k
  rh-python36-python-libs       x86_64 3.6.3-3.el7          centos-sclo-rh 7.5 M
  rh-python36-python-pip        noarch 9.0.1-2.el7          centos-sclo-rh 1.7 M
  rh-python36-python-setuptools noarch 36.5.0-1.el7         centos-sclo-rh 566 k
  rh-python36-python-virtualenv noarch 15.1.0-2.el7         centos-sclo-rh 1.8 M
  rh-python36-runtime           x86_64 2.0-1.el7            centos-sclo-rh 1.1 M
  scl-utils                     x86_64 20130529-19.el7      base            24 k
  scl-utils-build               x86_64 20130529-19.el7      base            18 k
  xml-common                    noarch 0.6.3-39.el7         base            26 k
  zip                           x86_64 3.0-11.el7           base           260 k

 Complete!

   ・Start using the Software Collection you just installed:
     [root@ip2h3wsy /]# scl enable rh-python36 bash
  [root@ip2h3wsy /]# which python
  /opt/rh/rh-python36/root/usr/bin/python
  [root@ip2h3wsy /]# python -V
  Python 3.6.3

  (再ログイン後のPythonの再確認)
 [root@ip2h3wsy /]# python -V
 Python 2.7.5
 [root@ip2h3wsy /]# which python
 /usr/bin/python

 ・Permanent 設定
   [root@ip2h3wsy /]# cd opt/rh
   [root@ip2h3wsy rh]# ls -a
   .  ..  rh-python36 (←rh-python36 の格納Directoryの確認)

  [root@ /]# cd  /etc/profile.d/
  [root@ profile.d]# ls -a
  .   256term.csh  colorgrep.csh  colorls.csh  lang.csh  less.csh  which2.csh
  ..  256term.sh   colorgrep.sh   colorls.sh   lang.sh   less.sh   which2.sh
  [root@ profile.d]# touch enablepython36.sh
  [root@ profile.d]# vi enablepython36.sh
     以下の3行を記述。
  #!/bin/bash
  source /opt/rh/rh-python36/enable
     export X_SCLS="`scl enable rh-python36 'echo $X_SCLS'`"
     *上記をコピペすると" "が &quot; と表記されてしまうので注意。

  (再度ログイン)
  [root@ ~]# which python
  /opt/rh/rh-python36/root/usr/bin/python
  [root@ ~]# python -V
  Python 3.6.3

6. Let'sEncriptに関する設定する。

 1) epel リポジトリの追加
  [root@ /]# yum install epel-release
  Installed:
   epel-release.noarch 0:7-11
  Complete!

2)epel レポジトリ・オフ
  # vi /etc/yum.repos.d/epel.repo
  [epel]
  enabled=1
  ↓変更
  enabled=0


3)httpdにVirtual Hostの記述

  ①  /etc/httpd/conf/httpd.conf の編修(Virtual Hostを使用することの宣言)と、
  ②  <VirtualHost>を記述する為、etc/httpd/conf.d/ ディレクトリに virtual.conf を作成します。

  ①  httpd.conf の編集
     'Listen 80'の下に以下の記述を追加。
    NameVirtualHost *:80
  ② virtual.conf ファイルを作成し、以下の内容記述。
    < VirtualHost *:80>
        ServerAdmin root@mossymob.tk
        DocumentRoot /var/www/html
        ServerName mossymob.tk
        ServerAlias www.mossymob.tk
       < /VirtualHost>

4) システムのリロード
  # systemctl reload httpd
5)Certbotのインストール
 詳細:【WebArena VPSで初心者がWord Pressを立ち上げる (4)  】参照
 
①EPEL を使ってcertbotをインストール
 yum install --enablerepo=epel, certbot python2-certbot-apache

②certbotのapacheへの自動適用
 certbot --apache

[root@ip2h3wsy /]# certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): kappamobestjp@gmail.com
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: mossymob.tk
2: www.mossymob.tk
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1, 2
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mossymob.tk
http-01 challenge for www.mossymob.tk
Waiting for verification...
Cleaning up challenges
Resetting dropped connection: acme-v02.api.letsencrypt.org
Created an SSL vhost at /etc/httpd/conf.d/virtual-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf.d/virtual-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf.d/virtual-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://mossymob.tk and
https://www.mossymob.tk
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=mossymob.tk
https://www.ssllabs.com/ssltest/analyze.html?d=www.mossymob.tk
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:


③システムの自動更新・タイマーの設定
[root@ /]# systemctl enable --now certbot-renew.timer
Created symlink from /etc/systemd/system/timers.target.wants/certbot-renew.timer to /usr/lib/systemd/system/certbot-renew.timer.

④タイマーの確認
systemctl list-timersNEXT                         LEFT         LAST                         PASSED  UNIT
Mon 2018-12-24 18:07:53 JST  4h 0min left Sun 2018-12-23 18:07:53 JST  19h ago systemd-tmpfiles-clean.tim
Tue 2018-12-25 02:49:28 JST  12h left     n/a                          n/a     certbot-renew.timer
2 timers listed.


以上で、Apacheのインストールから、SSLの証明書取得までの終了です。


(参考)
**この段階で、httpサーバのMPMの確認。

(この確認は、Flask/DjangoなどのPythonのフレームワークを動かすときに使用する
 wsgiのインストールに必要なパッケージを特定するのに影響します。)


[root@ /]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov  5 2018 01:47:09
[root@ /]# apachectl -V
AH00557: httpd: apr_sockaddr_info_get() failed for ip2h3wsy
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov  5 2018 01:47:09
Server's Module Magic Number: 20120211:24
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)



0 件のコメント:

コメントを投稿