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

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 2]

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 2]

Dieses Tutorial zeigt, wie Sie ein CentOS 5.7 einrichten Server (x86_64), der alle von ISPs und Webhostern benötigten Dienste anbietet:Apache-Webserver (SSL-fähig), Postfix-Mailserver mit SMTP-AUTH und TLS, BIND-DNS-Server, Proftpd-FTP-Server, MySQL-Server, Dovecot POP3/IMAP, Quota, Firewall usw. Dieses Tutorial wurde für die 64-Bit-Version von CentOS 5.7 geschrieben, sollte aber mit sehr geringen Änderungen auch für die 32-Bit-Version gelten. Am Ende sollten Sie ein System haben, das zuverlässig funktioniert, und wenn Sie möchten, können Sie das kostenlose Webhosting-Control-Panel ISPConfig 2 installieren (d. h. ISPConfig läuft darauf out of the box).

Ich werde die folgende Software verwenden:

  • Webserver:Apache 2.2 mit PHP 5.1.6
  • Datenbankserver:MySQL 5.0
  • Mailserver:Postfix
  • DNS-Server:BIND9 (Chroot)
  • FTP-Server:Proftpd
  • POP3/IMAP-Server:Dovecot
  • Webalizer für Website-Statistiken

Bitte beachten Sie, dass dieses Setup nicht für ISPConfig 3 funktioniert ! Es gilt nur für ISPConfig 2!

Ich möchte zunächst sagen, dass dies nicht die einzige Möglichkeit ist, ein solches System einzurichten. Es gibt viele Wege, dieses Ziel zu erreichen, aber ich gehe diesen Weg. Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

1 Voraussetzungen

