GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

Virtuelles Hosting Howto mit Virtualmin auf CentOS 5.1

Virtual-Hosting-Howto mit Virtualmin auf CentOS 5.1

Version 1.0.1
Autor:Andrew Colin Kissa

Einführung

Dieses Tutorial zeigt, wie Sie einen CentOS 5.x-Server einrichten, um alle Dienste anzubieten, die von virtuellen Webhostern benötigt werden. Dazu gehören Webhosting, SMTP-Server mit (SMTP-AUTH und TLS, SPF, DKIM, Domainkeys), DNS, FTP, MySQL, POP3/IMAP, Firewall, Webalizer für Statistiken.

Ich werde die folgende Software verwenden:

  • Datenbankserver:MySQL 5.0.22
  • Mailserver:Postfix 2.3.3
  • NS-Server:BIND9 9.3.3
  • Webserver:Apache 2.2.3 /PHP 5.1.6
  • FTP-Server:Vsftpd 2.0.5
  • POP3/IMAP-Server:Dovecot 1.0
  • Webalizer:für Website-Statistiken 2.01_10
  • Virtualmin:Systemsteuerung

Installation des Betriebssystems

Anforderungen

Um das System zu installieren, benötigen Sie

  • CentOS 5.1-Installationsmedien
  • Eine gute Internetverbindung

Installieren Sie das Basissystem

HINWEIS Einige Phasen der Installation werden hier nicht beschrieben, um das Howto kurz zu halten. Die Phasen der Grub-Konfiguration werden zum Beispiel weggelassen.

  • Vom DVD- oder CD-Medium booten und am Boot-Prompt linux text eingeben.
  • Überspringen Sie den Medientest.
  • Wählen Sie Ihre Sprache:

  • Tastaturlayout auswählen:

  • Konfigurieren Sie Ihr Netzwerk, ich werde DHCP verwenden, wenn Sie DHCP nicht haben, können Sie statische Einträge verwenden.

  • Wählen Sie Ja, um Laufwerk zu initialisieren:

  • Wählen Sie ein benutzerdefiniertes Layout für den Partitionierungstyp aus:

  • Partitionen erstellen:

  • Netzwerk konfigurieren:

IP-Adresse und Netzmaske einstellen:

Legen Sie Gateway- und DNS-Server fest:

Legen Sie den Hostnamen fest:

  • Stellen Sie die Zeitzone ein:

  • Legen Sie das Root-Passwort fest:

  • Servergruppe auswählen und Softwareauswahl anpassen auswählen:

  • Paketgruppen wählen Sie wie folgt aus:
    • DNS-Nameserver
      • bind-chroot

  • Editoren
    • vim-erweitert
  • FTP-Server
  • Mailserver
    • Taubenschlag
    • Spamassassin
    • Postfix

  • Mysql-Datenbank
    • mysql-server

  • Webserver
    • mod_ssl
    • Webalizer
    • php
    • php-birne
    • http-suexec
    • php-mysql

Starten Sie die Installation:

Dateisystem ist formatiert:

Die Installation wird ausgeführt:

Starten Sie das System neu:

Virtual Hosting Howto mit Virtualmin auf CentOS 5.1 - Seite 2

Zu deaktivierende Dienste

Um die Sicherheit zu verbessern und Systemressourcen auf dem System freizugeben, müssen wir alle nicht benötigten Dienste deaktivieren. Sie können dieses Skript ausführen, um dies für Sie zu erledigen.

  • acpid
  • Anacron
  • apmd
  • autofs
  • Bluetooth
  • Tassen
  • Erstboot
  • gpm
  • Haldaemon
  • Nachrichtenbus
  • mdmonitor
  • versteckt
  • ip6tables
  • Kudzu
  • lvm2-monitor
  • netfs
  • nfslock
  • pcscd
  • Portmap
  • rpcgssd
  • rpcidmapd
  • Mail versenden
  • smartd
  • yum-updatesd

Grundlagen

Wir müssen einige Probleme beheben, um das System für die Konfiguration vorzubereiten.

  • Updates installieren

Yum-Upgrade

  • MTA auf Postfix umstellen

Alternativen --config mta

Es gibt 2 Programme, die 'mta' bereitstellen.
Auswahlbefehl
------------------------------ -----------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
Enter um die aktuelle Auswahl beizubehalten[+], oder geben Sie die Auswahlnummer ein:1

  • Installieren Sie die Caching-Nameserver-Konfiguration:

yum installiere den Caching-Nameserver

  • Build-Tools installieren:

yum install gcc cpp gcc-c++ automake automake14 automake15 automake16 automake17 openssl-devel subversion ncurses-devel -y

Netzwerk-Alias ​​konfigurieren

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1

