www.smiyasaka.com は、 2022 年 11月から Oracle LInux 8.X にOSを変更しました。 |
● httpd-2.4.6 の httpd.conf 編集・設定・起動 ● |
アクセス数 昨日 2 今日 1 累計 31,013 |
ここでのサーバ構築は、ファイアウォール有効( SELinux = enforcing )を前提にして行っ
ています。 |
目 次 |
||
1. [ httpd-2.4.6 の httpd.conf 編集・設定・起動 ] | ||
2. [ SELinux を有効( enforcing )にした時のホームページへのポリシーの設定 ] | ||
3. [ apache2 の SSL 化の手順と httpd.conf、ssl.conf の設定 ] | ||
1. httpd-2.4.6 の httpd.conf 編集・設定・起動 |
||
「ベーシックWebサーバー」の選択では、httpd-2.4.6-XX のバージョンが標準仕様になっ
ています。 |
cp /etc/httpd/conf/httpd.conf /home/miyasaka/httpd.conf.bak; \ sed -i -e "1s/^#/# *** CentOS7\.X httpd-2\.4\.6\ Edited httpd\.conf ***/g # s/User apache/User miyasaka/g s/Group apache/Group miyasaka/g s/ServerAdmin root@localhost/ServerAdmin sample@hotmail.co.jp/g s/#ServerName www\.example\.com:80/ServerName Sample:80/g # # 102,104s/^/#/ /# <Directory> blocks below/,/#\ below/s/<Directory \/>/#<Directory \/>/g /# <Directory> blocks below/,/#\ below/s/\AllowOverride/#AllowOverride/g /# <Directory> blocks below/,/# below/s/\Require/#Require/g /# <Directory> blocks below/,/#\ below/s/<\/Directory/#<\/Directory/g # #------------------------------------------------------------------ # DocumentRoot の設定 ( ここは、コメントです。) #------------------------------------------------------------------ s/DocumentRoot \"\/var\/www\/html\"/DocumentRoot\ \"\/var\/www\/html\/www.sample.com\"/g # 124,128s/^/#/ /<Directory \"\/var\/www\">/,/# Further relax access/s/^/#/ #------------------------------------------------------------------ # /var/www/html以下 SSI,CGI の許可 ( ここは、コメントです。) #------------------------------------------------------------------ # /# for more information/,/# Controls who can/s/Options Indexes\ FollowSymLinks/Options Includes FollowSymLinks ExecCGI/g /# for more information/,/# Controls who can/s/AllowOverride\ None/AllowOverride All\n\ Options -Indexes/g # /DirectoryIndex index\.html/s/$/ index\.cgi/ # s/<Files \"\.ht\*\">/<Files \*\.html>/g /<Files \*\.html>/,/<\/Files>\/html/s/Require all\ denied/ForceType text\/html\n\ \ SetOutputFilter INCLUDES/g /CustomLog \"logs\/access_log\"/s/^/#/ /CustomLog \"logs\/access_log\"/s/$/\n\Include \/etc\/httpd\/conf\.d\/httpd-log\.conf/ #----------------------------------------------------- # ここは、不要な場合は、削除して下さい。 #----------------------------------------------------- s/# Alias \/webpath \/full\/filesystem\/path/Alias \"\/home\"\ \"\/home\/miyasaka\/www\"\n\ # \.cgi \.pl を有効にする。ここに書込まないと無効になる。\n\ <Directory \"\/home\/miyasaka\/www\">\n\ AllowOverride None\n\ Options Includes FollowSymLinks ExecCGI\n\ AddHandler cgi-script \.cgi \.pl\n\ Require all granted\n\ <\/Directory>/g #----------------------------------------------------- # ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" # 247s/^/#/ /ScriptAlias \/cgi-bin/s/^/#/ # <Directory "/var/www/cgi-bin"> ~ </Directory> /<Directory \"\/var\/www\/cgi-bin\">/,/<\/Directory>/s/^/#/ # # 削除する時は、ここまでして下さい。 #----------------------------------------------------- s/#AddHandler cgi-script \.cgi/AddHandler cgi-script \.cgi \.pl/g # .shtml ---> .shtml .html /shtml/s/$/ \.html/ # # AddDefaultCharset UTF-8 s/UTF-8/Off/g # /IncludeOptional conf\.d/s/^/#/ \$a#\n\ Include \/etc\/httpd\/conf\.d\/httpd-zgip\.conf\n\ #---------------------------------------------------\n\ # セキュリティ対策のため、最終行に追加しておきます。\n\ # サーバ署名\(バージョンとサーバ名\)のOFF\n\ ServerSignature Off" /etc/httpd/conf/httpd.conf ------------------------------------------------------------------- |
② ホームページの書き込み先のフォルダを作成・所有者の変更・属性変更をします。 |
2. SELinux を有効( enforcing )にした時のホームページへのポリシーの設定 |
||
※※※ 参考情報 ※※※ |
3. apache2 の SSL 化の手順と httpd.conf、ssl.conf の設定 |
||
※※※ 注意事項 ※※※ |
※※ 注意 ※※ CustomLog logs、ErrorLog logs の設定は、httpd.conf で設定したと同じに 設定してください。 ここでは、単に動作確認だけなので logs の設定を省略しています。 設定は、httpd-2.4.38 の httpd-ssl.conf と同じにしています。 59 #DocumentRoot "/var/www/html" ↓ ↓ DocumentRoot "/var/www/html/www.smiyasaka.com" 60 #ServerName www.example.com:443 ↓ ↓ ServerName 〇○○○○:443 65 TransferLog logs/ssl_access_log ↓ ↓ #TransferLog logs/ssl_access_log 64行目の ErrorLog logs/ssl_error_log は、残します。 71行目に以下を追加する Header set Strict-Transport-Security "max-age=315360000\ includeSubDomains" 上記の設定は、HSTS (HTTP Strict Transport Security) の導入に なります。 これは、HTTPで接続した際に、強制的にHTTPSへリダイレクトし、以降の そのドメインへの接続はすべてHTTPSとする機能です。 315,360,000 秒 というのは 3,650 日間 (10年間) 76行目に以下を追加する SSLProxyProtocol all -SSLv2 -SSLv3 80 SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA ↓ ↓ SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES:!DH 100 SSLCertificateFile /etc/pki/tls/certs/localhost.crt ↓ ↓ # 証明書を指定する SSLCertificateFile\ "/etc/letsencrypt/live/www.smiyasaka.com/cert.pem" 107 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key ↓ ↓ # 秘密鍵を指定する SSLCertificateKeyFile\ "/etc/letsencrypt/live/www.smiyasaka.com/privkey.pem" 116 #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt ↓ ↓ # 取得した中間証明書を指定 SSLCertificateChainFile\ "/etc/letsencrypt/live/www.smiyasaka.com/chain.pem" 175 < Files ~ "\.(cgi|shtml|phtml|php3?)$"> ↓ ↓ < FilesMatch "\.(cgi|shtml|html)$"> 178 < Directory "/var/www/cgi-bin"> ↓ ↓ < Directory "/var/www/html/www.smiyasaka.com"> 213 CustomLog logs/ssl_request_log \ 214 "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b ↓ ↓ コメントアウトして下記を追加します。 ( 設定が長いので別 conf ファイルにしています。) Include /etc/httpd/conf.d/httpd-log.conf ※※ ここからは、SSL でも圧縮処理をしたい時に追加してください。※※ #----------------------------------------------------- # 転送データの圧縮設定(画像以外全て圧縮する) # 実際の圧縮率は、1 も 3 も大差ありません #----------------------------------------------------- # Include /etc/httpd/conf.d/httpd-zgip.conf 下記を追加します。 #---------------------------------------------------- # セキュリティ対策のため、最終行に追加しておきます # サーバ署名\(バージョンとサーバ名\)のOFF\n\ ServerSignature Off ---------------------------------------------------------------------- |
〇 httpd-log.conf の新規作成 |
---------------------------------------------------------------------- <IfModule log_config_module> # #----------------------------------------------------------------- # 不要なログの記録をさせない設定 #----------------------------------------------------------------- # # 拡張子による制限 SetEnvIf Request_URI\ ".(gif)|(jpg)|(jpeg)|(png)|(bmp)|(ico)|(css)|(swf)$" no-logfile # # 内部からのアクセスをログに記録しない対策 # IPアドレスによる制限 ローカル # SetEnvIf Remote_Addr "192.168.0." no-logfile # # サーチエンジンのログは取らない。 SetEnvIf User-Agent "Gigabot" no-logfile SetEnvIf User-Agent "Googlebot" no-logfile SetEnvIf User-Agent "MJ12bot" no-logfile SetEnvIf User-Agent "msnbot" no-logfile SetEnvIf User-Agent "psbot" no-logfile SetEnvIf User-Agent "TurnitinBot" no-logfile SetEnvIf User-Agent "Yahoo! Slurp" no-logfile SetEnvIf User-Agent "Zealbot" no-logfile # ワームによる制限のログは取らない。 SetEnvIf Request_URI "default\.ida" no-logfile SetEnvIf Request_URI "null\.ida" no-logfile SetEnvIf Request_URI "NULL\.IDA" no-logfile SetEnvIf Request_URI "cmd\.exe" no-logfile SetEnvIf Request_URI "root\.exe" no-logfile SetEnvIf Request_URI "Admin\.dll" no-logfile SetEnvIf Request_URI "^/_mem_bin/" no-logfile SetEnvIf Request_URI "^/_vti_bin/" no-logfile SetEnvIf Request_URI "^/c/" no-logfile SetEnvIf Request_URI "^/d/" no-logfile SetEnvIf Request_URI "^/msadc/" no-logfile SetEnvIf Request_URI "^/scripts/" no-logfile # CGIディレクトリ SetEnvIf Request_URI "^/cgi-bin/" no-logfile # 巡回ロボットがアクセスする robots.txt SetEnvIf Request_URI "robots\.txt" no-logfile # 長いURLへの対処 SetEnvIf Request_Method\ "(GET)|(POST)|(PUT)|(DELETE)|(HEAD)" no-logfile SetEnvIf Request_Method "(OPTIONS)" no-logfile #------------------------------------------------------------------ # logs/ ---> /var/log/httpd/ #CustomLog logs/ssl_access_log combined env=!no-logfile #------------------------------------------------------------------ # Apacheのログローテートの 86400 540 の意味 # ローテートする周期を"秒"で指定します。 # 86400 ---> 24時間周期で行う指示 60秒 × 60分 × 24時間 = 86400秒 # 540 ---> Apacheの時間管理は、UTC なので # 日本時間用のオフセット値 60分 × 9 = 540分 # # ログファイルは、/var/log/httpd/ に # smiyasaka_access_yyyymmdd( 年月日 )のファイル名で保存されます。 #------------------------------------------------------------------ CustomLog "| /usr/sbin/rotatelogs \ /var/log/httpd/smiyasaka_access_log_%Y%m%d 86400 540" \ combined env=!no-logfile # </IfModule> ---------------------------------------------------------------------- |
〇 httpd-zgip.conf の新規作成 |
--------------------------------------------------------------------- <IfModule mod_deflate.c> #--------------------------------------------------------------- # 転送データの圧縮設定(画像以外全て圧縮する) # 実際の圧縮率は、1 も 3 も大差ありません #--------------------------------------------------------------- # 圧縮レベル 1 に設定 DeflateCompressionLevel 1 # # 全てを圧縮する設定 SetOutputFilter DEFLATE # # gzip圧縮に対応していない古いブラウザを除外 # Netscape 4.x has some problems... # 送信先ブラウザがNetscape 4.xの場合はtext/htmlのみ圧縮 BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems # 送信先ブラウザがNetscape 4.06-4.08の場合は圧縮しない BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine # 送信先ブラウザがMSIEの場合は全て圧縮する BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # # 画像以外全て圧縮する # Don't compress images SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary # # Make sure proxies don't deliver the wrong content # プロキシサーバーが圧縮未対応ブラウザへ圧縮ファイルを # 送信しないようにする Header append Vary User-Agent env=!dont-vary # html や css, js, javescript などは個別指定 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/js AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom_xml AddOutputFilterByType DEFLATE application/js AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php # # 圧縮率の確認用ログ設定 # 不要になったら、# で無効にしておく事。 # Deflateが有効になっているか確認するログの出力 # #DeflateFilterNote Input instream #DeflateFilterNote Output outstream #DeflateFilterNote Ratio ratio #LogFormat '"%r" %{outstream}n/%{instream}n\ #(%{ratio}n%%) %{User-agent}i' deflate #CustomLog logs/deflate_log deflate </IfModule> --------------------------------------------------------------------- |
4. conf.modules.d/00-base.conf ファイルの編集 |
sed -i -e "1s/^#/# *** CentOS7\.7 httpd-2\.4\.6 SSL\ Edited ssl\.conf ***/ s/#DocumentRoot \"\/var\/www\/html\"/DocumentRoot\ \"\/var\/www\/html\/www\.smiyasaka\.com\"/ s/#ServerName www\.example\.com:443/ServerName 〇〇〇〇:443/ # /TransferLog/s/^/#/ # /SSLEngine on/aHeader set Strict-Transport-Security\ \"max-age=315360000;includeSubDomains\" # /SSLProtocol/a\SSLProxyProtocol all -SSLv2 -SSLv3 /SSLCipherSuite HIGH/s/^/#/ /SSLCipherSuite HIGH/a\SSLCipherSuite\ HIGH:MEDIUM:\!MD5:\!RC4:\!3DES:\!DH s/SSLCertificateFile \/etc\/pki\/tls\/certs\/localhost\.crt/\ # 証明書を指定する\n\ SSLCertificateFile\ \"\/etc\/letsencrypt\/live\/www\.smiyasaka\.com\/cert\.pem\"/g # s/SSLCertificateKeyFile \/etc\/pki\/tls\/private\/localhost\.key/\ # 秘密鍵を指定する\n\ SSLCertificateKeyFile\ \"\/etc\/letsencrypt\/live\/www\.smiyasaka\.com\/privkey\.pem\"/g # s/#SSLCertificateChainFile \/etc\/pki\/tls\/certs\/server-chain\.crt/\ # 取得した中間証明書を指定\n\ SSLCertificateChainFile\ \"\/etc\/letsencrypt\/live\/www\.smiyasaka\.com\/chain\.pem\"/g # s/cgi|shtml|phtml|/cgi|shtml|html|/ # s/\/var\/www\/cgi-bin/\/var\/www\/html\/www\.smiyasaka\.com/g # /CustomLog/s/^/#/ s/<\/VirtualHost>/#\n\ #=======================================\n\ # 不要なログの記録をさせない設定\n\ #=======================================\n\ #\n\ Include conf\.d\/httpd-log\.conf\n\ \n\ #------------------------------------------------------------------\n\ # 転送データの圧縮設定 ( ここは、コメントです。)\n\ #------------------------------------------------------------------\n\ # 転送データの圧縮設定(画像以外全て圧縮する)\n\ # 圧縮レベル 1\n\ #\n\ Include conf\.d\/httpd-zgip\.conf\n\ #---------------------------------------------------\n\ # セキュリティ対策のため、最終行に追加しておきます。\n\ # サーバ署名\(バージョンとサーバ名\)のOFF\n\ ServerSignature Off\n\ #\n\ <\/VirtualHost>/" /etc/httpd/conf.d/ssl.conf (2) SSL 有効時の httpd.conf の sed コマンドよる一括編集 sed -i -e "1s/^#/# *** CentOS7\.7 httpd-2\.4\.6 SSL\ Edited httpd\.conf ***/ s/User apache/User 〇〇〇〇/g s/Group apache/Group 〇〇〇〇/g s/ServerAdmin root@localhost/ServerAdmin 〇〇〇〇@hotmail.co.jp/g s/#ServerName www\.example\.com:80/ServerName 〇〇〇〇:80/g # 102,104s/^/#/ /# <Directory> blocks below/,/# below/s/<Directory\ \/>/#<Directory \/>/g /# <Directory> blocks below/,/# below/s/\ AllowOverride/#\ AllowOverride/g /# <Directory> blocks below/,/# below/s/\ Require/#\ Require/g /# <Directory> blocks below/,/# below/s/<\/Directory/#<\ \/Directory>/g # #------------------------------------------------------------------ # DocumentRoot の設定 ( ここは、コメントです。) #------------------------------------------------------------------ # s/DocumentRoot \"\/var\/www\/html\"/DocumentRoot\ \"\/var\/www\/html\/www.smiyasaka.com\"/g # 124,128s/^/#/ /<Directory \"\/var\/www\">/,/# Further relax access/s/^/#/ #------------------------------------------------------------------ # SSI, CGI の設定 ( ここは、コメントです。) #------------------------------------------------------------------ # /# for more information/,/# Controls who can/s/Options Indexes\ FollowSymLinks/Options Includes FollowSymLinks ExecCGI/g /# for more information/,/# Controls who can/s/AllowOverride\ None/AllowOverride All\n Options -Indexes/g # /DirectoryIndex index\.html/s/$/ index\.cgi/ # s/<Files \"\.ht\*\">/<Files \*\.html>/g /<Files \*\.html>/,/<\/Files>\/html/s/Require all\ denied/ForceType text\/html\n\ \ SetOutputFilter INCLUDES/g # /CustomLog \"logs\/access_log\"/s/^/#/ # #------------------------------------------------------------------ # Alias が不要な場合は、削除して下さい。( ここは、コメントです。) #------------------------------------------------------------------ # s/# Alias \/webpath \/full\/filesystem\/path/Alias \/home\/\ \"\/home\/miyasaka\/www\/\"\n\ # \.cgi \.pl を有効にする。ここに書込まないと無効になる。\n\ # <Directory \"\/home\/miyasaka\">\n\ <Directory \"\/home\/miyasaka\/www\">\n\ AllowOverride None\n\ Options Includes FollowSymLinks ExecCGI\n\ AddHandler cgi-script \.cgi \.pl\n\ Require all granted\n\ <\/Directory>/ #------------------------------------------------------------------- /ScriptAlias \/cgi-bin/s/^/#/ # # 351,355s/^/#/ /<Directory \"\/var\/www\/cgi-bin\">/,/<\/Directory>/s/^/#/ # s/#AddHandler cgi-script \.cgi/AddHandler cgi-script \.cgi \.pl/g # /\.shtml/s/$/ \.html/ # # AddDefaultCharset UTF-8 --> Off s/UTF-8/Off/ # /IncludeOptional/s/*\.conf/ssl\.conf/ #------------------------------------------------------------------ \$aInclude conf\.d\/httpd-zgip\.conf\n\ #---------------------------------------------------\n\ # セキュリティ対策のため、最終行に追加しておきます。\n\ # サーバ署名\(バージョンとサーバ名\)のOFF\n\ ServerSignature Off" /etc/httpd/conf/httpd.conf ---------------------------------------------------------------------- |