Um ein solches System zu installieren, benötigen Sie Folgendes:

  • Laden Sie die zwei CentOS 5.7-DVDs oder die acht CentOS 5.7-CDs von einem Mirror neben Ihnen herunter (die Liste der Mirrors finden Sie hier:http://isoredirect.centos.org/centos/5/isos/x86_64/) .
  • eine schnelle Internetverbindung.

2 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem Gateway 192.168.0.1. Diese Einstellungen können für Sie abweichen, daher müssen Sie sie gegebenenfalls ersetzen.

3 Installieren Sie das Basissystem

Booten Sie von Ihrer ersten CentOS 5.7-CD (CD 1) oder der ersten CentOS 5.7-DVD. Drücken Sie am Boot-Prompt :

Das Testen des Installationsmediums kann lange dauern, daher überspringen wir diesen Test hier:

Der Begrüßungsbildschirm des CentOS-Installationsprogramms wird angezeigt. Klicken Sie auf Weiter:

Wählen Sie als nächstes Ihre Sprache:

Wählen Sie Ihr Tastaturlayout aus:

Ich installiere CentOS 5.7 auf einem neuen System, daher antworte ich mit Ja auf die Frage Möchten Sie dieses Laufwerk initialisieren und ALLE DATEN löschen?

Jetzt müssen wir ein Partitionierungsschema für unsere Installation auswählen. Der Einfachheit halber wähle ich Linux-Partitionen auf ausgewählten Laufwerken entfernen und Standardlayout erstellen. Dies führt zu einer kleinen /boot- und einer großen /-Partition sowie einer Swap-Partition. Natürlich steht es Ihnen frei, Ihre Festplatte nach Belieben zu partitionieren. Dann drücke ich Weiter:

Beantworten Sie die folgende Frage (Sind Sie sicher, dass Sie dies tun möchten?) mit Ja:

Weiter zu den Netzwerkeinstellungen. Die Standardeinstellung hier ist, die Netzwerkschnittstellen mit DHCP zu konfigurieren, aber wir installieren einen Server, also sind statische IP-Adressen keine schlechte Idee... Klicken Sie oben rechts auf die Schaltfläche Bearbeiten.

Deaktivieren Sie in dem sich öffnenden Fenster Dynamische IP-Konfiguration (DHCP) und IPv6-Unterstützung aktivieren und geben Sie Ihrer Netzwerkkarte eine statische IP-Adresse (in diesem Tutorial verwende ich die IP-Adresse 192.168.0.100 zu Demonstrationszwecken) und eine geeignete Netzmaske (z. 255.255.255.0; wenn Sie sich über die richtigen Werte nicht sicher sind, hilft Ihnen vielleicht http://www.subnetmask.info):

Stellen Sie den Hostnamen manuell ein, z. server1.example.com und geben Sie ein Gateway (z. B. 192.168.0.1) und bis zu zwei DNS-Server (z. B. 8.8.8.8 und 145.253.2.75) ein:

Wählen Sie Ihre Zeitzone:

Geben Sie root ein Passwort:

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 2] – Seite 2

4 /etc/hosts anpassen

Als nächstes bearbeiten wir /etc/hosts. Lass es so aussehen:

vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
192.168.0.100           server1.example.com server1
::1             localhost6.localdomain6 localhost6

5 Zusätzliche IP-Adressen konfigurieren

(Dieser Abschnitt ist völlig optional. Er zeigt nur, wie Sie Ihrer Netzwerkschnittstelle eth0 zusätzliche IP-Adressen hinzufügen, wenn Sie mehr als eine IP-Adresse benötigen. Wenn Sie mit einer IP-Adresse zufrieden sind, können Sie diesen Abschnitt überspringen.)

Nehmen wir an, unsere Netzwerkschnittstelle ist eth0. Dann gibt es eine Datei /etc/sysconfig/network-scripts/ifcfg-eth0, die die Einstellungen für eth0 enthält. Wir können dies als Beispiel für unsere neue virtuelle Netzwerkschnittstelle eth0:0:

verwenden
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

Nun wollen wir die IP-Adresse 192.168.0.101 auf der virtuellen Schnittstelle eth0:0 verwenden. Dazu öffnen wir die Datei /etc/sysconfig/network-scripts/ifcfg-eth0:0 und modifizieren sie wie folgt (die HWADDR-Zeile können wir weglassen, da es sich um dieselbe physikalische Netzwerkkarte handelt):

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.101
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

Danach müssen wir das Netzwerk neu starten:

/etc/init.d/network restart

Möglicherweise möchten Sie /etc/hosts auch anpassen, nachdem Sie neue IP-Adressen hinzugefügt haben, obwohl dies nicht erforderlich ist.

Führen Sie nun

aus
ifconfig

Sie sollten nun Ihre neue IP-Adresse in der Ausgabe sehen:

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:89:71:35
          inet addr:192.168.0.100  Bcast:192.168.0.255  Maske:255.255. 255,0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX Pakete:307 Fehler:0 Ausgefallen:0 Überschreitungen:0 Frame:0
          TX Pakete:251 Fehler:0 Überschreitung:0 Überschreitung :0 Carrier:0
          Kollisionen:0 txqueuelen:1000
          RX Bytes:29217 (28,5 KiB)  TX Bytes:45961 (44,8 KiB)

eth0:0    Link encap:Ethernet HWaddr 00:0C:29:89:71:35
          inet addr:192.168.0.101  Bcast:192.168.0.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  M T:15
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX Pakete:0 Dropped Fehler :0  :0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 txqueuelen:0
          RX Bytes:560 (560,0 b)  TX Bytes:560 (560,0 b)

[[email protected] ~]#

6 Deaktivieren Sie die Firewall und SELinux

(Sie können dieses Kapitel überspringen, wenn Sie die Firewall und SELinux bereits am Ende der grundlegenden Systeminstallation (im Setup Agent) deaktiviert haben.)

Ich möchte ISPConfig am Ende dieses Tutorials installieren, das mit einer eigenen Firewall geliefert wird. Deshalb deaktiviere ich jetzt die standardmäßige CentOS-Firewall. Natürlich steht es Ihnen frei, sie eingeschaltet zu lassen und nach Ihren Bedürfnissen zu konfigurieren (aber dann sollten Sie später keine andere Firewall verwenden, da diese höchstwahrscheinlich die CentOS-Firewall stört).

SELinux ist eine Sicherheitserweiterung von CentOS, die erweiterte Sicherheit bieten soll. Meiner Meinung nach brauchen Sie es nicht, um ein sicheres System zu konfigurieren, und es verursacht normalerweise mehr Probleme als Vorteile (denken Sie daran, nachdem Sie eine Woche lang Fehler behoben haben, weil ein Dienst nicht wie erwartet funktioniert hat, und dann Sie feststellen, dass alles in Ordnung war, nur SELinux verursachte das Problem). Daher deaktiviere ich es auch (dies ist ein Muss, wenn Sie später ISPConfig installieren möchten).

Ausführen

system-config-securitylevel

Setzen Sie sowohl Security Level als auch SELinux auf Disabled und klicken Sie auf OK:

Danach müssen wir das System neu starten:

reboot

7 Einige Software installieren

Zuerst importieren wir die GPG-Schlüssel für Softwarepakete:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Dann aktualisieren wir unsere bestehenden Pakete auf dem System:

yum update

Jetzt installieren wir einige Softwarepakete, die später benötigt werden:

yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils gcc gcc-c++

8 Quote

(Falls Sie ein anderes Partitionierungsschema gewählt haben als ich, müssen Sie dieses Kapitel anpassen, damit Quota für die Partitionen gilt, wo Sie es brauchen.)

Um Quota zu installieren, führen wir diesen Befehl aus:

yum install quota

Bearbeiten Sie /etc/fstab und fügen Sie usrquota,grpquota zur Partition / hinzu (/dev/VolGroup00/LogVol00):

vi /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

Dann ausführen

touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

zum Aktivieren des Kontingents.

9 Installieren Sie einen Chrooted-DNS-Server (BIND9)

Um ein chrooted BIND9 zu installieren, gehen wir wie folgt vor:

yum install bind-chroot

Dann tun Sie dies:

chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/ named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/ var/named/
ln -s ../../ chroot
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.local /var/named/ chroot/var/named/named.local
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
touch /var/named/chroot/etc/named.conf
chkconfig --levels 235 named on
/etc/init.d/named start

BIND wird in einem Chroot-Gefängnis unter /var/named/chroot/var/named/ ausgeführt. Ich werde ISPConfig verwenden, um BIND (Zonen usw.) zu konfigurieren.

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 2] – Seite 4