Ändern Sie die Datei /etc/sysconfig/network-scripts/ifcfg-eth0:1 so, dass sie wie folgt aussieht:
DEVICE=eth0:1
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.6
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes

Webmin / Virtualmin installieren

  • Webmin-PGP-Schlüssel importieren:

wget http://www.webmin.com/jcameron-key.asc
rpm --import jcameron-key.asc

  • Laden Sie die RPM herunter:

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.390-1.noarch.rpm

  • Überprüfen Sie die Drehzahl (sollte OK heißen oder erneut herunterladen):

rpm --checksig webmin-1.390-1.noarch.rpm

  • Installieren Sie das RPM:

rpm -Uvh webmin-1.390-1.noarch.rpm

Erste Webmin-Konfiguration

Wir müssen Webmin sichern, indem wir /etc/webmin/miniserv.conf bearbeiten und die folgenden Änderungen vornehmen:

  • Nur SSL verwenden:
ssl=1
  • Ändern Sie den Port auf 443 und binden Sie nur an die zweite Netzwerkkarte:
port=443
bind=192.168.1.6
  • UDP-Broadcasts deaktivieren:
#listen=10000
  • Ändern Sie die Host-Sperre bei Anmeldefehlern auf 3 :
blockhost_failures=3
  • Erhöhen Sie das Timeout für die Host-Sperre auf 120:
blockhost_time=120
  • Benutzersperre bei fehlgeschlagener Anmeldung auf 3 ändern:
blockuser_failures=3
  • Zeitlimit für Benutzersperrung auf 120 ändern:
blockuser_time=120
  • Ändern Sie den Bereich in etwas anderes:
realm=cpanel
  • Anmeldungen auf utmp protokollieren:
utmp=1

Installieren Sie das Webmin-Tiger-Design:

  • Melden Sie sich über https://192.168.1.5:10000 mit root und Ihrem Passwort bei Webmin an.
  • Zu Webmin gehen? Aufbau ? Webmin-Designs.
  • Wählen Sie From ftp or http URL und geben Sie http://www.stress-free.co.nz/files/theme-stressfree.tar.gz ein
  • Klicken Sie auf Design installieren.
  • Klicken Sie auf "Zurück zur Themenliste".
  • Wählen Sie StressFree als aktuelles Thema und klicken Sie dann auf Ändern.

Installieren Sie das PHP-Pear-Modul:

  • Zu Webmin gehen? Webmin-Konfiguration? Webmin-Module.
  • Wählen Sie Drittanbietermodul aus und geben Sie http://www.webmin.com/download/modules/php-pear.wbm.gz ein.
  • Klicken Sie auf Modul installieren.

Installieren Sie virtualmin:

  • Zu Webmin gehen? Webmin-Konfiguration? Webmin-Module.
  • Wählen Sie Installation von FTP- oder HTTP-URL und geben Sie http://download.webmin.com/download/virtualmin/virtual-server-3.51.gpl.wbm.gz ein
  • Klicken Sie auf Modul installieren.

Unerwünschte Module entfernen Zu Webmin gehen? Webmin-Konfiguration? löschen und Folgendes auswählen:

  • ADSL-Client
  • Bacula-Backup-System
  • CD-Brenner
  • CVS-Server
  • Cluster-Passwörter ändern
  • Clusterkopiedateien
  • Cluster-Cronjobs
  • Cluster-Shell-Befehle
  • Cluster-Softwarepakete
  • Cluster-Usermin-Server
  • Cluster-Benutzer und -Gruppen
  • Cluster-Webmin-Server
  • Befehlsshell
  • Konfigurationsmaschine
  • Benutzerdefinierte Befehle
  • DHCP-Server
  • Fetchmail-E-Mail-Abruf
  • Dateimanager
  • Frox-FTP-Proxy
  • HTTP-Tunnel
  • Herzschlagüberwachung
  • IPsec-VPN
  • Jabber-IM-Server
  • LDAP-Server
  • Logische Datenträgerverwaltung
  • Majordomo-Listenmanager
  • NFS-Exporte
  • NIS-Client und -Server
  • OpenSLP-Server
  • PPP-Einwahlserver
  • PPP-Einwahlclient
  • PPTP-VPN-Server
  • PPTP-VPN-Client
  • Postgresql-Datenbankserver
  • Druckerverwaltung
  • ProFTPD-Server
  • QMAIL-Mailserver
  • SMART-Laufwerksstatus
  • SSH-/Telnet-Anmeldung
  • SSL-Tunnel
  • SAMBA-Windows-Dateifreigabe
  • Geplante Befehle
  • Sendmail-Mailserver
  • Küstenfirewall
  • Generator für Squid-Analyseberichte
  • Squid-Proxyserver
  • Voicemail-Server
  • WU-FTP-Server
  • Idmapd-Server

