User Tools

Site Tools


Sidebar

vps:vps4th_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
  • php56
  • mod_php56
  • dokuwiki
    • インストール後、/usr/local/www/dokuwikiの所有権を変更する。
      # cd /usr/local/www
      # chown -R www:www dokuwiki
  • py27-certbot

pkg以外

個別に導入。

  • C-BOARD Moyuku
    • FreeBSD 11 では perlのパスが /usr/bin/perl から /usr/local/bin/perl になっていた為、Internal Server Errorが出た。
      c-board.cgi の1行目を編集して回避。
    • 新規に展開する場合は改行コードの置換(CRLF(^M)の削除)を行う。
      # cd <c-boadのディレクトリ>
      # find . -name "*.pl" | xargs perl -i.bak -pe "s/^M//"
      # find . -name "*.cgi" | xargs perl -i.bak -pe "s/^M//"
      # find . -name "*.bak" | xargs rm
      • ^M は Ctrl+v, Ctrl+mで入力
    • brd ディレクトリを旧環境から展開で移行
    • アクセス権設定

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

always_populate_raw_post_data = -1
  • always_populate_raw_post_data
    • -1 にしないとアップロードできない。

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
        AddHandler cgi-script .cgi
    </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
             
    <IfModule alias_module>
         # Aliasとして、/c-boardへのアクセスを/usr/local/www/c-boardへマップ
         Alias /c-board /usr/local/www/c-board
    </IfModule>
    
    <Directory />
         Options FollowSymLinks ExecCGI
         AllowOverride all
         Order allow,deny
         Allow from all
         Require all granted
    </Directory>

    <Directory "/usr/local/www/c-board">
         Options FollowSymLinks ExecCGI
         AllowOverride all
         Order allow,deny
         Allow from all
         
         AuthType Digest
         AuthName HOGE
         AuthDigestDomain /usr/local/www/c-board
         AuthDigestProvider file
         AuthUserFile /usr/local/etc/apache24/.htdigest
         Require valid-user
    </Directory>
    
CustomLog "/var/log/httpd-ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

Digest認証設定

  • .htdigestを作成する。
    # cd /usr/local/etc/apache24
    # htdigest -c .htdigest 'AuthNmaeで設定した値' 認証するユーザ名

コンフィグ確認

  • コンフィグ確認を行う
    # 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/conf/local.protected.php を新規作成
    <?php
    date_default_timezone_set("Asia/Tokyo");
vps/vps4th_05.txt · Last modified: 2019/06/16 15:16 (external edit)