10 MySQL (5.0)

Um MySQL zu installieren, gehen wir wie folgt vor:

yum install mysql mysql-devel mysql-server

Dann erstellen wir die Systemstart-Links für MySQL (damit MySQL automatisch startet, wenn das System hochfährt) und starten den MySQL-Server:

chkconfig --levels 235 mysqld beim
/etc/init.d/mysqld start

Überprüfen Sie nun, ob das Netzwerk aktiviert ist. Führen Sie

aus
netstat -tap | grep mysql

Es sollte eine Zeile wie diese anzeigen:

[[email protected] ~]# netstat -tap | grep mysql
tcp        0      0 *:mysql                    *:*                        LISTEN      3486/mysqld
[[email protected] ~]#

Wenn dies nicht der Fall ist, bearbeiten Sie /etc/my.cnf und kommentieren Sie die Option skip-networking aus:

vi /etc/my.cnf
[...]
#skip-networking
[...]

und starten Sie Ihren MySQL-Server neu:

/etc/init.d/mysqld restart 

Legen Sie Passwörter für das MySQL-Root-Konto fest:

mysql_secure_installation

[[email protected] ~]# mysql_secure_installation




HINWEIS:DAS AUSFÜHREN ALLER TEILE DIESES SKRIPTS WIRD FÜR ALLE MySQL-
      SERVER IN DER PRODUKTION EMPFOHLEN BENUTZEN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG DURCH!


