User Tools

Site Tools


Sidebar

vps:vps4th2nd_05

prisoner web設定

prisonerのwebをWEBサーバにする。

事前設定

jailerから各設定ファイルを直接編集する。各設定ファイルのプレフィックスは/usr/jail/webとなる。

  • etc/syslog.confでconsole出力をコメント化する。
    # *.err;kern.warning;auth.notice;mail.crit              /dev/console
  • etc/crontabで不要なcronをコメント化する。
     # 1,31  0-5     *       *       *       root    adjkerntz -a
  • etc/pw.confを新規作成する。prisoner内のuid, gidとjailerのuid, gidが同じになるとセキュリティ上の問題が発生するため、uid, gidの範囲を設定する。
    minuid 2101
    maxuid 2200
    mingid 2101
    maxgid 2200
  • etc/fstabをtouchで作成する。
  • etc/resolv.confを作成する。
    domain "ドメイン名"
    nameserver "さくらのVPS指定 1"
    nameserver "さくらのVPS指定 2"
  • etc/hostsにweb自身と内側のホスト(jailer, prisoner)を登録する。
    127.0.0.1             localhost localhost.example.com
    192.168.100.254       gw gw.example.com
    192.168.100.1         web web.example.com
    192.168.100.1         web.example.com.
    192.168.100.2         desktop desktop.example.com
    192.168.100.253       vps vps.example.com
  • etc/rc.confを新規作成する。
    hostname="web.example.com"
    ifconfig_epair2b="inet 192.168.100.1 netmask 255.255.255.0"
    defaultrouter="192.168.100.254"
    firewall_enable="YES"
    firewall_type="open"
    • ifcofig_epair2b
      jailerで作成したepair2の一端。jailerからprisonerであるfwに割り当てる。

OS設定

prisoner webを起動後、以下の設定を行う。

  • prisoner:webへ移動
    # jexec web /bin/sh
  • newaliasesの実行
    # newaliases
     /etc/mail/aliases: 27 aliases, longest 10byte, 275 bytes total
  • bsdconfigでそれぞれ設定。
    • Root Password
    • User Management
    • Time Zone

ソフトウェア導入

pkg

pkgにて、以下を導入。

pkg -j web install <pkg名>
  • apache24
  • dokuwiki
  • mod_php72
  • py36-certbot
  • py36-certbot-apache

PHP設定

/usr/local/etc/php.ini-developmentを/usr/local/etc/php.iniコピーする。
コピー後、php.iniを編集する。

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8

Let's Encrypt設定

Let's Encrypt 総合ポータルを参考に設定を行う。

  • 事前に apache を停止(起動済みの場合)
    # service apache24 stop
  • certbot 実行
    # certbot certonly --standalone -d <ドメイン名> -d <サブドメインを含めたFQDN>
  • メールアドレスを入力
  • [Please read the Terms of Service at …]と出るので、[Agree]を押下。
  • /usr/local/etc/letscncrypt/live/<ドメイン名>に以下のファイルが作成される
    • cert.pem
    • chain.pem
    • fullchain.pem
    • privkey.pem

Apache HTTP Server設定

自動起動設定

/etc/rc.confに追記する。

apache24_enable="YES"

httpd.conf設定

/usr/local/etc/apache24/httpd.confを編集する。

  • AuthDigest有効化
    LoadModule auth_digest_module libexec/apache24/mod_auth_digest.so
  • SSL/TLS有効化
    LoadModule ssl_module libexec/apache24/mod_ssl.so
  • shmcb有効化
    LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
  • rewrite有効化
    LoadModule rewrite_module libexec/apache24/mod_rewrite.so
  • CGI有効化
    LoadModule cgi_module libexec/apache24/mod_cgi.so
  • ServerAdmin無効化
    #ServerAdmin you@example.com
  • ServerNameの変更
    #ServerName www.example.com:80
    ServerName 192.168.100.1:80
  • DocumentRootの変更
    #DocumentRoot "/usr/local/www/apache24/data"
    DocumentRoot "/usr/local/www"
  • <Directory “/usr/local/www/apache24/data”>ブロックの無効化
    # <Directory "/usr/local/www/apache24/data">
    #
    # 無効化
    #
    # </Directory>
  • DirectoryIndexの追加
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
  • alias_moduleの無効化
    <IfModule alias_module>
        # ScriptAlias /cgi-bin/ "/usr/local/www/apache24/cgi-bin/"
    </IfModule>
  • CGI directoryの無効化
    # <Directory "/usr/local/www/apache24/cgi-bin">
    #
    # 無効化
    #
    # </Directory>
  • PHP と cgi設定
    <IfModule mime_module>
        AddType application/x-httpd-php .php
    </IfModule>
  • TLS有効化
    Include etc/apache24/extra/httpd-ssl.conf
  • rewrite設定1)
    <IfModule mod_rewrite.c>
           RewriteEngine On
           RewriteCond %{HTTPS} off
           RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    </IfModule>

httpd-ssl.conf

/usr/local/etc/apache24/extra/httpd-ssl.confを編集する。

<VirtualHost _default_:443>
    DocumentRoot "/usr/local/www/dokuwiki"
    ServerName www.example.com:443
    ErrorLog "/var/log/httpd-error.log"
    TransferLog "/var/log/httpd-access.log"
    
    SSLEngine on
    
    SSLCertificateFile "/etc/letsencrypt/live/<ドメイン名>/fullchain.pem"
    SSLCertificateKeyFile "/etc/letsencrypt/live/<ドメイン名>/privkey.pem"
    
    <FileMatch ".\(cgi|shtml|phtml|php)$">
         SSLOptions +StdEnvVars
    </FileMatch>
    
    BrowserMatch "MSIE [2-5]" \
             nokeepalive ssl-unclean-shutdown \
             dwongrade-1.0 force-response-1.0
             
    <Directory />
         Options FollowSymLinks ExecCGI
         AllowOverride all
         Order allow,deny
         Allow from all
         Require all granted
    </Directory>

CustomLog "/var/log/httpd-ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

コンフィグ確認

  • コンフィグ確認を行う
    # apachectl configtest

ログローテーション設定

prisoner web の /etc/newsyslog.confに対象ファイルを追加する。

/var/log/httpd-access.log 600 30 * @T02 J /var/run/httpd.pid 30
/var/log/httpd-error.log 600 30 * @T02 J /var/run/httpd.pid 30
/var/log/httpd-ssl_request.log 600 30 * @T02 J /var/run/httpd.pid 30

DokuWiki

新規の場合

  • ブラウザにてinstall.php にアクセスしウィザードに従って設定を行う。
  • DokuWiki installer実行後、install.phpを削除する。
  • [管理] → [テンプレートのスタイル設定] → [サイトの全体幅] を 100%
  • タイムゾーン設定のため、conf/local.protected.php を新規作成
    <?php
    date_default_timezone_set("Asia/Tokyo");

データ移行の場合

vps/vps4th2nd_05.txt · Last modified: 2019/06/24 22:55 by hoge@hoge