ソースを参照

Merge pull request #1798 from cmstew/cmstew-amazon-linux-clamd-patch

cmstew amazon linux clamd patch
Serghey Rodin 4 年 前
コミット
70748e302e

+ 1 - 0
bin/v-change-sys-service-config

@@ -63,6 +63,7 @@ case $service in
     spamd)          dst=$($BIN/v-list-sys-spamd-config plain);;
     spamd)          dst=$($BIN/v-list-sys-spamd-config plain);;
     spamassassin)   dst=$($BIN/v-list-sys-spamd-config plain);;
     spamassassin)   dst=$($BIN/v-list-sys-spamd-config plain);;
     clamd)          dst=$($BIN/v-list-sys-clamd-config plain);;
     clamd)          dst=$($BIN/v-list-sys-clamd-config plain);;
+    clamd.scan)     dst=$($BIN/v-list-sys-clamd-config plain);;
     cron)           dst='/etc/crontab';;
     cron)           dst='/etc/crontab';;
     crond)          dst='/etc/crontab';;
     crond)          dst='/etc/crontab';;
     fail2ban)       dst='/etc/fail2ban/jail.local';;
     fail2ban)       dst='/etc/fail2ban/jail.local';;

+ 10 - 9
install/vst-install-amazon.sh

@@ -23,7 +23,7 @@ software="nginx httpd mod_ssl mod_ruid2 mod_fcgid mod_extract_forwarded
     php php-common php-cli php-bcmath php-gd php-imap php-mbstring php-mcrypt
     php php-common php-cli php-bcmath php-gd php-imap php-mbstring php-mcrypt
     php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc php-fpm php-pgsql
     php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc php-fpm php-pgsql
     awstats webalizer vsftpd proftpd bind bind-utils bind-libs exim dovecot
     awstats webalizer vsftpd proftpd bind bind-utils bind-libs exim dovecot
-    clamd spamassassin mysql mysql-server phpMyAdmin postgresql
+    clamd clamav-update spamassassin mysql mysql-server phpMyAdmin postgresql
     postgresql-server postgresql-contrib phpPgAdmin e2fsprogs openssh-clients
     postgresql-server postgresql-contrib phpPgAdmin e2fsprogs openssh-clients
     ImageMagick curl mc screen ftp zip unzip flex sqlite pcre sudo bc jwhois
     ImageMagick curl mc screen ftp zip unzip flex sqlite pcre sudo bc jwhois
     mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype fail2ban
     mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype fail2ban
