de:installation:gentoo

Hosting Server mit Gentoo Linux

Inhalt

Dieser Artikel beschreibt die Installation eines Servers mit der Linux-Distribution Gentoo und dem Hosting Control Panel LiveConfig.

Basisinstallation

Für die Basisinstallation steht von der Gentoo Community eine sehr gute Schritt für Schritt Anleitung bereit. Sie finden sie unter https://wiki.gentoo.org/wiki/Installation. Im folgenden gehen wir davon aus das Sie diese Anleitung erfolgreich durchlaufen haben.

Für eine erfolgreiche Betriebssystemwartung bieten sich einige Tools aus dem Gentoo Portage Tree besonders an. Diese sollten bei keiner Gentoo Installation fehlen.

  • app-portage/eix: Ein Tool zum Durchsuchen des Portage Trees sowie eingebundener repositories. Es ist merklich schneller und flexibler als ein emerge --search <paketname>.
  • app-portage/gentoolkit: Eine Sammlung von Administrations Scripts für Gentoo.
  • app-portage/genlop: Ein emerge.log parser (ermöglicht z.B. Angabe der ungefähren Installationsdauer für ein Paket).
  • app-editors/vim: Ein machtvoller Texteditor mit Syntaxhighlighting für die meisten Konfigurationsdateien Ihres Gentoo Systems.
  • net-dns/bind-tools: Die Namensauflösungstools dig, nslookup, host, nsupdate, dnssec-keygen.
  • sys-process/htop: Ein interaktiver Prozessviewer komfortabler und übersichtlicher als top.
  • sys-process/iotop: Ein dem Prozessviewer top nachempfundener I/O viewer.
  • sys-process/iftop: Ein Viewer der die Bandbreitennutzung eines Netzwerkinterfaces anzeigt.

MySQL

Installieren Sie mit dem Befehl emerge -av mysql das MySQL-Paket.

Bitte konfigurieren Sie VOR der Installation die Useflags für das MySQL-Paket nach ihren Wünschen:

gentoo-xen ~ # emerge -av mysql

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] dev-db/mysql-5.1.51  USE="community latin1 perl ssl -big-tables -cluster (-debug) 
-embedded -extraengine -max-idx-128 -minimal -pbxt -profiling (-selinux) -static -test -xtradb" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No]

Beantworten Sie die Frage mit »Yes« gefolgt von einem druck auf [ENTER].

Der MySQL Server ist nun installiert

Apache

Installieren Sie die benötigten Apache-Pakete mit dem Befehl emerge -av apache. Eventuell benötigte Pakete werden ebenfalls automatisch nachinstalliert. Besondere Pakete wie mpm-prefork oder apache2-suexec müssen in der Datei /etc/make.conf als USE-Flags (suexec) oder APACHE2_MPMS (prefork) eingetragen werden:

make.conf
# Build-time functionality
# ========================
USE="-X -gtk -gnome -alsa -kde -xfce -qt apache2 suexec"
 
...
<viele Settings>
...
 
APACHE2_MPMS="prefork"

Sollten Sie nicht die Standardkonfiguration der APACHE2_MODULES verwenden prüfen Sie bitte ob das Modul logio in Ihrem Setup aktiv ist und aktivieren Sie es gegebenenfalls mit:

make.conf
APACHE2_MODULES=" ... logio ..." 

Wenn Sie sichergehen möchten das Sie die standardmäßig in Gentoo geladenen Module behalten und nur ein paar zusätzliche aktivieren wollen müssen Sie die APACHE2_MODULES-Zeile wie folgt eintragen da sonst die Standardmäßig aktivierten Module deaktiviert werden:

make.conf
APACHE2_MODULES="${APACHE2_MODULES} logio" # hiermit wird das Modul logio zusätzlich
                                           # zu den Standardmodulen geladen.

Nun führen Sie bitte das oben erwähnte emerge -av apache aus.

