Der perfekte Server – Fedora 15 x86_64 [ISPConfig 2]
Dies ist eine detaillierte Beschreibung zur Einrichtung eines Fedora 15 Server, der alle von ISPs und Hostern benötigten Dienste anbietet:Apache-Webserver (SSL-fähig) mit PHP5/Ruby/Python, Postfix-Mailserver mit SMTP-AUTH und TLS, BIND-DNS-Server, Proftpd-FTP-Server, MySQL-Server, Dovecot POP3/ IMAP, Quota, Firewall usw. Dieses Tutorial ist für die 64-Bit-Version von Fedora 15 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 installieren (d.h. ISPConfig läuft darauf sofort).
Ich werde die folgende Software verwenden:
- Webserver:Apache 2.2.17
- PHP 5.3.6
- Rubin
- Python
- Datenbankserver:MySQL 5.5.12
- 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 das ISO-Image der Fedora 15-DVD von einem Mirror in Ihrer Nähe herunter (die Liste der Mirrors finden Sie hier:http://mirrors.fedoraproject.org/publiclist/Fedora/15/), z. http://ftp.tu-chemnitz.de/pub/linux/fedora/linux/releases/15/Fedora/x86_64/iso/Fedora-15-x86_64-DVD.iso
- eine 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.
Bitte stellen Sie sicher, dass das System, das Sie aktualisieren möchten, über mehr als 600 MB RAM verfügt - andernfalls kann das System beim Booten mit der folgenden Meldung hängen bleiben:
Trying to unpack rootfs image as initramfs...
3 Installieren Sie das Basissystem
Booten Sie von Ihrer Fedora 15 DVD. Wählen Sie Neues System installieren oder vorhandenes System aktualisieren:
Das Testen des Installationsmediums kann lange dauern, daher überspringen wir diesen Test hier:
Wählen Sie als nächstes Ihre Sprache:
Wählen Sie Ihr Tastaturlayout aus:
Ich gehe davon aus, dass Sie eine lokal angeschlossene Festplatte verwenden, daher sollten Sie hier Basic Storage Devices auswählen:
Da wir eine neue Fedora-Installation wünschen, klicken Sie als nächstes auf die Schaltfläche Ja, alle Daten verwerfen:
Geben Sie den Hostnamen des Servers ein:
Wählen Sie Ihre Zeitzone:
Geben Sie root ein Passwort:
Als nächstes nehmen wir die Partitionierung vor. Wählen Sie Vorhandene(s) Linux-System(e) ersetzen aus. Dadurch erhalten Sie eine kleine /boot-Partition und eine große /-Partition, was für unsere Zwecke in Ordnung ist:
Wählen Sie Änderungen auf Datenträger schreiben:
Die Festplatte wird formatiert:
Nun wählen wir die Software aus, die wir installieren möchten. Deaktivieren Sie Graphical Desktop und aktivieren Sie stattdessen Webserver. Dann aktivieren Sie Jetzt anpassen. Wählen Sie anschließend die zusätzlichen Repositories Fedora 15 - x86_64 und Fedora 15 - x86_64 - Updates aus (wenn Sie sich auf einem i686-System befinden, lauten die Namen wahrscheinlich Fedora 15 - i686 und Fedora 15 - i686 - Updates):
Da die letzten beiden Repositorys eine Internetverbindung benötigen, erscheint ein neues Fenster, in dem Sie Ihre Netzwerkkarte konfigurieren müssen. Wählen Sie Ihre Netzwerkkarte aus und klicken Sie auf OK:
Gehen Sie zur Registerkarte Verkabelt, wählen Sie die Netzwerkschnittstelle aus (bitte beachten Sie, dass Fedora 15 BIOS-Namen für Geräte verwendet, deshalb heißt Ihre Netzwerkkarte p3p1 statt eth0 - wir werden das später ändern; weitere Informationen dazu finden Sie unter http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming) und klicken Sie auf Bearbeiten...:
Aktivieren Sie das Kontrollkästchen Automatisch verbinden und gehen Sie zur Registerkarte IPv4-Einstellungen und wählen Sie im Dropdown-Menü Methode die Option Manuell aus. Geben Sie einen, zwei oder drei Nameserver (durch Komma getrennt) in das Feld DNS-Server ein (z. B. 8.8.8.8, 8.8.4.4) und klicken Sie dann auf die Schaltfläche Hinzufügen neben dem Bereich Adressen:
Geben Sie Ihrer Netzwerkkarte nun eine statische IP-Adresse und Netzmaske (in diesem Tutorial verwende ich zu Demonstrationszwecken die IP-Adresse 192.168.0.100 und die Netzmaske 255.255.255.0; wenn Sie sich nicht sicher sind, welche Werte richtig sind, http://www. subnetmask.info könnte Ihnen helfen). Geben Sie auch Ihr Gateway ein (z. B. 192.168.0.1) und klicken Sie auf die Schaltfläche Speichern...:
Klicken Sie anschließend im Fenster Netzwerkverbindungen auf Schließen:
Der perfekte Server - Fedora 15 x86_64 [ISPConfig 2] - Seite 2
4 Ändern Sie den Namen Ihrer Netzwerkkarte in ethx
Jetzt müssen wir Fedora so konfigurieren, dass es keine BIOS-Gerätenamen mehr für unsere Netzwerkschnittstelle verwendet. Statt p3p1 brauchen wir unser gutes, altes eth0 zurück (weil sonst die Firewall von ISPConfig verrückt spielt und alles blockiert, weil sie eth0 statt p3p1 erwartet). Öffnen Sie /etc/grub.conf...
vi /etc/grub.conf
... und fügen Sie biosdevname=0 zur Kernel-Zeile hinzu:
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vg_server1-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=0 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.38.6-27.fc15.x86_64) root (hd0,0) kernel /vmlinuz-2.6.38.6-27.fc15.x86_64 ro root=/dev/mapper/vg_server1-lv_root rd_LVM_LV=vg_server1/lv_root rd_LVM_LV=vg_server1/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=de rhgb quiet biosdevname=0 initrd /initramfs-2.6.38.6-27.fc15.x86_64.img |
Starten Sie dann das System neu:
reboot
Nach dem Neustart sollte Ihre Netzwerkkarte eth0 heißen. Lauf...
ifconfig
... zu überprüfen:
[[email protected] ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:15:60:FA
inet addr:192.168.0.100 Bcast:192.168.0.255 Maske:255.255. 255.0
inet6 addr: fe80::20c:29ff:fe15:60fa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
Empfangspakete:48 Fehler:0 verloren 0 Overruns:0 Frame:0
TX Pakete:58 Fehler:0 Droped:0 Overruns:0 Carrier:0
Collisions:0 txqueuelen:1000
RX Bytes:5226 (5,1 KiB) TX bytes:9682 (9,4 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Maske:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metrik:1
RX-Pakete:2 Fehler:0 verloren gegangen:0 Überläufe:0 Frame:0
TX-Pakete:2 Fehler:0 verloren:0 Überläufe:0 Carrier:0
Kollisionen:0 txqueuelen:0
RX-Bytes:100 (100,0 b) TX-Bytes:100 (100,0 b)
[[email protected] ~]#
5 /etc/hosts anpassen
Als nächstes bearbeiten wir /etc/hosts. Lassen Sie es so aussehen:
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 192.168.0.100 server1.example.com server1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 |
Es ist wichtig, dass Sie eine Zeile für server1.example.com hinzufügen und server1.example.com und server1 aus der Zeile 127.0.0.1 entfernen.
6 Firewall konfigurieren
(Sie können dieses Kapitel überspringen, wenn Sie die Firewall bereits am Ende der grundlegenden Systeminstallation 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 Fedora-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 Fedora-Firewall stört).
Ausführen
system-config-firewall
und die Firewall deaktivieren.
Um zu überprüfen, ob die Firewall wirklich deaktiviert wurde, können Sie
ausführeniptables -L
nachher. Die Ausgabe sollte so aussehen:
[[email protected] ~]# iptables -L
Chain INPUT (Policy ACCEPT)
target prot opt source destination
Chain FORWARD (Policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[[email protected] ~]#
7 SELinux deaktivieren
SELinux ist eine Sicherheitserweiterung von Fedora, 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 (dies ist ein Muss, wenn Sie später ISPConfig installieren möchten).
Bearbeiten Sie /etc/selinux/config und setzen Sie SELINUX=disabled:
vi /etc/selinux/config
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted |
Danach müssen wir das System neu starten:
reboot
8 Einige Software installieren
Zuerst importieren wir die GPG-Schlüssel für Softwarepakete:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Als nächstes 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 ncftp gcc gcc-c++
9 Journaled-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 ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 zur Partition / (/dev/mapper/vg_server1-lv_root):
hinzuvi /etc/fstab
# # /etc/fstab # Created by anaconda on Wed May 25 15:57:24 2011 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/vg_server1-lv_root / ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 UUID=366ba6a7-7e68-4ec9-9743-4b02dd105180 /boot ext4 defaults 1 2 /dev/mapper/vg_server1-lv_swap swap swap defaults 0 0 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 |
Dann ausführen
mount -o remount /
quotecheck -avugm
quotaon -avug
zum Aktivieren des Kontingents.
10 Installieren Sie einen Chrooted-DNS-Server (BIND9)
Um ein chrooted BIND9 zu installieren, gehen wir wie folgt vor:
yum install bind-chroot
Als nächstes ändern wir ein paar Berechtigungen:
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
Dann öffnen wir /etc/sysconfig/named und stellen sicher, dass es die folgende Zeile enthält, um BIND mitzuteilen, dass es chrooted in /var/named/chroot läuft:
vi /etc/sysconfig/named
[...] ROOTDIR=/var/named/chroot |
Als nächstes öffnen Sie /etc/rsyslog.conf...
vi /etc/rsyslog.conf
... und fügen Sie die Zeile $AddUnixListenSocket /var/named/chroot/dev/log hinzu:
[...] $AddUnixListenSocket /var/named/chroot/dev/log |
Starten Sie rsyslog neu:
/etc/init.d/rsyslog restart
Dann erstellen wir die Systemstartlinks für BIND:
chkconfig --levels 235 named on
Wir starten BIND jetzt nicht, weil es wegen einer fehlenden /var/named/chroot/etc/named.conf scheitern wird. Diese wird später von ISPConfig erstellt (wenn Sie also den DNS-Manager von ISPConfig verwenden).
Der perfekte Server - Fedora 15 x86_64 [ISPConfig 2] - Seite 4
11 MySQL 5
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
ausnetstat -tap | grep mysql
Es sollte etwa so aussehen:
[[email protected] ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* HÖREN 1151/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
Führen Sie
ausmysql_secure_installation
um ein Passwort für den Benutzer root festzulegen (ansonsten kann jeder auf Ihre MySQL-Datenbank zugreifen!).
[[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): <-- ENTER
OK, erfolgreich verwendetes Passwort, weiter ...
Das Festlegen des Root-Passworts stellt sicher, dass sich niemand bei MySQL anmelden kann
Root-Benutzer ohne die entsprechende Berechtigung.
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 ~]#
12 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
Jetzt 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 [::1]/128'
Wir müssen /usr/lib64/sasl2/smtpd.conf bearbeiten, damit Postfix PLAIN- und LOGIN-Logins zulässt (auf 32-Bit-Systemen befindet sich diese Datei in /usr/lib/sasl2/smtpd.conf). 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 data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = all inet_protocols = 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 ddd $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.8.3/samples readme_directory = /usr/share/doc/postfix-2.8.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 [::1]/128 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 |
Starten Sie nun Postfix und saslauthd:
chkconfig 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
Bevor wir Dovecot starten, müssen wir die Klartext-Authentifizierung aktivieren. Öffnen Sie /etc/dovecot/conf.d/10-auth.conf...
vi /etc/dovecot/conf.d/10-auth.conf
... und fügen Sie die Zeile disable_plaintext_auth =no:
hinzu[...] # Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP # matches the local IP (ie. you're connecting from the same computer), the # connection is considered secure and plaintext authentication is allowed. #disable_plaintext_auth = yes disable_plaintext_auth = no [...] |
Starten Sie dann Dovecot:
/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
einehlo localhost
Wenn Sie die Linien
sehen250-STARTTLS
und
250-AUTH LOGIN PLAIN
alles ist gut.
[[email protected] ssl]# telnet localhost 25
Trying ::1...
Connected to localhost.
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
einquit
um zur Shell des Systems zurückzukehren.
12.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 - Fedora 15 x86_64 [ISPConfig 2] - Seite 5
13 Apache2 mit PHP, Ruby, Python, WebDAV
Jetzt installieren wir Apache mit PHP5 (das ist PHP 5.3.6):
yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy 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
13.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, bearbeiten wir /etc/httpd/conf.d/php.conf und kommentieren 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> 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
13.2 Rubin
Ab Version 2.2.20 hat ISPConfig 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 Fedora 15 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 RubyAddPath /1.8 |
... und Apache neu starten:
/etc/init.d/httpd restart
(Wenn Sie die Direktive RubyAddPath /1.8 weglassen, sehen Sie Fehler wie die folgenden im Fehlerprotokoll von Apache, wenn Sie Ruby-Dateien aufrufen:
[Do, 26. Mai 02:05:05 2011] [Fehler] mod_ruby:ruby:0:in `require':keine solche Datei zum Laden -- apache/ruby-run (LoadError)
[Do, 26. Mai 02:05:05 2011] [Fehler] mod_ruby:Apache/ruby-run konnte nicht angefordert werden
[Donnerstag, 26. Mai 02:05:05 2011] [Fehler] mod_ruby:Fehler in Ruby
)
Weitere Details zu mod_ruby finden Sie in diesem Artikel.
13.3 Installieren von mod_python
Um mod_python zu installieren, führen wir einfach ...
ausyum install mod_python
... und danach Apache neu starten:
/etc/init.d/httpd restart
13.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
14 ProFTPd
ISPConfig hat eine bessere Unterstützung für proftpd als vsftpd, also entfernen wir vsftpd und installieren proftpd:
yum remove vsftpd
yum install proftpd
Jetzt können wir die Systemstartlinks für Proftpd erstellen und starten:
chkconfig --levels 235 proftpd on
/etc/init.d/proftpd start
15 Webalizer
Um Webalizer zu installieren, führen Sie einfach
ausyum install webalizer
16 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
17 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-ExtUtils-AutoInstall perl-NetAddr-IP perl-Archive-Tar
18 ISPConfig
Die Konfiguration des Servers ist nun abgeschlossen. You can now install ISPConfig on it, following these instructions:http://www.ispconfig.org/manual_installation.htm
Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 673:
vim /usr/include/stdio.h
[...] /* Like `getdelim', but reads up to a newline. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern _IO_ssize_t parseline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur; #endif [...] |
If you don't do this, the installation will fail because of the following error:
htpasswd.c:101:error:conflicting types for âgetlineâ
/usr/include/stdio.h:653:note:previous declaration of âgetlineâ was here
make[2]:*** [htpasswd.o] Error 1
make[2]:Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]:*** [build-support] Error 1
make[1]:Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'
make:*** [build] Error 2
ERROR:Could not make Apache
You can undo the change to /usr/include/stdio.h after the successful ISPConfig installation (but don't forget to change it back whenever you want to update ISPConfig!).
18.1 A Note On SuExec
If you want to run CGI scripts under suExec, you should specify /var/www as the web root for websites created by ISPConfig as Fedora's suExec is compiled with /var/www as Doc_Root. Führen Sie
aus/usr/sbin/suexec -V
and the output should look like this:
[[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] ~]#
So if you want to use suExec with ISPconfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).
19 Links
- Fedora:http://fedoraproject.org/
- Network Device Naming:http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming
- ISPConfig:http://www.ispconfig.org/