
先頭の「$」や「#」はLinuxの状態を示す記号で、コマンドを実行する事を示します。

$ = 一般ユーザによる実行
# = 管理者権限（root）による実行

コマンドを入力する時は、先頭の記号を”除いて”入力します。

◆第5回「Webサーバのセキュリティ」◆

①テストページの無効
# cd /etc/httpd/conf.d

# mv welcome.conf welcome.conf.org

# ls

②ディレクトリリスティングの無効
# mv autoindex.conf autoindex.conf.org

# systemctl restart httpd

③Apacheが出力している情報
# dnf install telnet

# telnet 127.0.0.1 80

OPTIONS / HTTP/1.1
host: localhost
※ 上記2行は、telnet 実行時に入力する文字列

④設定ファイルのバックアップ
# cd /etc/httpd/conf/

# cp -p httpd.conf httpd.conf.org

# ls

⑤設定ファイルの編集
# vi httpd.conf

/Indexes
※ 「Indexes」を検索するためのエディタコマンド

ServerTokens ProductOnly
ServerSignature off
TraceEnable off
Header append X-FRAME-OPTIONS "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"
※ 上記5行は、httpd.conf の末尾に追記する

# systemctl restart httpd

# telnet 127.0.0.1 80

OPTIONS / HTTP/1.1
host: localhost
※ 上記2行は、telnet 実行時に入力する文字列

⑥Private CAの構築
# mkdir -p /etc/pki/CA/{certs,crl,newcerts,private}
# chmod 700 /etc/pki/CA/private
# touch /etc/pki/CA/index.txt
# echo 1000 > /etc/pki/CA/serial

# ls /etc/pki/CA

# dnf install openssl

# openssl genrsa -out /etc/pki/CA/private/ca.key 4096

# ls -l /etc/pki/CA/private/ca.key

# openssl req -x509 -new -key /etc/pki/CA/private/ca.key -days 3650 -out /etc/pki/CA/cacert.pem

# ls -l /etc/pki/CA/cacert.pem

# vi /etc/ssl/openssl.cnf

/policy_match
※ 「policy_match」を検索するためのエディタコマンド

# grep policy_anything /etc/ssl/openssl.cnf

⑦CSR(Certificate Signing Request)の作成
# mkdir /etc/ssl/private

# openssl genrsa -out /etc/ssl/private/server.key 2048

# ls -l /etc/ssl/private/server.key

# openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/private/server.csr -subj "/C=JP/ST=Chiba/L=Narita/O=Web Server/CN=127.0.0.1" -addext "subjectAltName=IP:127.0.0.1"

# ls -l /etc/ssl/private/server.csr

⑧CAがCSRに署名する
# openssl ca -in /etc/ssl/private/server.csr -out /etc/ssl/private/server.crt -cert /etc/pki/CA/cacert.pem -keyfile /etc/pki/CA/private/ca.key

# ls -l /etc/ssl/private/server.crt

⑨Rocky Linuxを終了する。
# shutdown -h now
