de:installation:centos6

Hosting Server mit CentOS 6

Inhalt

Dieser Artikel beschreibt die Installation eines Hosting-Servers mit der Linux-Distribution CentOS 6 und dem Hosting Control Panel LiveConfig. Folgende Dienste werden hierzu eingerichtet:

  • Webserver: Apache httpd 2.2.15
  • PHP 5.3.2 (mit suPHP 0.7.1)
  • Mailserver: Postfix 2.6.6
  • POP3/IMAP-Server: Dovecot 2.0.9
  • Datenbank: MySQL 5.1.52
  • FTP-Server: vsftpd 2.2.2 oder ProFTPD 1.3.4a

Die Anleitung erhebt keinen Anspruch auf Vollständigkeit.

Voraussetzungen

Es wird davon ausgegangen, dass eine Minimal-Installation von CentOS 6 bereits erfolgt ist.

Außerdem sollte das System auf dem neuesten Stand sein (führen Sie dazu ggf. yum update aus).

Quota

Damit der Speicherplatz für die einzelnen Webspaces begrenzt werden kann, muss das Quota aktiviert werden. Installieren Sie hierzu das Paket quota:

[root@localhost ~]# yum install quota

Anschließend muss Quota für das Dateisystem aktiviert werden, auf dem später die Webspaces eingerichtet werden (/var/www/). Prüfen Sie ggf. mit df, auf welchem Dateisystem sich dieses befindet, z.B. so:

[root@localhost ~]# df /var
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       7007016    891068   5760008  14% /

In diesem Beispiel befindet sich das Verzeichnis /var also auf dem Dateisystem /dev/mapper/VolGroup-lv_root.

Fügen Sie in der Datei /etc/fstab beim entsprechenden Eintrag die Mount-Optionen grpjquota=aquota.group,jqfmt=vfsv0 hinzu, z.B. so:

fstab
/dev/mapper/VolGroup-lv_root /   ext4   defaults,grpjquota=aquota.group,jqfmt=vfsv0   1 1

Mounten Sie anschließend das Dateisystem neu:

[root@localhost ~]# mount -vo remount /
/dev/mapper/VolGroup-lv_root on / type ext4 (rw,grpjquota=aquota.group,jqfmt=vfsv0)

Danach muss das aktuelle Quota berechnet werden:

[root@localhost ~]# quotacheck -vgm /
quotacheck: WARNING -  Quotafile //aquota.group was probably truncated. Cannot save quota settings...
quotacheck: Scanning /dev/mapper/VolGroup-lv_root [/] done
quotacheck: Old user file not found. Usage will not be substracted.
quotacheck: Checked 3100 directories and 17878 files

Falls Sie SElinux aktiviert haben, passen Sie die Berechtigungen an (sonst kann das Quota nach einem Neustart nicht automatisch aktiviert werden):

[root@localhost ~]# chcon -u system_u -r object_r -t quota_db_t /aquota.group

Schließlich kann das Quota-System aktiviert werden:

[root@localhost ~]# quotaon -vg /
/dev/mapper/VolGroup-lv_root [/]: group quotas turned on

Apache httpd, PHP und suPHP

Installieren Sie die benötigten Webserver-Pakete httpd und mod_ssl:

[root@localhost ~]# yum install httpd mod_ssl

Damit Apache httpd nach einem Neustart automatisch gestartet wird:

[root@localhost ~]# chkconfig httpd on

Falls Sie SElinux aktiviert haben müssen Sie Zugriff auf die Benutzerverzeichnisse erlauben:

[root@localhost ~]# setsebool -P httpd_enable_homedirs=1

Dann installieren Sie die PHP sowie die gewünschten Erweiterungen, z.B.:

[root@localhost ~]# yum install php php-gd php-imap php-mbstring php-mysql \
php-pear php-pdo php-soap php-xml php-xmlrpc

