Server Setup · 5 min read · Jan 06, 2026

Virtuelles Hosting Howto Mit Virtualmin Auf CentOS 5.1 - Seite 5

Clamav Milter Setup

  • Bearbeiten Sie /etc/sysconfig/clamav-milter:
CLAMAV_FLAGS="
        --config-file=/etc/clamd.conf
        --force-scan
        --local
        --max-children=5
        --sendmail-cf=
        --outgoing
        --quiet
"
SOCKET_ADDRESS="local:/var/clamav/clmilter.socket"
  • Patchen Sie die Init-Datei, um die Socket-Berechtigungen zu beheben:
wget http://www.topdog-software.com/files/clamav-milter.patch  
patch /etc/init.d/clamav-milter < clamav-milter.patch

MySQL Setup

Grundkonfiguration

  • Hören Sie nur auf localhost, bearbeiten Sie /etc/my.cnf im mysqld-Bereich:
bind-address = 127.0.0.1

Root-Passwort festlegen

  • Setzen Sie das Root-Passwort:
service mysqld start  
mysqladmin -u root password NEUESPASSWORT

SpamAssassin Setup

Grundkonfiguration

required_hits 5
report_safe 0
rewrite_header Subject [SPAM]

MySQL-Datenbank erstellen

  • Erstellen Sie die Datenbank:
mysqladmin -p create bayes
  • Füllen Sie die Datenbank:
mysql -p bayes < /usr/share/doc/spamassassin-$(rpm --qf %{VERSION} -q spamassassin)/sql/bayes_mysql.sql
  • Erstellen Sie den Benutzer:
mysql -p  
mysql> GRANT ALL ON bayes.* TO bayes@localhost IDENTIFIED BY 'passwort';

Konfigurieren, um DB zu verwenden

  • Bearbeiten Sie die Datei /etc/mail/spamassassin/local.cf und fügen Sie hinzu:
bayes_store_module  Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn       DBI:mysql:bayes:localhost
bayes_sql_override_username bayes
bayes_sql_username  bayes
bayes_sql_password  passwort

FuzzyOCR konfigurieren

Wir werden die Bild-Hashes in einer MySQL-Datenbank speichern, um die Leistung zu verbessern, sodass Bilder, die wir bereits gescannt haben, nicht erneut gescannt werden, da OCR eine ressourcenintensive Aktivität ist.

MySQL-Datenbank erstellen

  • Das SQL-Skript erstellt die Datenbank und Tabellen und fügt einen Benutzer fuzzyocr mit dem Passwort fuzzyocr hinzu:
mysql -p < /usr/local/src/devel/FuzzyOcr.mysql
  • Ändern Sie das Passwort:
mysqladmin -u fuzzyocr -p fuzzyocr password

Grundlegende Einstellungen

  • Bearbeiten Sie /etc/mail/spamassassin/FuzzyOCR.cf und setzen Sie die grundlegenden Optionen:
focr_path_bin /usr/bin:/usr/local/bin
focr_minimal_scanset 1
focr_autosort_scanset 1
focr_enable_image_hashing 3
focr_logfile /tmp/FuzzyOcr.log

FuzzyOCR so konfigurieren, dass die Datenbank verwendet wird

  • Bearbeiten Sie die Datei /etc/mail/spamassassin/FuzzyOcr.cf und fügen Sie hinzu:
focr_mysql_db FuzzyOcr
focr_mysql_hash Hash
focr_mysql_safe Safe
focr_mysql_user fuzzyocr
focr_mysql_pass passwort
focr_mysql_host localhost
focr_mysql_port 3306
focr_mysql_socket /var/lib/mysql/mysql.sock

SARE-Regel-Updates

  • Importieren Sie den GPG-Schlüssel, der verwendet wird, um die Regeln zu signieren:
mkdir /etc/mail/spamassassin/sa-update-keys/  
chmod 700 /etc/mail/spamassassin/sa-update-keys/  
wget http://daryl.dostech.ca/sa-update/sare/GPG.KEY  
sa-update --import GPG.KEY
  • Erstellen Sie die Kanäle-Datei /etc/mail/spamassassin/sare-sa-update-channels.txt:
updates.spamassassin.org
72_sare_redirect_post3.0.0.cf.sare.sa-update.dostech.net
70_sare_evilnum0.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_html0.cf.sare.sa-update.dostech.net
70_sare_html_eng.cf.sare.sa-update.dostech.net
70_sare_header0.cf.sare.sa-update.dostech.net
70_sare_header_eng.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
72_sare_bml_post25x.cf.sare.sa-update.dostech.net
99_sare_fraud_post25x.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_genlsubj0.cf.sare.sa-update.dostech.net
70_sare_genlsubj_eng.cf.sare.sa-update.dostech.net
70_sare_unsub.cf.sare.sa-update.dostech.net
70_sare_uri0.cf.sare.sa-update.dostech.net
70_sare_obfu0.cf.sare.sa-update.dostech.net
70_sare_stocks.cf.sare.sa-update.dostech.net
  • Erstellen Sie ein Update-Skript /usr/local/bin/update-sa:
#!/bin/bash
#
#
sa-update -D --channelfile /etc/mail/spamassassin/sare-sa-update-channels.txt --gpgkey 856AA88A &>/var/log/sa-updates.log
  • Machen Sie es ausführbar und fügen Sie es zu cron hinzu:
chmod +x /usr/local/bin/update-sa  
ln -s /usr/local/bin/update-sa /etc/cron.daily/  
ln -s /usr/local/bin/update-sa /etc/cron.hourly/

Spamass-milter Setup

Grundkonfiguration

  • Bearbeiten Sie /etc/sysconfig/spamass-milter:
SOCKET=/var/run/spamass.sock
EXTRA_FLAGS="-m -r 8"

Patch

Wir müssen die Init-Datei patchen, um die Berechtigungen des erstellten Sockets zu beheben, sodass Postfix den Socket verwenden kann.

wget http://www.topdog-software.com/files/spamass-milter.patch  
patch /etc/rc.d/init.d/spamass-milter < spamass-milter.patch

Apache Setup

Module deaktivieren

Wir werden einige Module deaktivieren, die wir nicht verwenden, um Speicher freizugeben und die Sicherheit zu verbessern.

  • Bearbeiten Sie /etc/httpd/conf/httpd.conf und kommentieren Sie die Module wie unten aus.
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule status_module modules/mod_status.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
  • Bearbeiten Sie /etc/httpd/conf.d/proxy_ajp.conf und kommentieren Sie wie unten aus:
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Auf einer IP für HTTPS hören

Apache muss so konfiguriert werden, dass es auf einer Adresse für Port 443 hört, da Webmin denselben Port verwenden wird. Bearbeiten Sie /etc/httpd/conf.d/ssl:

Listen 192,168.1.6:443

Gzip-Kompression aktivieren

Wir richten die Gzip-Kompression über das mod_deflate-Modul ein, um die Leistung des Webservers zu verbessern und den Bandbreitenverbrauch zu reduzieren, indem die Antworten an den Client komprimiert werden.

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary

Richten Sie das Logging für das Deflate-Modul ein:

DeflateFilterNote deflate_ratio
LogFormat "%v %h %l %u %t \"%r\" %>s %b mod_deflate: %{deflate_ratio}n pct." vhost_with_deflate_info
CustomLog logs/deflate_access_log vhost_with_deflate_info

PHP Max Memory erhöhen

Bearbeiten Sie die Datei /etc/php.ini und setzen Sie Folgendes:

memory_limit = 64M

Virtuelles Hosting aktivieren

NameVirtualHost *:80

Standard-Virtualhost erstellen

Dies muss der erste Virtualhost sein, er wird der Standard auf dem Server sein, das Äquivalent des Servers ohne virtuelles Hosting.


        Servername localhost.localdomain
        Serveradmin [email protected]

Roundcube Webmail Setup

Datenbank erstellen

  • Erstellen Sie die Datenbank und fügen Sie den Roundcube-Benutzer hinzu.
mysqladmin -p create roundcube  
mysql -p  
mysql> GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY 'passwort';
  • Initialisieren Sie die Datenbank:
mysql -u roundcube -p roundcube < /usr/share/doc/roundcube-0.1/SQL/mysql5.initial.sql

Grundkonfiguration

  • Konfigurieren Sie die Datenbank-DSN in /var/www/roundcube/config/db.inc.php:
$rcmail_config['db_dsnw'] = 'mysql://roundcube:passwort@localhost/roundcube';
  • Konfigurieren Sie Roundcube in /var/www/roundcube/config/main.inc.php:
$rcmail_config['default_host'] = 'localhost';
$rcmail_config['default_port'] = 143;
$rcmail_config['virtuser_file'] = '/etc/postfix/virtual';
$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_port'] = 25;
$rcmail_config['smtp_helo_host'] = 'localhost';

Catch-All-Virtualhost einrichten

Da wir Webmail für alle Domains bereitstellen, die im System erstellt werden, müssen wir einen Catch-All-Virtualhost einrichten, der Roundcube anzeigt, wann immer ein Benutzer http://webmail.domainname aufruft. Bearbeiten Sie /etc/httpd/conf/httpd.conf und fügen Sie hinzu:


ServerName webmail.example.com
ServerAlias webmail.*
DocumentRoot /var/www/roundcube

Options -Indexes IncludesNOEXEC FollowSymLinks
allow from all

Firewall Setup

Einführung

Dies ist eine grundlegende Firewall, sie entspricht möglicherweise nicht Ihren Anforderungen, Firewalling ist eine Kunst, daher empfehle ich, sich darüber zu informieren, um diese grundlegende zu verbessern.

Grundkonfiguration

Fügen Sie diese Regeln in Ihre Konfigurationsdatei /etc/sysconfig/iptables ein:

*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*filter
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m multiport -j ACCEPT --dports 80,443,25,110,143,53
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p icmp -m icmp -m limit --icmp-type 8 --limit 5/min -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -s 127.0.0.1 -j ACCEPT
-A OUTPUT -s 192.168.1.5 -j ACCEPT
-A OUTPUT -s 192.168.1.6 -j ACCEPT
COMMIT

Konfiguration aktivieren

service iptables restart
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.