Webmin neu starten:

service webmin restart

Rpmforge-Repository konfigurieren

rpm -Uhv http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

HINWEIS:Wenn Sie eine andere Architektur verwenden, prüfen Sie auf https://rpmrepo.org/RPMforge/Using für die richtige RPM
  • Deaktivieren Sie das Repo (so dass Basispakete nicht überschrieben werden), bearbeiten Sie /etc/yum.d/rpmforge.repo und setzen Sie die folgende Option:
enabled = 0

Zusätzlich erforderliche Pakete installieren

  • Clamav installieren:

yum --enablerepo=rpmforge install clamav clamav-db clamav-milter clamd -y
wget http://www.topdog-software.com/files/clamav-milter.patch
patch /etc/init .d/clamav-milter chkconfig --del clamd
freshclam

  • Sanesecurity-Signaturen installieren:

wget http://www.sanesecurity.co.uk/clamav/update_sanesecurity.txt -O /usr/local/bin/update_sanesecurity.sh
chmod +x /usr/local/bin/update_sanesecurity.sh
ln -s /usr/local/bin/update_sanesecurity.sh /etc/cron.hourly/
/usr/local/bin/update_sanesecurity.sh

  • Installieren Sie PHP eaccelerator:

yum --enablerepo=rpmforge installiere php-eaccelerator

  • Neueres spamassassin-Paket von rpmforge installieren:

yum --enablerepo=rpmforge upgrade spamassassin

  • Spamass-Milter installieren:

yum --enablerepo=rpmforge install spamass-milter

  • Installieren Sie die von spamassassin benötigten Perl-Module:

perl -MCPAN -e 'Mail::SPF installieren'
perl -MCPAN -e 'Mail::SPF::Query installieren'
perl -MCPAN -e 'Net::Ident installieren'
perl -MCPAN -e 'installiere IP::Country::Fast'
perl -MCPAN -e 'installiere Mail::DomainKeys'
perl -MCPAN -e 'installiere Mail::DKIM'

  • Installieren Sie fuzzyOCR:

yum --enablerepo=rpmforge install netpbm-progs ocrad gocr gifsicle giflib-utils giflib -y
svn co https://svn.own-hero.net/fuzzyocr/trunk/devel/
cd devel/
perl -MCPAN -e 'Installationszeichenfolge::Approx'
perl -MCPAN -e 'Installationszeit::HiRes'
perl -MCPAN -e 'Installationsprotokoll::Agent'

cp -rv {FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/} /etc/mail/spamassassin
chcon -R system_u:object_r:etc_mail_t /etc/mail/spamassassin/{FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/}
wget http://www.gbnetwork.co.uk/mailscanner /FuzzyOcr.words -O /etc/mail/spamassassin/FuzzyOcr.words

  • Installieren Sie Razor:

yum --enablerepo=rpmforge installiere Razor-Agents -y

  • Roundcube installieren:

yum installiere php-imap
rpm -Uvh http://www.topdog-software.com/oss/roundcube/roundcube-0.1-rc2.noarch.rpm

  • Installieren Sie imapproxy:

wget http://imapproxy.org/downloads/up-imapproxy-1.2.6.tar.gz
rpmbuild -tb up-imapproxy-1.2.6.tar.gz
rpm -Uvh /usr/ src/redhat/RPMS/i386/up-imapproxy-1.2.6-1.i386.rpm

  • Dienste aktivieren:

chkconfig --level 345 httpd auf
chkconfig --level 345 postfix auf
chkconfig --level 345 spamassassin auf
chkconfig --level 345 spamass-milter auf
chkconfig --level 345 clamav-milter auf
chkconfig --level 345 mysqld auf
chkconfig --level 345 benannt auf
chkconfig --level 345 vsftpd auf
chkconfig --level 345 dovecot auf
chkconfig --level 345 imapproxy on

Virtual Hosting Howto mit Virtualmin auf CentOS 5.1 - Seite 3

Konfiguration

Postfix-Setup

Einführung

Wir werden Postfix mit den folgenden Funktionen einrichten:

  • Virtuelles Hosting
  • UCE-Prävention
  • Virenschutz
  • SMTP-Authentifizierung
  • TLS
  • RBLs
  • SPF
  • Angriffsminderung

Das Hinzufügen von Konten und Domänen kann über virtualmin konfiguriert werden, kann aber auch manuell erfolgen. Das Setup ist ressourcenschonend konzipiert und sollte daher auf Computern ausgeführt werden können, die nicht überlastet sind, sodass die Ressourcen besser genutzt werden können. Um es ressourcenfreundlich zu gestalten, verwenden wir keine externen Datenbanken, um virtuelle Benutzerinformationen zu speichern, wie es die meisten anderen Anleitungen tun, und verwenden Milter für die Spam- und Virenprüfung, anstatt amavisd-new auszuführen.

