Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3]
Dieses Tutorial zeigt, wie Sie einen CentOS 5.7 x86_64-Server für die Installation von ISPConfig 3 vorbereiten und ISPConfig 3 installieren. ISPConfig 3 ist ein Webhosting-Kontrollfeld, mit dem Sie die folgenden Dienste über einen Webbrowser konfigurieren können:Apache-Webserver, Postfix Mailserver, MySQL, BIND-Nameserver, PureFTPd, SpamAssassin, ClamAV und viele mehr.
Bitte beachten Sie, dass dieses Setup nicht für ISPConfig 2 funktioniert ! Es gilt nur für ISPConfig 3!
Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!
Um zu lernen, wie man ISPConfig 3 verwendet, empfehle ich dringend, das ISPConfig 3-Handbuch herunterzuladen.
Auf etwa 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Clients), erklärt, wie ISPConfig 3 installiert und aktualisiert wird, enthält eine Referenz für alle Formulare und Formularfelder in ISPConfig zusammen mit Beispielen für gültige Eingaben und bietet Tutorials für die häufigsten Aufgaben in ISPConfig 3. Es beschreibt auch, wie Sie Ihren Server sicherer machen können, und enthält am Ende einen Abschnitt zur Fehlerbehebung.
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 3] – 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:
verwendencp /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
ausifconfig
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*
Aktivieren Sie die Repositorys contrib und centosplus:
vi /etc/yum.repos.d/CentOS-Base.repo
Bearbeiten Sie die folgenden Zeilen:
[base] [...] exclude=postfix [...] [updates] [...] exclude=postfix [...] [centosplus] [...] enabled=1 includepkgs=postfix [...] [contrib] [...] enabled=1 [...] |
Dann aktualisieren wir unsere bestehenden Pakete auf dem System:
yum update
Jetzt installieren wir einige Softwarepakete, die später benötigt werden:
yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
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 Apache, MySQL, phpMyAdmin
Zuerst aktivieren wir das RPMforge-Repository auf unserem CentOS-System, da viele der Pakete, die wir im Laufe dieses Tutorials installieren werden, nicht in den offiziellen CentOS 5.7-Repositorys verfügbar sind:
wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt
cd /tmp
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release- 0.5.2-2.el5.rf.x86_64.rpm
(Wenn der obige Link nicht mehr funktioniert, finden Sie die aktuelle Version von rpmforge-release hier:http://packages.sw.be/rpmforge-release/)
Danach können wir die benötigten Pakete mit einem einzigen Befehl installieren:
yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin
Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3] – Seite 4
10 Installieren Sie Dovecot
Es gibt ein Dovecot-Paket im CentOS-Repository, aber leider unterstützt es MySQL nicht. Daher müssen wir das vorhandene Dovecot entfernen und ein anderes Dovecot-Paket (von ATrpms) installieren, das mit MySQL-Unterstützung geliefert wird.
yum remove dovecot
Erstellen Sie eine neue Datei /etc/yum.repos.d/atrpms.repo...
vi /etc/yum.repos.d/atrpms.repo
... und fügen Sie folgende Zeilen in die Datei ein:
[atrpms] name=Red Hat Enterprise Linux 5 - $basearch - ATrpms baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/stable failovermethod=priority exclude=dovecot-2* includepkgs=dovecot dovecot-sieve # # requires stable # [atrpms-testing] name=Red Hat Enterprise Linux 5 - $basearch - ATrpms testing baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/testing failovermethod=priority enabled=1 exclude=dovecot-2* includepkgs=dovecot dovecot-sieve # # requires stable and testing # [atrpms-bleeding] name=Red Hat Enterprise Linux 5 - $basearch - ATrpms bleeding baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/bleeding failovermethod=priority enabled=0 |
Importieren Sie dann den gpg-Schlüssel des atrpm-Repositorys ...
wget http://ATrpms.net/RPM-GPG-KEY.atrpms
rpm --import RPM-GPG-KEY.atrpms
...und installiere Dovecot:
yum install dovecot dovecot-sieve
Führen Sie auf einem 64-Bit-System auch Folgendes aus (nicht auf einem 32-Bit-System!):
ln -s /usr/lib64/dovecot/ /usr/lib/dovecot
Jetzt erstellen wir die Systemstartlinks für Dovecot:
chkconfig --levels 235 dovecot on
/etc/init.d/dovecot start
Wenn Dovecot mit folgendem Fehler nicht startet:
Fatal: listen(::, 143) failed: Address already in use
... öffnen Sie /etc/dovecot.conf...
vi /etc/dovecot.conf
... und fügen Sie die Zeile listen =*:
hinzu[...] #listen = *, [::] listen = * [...] |
Versuchen Sie dann Dovecot erneut zu starten:
/etc/init.d/dovecot start
11 Installieren Sie Postfix mit MySQL-Unterstützung
Das "normale" Postfix-Paket aus dem CentOS-Repository enthält kein MySQL, das Postfix-Paket aus dem CentOS Plus-Repository jedoch. Deshalb entfernen wir Postfix...
yum remove postfix
... und erneut installieren, diesmal aus dem CentOS Plus-Repository:
yum install postfix
Schalten Sie dann Sendmail aus und starten Sie Postfix und MySQL:
chkconfig --levels 235 mysqld beim
/etc/init.d/mysqld start
chkconfig --levels 235 sendmail aus
chkconfig --levels 235 postfix ein
/etc/init.d/sendmail stop
/etc/init.d/postfix start
12 Installieren Sie Getmail
Getmail kann wie folgt installiert werden:
yum install getmail
13 Legen Sie MySQL-Passwörter fest und konfigurieren Sie phpMyAdmin
Legen Sie Passwörter für das MySQL-Root-Konto fest:
mysql_secure_installation
[[email protected] tmp]# 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 tmp]#
Jetzt konfigurieren wir phpMyAdmin. Wir ändern die Apache-Konfiguration so, dass phpMyAdmin Verbindungen nicht nur von localhost zulässt (durch Auskommentieren der Zeilengruppe
vi /etc/httpd/conf.d/phpmyadmin.conf
# # Web application to manage MySQL # #<Directory "/usr/share/phpmyadmin"> # Order Deny,Allow # Deny from all # Allow from 127.0.0.1 #</Directory> Alias /phpmyadmin /usr/share/phpmyadmin Alias /phpMyAdmin /usr/share/phpmyadmin Alias /mysqladmin /usr/share/phpmyadmin |
Als nächstes ändern wir die Authentifizierung in phpMyAdmin von cookie auf http:
vi /usr/share/phpmyadmin/config.inc.php
[...] /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'http'; [...] |
Dann erstellen wir die Systemstartlinks für Apache und starten es:
chkconfig --levels 235 httpd on
/etc/init.d/httpd start
Jetzt können Sie Ihren Browser auf http://server1.example.com/phpmyadmin/ oder http://192.168.0.100/phpmyadmin/ leiten und sich mit dem Benutzernamen root und Ihrem neuen root-MySQL-Passwort anmelden.
14 Installieren Sie Amavisd-new, SpamAssassin und ClamAV
Um amavisd-new, spamassassin und clamav zu installieren, führen Sie den folgenden Befehl aus:
yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql
Öffnen Sie /etc/sysconfig/amavisd...
vi /etc/sysconfig/amavisd
... und kommentieren Sie die Zeile CONFIG_FILE="/etc/amavisd.conf":
aus### Uncomment this if you want to use amavis with sendmail milter interface. ### See README.milter for details. # #MILTER_SOCKET="local:/var/amavis/amavis-milter.sock" #MILTER_SOCKET="[email protected]" ### These are other defaults. #AMAVIS_ACCOUNT="amavis" CONFIG_FILE="/etc/amavisd.conf" #MILTER_FLAGS="" |
Dann starten wir freshclam, amavisd und clamd...
sa-update
chkconfig --levels 235 amavisd on
chkconfig --levels 235 clamd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd start
... und erstellen Sie einige notwendige Verzeichnisse:
mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
chown amavis /var/run/amavisd /var/spool/amavisd /var/ spool/amavisd/tmp /var/spool/amavisd/db
ln -s /var/run/clamav/clamd.sock /var/spool/amavisd/clamd.sock
Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3] – Seite 5
15 Installation von Apache2 mit mod_php, mod_fcgi/PHP5 und suPHP
ISPConfig 3 ermöglicht Ihnen die Verwendung von mod_php, mod_fcgi/PHP5, cgi/PHP5 und suPHP pro Website.
mod_fcgid ist in den offiziellen CentOS-Repositorys nicht verfügbar, aber es gibt ein Paket für CentOS 5.x im Test-Repository centos.karan.org. Wir aktivieren das Repository wie folgt:
cd /etc/yum.repos.d/
wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
Als nächstes öffnen wir /etc/yum.repos.d/kbsingh-CentOS-Extras.repo...
vi /etc/yum.repos.d/kbsingh-CentOS-Extras.repo
... und gpgcheck im Abschnitt [kbs-CentOS-Testing] auf 0 und enabled auf 1 setzen:
[...] # pkgs in the -Testing repo are not gpg signed [kbs-CentOS-Testing] name=CentOS.Karan.Org-EL$releasever - Testing gpgcheck=0 gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt enabled=1 baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/ |
Danach können wir Apache2 mit mod_php5, mod_fcgid und PHP5 installieren:
yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-mbstring php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel
Als nächstes öffnen wir /etc/php.ini...
vi /etc/php.ini
... und ändern Sie die Fehlerberichterstattung (so dass keine Hinweise mehr angezeigt werden) und fügen Sie cgi.fix_pathinfo =1 am Ende der Datei hinzu:
[...] ;error_reporting = E_ALL error_reporting = E_ALL & ~E_NOTICE [...] cgi.fix_pathinfo = 1 |
Als nächstes installieren wir suPHP:
cd /tmp
wget http://suphp.org/download/suphp-0.7.1.tar.gz
tar xvfz suphp-0.7.1.tar.gz
cd suphp-0.7 .1/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=owner --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable- SUPHP_USE_USERGROUP=yes
make
make install
Dann fügen wir das suPHP-Modul zu unserer Apache-Konfiguration hinzu...
vi /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so |
... und erstellen Sie die Datei /etc/suphp.conf wie folgt:
vi /etc/suphp.conf
[global] ;Path to logfile logfile=/var/log/httpd/suphp.log ;Loglevel loglevel=info ;User Apache is running as webserver_user=apache ;Path all scripts have to be in docroot=/ ;Path to chroot() to before executing script ;chroot=/mychroot ; Security options allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;Check wheter script is within DOCUMENT_ROOT check_vhost_docroot=true ;Send minor error messages to browser errors_to_browser=false ;PATH environment variable env_path=/bin:/usr/bin ;Umask to set, specify in octal notation umask=0077 ; Minimum UID min_uid=100 ; Minimum GID min_gid=100 [handlers] ;Handler for php-scripts x-httpd-suphp="php:/usr/bin/php-cgi" ;Handler for CGI-scripts x-suphp-cgi="execute:!self" |
Abschließend starten wir Apache neu:
/etc/init.d/httpd restart
15.1 Rubin
Ab Version 3.0.3 hat ISPConfig 3 eingebaute Unterstützung für Ruby. Anstatt CGI/FastCGI zu verwenden, hängt ISPConfig davon ab, dass mod_ruby im Apache des Servers verfügbar ist.
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
15.2 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
16 Installieren Sie PureFTPd
PureFTPd kann mit dem folgenden Befehl installiert werden:
yum install pure-ftpd
Erstellen Sie dann die Systemstartlinks und starten Sie PureFTPd:
chkconfig --levels 235 pure-ftpd on
/etc/init.d/pure-ftpd start
Jetzt konfigurieren wir PureFTPd so, dass FTP- und TLS-Sitzungen zugelassen werden. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und alle Daten im Klartext übertragen werden. Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP viel sicherer wird.
OpenSSL wird von TLS benötigt; Um OpenSSL zu installieren, führen wir einfach Folgendes aus:
yum install openssl
Öffnen Sie /etc/pure-ftpd/pure-ftpd.conf...
vi /etc/pure-ftpd/pure-ftpd.conf
Wenn Sie FTP- und TLS-Sitzungen zulassen möchten, setzen Sie TLS auf 1:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 1 [...] |
Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, also erstelle ich zuerst dieses Verzeichnis:
mkdir -p /etc/ssl/private/
Anschließend können wir das SSL-Zertifikat wie folgt generieren:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Ländername (2-Buchstaben-Code) [GB]:<-- Geben Sie Ihren Ländernamen ein (z. B. "DE").
Staats- oder Provinzname (vollständiger Name) [Berkshire]:<-- Geben Sie Ihren Bundesstaat oder Ihre Provinz ein Name.
Name des Ortes (z. B. Stadt) [Newbury]:<-- Geben Sie Ihre Stadt ein.
Name der Organisation (z. B. Firma) [My Company Ltd]:<-- Geben Sie den Namen Ihrer Organisation ein (z. B. , der Name Ihres Unternehmens).
Name der Organisationseinheit (z. B. Abschnitt) []:<-- Geben Sie den Namen Ihrer Organisationseinheit ein (z. B. "IT-Abteilung").
Allgemeiner Name (z. B. Ihr Name oder den Hostnamen Ihres Servers) []:<-- Geben Sie den vollständig qualifizierten Domänennamen des Systems ein (z. B. "server1.example.com").
E-Mail-Adresse []:<-- Geben Sie Ihre E-Mail-Adresse ein.
Ändern Sie die Berechtigungen des SSL-Zertifikats:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Starten Sie abschließend PureFTPd neu:
/etc/init.d/pure-ftpd restart
Das ist es. Sie können jetzt versuchen, sich mit Ihrem FTP-Client zu verbinden; Sie sollten Ihren FTP-Client jedoch für die Verwendung von TLS konfigurieren.
17 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
touch /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.local
vi /var/named/chroot/etc/named.conf
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named/chroot/var/named"; dump-file "/var/named/chroot/var/named/data/cache_dump.db"; statistics-file "/var/named/chroot/var/named/data/named_stats.txt"; memstatistics-file "/var/named/chroot/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion no; allow-recursion { none; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.root"; }; include "/var/named/chroot/var/named/named.local"; |
chkconfig --levels 235 benannt auf
/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.
18 Installieren Sie Vlogger, Webalizer und AWStats
Vlogger, Webalizer und AWStats können wie folgt installiert werden:
yum install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder
cd /tmp
wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
tar xvfz vlogger-1.3.tar.gz
mv vlogger-1.3/vlogger /usr/sbin/
rm -rf vlogger*
19 Jailkit installieren
Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden (Wichtig:Jailkit muss vor ISPConfig installiert werden - es kann nicht nachträglich installiert werden!):
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./configure
make
make install
cd ..
rm -rf jailkit-2.14*
20 Installieren Sie fail2ban
Dies ist optional, wird aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:
yum install fail2ban
chkconfig --levels 235 fail2ban on
/etc/init.d/fail2ban start
21 Installieren Sie rkhunter
rkhunter kann wie folgt installiert werden:
yum install rkhunter
Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3] – Seite 6
22 Installieren Sie SquirrelMail
Um den SquirrelMail-Webmail-Client zu installieren, führen Sie...
ausyum install squirrelmail
... und Apache neu starten:
/etc/init.d/httpd restart
Konfigurieren Sie dann SquirrelMail:
/usr/share/squirrelmail/config/conf.pl
Wir müssen SquirrelMail mitteilen, dass wir Courier-IMAP/-POP3 verwenden:
SquirrelMail Konfiguration : Lesen Sie: config.php (1.4.0)
---------------------------------------------- ------------------------
Hauptmenü --
1. Organisationseinstellungen
2. Servereinstellungen
3. Ordner-Standardeinstellungen
4. Allgemeine Optionen
5. Themen
6. Adressbücher
7. Nachricht des Tages (MOTD)
8. Plugins
9. Datenbank
10. Sprachen
D. Set pre-defined settings for specific IMAP servers
C Turn color off
S Save data
Q Quit
Command >> <-- D
SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.
Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.
Please select your IMAP server:
bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP server
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = University of Washington's IMAP server
quit = Do not change anything
Command >> <-- dovecot
SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.
Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.
Please select your IMAP server:
bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP server
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = University of Washington's IMAP server
quit = Do not change anything
Command >> dovecot
imap_server_type = dovecot
default_folder_prefix =
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = detect
delete_folder = false
Press any key to continue... <-- press a key
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color off
S Save data
Q Quit
Command >> <--S
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color off
S Save data
Q Quit
Command >> <--Q
One last thing we need to do is modify the file /etc/squirrelmail/config_local.php and comment out the $default_folder_prefix variable - if you don't do this, you will see the following error message in SquirrelMail after you've logged in:Query:CREATE "Sent" Reason Given:Invalid mailbox name.
vi /etc/squirrelmail/config_local.php
<?php /** * Local config overrides. * * You can override the config.php settings here. * Don't do it unless you know what you're doing. * Use standard PHP syntax, see config.php for examples. * * @copyright © 2002-2006 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id: config_local.php,v 1.2 2006/07/11 03:33:47 wtogami Exp $ * @package squirrelmail * @subpackage config */ //$default_folder_prefix = ''; ?> |
Now you can type in http://server1.example.com/webmail or http://192.168.0.100/webmail in your browser to access SquirrelMail.
23 Install ISPConfig 3
To install ISPConfig 3 from the latest released version, do this:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
The next step is to run
php -q install.php
This will start the ISPConfig 3 installer:
[[email protected] install]# php -q install.php
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> Initial configuration
Operating System: CentOS 5 or compatible
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with
Tap in "quit" (without the quotes) to stop the installer.
Select language (en,de) [en]: <-- ENTER
Installation mode (standard,expert) [standard]: <-- ENTER
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <-- ENTER
MySQL server hostname [localhost]: <-- ENTER
MySQL root username [root]: <-- ENTER
MySQL root password []: <-- yourrootsqlpas sword
MySQL database to create [dbispconfig]: <-- ENTER
MySQL charset [utf8]: <-- ENTER
Generating a 2048 bit RSA private key
...............+++
...+++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]: <-- ENTER
State or Province Name (full name) [Berkshire]: <-- ENTER
Locality Name (eg, city) [Newbury]: <-- ENTER
Organization Name (eg, company) [My Company Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (eg, your name or your server's hostname) []: <-- ENTER
Email Addre ss []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Firewall
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
Stopping saslauthd: [FAILED]
Starting saslauthd: [ OK ]
Shutting down Mail Virus Scanner (amavisd): [ OK ]
Starting Mail Virus Scanner (amavisd): [ OK ]
Stopping Clam AntiVirus Daemon: [ OK ]
Starting Clam AntiVirus Daemon:Bytecode:Security mode set to "TrustSigned".
[ OK ]
Stopping Dovecot Imap: [ OK ]
If you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.
Fatal: listen(::, 143) failed: Address already in use
Starting Dovecot Imap: [FAILED]
Stopping httpd: [ OK ]
[Mon Sep 26 13:29:58 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
Starting httpd: [ OK ]
Stopping pure-ftpd: [ OK ]
Starting pure-ftpd: [ OK ]
Installation completed.
[[email protected] install]#
The installer automatically configures all underlying services, so no manual configuration is needed.
If Dovecot fails to start with the following error:
Fatal: listen(::, 143) failed: Address already in use
... open /etc/dovecot.conf...
vi /etc/dovecot.conf
... and add the line listen =*:
[...] #listen = *, [::] listen = * [...] |
Then try to start Dovecot again:
/etc/init.d/dovecot start
Afterwards you can access ISPConfig 3 under http://server1.example.com:8080/ or http://192.168.0.100:8080/. Log in with the username admin and the password admin (you should change the default password after your first login):
The system is now ready to be used.
23.1 ISPConfig 3 Manual
In order to learn how to use ISPConfig 3, I strongly recommend to download the ISPConfig 3 Manual.
On about 300 pages, it covers the concept behind ISPConfig (admin, resellers, clients), explains how to install and update ISPConfig 3, includes a reference for all forms and form fields in ISPConfig together with examples of valid inputs, and provides tutorials for the most common tasks in ISPConfig 3. It also lines out how to make your server more secure and comes with a troubleshooting section at the end.
24 Links
- CentOS:http://www.centos.org/
- ISPConfig:http://www.ispconfig.org/