Um sich bei MySQL anzumelden, um es zu sichern, benötigen wir das aktuelle
Passwort für den Root-Benutzer. Wenn Sie gerade MySQL installiert und
das Root-Passwort noch nicht festgelegt haben, ist das Passwort leer,
also sollten Sie hier einfach die Eingabetaste drücken.

Enter Aktuelles Passwort für Root (Eingabe für Keine):
OK, erfolgreich verwendetes Passwort, weiter ...

Das Festlegen des Root-Passworts stellt sicher, dass sich niemand bei dem MySQL-Root anmelden kann.
Benutzer ohne die richtige Autorisierung.

Root-Passwort festlegen? [Y/n] <-- ENTER
Neues Passwort: <-- yourrootsqlpassword
Neues Passwort erneut eingeben: <-- yourrootsqlpassword
Passwort erfolgreich aktualisiert!
Berechtigungstabellen werden neu geladen. .
 ... Erfolg!


Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer, der ermöglicht, dass sich jeder
bei MySQL anmelden kann, ohne einen Benutzeraccount haben zu müssen für
sie erstellt. Dies ist nur zum Testen sollte und damit die Installation
etwas flüssiger läuft. Sie sollten sie entfernen, bevor Sie in eine
Produktionsumgebung wechseln.

Anonyme Nutzer entfernen? [Y/n] <-- ENTER
 ... Erfolgreich!

Normalerweise sollte root nur erlaubt werden, sich von 'localhost' aus zu verbinden. Dies
stellt sicher, dass niemand das Root-Passwort aus dem Netzwerk erraten kann.

Root-Anmeldung aus der Ferne nicht zulassen? [Y/n] <-- EINGABE
 ... Erfolg!

Standardmäßig wird MySQL mit einer Datenbank namens "test" geliefert, auf die jeder
zugreifen kann. Dies ist auch nur zum Testen vorgesehen und sollte entfernt werden
bevor in eine Produktionsumgebung umgezogen wird.

Testdatenbank und Zugriff darauf entfernen? [Y/n] <-- ENTER
 - Testdatenbank wird gelöscht...
 ... Erfolg!
 - Berechtigungen für Testdatenbank entfernen...
 ... Erfolg !

Durch das Neuladen der Berechtigungstabellen wird sichergestellt, dass alle bisher vorgenommenen Änderungen
sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? [Y/n] <-- EINGABE
 ... Erfolgreich!

Aufräumen ...



Alle fertig! Wenn Sie alle oben genannten Schritte ausgeführt haben, sollte Ihre MySQL
Installation jetzt sicher sein.

Vielen Dank, dass Sie MySQL verwenden!


[example @unixlinux.online ~]#

11 Postfix mit SMTP-AUTH und TLS

Jetzt installieren wir Postfix und Dovecot (Dovecot wird unser POP3/IMAP-Server):

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot

Als nächstes konfigurieren wir SMTP-AUTH und TLS:

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable =yes'
postconf -e 'smtpd_sasl_security_options =noanonymous'
postconf -e 'broken_sasl_auth_clients =yes'
postconf -e 'smtpd_sasl_authenticated_header =yes'
postconf -e 'smtpd_recipient_restrictions =permission_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces =all'
postconf -e 'mynetworks =127.0.0.0/8'

Wir müssen /usr/lib64/sasl2/smtpd.conf bearbeiten, damit Postfix PLAIN- und LOGIN-Logins zulässt. Auf einem 32Bit Centos 5.7 müssen Sie stattdessen die Datei /usr/lib/sasl2/smtpd.conf bearbeiten. Es sollte so aussehen:

vi /usr/lib64/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login

Anschließend erstellen wir die Zertifikate für TLS:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Als nächstes konfigurieren wir Postfix für TLS:

postconf -e 'smtpd_tls_auth_only =no'
postconf -e 'smtp_use_tls =yes'
postconf -e 'smtpd_use_tls =yes'
postconf -e 'smtp_tls_note_starttls_offer =yes'
postconf - e 'smtpd_tls_key_file =/etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile =/etc/postfix /ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel =1'
postconf -e 'smtpd_tls_received_header =yes'
postconf -e 'smtpd_tls_session_cache_timeout =3600s'
postconf -e 'tls_random_source =dev:/dev/urandom'

Dann setzen wir den Hostnamen in unserer Postfix-Installation (stellen Sie sicher, dass Sie server1.example.com durch Ihren eigenen Hostnamen ersetzen):

postconf -e 'myhostname = server1.example.com'

Nach diesen Konfigurationsschritten sollten Sie nun eine /etc/postfix/main.cf haben, die so aussieht (ich habe alle Kommentare daraus entfernt):

cat /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.3/samples
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
mynetworks = 127.0.0.0/8
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = server1.example.com

Standardmäßig stellt der Dovecot-Daemon von CentOS nur IMAP- und IMAPs-Dienste bereit. Da wir auch POP3 und POP3s wollen, müssen wir Dovecot dafür konfigurieren. Wir editieren /etc/dovecot.conf und aktivieren die Zeile protocols =imap imaps pop3 pop3s:

vi /etc/dovecot.conf
[...]
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
protocols = imap imaps pop3 pop3s
[...]

Starten Sie nun Postfix, saslauthd und Dovecot:

chkconfig --levels 235 sendmail aus
chkconfig --levels 235 postfix ein
chkconfig --levels 235 saslauthd ein
chkconfig --levels 235 dovecot ein
/etc/init.d /sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/dovecot start

Um zu sehen, ob SMTP-AUTH und TLS jetzt richtig funktionieren, führen Sie den folgenden Befehl aus:

telnet localhost 25 

Nachdem Sie die Verbindung zu Ihrem Postfix-Mailserver hergestellt haben, geben Sie

ein
ehlo localhost 

Wenn Sie die Linien

sehen
250-STARTTLS 

und

250-AUTH LOGIN PLAIN 

alles ist gut.

[[email protected] ssl]# telnet localhost 25
Versuche 127.0.0.1...
Verbunden mit localhost.localdomain (127.0.0.1).
Escape-Zeichen ist '^]'.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250- VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Verbindung von fremdem Host geschlossen.
[[email protected] ssl]#

Geben Sie

ein
quit 

um zur Shell des Systems zurückzukehren.

11.1 Maildir

Dovecot verwendet das Maildir-Format (nicht mbox). Wenn Sie also ISPConfig auf dem Server installieren, stellen Sie bitte sicher, dass Sie Maildir unter Verwaltung -> Server -> Einstellungen -> E-Mail aktivieren. ISPConfig nimmt dann die notwendige Konfiguration vor.

Wenn Sie ISPConfig nicht installieren möchten, müssen Sie Postfix so konfigurieren, dass E-Mails an das Maildir eines Benutzers gesendet werden (Sie können dies auch tun, wenn Sie ISPConfig verwenden - es schadet nicht;-)):

postconf -e 'home_mailbox =Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 2] – Seite 5

12 Apache2 mit PHP, Ruby, Python, WebDAV

Jetzt installieren wir Apache mit PHP (das ist PHP 5.1.6):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Bearbeiten Sie dann /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

und ändern Sie DirectoryIndex in

[...]
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl
[...]

Konfigurieren Sie nun Ihr System so, dass Apache beim Booten gestartet wird:

chkconfig --levels 235 httpd on

Apache starten:

/etc/init.d/httpd start

12.1 PHP global deaktivieren

(Wenn Sie ISPConfig nicht auf diesem Server installieren möchten, überspringen Sie bitte diesen Abschnitt!)