Die Grundlagen

Zunächst konfigurieren wir die Grundlagen wie Hostname, Mail-Ursprung, Netzwerke, Hash-Maps-Spool-Verzeichnis. Alle diese Konfigurationsoptionen sollten zu /etc/postfix/main.cf hinzugefügt werden, sofern nicht anders angegeben. Beispielkonfigurationsdateien stehen am Ende dieser Seite zum Download bereit.

command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mydomain = example.com
myorigin = $mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
sender_canonical_maps = hash:/etc/postfix/canonical
recipient_canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
mail_spool_directory = /var/spool/mail

Mailverzeichnis

Wir werden das stark verbesserte maildir-Format im Gegensatz zum standardmäßigen mbox-Format verwenden:

home_mailbox = Maildir/

SASL

Um die SMTP-Authentifizierung durchzuführen, werden wir SASL verwenden, aber wir werden nicht Cyrus SASL verwenden, da dies erfordert, dass wir den saslauthd-Daemon ausführen, wir werden stattdessen dovecot sasl verwenden, da wir dovecot für IMAP und POP3 ausführen werden, wodurch wir zwei Fliegen mit einem töten Stein.

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

TLS

Wir benötigen TLS, um sicherzustellen, dass die Klartext-Passwörter während der SMTP-Authentifizierung nicht über das Kabel übertragen werden. Server, die TLS unterstützen, können auch über eine gesicherte Verbindung mit diesem Server kommunizieren.

Anweisungen zum Erstellen Ihres von cacert.org signierten Serverzertifikats finden Sie hier.

  • Zufällige TLS-Quelle festlegen:
tls_random_source = dev:/dev/urandom
  • Server-TLS aktivieren:
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/postfix/key.pem
smtpd_tls_cert_file = /etc/pki/postfix/server.pem
smtpd_tls_CAfile = /etc/pki/postfix/root.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
  • Client-TLS aktivieren:
smtp_use_tls = yes
smtp_tls_key_file = /etc/pki/postfix/key.pem
smtp_tls_cert_file = /etc/pki/postfix/server.pem
smtp_tls_CAfile = /etc/pki/postfix/root.crt
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_tls_cache
smtp_tls_note_starttls_offer = yes

Spam-Schutz

  • Erfordert ein gültiges EHLO / HELO:
smtpd_helo_required = yes
  • Verhindern Sie Angriffe zum Sammeln von E-Mail-Adressen:
disable_vrfy_command = yes
  • Ablehnungscodes in dauerhaft ändern (standardmäßig gibt Postfix 4xx-Fehlercodes aus, was einen vorübergehenden Fehler impliziert, wir benötigen 5xx für dauerhafte Fehler):
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_local_recipient_reject_code = 550
  • Verifizierung der Absenderadresse einrichten:
address_verify_map = btree:/var/spool/postfix/verify
smtpd_sender_restrictions = hash:/etc/postfix/sender_access
  • Erstellen Sie /etc/postfix/sender_access und fügen Sie hinzu:
#sample /etc/postfix/sender_access contains frequently spoofed domains
aol.com     reject_unverified_sender
hotmail.com reject_unverified_sender
yahoo.com reject_unverified_sender
gmail.com reject_unverified_sender
bigfoot.com reject_unverified_sender
  • Reduzieren Sie Angriffe von Zombies und defekten Clients:
smtpd_error_sleep_time = 5s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
  • Pipeline nur von authentifizierten Clients zulassen:
smtpd_data_restrictions = reject_unauth_pipelining
  • Installieren Sie postfix-policyd-spf-perl und aktivieren Sie die SPF-Unterstützung:

wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz
tar xzvf postfix-policyd-spf-perl-2.005.tar.gz
cd postfix-policyd-spf-perl-2.005
cp postfix-policyd-spf-perl /etc/postfix/

Fügen Sie dies zu /etc/postfix/master.cf hinzu:

spfpolicy unix  -       n       n       -       -       spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl
  • DKIM-Unterstützung hinzufügen:

Anweisungen zum Hinzufügen von DKIM-Unterstützung finden Sie hier.

  • Domänenschlüssel-Unterstützung hinzufügen:

Anweisungen zum Hinzufügen von Unterstützung für Domänenschlüssel finden Sie hier.

  • Dass alles funktioniert, hängt von der Option smtpd_recipient_restrictions ab, also legen wir sie unten fest:
smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination
        check_recipient_access hash:/etc/postfix/access
        reject_unknown_recipient_domain
        reject_unknown_sender_domain
        reject_unverified_recipient
        reject_non_fqdn_recipient
        reject_non_fqdn_sender
        reject_invalid_hostname
        reject_rbl_client list.dsbl.org
        reject_rbl_client zen.spamhaus.org
        reject_rbl_client l1.spews.dnsbl.sorbs.net
        reject_rbl_client combined.njabl.org
        reject_rbl_client bl.spamcop.net
        reject_rhsbl_sender dsn.rfc-ignorant.org
        reject_rhsbl_sender bogusmx.rfc-ignorant.org
        reject_rhsbl_sender rhsbl.sorbs.net
        reject_rhsbl_client dsn.rfc-ignorant.org
        reject_rhsbl_client bogusmx.rfc-ignorant.org
        reject_rhsbl_client rhsbl.sorbs.net
        check_policy_service unix:private/spfpolicy

Milters [SpamAssassin &ClamAV]

Für Ihre Spam-Klassifizierung mit spamassassin und die Virenprüfung mit clamav verwenden wir die Milter-Schnittstelle von Postfix, anstatt den ressourcenintensiven amavisd-new-Daemon zu verwenden. Dies ist eine sehr effiziente Methode, da wir nicht einmal clam ausführen müssen, da der clamav milter das Scannen selbst durchführt.

smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock
non_smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock

DB-Dateien erstellen

postmap /etc/postfix/canonical
postmap /etc/postfix/access
postmap /etc/postfix/virtual
postmap /etc/postfix/sender_access

Beispielkonfigurationsdateien

  • main.cf
  • master.cf
  • kanonisch
  • virtuell

Virtual Hosting Howto mit Virtualmin auf CentOS 5.1 - Seite 4

Dovecot-Setup

Einführung

Dadurch wird dovecot als unser IMAP/POP3-Server eingerichtet.

Basiskonfiguration

Wir werden dovecot für IMAP und POP3 einrichten und SSL deaktivieren.

protocols = imap pop3
listen = *
ssl_listen = *
ssl_disable = yes

Mailverzeichnis

Wir werden das maildir-Format im Gegensatz zum Standard-mbox-Format verwenden.

mail_location = maildir:~/Maildir

Authentifizierung &SASL

Konfigurieren Sie dovecot so, dass LOGIN und PLAIN als Authentifizierungsmechanismen verwendet werden, da viele MS-Clients keine verschlüsselten Authentifizierungsmechanismen verwenden können. Wir richten auch den SASL-Socket ein, damit Postfix SMTP-Verbindungen mit dovecot authentifizieren kann.

auth default {
  mechanisms = plain login
  passdb pam {
  }
  userdb passwd {
  }
  socket listen {
    client {
        path = /var/spool/postfix/private/auth
        mode = 0660
        user = postfix
        group = postfix
    }
  }
}

Kundenprobleme

Einige MS-imap-Clients in der Outlook-Familie haben Probleme mit ihren IMAP- und POP3-Implementierungen, daher müssen wir sie berücksichtigen, indem wir diese Problemumgehungen einrichten:

protocol imap {
 imap_client_workarounds = outlook-idle delay-newmail
}
protocol pop3 {
 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

IMAP hinter Proxy ausführen

Der Imap-Server ist so konfiguriert, dass er auf Port 10143 läuft, sodass Port 143 vom Imap-Proxy-Server verwaltet wird, der die Leistung für Ihre Webmail verbessert, indem Verbindungen zum Imap-Server zwischengespeichert werden. Die Listen-Option unter Protokoll richtet dies ein.

protocol imap {
 imap_client_workarounds = outlook-idle delay-newmail
 listen = 127.0.0.1:10143
}

Beispieldateien

  • dovecot.conf

Imap-Proxy einrichten

Einführung

imapproxy wurde geschrieben, um Webmail-Clients zu kompensieren, die keine dauerhaften Verbindungen zu einem IMAP-Server aufrechterhalten können. Die meisten Webmail-Clients müssen sich für fast jede einzelne Transaktion bei einem IMAP-Server anmelden. Dieses Verhalten kann zu schwerwiegenden Leistungsproblemen auf dem IMAP-Server führen. imapproxy versucht, mit diesem Problem umzugehen, indem Serververbindungen für kurze Zeit geöffnet bleiben, nachdem sich ein Webmail-Client abgemeldet hat. Wenn der Webmail-Client erneut eine Verbindung herstellt, ermittelt imapproxy, ob eine zwischengespeicherte Verbindung verfügbar ist, und verwendet sie nach Möglichkeit wieder. - laut der imapproxy-Website.

Konfiguration

Nehmen Sie die folgenden Änderungen in der Datei /etc/imapproxy.conf vor:

server_hostname 127.0.0.1
cache_size 3072
listen_port 143
server_port 10143
cache_expiration_time 900
proc_username nobody
proc_groupname nobody
stat_filename /var/run/pimpstats
protocol_log_filename /var/log/imapproxy_protocol.log
syslog_facility LOG_MAIL
send_tcp_keepalives no
enable_select_cache yes
foreground_mode no
force_tls no
enable_admin_commands no

Beispieldateien