gentoo-xen ~ # emerge -av apache

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] app-admin/apache-tools-2.2.16  USE="ssl" 4,664 kB
[ebuild  N    ] www-servers/apache-2.2.16  USE="ssl suexec -debug -doc -ldap (-selinux) -static 
-threads" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default
authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache
cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers
include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status
unique_id userdir usertrack vhost_alias -asis -auth_digest -authn_dbd -cern_meta -charset_lite -dbd
-dumpio -ident -imagemap -log_forensic -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp
-proxy_http -substitute -version" APACHE2_MPMS="prefork -event -itk -peruser -worker" 63 kB

Total: 2 packages (2 new), Size of downloads: 4,726 kB

Would you like to merge these packages? [Yes/No]

Beantworten Sie die Frage mit »Yes« gefolgt von einem druck auf [ENTER].

Sicherheits-Optimierungen

Aus Sicherheitsgründen wird Apache zuerst so eingerichtet, dass er nicht immer seine vollständige Versionsnummer meldet, sondern nur seinen Namen (so ist für Außenstehende nicht auf Anhieb ersichtlich, welche Version installiert ist). Öffnen Sie dazu die Datei /etc/apache2/modules.d/00_default_settings.conf, und setzen den ServerTokens-Eintrag auf Prod (Standardwert ist Full).

00_default_settings.conf
# ServerTokens
# This directive configures what you return as the Server HTTP response
# Header. The default is 'Full' which sends information about the OS-Type
# and compiled in modules.
# Set to one of:  Full | OS | Minor | Minimal | Major | Prod
# where Full conveys the most information, and Prod the least.
ServerTokens Prod

Ebenfalls in dieser Datei sollte der Eintrag TraceEnable auf Off gesetzt werden (Standardwert ist On):

00_default_settings.conf
# TraceEnable
# This directive overrides the behavior of TRACE for both the core server and
# mod_proxy. The default TraceEnable on permits TRACE requests per RFC 2616,
# which disallows any request body to accompany the request. TraceEnable off
# causes the core server and mod_proxy to return a 405 (Method not allowed)
# error to the client.
# For security reasons this is turned off by default. (bug #240680)
TraceEnable Off

Apache-Module aktivieren

Die Apache-Module »actions«, »include«, »rewrite« und »suexec« müssen, sofern die USE-Flags richtig gesetzt waren bei der Installation, nicht mehr gesondert aktiviert werden. Mit einem Aufruf von apache2ctl modules können Sie alle aktivierten Module auflisten:

gentoo-xen apache2 # apache2ctl modules
apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.141.108
for ServerName
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 actions_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_alias_module (shared)
 authn_anon_module (shared)
 authn_dbm_module (shared)
 authn_default_module (shared)
 authn_file_module (shared)
 authz_dbm_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_owner_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgi_module (shared)
 cgid_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 expires_module (shared)
 ext_filter_module (shared)
 filter_module (shared)
 headers_module (shared)
 include_module (shared)
 info_module (shared)
 log_config_module (shared)
 logio_module (shared)
 mime_module (shared)
 mime_magic_module (shared)
 negotiation_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 speling_module (shared)
 ssl_module (shared)
 suexec_module (shared)
 unique_id_module (shared)
 usertrack_module (shared)
 vhost_alias_module (shared)
Syntax OK

Wie Sie in der obigen beispielhaften Ausgabe sehen können wird bei der Installation die Variable ServerName nicht gesetzt. Dies müssen Sie in der Datei /etc/apache2/httpd.conf

httpd.conf
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path.  If you point
# ServerRoot at a non-local disk, be sure to point the LockFile directive
# at a local disk.  If you wish to share the same ServerRoot for multiple
# httpd daemons, you will need to change at least LockFile and PidFile.
ServerRoot "/usr/lib64/apache2"
 
# ServerName - Zeile einfach hinzufügen
ServerName "gentoo-xen"

Starten Sie nun den Apache HTTPd mit:

gentoo-xen ~ # /etc/init.d/apache2 start
 * Starting apache2 ...                                                                         [ ok ]

Der Apache HTTPd ist nun installiert.

PHP 5