@@ -530,7 +530,7 @@ service exim stop > /dev/null 2>&1
 cp -r /etc/exim/* $vst_backups/exim >/dev/null 2>&1
 cp -r /etc/exim/* $vst_backups/exim >/dev/null 2>&1
 
 
 # Backup ClamAV configuration
 # Backup ClamAV configuration
-service clamd stop > /dev/null 2>&1
+service clamd.scan stop > /dev/null 2>&1
 cp /etc/clamd.conf $vst_backups/clamd >/dev/null 2>&1
 cp /etc/clamd.conf $vst_backups/clamd >/dev/null 2>&1
 cp -r /etc/clamd.d $vst_backups/clamd >/dev/null 2>&1
 cp -r /etc/clamd.d $vst_backups/clamd >/dev/null 2>&1
 
 
@@ -648,7 +648,6 @@ if [ "$exim" != 'no' ]; then
     check_result $? "yum install failed"
     check_result $? "yum install failed"
 fi
 fi
 
 
-
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 #                     Configure system                     #
 #                     Configure system                     #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
@@ -790,7 +789,7 @@ fi
 if [ "$exim" = 'yes' ]; then
 if [ "$exim" = 'yes' ]; then
     echo "MAIL_SYSTEM='exim'" >> $VESTA/conf/vesta.conf
     echo "MAIL_SYSTEM='exim'" >> $VESTA/conf/vesta.conf
     if [ "$clamd" = 'yes'  ]; then
     if [ "$clamd" = 'yes'  ]; then
-        echo "ANTIVIRUS_SYSTEM='clamav'" >> $VESTA/conf/vesta.conf
+        echo "ANTIVIRUS_SYSTEM='clamd.scan'" >> $VESTA/conf/vesta.conf
     fi
     fi
     if [ "$spamd" = 'yes' ]; then
     if [ "$spamd" = 'yes' ]; then
         echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/vesta.conf
         echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/vesta.conf
@@ -1147,10 +1146,12 @@ if [ "$clamd" = 'yes' ]; then
     useradd clam -s /sbin/nologin -d /var/lib/clamav 2>/dev/null
     useradd clam -s /sbin/nologin -d /var/lib/clamav 2>/dev/null
     gpasswd -a clam exim
     gpasswd -a clam exim
     gpasswd -a clam mail
     gpasswd -a clam mail
-    cp -f $vestacp/clamav/clamd.conf /etc/
+    cp -r /etc/clamd.d $vst_backups/clamd >/dev/null 2>&1
+    cp -f $vestacp/clamav/clamd.conf /etc/clamd.conf
+    ln -sf /etc/clamd.conf /etc/clamd.d/scan.conf
     cp -f $vestacp/clamav/freshclam.conf /etc/
     cp -f $vestacp/clamav/freshclam.conf /etc/
-    mkdir -p /var/log/clamav /var/run/clamav
-    chown clam:clam /var/log/clamav /var/run/clamav
+    mkdir -p /var/log/clamav /var/run/clamav /var/run/clamd.scan
+    chown clam:clam /var/log/clamav /var/run/clamav /var/run/clamd.scan
     chown -R clam:clam /var/lib/clamav
     chown -R clam:clam /var/lib/clamav
     if [ "$release" -ge '7' ]; then
     if [ "$release" -ge '7' ]; then
         cp -f $vestacp/clamav/clamd.service /usr/lib/systemd/system/
         cp -f $vestacp/clamav/clamd.service /usr/lib/systemd/system/
@@ -1161,8 +1162,8 @@ if [ "$clamd" = 'yes' ]; then
         sed -i "s/nofork/foreground/" /usr/lib/systemd/system/clamd.service
         sed -i "s/nofork/foreground/" /usr/lib/systemd/system/clamd.service
         systemctl daemon-reload
         systemctl daemon-reload
     fi
     fi
-    chkconfig clamd on
-    service clamd start
+    chkconfig clamd.scan on
+    service clamd.scan start
     #check_result $? "clamd start failed"
     #check_result $? "clamd start failed"
 fi
 fi
 
 

+ 46 - 0
web/edit/server/clamd.scan/index.php

@@ -0,0 +1,46 @@
+<?php
+error_reporting(NULL);
+$TAB = 'SERVER';
+// Main include
+include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
+// Check user
+if ($_SESSION['user'] != 'admin') {
+    header("Location: /list/user");
+    exit;
+}
+// Check POST request
+if (!empty($_POST['save'])) {
+    // Check token
+    if ((!isset($_POST['token'])) || ($_SESSION['token'] != $_POST['token'])) {
+        header('location: /login/');
+        exit();
+    }
+    // Set restart flag
+    $v_restart = 'yes';
+    if (empty($_POST['v_restart'])) $v_restart = 'no';
+    // Update config
+    if (!empty($_POST['v_config'])) {
+        exec ('mktemp', $mktemp_output, $return_var);
+        $new_conf = $mktemp_output[0];
+        $fp = fopen($new_conf, 'w');
+        fwrite($fp, str_replace("\r\n", "\n",  $_POST['v_config']));
+        fclose($fp);
+        exec (VESTA_CMD."v-change-sys-service-config ".$new_conf." clamd.scan ".$v_restart, $output, $return_var);
+        check_return_code($return_var,$output);
+        unset($output);
+        unlink($new_conf);
+    }
+    // Set success message
+    if (empty($_SESSION['error_msg'])) {
+        $_SESSION['ok_msg'] = __('Changes has been saved.');
+    }
+}
+$v_config_path = shell_exec(VESTA_CMD.'v-list-sys-clamd-config plain');
+$v_service_name = strtoupper('clamav');
+// Read config
+$v_config = shell_exec(VESTA_CMD."v-open-fs-config ".$v_config_path);
+// Render page
+render_page($user, $TAB, 'edit_server_service');
+// Flush session messages
+unset($_SESSION['error_msg']);
+unset($_SESSION['ok_msg']);