In ISPConfig konfigurieren Sie PHP pro Website, d. h. Sie können angeben, welche Website PHP-Skripte ausführen kann und welche nicht. Dies kann nur funktionieren, wenn PHP global deaktiviert ist, da sonst alle Websites PHP-Skripte ausführen könnten, egal was Sie in ISPConfig angeben.

Um PHP global zu deaktivieren, entfernen Sie /etc/httpd/conf.d/php.conf und kommentieren Sie die Zeilen AddHandler und AddType aus:

vi /etc/httpd/conf.d/php.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  # Use of the "ZTS" build with worker is experimental, and no shared
  # modules are supported.
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
#AddHandler php5-script .php
#AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps

Danach starten wir Apache neu:

/etc/init.d/httpd restart

12.2 Installieren von mod_ruby

Für CentOS 5.7 ist kein mod_ruby-Paket verfügbar, also müssen wir es selbst kompilieren. Zuerst installieren wir einige Voraussetzungen:

yum install httpd-devel ruby ruby-devel

Als nächstes laden wir mod_ruby herunter und installieren es wie folgt:

cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3 .0/
./configure.rb --with-apr-includes=/usr/include/apr-1
make
make install

Schließlich müssen wir das Modul mod_ruby zur Apache-Konfiguration hinzufügen, also erstellen wir die Datei /etc/httpd/conf.d/ruby.conf...

vi /etc/httpd/conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so

... und Apache neu starten:

/etc/init.d/httpd restart

12.3 Installieren von mod_python

Um mod_python zu installieren, führen wir einfach ...

aus
yum install mod_python

... und danach Apache neu starten:

/etc/init.d/httpd restart

12.4 WebDAV

WebDAV sollte bereits aktiviert sein, aber um dies zu überprüfen, öffnen Sie /etc/httpd/conf/httpd.conf und stellen Sie sicher, dass die folgenden drei Module aktiv sind:

vi /etc/httpd/conf/httpd.conf
[...]
LoadModule auth_digest_module modules/mod_auth_digest.so
[...]
LoadModule dav_module modules/mod_dav.so
[...]
LoadModule dav_fs_module modules/mod_dav_fs.so
[...]

Wenn Sie /etc/httpd/conf/httpd.conf ändern müssen, vergessen Sie nicht, Apache danach neu zu starten:

/etc/init.d/httpd restart

13 ProFTPd

ISPConfig hat eine bessere Unterstützung für proftpd als vsftpd, also entfernen wir vsftpd:

yum remove vsftpd

Da CentOS kein proftpd-Paket hat, müssen wir Proftpd manuell kompilieren:

cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xvfz proftpd-1.3.3e.tar .gz
cd proftpd-1.3.3e/
./configure --sysconfdir=/etc
make
make install
cd ..
rm - fr proftpd-1.3.3e*

Die proftpd-Binärdatei wird in /usr/local/sbin installiert, aber wir brauchen sie in /usr/sbin, also erstellen wir einen Symlink:

ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd

Erstellen Sie nun das Init-Skript /etc/init.d/proftpd:

vi /etc/init.d/proftpd
#!/bin/sh
# $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $
#
# proftpd        This shell script takes care of starting and stopping
#                proftpd.
#
# chkconfig: - 80 30
# description: ProFTPD is an enhanced FTP server with a focus towards \
#              simplicity, security, and ease of configuration. \
#              It features a very Apache-like configuration syntax, \
#              and a highly customizable server infrastructure, \
#              including support for multiple 'virtual' FTP servers, \
#              anonymous FTP, and permission-based directory visibility.
# processname: proftpd
# config: /etc/proftp.conf
# pidfile: /var/run/proftpd.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /usr/sbin/proftpd ] || exit 0

RETVAL=0

prog="proftpd"

start() {
        echo -n $"Starting $prog: "
        daemon proftpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
}