In der von uns empfohlenen Konfiguration wird PHP nicht als Apache-Modul installiert, sondern als CGI-Anwendung. Somit werden PHP-Programme immer mit den Rechte des tatsächlichen Kunden ausgeführt, ein Zugriff auf fremde Kundenverzeichnisse ist damit praktisch ausgeschlossen. Für anspruchsvolle Anwendungen steht mit FastCGI eine sehr schnelle Ausführungsumgebung zur Verfügung.

Die benötigten Pakete sind dev-lang/php und www-apache/mod_fcgid des weiteren müssen die USE-Flags korrekt gesetzt sein. cgi zum Beispiel wird zwingend benötigt und das USE-Flag apache2 sollte nicht gesetzt sein (sie installiert das Apache-php-modul das wir bei unserem CGI Setup nicht benötigen). Möchten Sie mit PHP eine Verbindung zu einer MySQL Datenbank herstellen benötigen Sie das mysql USE-Flag. Welche USE-Flags Sie setzen möchten müssen Sie allerdings selbst entscheiden. Führen sie nun das folgende Kommando aus um die PHP Installation zu starten:

gentoo-xen ~ # emerge -av php mod_fcgid

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] dev-libs/oniguruma-5.9.2  528 kB
[ebuild  N    ] media-libs/t1lib-5.1.2  USE="-X -doc" 1,829 kB
[ebuild  N    ] media-libs/jpeg-8b  USE="-static-libs" 954 kB
[ebuild  N    ] x11-proto/xproto-7.0.19  USE="-doc" 263 kB
[ebuild  N    ] x11-proto/xextproto-7.1.2  USE="-doc" 170 kB
[ebuild  N    ] x11-libs/xtrans-1.2.6  USE="-doc" 153 kB
[ebuild  N    ] x11-proto/kbproto-1.0.5  109 kB
[ebuild  N    ] media-libs/libpng-1.4.5  USE="-static-libs" 533 kB
[ebuild  N    ] dev-libs/libmcrypt-2.5.8-r2  1,304 kB
[ebuild  N    ] app-admin/eselect-php-0.6.2  2 kB
[ebuild  N    ] media-libs/freetype-2.4.3-r2  USE="-X -auto-hinter -bindist -debug -doc -fontforge 
-utils" 1,404 kB
[ebuild  N    ] x11-proto/xf86bigfontproto-1.2.0  49 kB
[ebuild  N    ] x11-proto/inputproto-2.0.1  149 kB
[ebuild  N    ] x11-proto/xcb-proto-1.6-r1  91 kB
[ebuild  N    ] dev-libs/libpthread-stubs-0.1  USE="-static-libs" 190 kB
[ebuild  N    ] virtual/jpeg-0  0 kB
[ebuild  N    ] net-libs/c-client-2007e  USE="pam ssl -kolab" 2,725 kB
[ebuild  N    ] x11-libs/libICE-1.0.7  USE="ipv6 -doc -static-libs" 317 kB
[ebuild  N    ] x11-libs/libXau-1.0.6  USE="-static-libs" 256 kB
[ebuild  N    ] x11-libs/libXdmcp-1.1.0  USE="-doc -static-libs" 282 kB
[ebuild  N    ] x11-libs/libSM-1.2.0  USE="ipv6 uuid -doc -static-libs" 278 kB
[ebuild  N    ] x11-libs/libxcb-1.7  USE="-doc (-selinux) -static-libs" 312 kB
[ebuild  N    ] x11-libs/libX11-1.4.0  USE="ipv6 -doc -static-libs -test" 2,036 kB
[ebuild  N    ] x11-libs/libXt-1.0.9  USE="-static-libs" 670 kB
[ebuild  N    ] x11-libs/libXext-1.2.0  USE="-doc -static-libs" 306 kB
[ebuild  N    ] x11-libs/libXpm-3.5.9  USE="-static-libs" 375 kB
[ebuild  N    ] www-apache/mod_fcgid-2.3.6  75 kB
[ebuild  N    ] dev-lang/php-5.3.5  USE="berkdb bzip2 cgi cli crypt ctype fileinfo filter ftp 
gd gdbm hash iconv imap ipv6 json mysql nls phar posix readline session simplexml ssl tokenizer 
truetype unicode xml xmlreader xmlrpc xmlwriter xpm zip zlib (-adabas) -apache2 -bcmath (-birdstep) 
-calendar -cdb -cjk -curl -curlwrappers -db2 (-dbmaker) -debug -doc -embed (-empress) (-empress-bcs) 
-enchant (-esoob) -exif (-firebird) -flatfile -fpm (-frontbase) -gd-external -gmp -inifile -interbase 
-intl -iodbc -kerberos -kolab -ldap -ldap-sasl -libedit -mhash -mssql -mysqli -mysqlnd -oci8 
-oci8-instant-client -odbc -pcntl -pdo -pic -postgres -qdbm -recode -sapdb -sharedext 
-sharedmem -snmp -soap -sockets (-solid) -spell -sqlite -sqlite3 -suhosin (-sybase-ct) -sysvipc 
-threads -tidy -wddx -xsl" 10,563 kB

