Contents
1. WEBサーバー導入
1. 1 Apache2インストール
①インストール
1 |
# apt -y install apache2 |
②設定ファイル編集
1 2 3 4 5 6 7 8 9 10 |
# vi /etc/apache2/conf-enabled/security.conf # 25行目:変更 ServerTokens Prod# vi /etc/apache2/mods-enabled/dir.conf # 2行目:ディレクトリ名のみでアクセスできるファイル名を設定 DirectoryIndex index.html index.htm index.php# vi /etc/apache2/apache2.conf # 70行目:サーバー名追記 ServerName <ドメイン名># vi /etc/apache2/sites-available/000-default.conf # 11行目:管理者アドレス変更 ServerAdmin <メールアドレス> |
再起動
1 |
# systemctl restart apache2 |
1.2. Apache2でPerlスクリプトを利用する
CGI を有効にして Perl スクリプトが利用できるように設定します
①Perl をインストール
1 |
# apt -y install perl |
②CGI モジュールを有効にします
1 2 3 4 |
# a2enmod cgid Enabling module cgid. To activate the new configuration, you need to run: ; systemctl restart apache2 |
③テストスクリプト作成
CGI モジュールを有効にすると、デフォルトで [/usr/lib/cgi-bin] 配下が CGI 実行許可されます。
例えば [/usr/lib/cgi-bin/index.cgi] スクリプトを作成して配置することで、[http://(Apache2 サーバー)/cgi-bin/index.cgi] へアクセス可能となります。 なお、当設定は [/usr/lib/cgi-bin] 配下のファイルを全て CGI と扱うため、CGI 以外のファイルは表示不可です。
# テストスクリプト作成
1 2 3 4 5 |
# cat > /usr/lib/cgi-bin/test_script <<'EOF' #!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello CGI\n"; EOF |
1 |
# chmod 705 /usr/lib/cgi-bin/test_script |
# 動作確認
1 2 |
# curl http://localhost/cgi-bin/test_script Hello CGI |
1.3 Apache2でPHPスクリプトを利用する
①PHP をインストール
1 |
# apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring |
②Apache2 の設定
1 2 3 4 |
# a2enconf php7.2-cgi Enabling conf php7.2-cgi. To activate the new configuration, you need to run: systemctl reload apache2 |
1 2 3 4 5 6 |
# vi /etc/php/7.2/apache2/php.ini # 822行目: upload_max_filesize = 2M upload_max_filesize = 200M # 936行目:コメント解除しタイムゾーン設定 date.timezone = "Asia/Tokyo |
1 |
# systemctl restart apache2 |
③テストページを作成して動作確認
1 2 3 4 5 6 7 8 9 10 11 |
# vi /var/www/html/index.php <html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> <?php print "PHP Test Page"; ?> </div> </body> </html> |
1.4 バーチャルホストの設定
①設定ファイルの準備
デフォルトの設定ファイルをコピーし、バーチャルホストの設定をします(例としてファイル名を<vhost-sample.conf>とします)
1 2 |
# cd /etc/apache2/sites-available/ # cp sites-available/000-default.conf vhost-sample.conf |
②設定ファイルを編集
1 2 3 4 5 6 7 8 9 10 11 12 |
# vi vhost-sample.conf <VirtualHost *:80> ~省略~ ServerName <ドメイン名> ServerAdmin <メールアドレス> DocumentRoot /var/www/html/<ドメイン名> ~省略~ ErrorLog ${APACHE_LOG_DIR}/<ドメイン名>-error.log CustomLog ${APACHE_LOG_DIR}/<ドメイン名>-access.log combined ~省略 </VirtualHost> |
③設定ファイルの有効化
設定ファイルにシンボリックリンクを貼り、デフォルトの設定ファイルを無効化する
1 2 3 |
# cd /etc/apache2/sites-available/ # a2ensite vhost-sample.conf # a2dissite 000-default.conf ← デフォルト無効化 |
④Apache再起動
1 |
# systemctl restart apache2 |
⑤hostsファイルの編集
1 2 3 |
# vi /etc/hosts 127.0.0.1 <ドメイン名> |
2. ウイルス対策ソフトClamaav導入
①インストール
clamav関連の設定ファイルは、/etc/clamav/フォルダにインストールされる
1 |
# apt install clamav clamav-daemon |
②ウイルス定義の更新
1 |
# freshclam |
下記のようなエラーが出る場合はlog設定を変更して、再度実行
ERROR: /var/log/clamav/freshclam.log is locked by another process
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
次の通りlog設定を変更
1 2 3 |
# rm /var/log/clamav/freshclam.log # touch /var/log/clamav/freshclam.log # chown clamav:clamav /var/log/clamav/freshclam.log |
③設定ファイル編集
1 2 3 |
# vi /etc/logrotate.d/clamav-freshclam create 640 clamav adm → create 640 clamav clamav |
④ウイルス定義の自動更新
ウイルス定義の自動更新が行われるサービスが登録されてるか確認する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# service clamav-freshclam status ●clamav-freshclam.service - ClamAV virus database updater Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; vendor preset: e Active: active (running) since Fri 2019-08-16 02:00:32 JST; 2 days ago Docs: man:freshclam(1) man:freshclam.conf(5) https://www.clamav.net/documents Main PID: 888 (freshclam) Tasks: 1 (limit: 4915) CGroup: /system.slice/clamav-freshclam.service └─888 /usr/bin/freshclam -d --foreground=true 8月 18 07:25:02 server freshclam[888]: Sun Aug 18 07:25:02 2019 -> daily.cld is up to d 8月 18 07:25:02 server freshclam[888]: Sun Aug 18 07:25:02 2019 -> bytecode.cld is up t 8月 18 08:25:02 server freshclam[888]: Sun Aug 18 08:25:02 2019 -> Received signal: wak 8月 18 08:25:02 server freshclam[888]: Sun Aug 18 08:25:02 2019 -> ClamAV update proces |
/var/log/clamav/freshclam.logファイルにログが記録される
⑤ウイルスチェックの実行
1 |
# clamscan --infected --remove --recursive /home |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# vi /opt/script/clam-full.sh #!/bin/sh echo ========================================= date hostname clamscan / \ --infected \ --recursive \ --log=/var/log/clamav/clamscan.log \ --move=/var/log/clamav/virus \ --exclude-dir=^/boot \ --exclude-dir=^/sys \ --exclude-dir=^/proc \ --exclude-dir=^/dev \ --exclude-dir=^/var/log/clamav/virus # --infected 感染を検出したファイルのみを結果に出力 # --recursive 指定ディレクトリ以下を再帰的に検査 圧縮ファイルは解凍して検査 # --log=FILE ログファイル # --move=DIR 感染を検出したファイルの隔離先 # --remove 感染を検出したファイルを削除 # --exclude=FILE 検査除外ファイル(パターンで指定) # --exclude-dir=DIR 検査除外ディレクトリ(パターンで指定) if [ $? = 0 ]; then echo "ウイルス未検出." else echo "ウイルス検出!!" fi |
1 |
# chmod +x /opt/script/clam-full.sh |
1 |
# mkdir /var/log/clamav/virus |
1 |
# /opt/script/clam-full.sh |
1 2 3 |
# crontab -e # m h dom mon dow command 0 2 * * mon /opt/script/clam-full.sh >> /var/log/clamav/clamav_scan.log ← 追加 |