  • imapproxy.conf

Bindungs-Setup

Einführung

Bind wird chrooted eingerichtet, um die Sicherheit zu verbessern. Wir werden auch Views verwenden, um Missbrauch des DNS-Servers zu verhindern.

Basiskonfiguration

Die Grundkonfiguration deaktiviert standardmäßig rekursive Abfragen und Zonentransfers. Wir verschleiern auch die Version von BIND, die wir ausführen, damit wir nicht von Zero-Day-Schwachstellen von Skript-Kiddies getroffen werden.

options {
        directory "/var/named";
        pid-file "/var/run/named/named.pid";
        listen-on {
                127.0.0.1;
                192.168.1.5;
                };
        version "just guess";
        allow-recursion { "localhost"; };
        allow-transfer { "none"; };
};

Protokollierung

Die Protokollierung ist angepasst, um die lästigen "lame-server"- und Aktualisierungsfehler zu entfernen, die in den Protokollen erscheinen:

logging {
        category update { null; };
        category update-security { null;        };
        category lame-servers{ null; };
};

Chroot

Stellen Sie sicher, dass dies in der Datei /etc/sysconfig/named festgelegt ist (normalerweise wird es vom bind-chroot-Paket festgelegt):

ROOTDIR=/var/named/chroot

Punktserver

Lassen Sie die Maschine diesen Server für die DNS-Auflösung verwenden, bearbeiten Sie /etc/resolv.conf und stellen Sie Folgendes voran:

nameserver 127.0.0.1

Beispieldateien

  • named.conf
  • /etc/sysconfig/named

Vsftpd-Setup

Einführung

Wir werden vsftpd als FTP-Server verwenden. Dies hat im Gegensatz zu den proftpd- und wuftpd-Servern eine bessere Erfolgsbilanz.

Grundeinstellung

Unsere grundlegende Einrichtung deaktiviert anonyme Benutzer und ermöglicht lokalen Systembenutzern, sich mit dem FTP-Server zu verbinden.

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=Welcome to example.com server
pam_service_name=vsftpd
tcp_wrappers=YES

Chroot

Alle Benutzer werden in ihre Heimatverzeichnisse chrooted (außer Benutzernamen in der Datei /etc/vsftpd/chroot_list), was bedeutet, dass sie nicht ausbrechen und die Dateien anderer Benutzer sehen können.

chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list

Gesperrte Benutzer

Benutzer, die der Datei /etc/vsftpd/user_list hinzugefügt wurden, dürfen sich nicht anmelden:

userlist_enable=YES

Beispieldateien

  • vsftpd.conf
  • Benutzerliste
  • chroot_list

Virtual 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"
  • Init-Datei patchen, um Socket-Berechtigungen zu korrigieren:

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

MySQL-Setup

Basiskonfiguration

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

Root-Passwort festlegen

  • Legen Sie das Root-Passwort fest:

service mysqld start
mysqladmin -u Root-Passwort NEWPASSWORD

SpamAssassin-Setup

Basiskonfiguration

required_hits 5
report_safe 0
rewrite_header Subject [SPAM]

Mysql-Datenbank erstellen

  • Erstellen Sie die Datenbank:

mysqladmin -p create bayes

  • Datenbank füllen:

mysql -p bayes

  • Erstellen Sie den Benutzer:

mysql -p
mysql> GRANT ALL ON bayes.* TO [email protected] IDENTIFIED BY 'password';

Zur Verwendung von DB konfigurieren

  • 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  password

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

  • Passwort ändern:

mysqladmin -u fuzzyocr -p fuzzyocr Passwort

Grundeinstellungen

  • Bearbeiten Sie /etc/mail/spamassassin/FuzzyOCR.cf und legen Sie die grundlegenden Optionen fest:
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

Lassen Sie FuzzyOCR die Datenbank verwenden

  • 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 password
focr_mysql_host localhost
focr_mysql_port 3306
focr_mysql_socket /var/lib/mysql/mysql.sock

SARE-Regelaktualisierungen

  • Importieren Sie den GPG-Schlüssel, der zum Signieren der Regeln verwendet wird:

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 Kanaldatei /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
  • Ausführbar machen und zu cron hinzufügen:

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

Basic Configuration

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

Patch

We need to patch the init file to fix the permissions of the socket created such that postfix is able to use the socket.

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

Apache Setup

Disable Modules

We will disable some modules that we are not using thus freeing up memory and also improving security.