Total: 27 packages (27 new), Size of downloads: 25,911 kB

Would you like to merge these packages? [Yes/No]

Lassen Sie sich durch die x11-libs/* pakete nicht erschrecken (sollten bei Ihnen einige erscheinen wie hier im Beispiel), es wird hier kein X-Server installiert (das wären einige hundert Pakete die installiert werden würden). Diese Libraries werden im Beispiel z.B. für die Bildbearbeitung benötigt. Beantworten Sie die Frage wieder mit »Yes«.

PHP ist nun installiert

ProFTPd (FTP-Server)

Zur Installation des FTP-Servers »ProFTPd« installieren Sie einfach das Paket net-ftp/proftpd. Bitte Konfigurieren Sie vorher die USE-flags nach Ihren wünschen. Für LiveConfig wird ein Proftpd benötigt der standalone läuft, also ohne von xinetd gestartet zu werden daher müssen Sie zumindest das USE-Flag xinetd deaktivieren (-xinetd setzen). Führen Sie nun das folgende Kommando aus:

gentoo-xen ~ # emerge -av proftpd

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] sys-libs/libcap-2.17  USE="pam" 48 kB
[ebuild  N    ] net-ftp/ftpbase-0.01-r2  USE="pam" 0 kB
[ebuild  N    ] net-ftp/proftpd-1.3.3d  USE="acl caps ctrls ipv6 mysql ncurses nls pam ssl tcpd 
-authfile -ban -case -clamav -deflate -doc -exec -hardened -ident -ifsession -kerberos -ldap -postgres
-radius -ratio -readme -rewrite (-selinux) -sftp -shaper -sitemisc -softquota -trace -vroot -xinetd"
4,080 kB

Total: 3 packages (3 new), Size of downloads: 4,128 kB

Would you like to merge these packages? [Yes/No]

Beantworten Sie die Frage wieder mit »Yes«.

ProFTPd ist nun installiert

BIND 9 (DNS-Server)

Falls Sie Ihren Server auch als DNS-Server (für registrierte Domains) nutzen möchten, installieren Sie bitte das Paket net-dns/bind. Falls Sie Ihre Domains über andere Nameserver verwalten, können Sie diesen Abschnitt überspringen.

Wie immer gilt zuerst die USE-Flags konfigurieren dann das folgende Kommando ausführen:

gentoo-xen ~ # emerge -av bind

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] net-dns/bind-9.7.2_p3-r1  USE="berkdb ipv6 mysql ssl xml -dlz -doc -geoip -gssapi -idn
-ldap -odbc -postgres -resolvconf (-selinux) -threads -urandom" 7,465 kB

Total: 1 package (1 new), Size of downloads: 7,465 kB

Would you like to merge these packages? [Yes/No]

Beantworten Sie die Frage wieder mit »Yes«.

LiveConfig

Downloaden Sie das das LiveConfig-Overlay tar.gz von der LiveConfig Downloadseite. Entpacken Sie es an einen ordner Ihrer Wahl (normalerweise /usr/local/portage )

Fügen Sie nun die folgende Zeile (angepasst auf ihren Pfad) in die /etc/make.conf ein

make.conf
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/liveconfig-overlay"

Der Teil ${PORTDIR_OVERLAY} dient dazu eventuell bereits gesetzte Overlays nicht zu überschreiben sondern das LiveConfig-Overlay an die bestehende Liste anzuhängen

Installieren Sie anschließend das heruntergeladene Paket via emerge -av liveconfig-server für die Serverversion und emerge -av liveconfig-client für die Clientversion von Liveconfig.

gentoo-xen ~ # emerge -av liveconfig-server

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] app-admin/liveconfig-server-0.8.1  0 kB [1]

Total: 1 package (1 new), Size of downloads: 0 kB
Portage tree and overlays:
 [0] /usr/portage
 [1] /usr/local/portage/liveconfig-overlay

Would you like to merge these packages? [Yes/No]
gentoo-xen ~ # emerge -av liveconfig-client

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] app-admin/liveconfig-client-0.8.1  0 kB [1]

Total: 1 package (1 new), Size of downloads: 0 kB
Portage tree and overlays:
 [0] /usr/portage
 [1] /usr/local/portage/liveconfig-overlay

Would you like to merge these packages? [Yes/No]

Der LiveConfig-Server und der LiveConfig-Client lassen sich nicht gleichzeitig installieren. Da der LiveConfig-Server bereits einen LiveConfig-Client integriert hat ist dies aber auch nicht notwendig

Wenn Sie die obige Frage mit »Yes« beantworten wird der LiveConfig-Server respektive der LiveConfig-Client installiert.

Nach der Installation kann noch das Admin Passwort und ein Lizenzsschlüssel gesetzt werden. Dies können Sie per emerge --config liveconfig-server respektive emerge --config liveconfig-client erledigen. Im Anschluss an das setzen von Passwort und Lizenzschlüssel wird LiveConfig-Server automatisch gestartet. Beim LiveConfig-Client werden statt einem Admin Passwort der zuständige LiveConfig-Server und ein Anmeldename für den Client am Server abgefragt.

gentoo-xen ~ # emerge --config liveconfig-server
Configuring pkg...

 * Bitte zur Konfiguration folgende Daten eingeben:
 * Admin Passwort
admin
 * Bitte wiederholen Sie das Passwort!
admin
 * Lizensschlüssel
12345-12345-12345
 _    _          ___           __ _     (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 activation request... ok.
=> Activation failed: Invalid license key

Starting liveconfig Server: liveconfig .../usr/sbin/liveconfig: successful
gentoo-xen portage # emerge --config liveconfig-client
Configuring pkg...

 * Bitte zur Konfiguration folgende Daten eingeben:
 * Liveconfig Server
192.168.0.1
 * Liveconfig Host ID
liveconfig-client1
 * Lizensschlüssel
12345-12345-12345
 _    _          ___           __ _     (R)  ___ _ _         _
| |  (_)_ _____ / __|___ _ _  / _(_)__ _    / __| (_)___ _ _| |_
| |__| \ V / -_) (__/ _ \ ' \|  _| / _` |  | (__| | / -_) ' \  _|
|____|_|\_/\___|\___\___/_||_|_| |_\__, |   \___|_|_\___|_||_\__|_____________
                                   |___/
Welcome to the LiveConfig license activation.
License key file: '/etc/liveconfig/lcclient.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 activation request... ok.
=> Activation failed: Invalid license key

Starting liveconfig client: lcclient .../usr/sbin/lcclient: successful

Herzlichen Glückwunsch damit ist die Installation abgeschlossen. Sie sollten nun über https://<LiveConfig-Server-IP>:8443/ auf den LiveConfig-Server zugreifen können.

de/installation/gentoo.txt · Zuletzt geändert: 2015/05/27 14:58 von wikiadmin

Benutzer-Werkzeuge