httpd インストール後の設定

Linux (CentOS、Rocky、Ubuntu)

インストール後ウェルカムページが表示されれば、apache は正常に動作しています
次には、自分の環境に合わせてセキュリティ強化も含めて設定していきます

こちらのサイトがとても分かりやすいです
ほとんどサイト通りで設定できると思います

私も、参考に設定しましたが、ほとんどトラブルなく設定できました。
後々の覚書として自分の設定を書き込んでおこうと思います
また、設定する場合には、設定ファイルを「vi」などのエディタで編集する事になりますが、編集する前にファイルをコピーして「org」などと名前を変えて残しておいたほうが安全です。
設定ミスで動作しなくなった場合、名前を戻す事で元にもどせます
また、すでに書かれている項目を編集する際も、直接編集しないで、その行をコピーしてコメントとして残しておいたほうが後で参考にできる場合があります
さらにその上の行に、日付けと検索しやすいように分かりやすいキー文字をコメントとして残しておくと後に検索する場合などに重宝します

/etc/httpd/conf/httpd.conf を編集

$ cd /etc/httpd/conf/
$ sudo vi ./httpd.conf
  ・
  ・
 User apache  <---- 参考サイトでは、「www」に変更していますが
 Group apache  私は、既存のBBSなどとの互換性も考えて、「apatch」に設定しました
  ・
  ・
 #---- 2019.05.01 Hogehoge
 #ServerAdmin root@localhost
 ServerAdmin hoge@hogehoge.com
  ・
  ・
  #---- 2019.05.01 Hogehoge
  #ServerName www.example.com:80
  ServerName www.Hogehoge.com:80
  ・
  ・
 #---- 2019.05.01 hogehoge
 #DocumentRoot "/var/www/html"   <---- /var の容量は多くしていないので
 DocumentRoot "/home/www/html"      /home に変更 
  ・
  ・
 #---- 2019.05.01 hogehoge
 #<Directory "/var/www">  
 <Directory "/home/www">          <---- /home に合わせる  
    AllowOverride None
    # Allow open access:
    Require all granted
 </Directory>
  ・
  ・ 
 #---- 2019.05.01 hogehoge
 #<Directory "/var/www/html">
 <Directory "/home/www/html">  <---- /home に合わせる   
  ・
  ・  
 #---- 2019.05.01 hogehoge
  #Options Indexes FollowSymLinks  <--- ファイル一覧を表示させない 
  Options  FollowSymLinks
  ・
  ・  
 #---- 2019.05.01 hogehoge
 #<Directory "/var/www/cgi-bin">
 <Directory "/home/www/cgi-bin">  <---- /home に合わせる 
    AllowOverride None
    Options None
    Require all granted
 </Directory>
  ・
  ・  
  #----- 2019.05.01 hogehoge
  #HTTP TRACE off
  TraceEnable off
  ・
  ・  
  Header append X-FRAME-OPTIONS "SAMEORIGIN"
  ・
  ・  
  ServerTokens ProductOnly   <------ 追加
  ServerSignature off        <------ 追加
 

ドキュメントの保存ディレクトリを作成

設定が終了したら、「httpd.conf」を保存します
上記設定で、サイトのコンテンツを作成する場所を「/var/www/」から「/home/www/」に変更したので、必要なディレクトリを作成します

$ cd /home
$ sudo mkdir www
$ cd www
$ sudo mkdir cgi-bin
$ sudo mkdir html

不要なファイルを削除して、httpd 再起動

「autoindex.conf」「welcome.conf」このファイル
セキュリティ的に不要なファイルだと言うことなので、名前を変更しておきます

$ cd /etc/httpd/conf.d/
$ sudo mv autoindex.conf autoindex.conf.org
$ sudo mv welcome.conf welcome.conf.org 

$ httpd -t
Syntax OK
$ sudo systemctl restart httpd

HTTP TRACE無効化と クリックジャッキング攻撃の対策

HTTP TRACEメソッドは無効にしたほうが良いとの事なので、「 TraceEnable off」の設定で無効にしました
これの確認には、「telnet」コマンドを使用するようです。
インストールした、centOS7にはインストールされていなかったので、インストールします

 $ sudo yum -y install telnet
 読み込んだプラグイン:fastestmirror, langpacks
 Loading mirror speeds from cached hostfile
 base: ftp.iij.ad.jp
 extras: ftp.iij.ad.jp
 updates: ftp.iij.ad.jp
 base                                                     | 3.6 kB     00:00
 extras                                                   | 3.4 kB     00:00
 updates                                                  | 3.4 kB     00:00
 依存性の解決をしています
 --> トランザクションの確認を実行しています。
 ---> パッケージ telnet.x86_64 1:0.17-64.el7 を インストール
 --> 依存性解決を終了しました。 
 依存性を解決しました
 ================================================================================
  Package          アーキテクチャー バージョン              リポジトリー    容量
 インストール中:
  telnet           x86_64           1:0.17-64.el7           base            64 k
 トランザクションの要約
 インストール  1 パッケージ
 総ダウンロード容量: 64 k
 インストール容量: 113 k
 Downloading packages:
 telnet-0.17-64.el7.x86_64.rpm                              |  64 kB   00:00
 Running transaction check
 Running transaction test
 Transaction test succeeded
 Running transaction
   インストール中          : 1:telnet-0.17-64.el7.x86_64                     1/1
   検証中                  : 1:telnet-0.17-64.el7.x86_64                     1/1
 インストール:
   telnet.x86_64 1:0.17-64.el7
 完了しました!

TRACE無効化の確認をしてみます

$ telnet localhost 80
 Trying 127.0.0.1…
 Connected to localhost.
 Escape character is '^]'.
 OPTIONS / HTTP/1.1
 host: localhost
 HTTP/1.1 200 OK
 Date: Mon, 15 Jul 2019 05:28:31 GMT
 Server: Apache                     <----- apacheのバージョンは見えない
 Allow: GET,HEAD,POST,OPTIONS       <--------- TRACE がないのでOK
 X-FRAME-OPTIONS: SAMEORIGIN        <--------- OK 
 Content-Length: 0
 Content-Type: text/html; charset=UTF-8
 Connection closed by foreign host.

OpenSSL の設定

これから、https化に向けてサーバ設定していこうと思っていますから、SSLの対策も必要なようですので、上サイトを参考に設定していきます
OpenSSLのバージョンは最新にします

$ sudo yum install openssl
 ・
 ・
 ・
 ・
 パッケージ 1:openssl-1.0.2k-16.el7_6.1.x86_64 はインストール済みか最新バージョンです
 何もしません

最新だったようです。
次に、「/etc/httpd/conf.d/ssl.conf」に推奨の設定をしていきます。
一応、バックアップしてから、編集しようと思います

$ cd /etc/httpd/conf.d
 $ sudo cp -p ./ssl.conf ./ssl.conf.org
 $ sudo vi ./ssl.conf

  SSLProtocol all -SSLv2 -SSLv3

  #----- 2019.05.02 hogehoge
  #SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
   SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA:!3DES:!RC4:!DH
  
  #----- 2019.05.02 hogehoge
  #SSLHonorCipherOrder on
  SSLHonorCipherOrder on
 
  #----- 2019.05.02 hogehoge
  SSLCompression off      <----------追加

下記を参考に設定してみました。
これで少しは、強化できたでしょうか?
「Rem System Techlog」さん
情報ありがとうございました

攻撃を受ける前に! Apache インストール後に必要な8つの変更点

自宅でWordPressを動かそう!


1 2 3 4 5 6 7 8 9 10 11

コメント

タイトルとURLをコピーしました