  • Edit /etc/httpd/conf/httpd.conf and comment out the modules as below.
#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
  • Edit /etc/httpd/conf.d/proxy_ajp.conf and comment out as below:
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Listen To One IP For HTTPS

Apache has to be configured to listed to one address for port 443 as webmin will be using the same port. Edit /etc/httpd/conf.d/ssl:

Listen 192,168.1.6:443

Enable Gzip Compression

We setup gzip compression via the mod_deflate module to improve web server performance and to cut down on bandwidth usage by compressing responses to the client.

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

Set up logging for the deflate module:

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

Increase PHP Max Memory

Edit the file /etc/php.ini and set the following:

memory_limit = 64M

Enable Virtual Hosting

NameVirtualHost *:80

Create Default Virtual Host

This needs to be the first virtual host, it will be the default on the server the equivalent of the server with out virtual hosting.

<VirtualHost *:80>
        Servername localhost.localdomain
        Serveradmin [email protected]
</Virtualhost>

Roundcube Webmail Setup

Create Database

  • Create the database and add the roundcube user.

mysqladmin -p create roundcube
mysql -p
mysql> GRANT ALL ON roundcube.* TO [email protected] IDENTIFIED BY 'password';

  • Initialize the database:

mysql -u roundcube -p roundcube

Basic Config

  • Configure database DSN in /var/www/roundcube/config/db.inc.php:
$rcmail_config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcube';
  • Configure 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';

Set Up Catch All Virtualhost

As we will be providing webmail for all domains that are created on the system we need to setup a catch all virtualhost that can display roundcube when ever a user accesses http://webmail.domainname. Edit /etc/httpd/conf/httpd.conf and append:

<VirtualHost *:80>
ServerName webmail.example.com
ServerAlias webmail.*
DocumentRoot /var/www/roundcube
<Directory /var/www/roundcube>
Options -Indexes IncludesNOEXEC FollowSymLinks
allow from all
</Directory>
</VirtualHost>

Firewall Setup

Introduction

This is a basic firewall it may not suit your needs, firewalling is an art so i recommend to read into it to improve on this basic one.

Basic Config

Add these rules in your configuration file /etc/sysconfig/iptables:

*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

Activate Config

service iptables restart

Virtual Hosting Howto With Virtualmin On CentOS 5.1 - Page 6

Configure Virtualmin

Introduction

Virtualmin is a powerful and flexible hosting control panel that integrates with webmin. We will be using it to provide the virtual hosting functions such as creation of domains, accounts and maintaining configurations on the system.

Start Services

You need to start up services that are required to be able to configure virtualmin. Start the following services:

service named start
service spamassassin start
service spamass-milter start
service clamav-milter start
service postfix start
service dovecot start
service imapproxy start
service httpd start

Initial Settings

MySQL

Webmin needs to be able to communicate with mysql since we have set a password for mysql we need to set that up in webmin, go to servers ? mysql and enter this information:

Configure Features

You need to enable the features and plugins that we want to use. On login this is the screen that you will see.

