Till Brehm
2016-07-24 b9a3ef486ebcde18a5ade37865ff8f397185d24f
install/dist/lib/centos72.lib.php
@@ -34,92 +34,7 @@
   protected $clamav_socket = '/var/run/clamd.amavisd/clamd.sock';
   
    public function configure_amavis() {
      global $conf;
      // amavisd user config file
      $configfile = 'fedora_amavisd_conf';
      if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]);
      if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf', $conf["amavis"]["config_dir"].'/amavisd.conf~');
      if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~');
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
      $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
      $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
      $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
      $content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
      $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content);
      $content = str_replace('{hostname}', $conf['hostname'], $content);
      $content = str_replace('/var/spool/amavisd/clamd.sock', $this->clamav_socket, $content);
      wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
      chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
      exec('chgrp amavis '.$conf['amavis']['config_dir'].'/amavisd.conf');
      // Adding the amavisd commands to the postfix configuration
      $postconf_commands = array (
         'content_filter = amavis:[127.0.0.1]:10024',
         'receive_override_options = no_address_mappings'
      );
      // Make a backup copy of the main.cf file
      copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2');
      // Executing the postconf commands
      foreach($postconf_commands as $cmd) {
         $command = "postconf -e '$cmd'";
         caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
      }
      $config_dir = $conf['postfix']['config_dir'];
      // Adding amavis-services to the master.cf file if the service does not already exists
      $add_amavis = !$this->get_postfix_service('amavis','unix');
      $add_amavis_10025 = !$this->get_postfix_service('127.0.0.1:10025','inet');
      $add_amavis_10027 = !$this->get_postfix_service('127.0.0.1:10027','inet');
      if ($add_amavis || $add_amavis_10025 || $add_amavis_10027) {
         //* backup master.cf
         if(is_file($config_dir.'/master.cf')) copy($config_dir.'/master.cf', $config_dir.'/master.cf~');
         // adjust amavis-config
         if($add_amavis) {
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master');
            af($config_dir.'/master.cf', $content);
            unset($content);
         }
         if ($add_amavis_10025) {
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master');
            af($config_dir.'/master.cf', $content);
            unset($content);
         }
         if ($add_amavis_10027) {
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master');
            af($config_dir.'/master.cf', $content);
            unset($content);
         }
      }
      // Create the director for DKIM-Keys
      if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750, true);
         // get shell-user for amavis
         $amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd');
         if(!empty($amavis_user)) {
            $amavis_user=rtrim($amavis_user, ":");
            exec('chown '.$amavis_user.' /var/lib/amavis/dkim');
          }
         // get shell-group for amavis
         $amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group');
         if(!empty($amavis_group)) {
            $amavis_group=rtrim($amavis_group, ":");
            exec('chgrp '.$amavis_group.' /var/lib/amavis/dkim');
      }
      removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn   # REMOVE ME', 1);
      replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1);
      replaceLine('/etc/clamd.d/scan.conf', 'Example', '# Example', 1);
   }
   // everything else is inherited from installer_centos class
}
?>