stop() {
        echo -n $"Shutting down $prog: "
        killproc proftpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status proftpd
        RETVAL=$?
        ;;
  restart)
        stop
        start
        ;;
  condrestart)
        if [ -f /var/lock/subsys/proftpd ]; then
          stop
          start
        fi
        ;;
  reload)
        echo -n $"Re-reading $prog configuration: "
        killproc proftpd -HUP
        RETVAL=$?
        echo
        ;;
  *)
        echo "Usage: $prog {start|stop|restart|reload|condrestart|status}"
        exit 1
esac

exit $RETVAL

Dann machen wir das Init-Skript ausführbar:

chmod 755 /etc/init.d/proftpd

Als nächstes öffnen wir /etc/proftpd.conf und ändern die Gruppe auf niemand:

vi /etc/proftpd.conf
[...]
Group                           nobody
[...]

Aus Sicherheitsgründen können Sie auch die folgenden Zeilen zu /etc/proftpd.conf hinzufügen (danke an Reinaldo Carvalho; weitere Informationen finden Sie hier:http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf
[...]
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."
[...]

Um sicherzustellen, dass FTP-Benutzer den Befehl chmod verwenden können, kommentieren Sie den Abschnitt aus:

[...]
# Bar use of SITE CHMOD by default
#<Limit SITE_CHMOD>
#  DenyAll
#</Limit>
[...]

Jetzt können wir die Systemstartlinks für Proftpd erstellen:

chkconfig --levels 235 proftpd on

Und schließlich starten wir Proftpd:

/etc/init.d/proftpd start

14 Webalizer

Um Webalizer zu installieren, führen Sie einfach

aus
yum install webalizer

15 Synchronisieren Sie die Systemuhr

Wenn Sie die Systemuhr mit einem NTP-Server synchronisieren möchten, gehen Sie wie folgt vor:

yum install ntp

chkconfig --levels 235 ntpd on
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start

16 Einige Perl-Module installieren

ISPConfig wird mit SpamAssassin geliefert, das einige Perl-Module benötigt, um zu funktionieren. Wir installieren die erforderlichen Perl-Module mit einem einzigen Befehl:

yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar perl-NetAddr-IP

17 Das Ende

Die Konfiguration des Servers ist nun abgeschlossen, und wenn Sie möchten, können Sie jetzt ISPConfig 2 darauf installieren.

17.1 Eine Anmerkung zu SuExec

Wenn Sie CGI-Skripte unter suExec ausführen möchten, sollten Sie /var/www als Home-Verzeichnis für Websites angeben, die von ISPConfig erstellt wurden, da suExec von CentOS mit /var/www als Doc_Root kompiliert wird. Führen Sie

aus
/usr/sbin/suexec -V

und die Ausgabe sollte so aussehen:

[[email protected] ~]# /usr/sbin/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache "
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 - D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"
[[email protected] ~]#

Wenn Sie also suExec mit ISPconfig verwenden möchten, ändern Sie nicht das Standard-Web-Root (das /var/www ist), wenn Sie den Expertenmodus während der ISPConfig-Installation verwenden (im Standardmodus können Sie das Web-Root sowieso nicht ändern, also müssen Sie suExec auf jeden Fall verwenden können).

  • CentOS:http://www.centos.org/
  • ISPConfig 2:http://www.ispconfig.org/ispconfig-2/

Panels
  1. Der perfekte Server – Fedora 15 x86_64 [ISPConfig 2]

  2. Der perfekte Server – Fedora 15 x86_64 [ISPConfig 3]

  3. Der perfekte Server - Ubuntu 11.04 [ISPConfig 3]

  4. Der perfekte Server – CentOS 5.6 x86_64 [ISPConfig 2]

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

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

Der perfekte Server – CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3)

Der perfekte Server – CentOS 6.3 x86_64 (nginx, Courier, ISPConfig 3)

Der perfekte Server – CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

Der perfekte Server – CentOS 6.4 x86_64 (nginx, Dovecot, ISPConfig 3)

Der perfekte Server – CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)