Für zusätzliche Sicherheit auf einem Shared-Webhosting-Server empfehlen wir, suPHP zu installieren. Dieses Apache-Modul ist im offiziellen CentOS-Repository nicht enthalten, daher fügen Sie zur Installation erst das Repository von Repoforge (ehemals RPMforge) hinzu:

[root@localhost ~]# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

Anschließend kann mod_suphp mit yum installiert werden:

[root@localhost ~]# yum install mod_suphp

In der Konfigurationsdatei /etc/suphp.conf sollten anschließend noch folgende Einstellungen geändert werden. Damit z.B. über ein PHP-Script hochgeladene Bilder auch durch den Webserver angezeigt werden können, sollte die umask auf 0022 gesetzt werden:

[root@localhost ~]# vi /etc/suphp.conf
umask=0022

Damit der Application-Installer Dateien ins apps-Verzeichnis installieren kann, muss die Option check_vhost_docroot auf false gesetzt werden:

check_vhost_docroot=false

Außerdem muss der zu verwendende PHP-Interpreter von der CLI- auf die CGI-Variante umgestellt werden:

[handlers]
;Handler for php-scripts
x-httpd-php="php:/usr/bin/php-cgi"

Zum Schluß können Sie den Apache-Webserver starten. Eine eventuelle Warnmeldung über einen fehlenden ServerName können Sie getrost ignorieren (darum kümmert sich später LiveConfig):

[root@localhost ~]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name,
using localhost.localdomain for ServerName
                                                           [  OK  ]

Wenn Sie die standardmäßig installierte Firewall nutzen, müssen Sie noch eingehende Verbindungen für HTTP (Port 80) und HTTPS (Port 443) erlauben:

[root@localhost ~]# iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
[root@localhost ~]# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@localhost ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

Postfix-Mailserver

Installieren Sie den Mailserver Postfix:

[root@localhost ~]# yum install postfix

Dovecot POP3/IMAP-Server

Installieren Sie den POP3/IMAP-Server Dovecot:

[root@localhost ~]# yum install dovecot dovecot-pigeonhole

MySQL-Datenbank

Zur Installation eines lokalen MySQL-Servers und der MySQL-Client-Programme verwenden Sie folgenden Befehl:

[root@localhost ~]# yum install mysql mysql-server

Damit MySQL nach einem Neustart automatisch gestartet wird:

[root@localhost ~]# chkconfig mysqld on

Starten Sie nun den MySQL-Server:

[root@localhost ~]# service mysqld start

Damit sich Anwendungen auch lokal (über einen Unix-Socket) mit der MySQL-Datenbank verbinden können, fügen Sie folgende Zeilen an die Datei /etc/my.cnf an:

[root@localhost ~]# vi /etc/my.cnf
my.cnf
[client]
socket=/var/lib/mysql/mysql.sock

Abschließend führen Sie das Installationsprogramm aus:

[root@localhost ~]# /usr/bin/mysql_secure_installation

Dieses Programm hilft beim Einrichten eines root-Passworts für die MySQL-Datenbank und löscht unbenötigte Testtabellen und -Benutzer. Sie können ebenfalls den root-Zugriff über das Netzwerk auf die Datenbank verbieten (»Disallow root login remotely«), da LiveConfig sich zur Verwaltung lokal mit MySQL verbindet.

FTP-Server

vsftpd

Den FTP-Server vsftpd sowie das zusätzlich benötigte Paket db4-utils installieren Sie einfach mit folgendem Befehl:

[root@localhost ~]# yum install vsftpd db4-utils

Damit vsftpd nach einem Neustart automatisch gestartet wird:

[root@localhost ~]# chkconfig vsftpd on

Falls Sie SElinux aktiviert haben müssen Sie den FTP-Zugriff auf die Benutzerverzeichnisse erlauben:

[root@localhost ~]# setsebool -P ftp_home_dir=1

Anschließend starten Sie vsftpd:

[root@localhost ~]# service vsftpd start

Zum Schluß geben Sie noch die notwendigen Ports in der Firewall frei. Für den aktiven FTP-Modus muss das Kernel-Modul ip_conntrack_ftp geladen werden. Tragen Sie dieses in der Datei /etc/sysconfig/iptables-config ein:

[root@localhost ~]# vi /etc/sysconfig/iptables-config
# Load additional iptables modules (nat helpers)
#   Default: -none-
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
# are loaded after the firewall rules are applied. Options for the helpers are
# stored in /etc/modprobe.conf.
IPTABLES_MODULES="ip_conntrack_ftp"

Die Befehle für die notwendigen Firewall-Regeln lauten:

[root@localhost ~]# iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
[root@localhost ~]# iptables -A INPUT -p tcp --sport 1024:65535 --dport 21 -m state --state NEW -j ACCEPT
[root@localhost ~]# iptables -A INPUT -m helper --helper ftp -j ACCEPT
[root@localhost ~]# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@localhost ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

ProFTPd

Alternativ zu vsftpd können Sie aus dem o.g. rpmforge-Repository den FTP-Server ProFTPD installieren:

[root@localhost ~]# yum install proftpd

Die Datei /etc/pam.d/proftpd ändern Sie danach wie folgt ab:

#%PAM-1.0
auth        required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth        required    pam_shells.so
auth        include     system-auth
account     include     system-auth
session     required    pam_loginuid.so

Ändern Sie zudem die Berechtigungen für /etc/proftpd:

[root@localhost ~]# chmod 755 /etc/proftpd

In der Datei /etc/proftpd.conf ändern Sie den Eintrag AuthOrder wie folgt ab: (beachten Sie, dass das Sternchen nach mod_auth_pam.c entfernt werden muß!)

AuthOrder   mod_auth_pam.c mod_auth_unix.c mod_auth_file.c

Damit proftpd nach einem Neustart automatisch gestartet wird:

[root@localhost ~]# chkconfig proftpd on

Führen Sie zudem ggf. den o.g. setsebool-Befehl aus und nehmen Sie die o.g. Firewall-Einstellungen vor.

LiveConfig

Mit folgendem Befehl installieren Sie die jeweils aktuellste Version von LiveConfig:

[root@localhost ~]# rpm -i http://download.liveconfig.com/latest?liveconfig.x86_64.rpm
Starting LiveConfig Server: liveconfig.

Öffnen Sie dann noch den Port 8443 für eingehende Verbindungen zu LiveConfig:

[root@localhost ~]# iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
[root@localhost ~]# iptables -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@localhost ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

Wenn Sie bereits einen Lizenzcode für LiveConfig besitzen, aktivieren Sie Ihre Lizenz und starten LiveConfig neu:

[root@localhost liveconfig]# /usr/sbin/liveconfig --activate
 _    _          ___           __ _     (R)
| |  (_)_ _____ / __|___ _ _  / _(_)__ _
| |__| \ V / -_) (__/ _ \ ' \|  _| / _` |
|____|_|\_/\___|\___\___/_||_|_| |_\__, |_____________________________________
                                   |___/
Welcome to the LiveConfig license activation.
License key file: '/etc/liveconfig/liveconfig.key'
Please enter your license key: #################
Generating license activation request, please wait... ok.
Connecting to license.liveconfig.com ([62.146.188.68]:443)... ok.
Sending license request... ok.
=> License successfully activated.
[root@localhost liveconfig]# service liveconfig restart
Stopping LiveConfig Server: liveconfig.
Starting LiveConfig Server: liveconfig.

Sie sollten nun über https://<Server-IP>:8443/ auf LiveConfig zugreifen können.

Ändern Sie nun umgehend das Passwort für den admin-Account!

de/installation/centos6.txt · Zuletzt geändert: 2015/05/27 15:53 von wikiadmin

Benutzer-Werkzeuge