  • Enable the following features and save
    • Home directory
    • Administration user
    • Mail for domain
    • BIND DNS domain
    • Apache website
    • Webalizer reporting
    • Log file rotation
    • Mysql database
    • Webmin user

Configure Server Templates

Server template are used to customize the services and to create packages for different hosting account types.

Apache Template

You can make changes to the way apache virtual hosts are created by editing this template, The defaults however will do for purposes of this howto.

Domain Owner Template

This template is used to configure various server limits such as number of mailboxes,aliases,databases,virtual servers and other options like bandwidth limits, admin abilities. For this howto we will use the default values.

Home Directory Template

This template allows you to set a skel directory to hold setting for new users for this howto we will use the defaults.

Administration User

This template lets you set the quota for the virtual server and the admin user for this howto we will use the default quota 1GB.

Mail For Domain Template

This template sets various mail related options, we will modify the email message sent on server creation to have the content below:

The following virtual server has been set up successfully :
Domain name:             ${DOM}
Hosting server:          ${HOSTNAME}
${IF-VIRT}
Virtual IP address:      ${IP}
${ENDIF-VIRT}
Administration login:    ${USER}
Administration password: ${PASS}
${IF-WEBMIN}
Administration URL:      ${WEBMIN_PROTO}://www.${DOM}:${WEBMIN_PORT}/
${ENDIF-WEBMIN}
${IF-WEB}
Website:                 http://www.${DOM}/
${IF-WEBALIZER}
Webalizer log reporting: Enabled
${ELSE-WEBALIZER}
Webalizer log reporting: Disabled
${ENDIF-WEBALIZER}
${ENDIF-WEB}
${IF-MAIL}
Email domain:            ${DOM}
SMTP server:             mail.${DOM}
POP3 server:             mail.${DOM}
Webmail:                 webmail.${DOM}
${ENDIF-MAIL}
${IF-DNS}
DNS domain:              ${DOM}
Nameserver:              ${HOSTNAME}
${ENDIF-DNS}
${IF-MYSQL}
MySQL database:          ${DB}
MySQL login:             ${MYSQL_USER}
MySQL password:          ${PASS}
${ENDIF-MYSQL}
${IF-POSTGRES}
PostgreSQL database:     ${DB}
PostgreSQL login:        ${USER}
PostgreSQL password:     ${PASS}
${ENDIF-POSTGRES}

We will leave the other options as the defaults.

BIND DNS Domain Template

This template is used to customize the zones that will be created by virtualmin. The changes to be made are adding a spf record, add the following records to auto generated text box (replace ns1.home.topdog-software.com. with your slave server):

@     IN NS ns1.home.topdog-software.com. ;slave
admin IN A 192.168.1.6 ;virtualmin
webmail IN A 192.168.1.5 ;webmail

In the directives text box add the following with the IP address of your slave server such that the slave is allowed to do zone transfers.

allow-transfer { 192.168.1.2; };

MySQL Database Template

Contains options on creation of databases by virtualmin, for the howto we will use the defaults.

Webmin Login Template

Contains option on creation of new users by virtualmin, for the howto we will use the defaults.

Create Virtual Server

Finally we have a working virtual server system, lets create our first virtual server. Go to servers ? virtualmin virtual servers and click add new virtual server, owned by new user.

Fill in the require fields and click create.

Add a mail user to the domain. click on the domain name, then click edit mail and FTP users, then add user and fill in the information.

Testing

Postfix

Test SMTP

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

From:[email protected]
To:[email protected]
Subject:This is a test
Hi
This is a test
.
250 2.0.0 Ok:queued as 4ACCC7C5A6

telnet 192.168.1.5 25
Trying 192.168.1.5...
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
ehlo me
250-hosting1
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Test dkim

Send a mail to [email protected]

Test domainkeys

Send a mail to [email protected]

Dovecot

Test POP3

telnet 192.168.1.5 110
+OK Dovecot ready.
user andrew.example
+OK
pass password
+OK Logged in.
quit
+OK Logging out.

Test IMAP

telnet 192.168.1.5 143
* OK Dovecot ready.
01 login andrew.example password
01 OK User logged in
01 list "" "*"

* LIST (\HasNoChildren) "." "Trash"
* LIST (\HasNoChildren) "." "Drafts"
* LIST (\HasNoChildren) "." "Junk"
* LIST (\HasNoChildren) "." "Sent"

* LIST (\HasNoChildren) "." "INBOX"
01 OK List completed.
01 logout
* BYE LOGOUT received
01 OK Completed

BIND

dig example.com @127.0.0.1

Clamav-milter

We are using the test virus from www.eicar.org.

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
550 5.7.1 virus Eicar-Test-Signature detected by ClamAV - http://www.clamav.net
quit
221 2.0.0 Bye

Take a lot at your /var/log/maillog you should see something like this:

73BC87C4E4: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]:
5.7.1 virus Eicar-Test-Signature detected by ClamAV - http://www.clamav.net; 
from=<[email protected]> to=<[email protected]> proto=SMTP helo=<me>

Spamass-milter

We are using the test message from http://spamassassin.apache.org/gtube/.

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.
550 5.7.1 Blocked by SpamAssassin
quit
221 2.0.0 Bye

You will see this in your log files:

spamd: result: Y 1002 - AWL,GTUBE,MISSING_SUBJECT,TVD_SPACE_RATIO,UNPARSEABLE_RELAY scantime=0.5,size=723,user=root,uid=99,required_score=5.0,

Panels
  1. So installieren Sie einen FTP-Server unter CentOS 7 mit VSFTPD

  2. So richten Sie einen FTP-Server mit VSFTPD unter CentOS 7 ein

  3. So richten Sie einen FTP-Server mit VSFTPD unter CentOS 8 ein

  4. So installieren Sie AWStats mit einigen Plug-Ins auf einem Server mit ISPConfig

  5. So installieren Sie SpamAssassin auf einem virtuellen Server mit CentOS 6

Wie installiere ich den LiteSpeed-Webserver in WHM/cPanel mit Centos 7.x?

CentOS Web Panel – All-in-One kostenloses Webhosting Control Panel für CentOS/RHEL 6

Der perfekte Server – CentOS 6.1 x86_64 mit Apache2 [ISPConfig 3]

Der perfekte Server – CentOS 6.2 x86_64 mit nginx [ISPConfig 3]

Der perfekte Server – CentOS 6.2 x86_64 mit Apache2 [ISPConfig 3]

Der perfekte Server – CentOS 6.1 x86_64 mit nginx [ISPConfig 3]