mcseeder
16.05.2008, 14:27
Vorbereitungen zum Debian Root Server einrichten
#Anmeldung Admin/ root
Debian Server ~# su
#Quellen/ Paketlisten von APT aktualisieren
Debian Root Server ~# apt-get update
#System auf aktuellen Stand bringen
Debian Root Server ~# apt-get upgrade
Benutzer anlegen für Debian Server:
Debian Server ~# adduser
#anstatt 'useradd -m' fragt sie 'adduser' alles notwendige (am wichtigsten ist das Feld Full Name)
#mit "usermod" können den Benutzer problemlo später modifizieren
Debian SSHd anpassen: (wichtig vorher MUSS neuer Benutzer angelegt werden!)
Debian Root Server ~# mcedit /etc/ssh/sshd_config
# 'PermitRootLogin no' von YES auf NO Debian Server - Apache2 Installation
#Install Apache2 mit Php und Anbindung an Mysql-Server; des Weiteren Phpmyadmin zur Verwaltung der Datenbank und GD-Support für Apache zwecks grafik-verarbeitenden Scripten wie CMS-Systemen (bsp. EXPONENT (http://www.exponent-portal.de/))
Debian Root Server ~# apt-get install apache2-mpm-prefork libapache2-mod-perl2 libapache2-mod-php4 mysql-client-4.1 mysql-server-4.1 libmysqlclient10 libmysqlclient12 libmysqlclient14 php4 php4-cgi php4-cli php4-pear php4-mysql phpmyadmin php4-gd libgd2
#Anmerkung: 'prefork' ist nicht die schnellste aber kompatibelste Version in Sachen PHP im Vgl. zu 'apache2-mpm-worker'
# Phpmyadmin muss noch konfiguriert (https) und abgesichert (.htaccess) werden! Darauf gehe ich zunächst nicht ein.
#Funktionstest:
#http://IP oder http://localhost bei lokaler Installation
Troubelshooting (nur der Vollständigkeit halber):
Php und MySQL:
#Install MySQL-Server
Debian Root Server ~# apt-get install mysql-server-4.1
#Install PHPMyadmin
Debian Root Server ~# apt-get install phpmyadmin
#Install
Debian Root Server ~# apt-get install php4-gd libgd2
Anpassungen von MySQL:
#MySQL-Passwort für root setzen!!!
Debian Root Server ~# mysql -u root mysql
Debian Root Server ~# mysql> UPDATE user SET Password=PASSWORD('neues_passwort') WHERE user='root';
Debian Root Server ~# mysql> FLUSH PRIVILEGES;
Debian Root Server ~# mysql -u root -p
#Passworttest über PhpMyAdmin: http://IP/phpmyadmin; Benutzer:root und Passwort:PASSWORT
Toubelshooting Anpassung der Mysqlanbindung an den Indianer
#Php.ini anpassen
Debian Root Server ~# mcedit /etc/php4/apache2/php.ini
#Auskommentieren 'extension=mysql.so'
# Anpassung 'memory_limit = 16'
# und 'upload_max_filesize = 20' setzen (so dass später im CMS auch größere Daten hochgeladen werden können)
Debian Server - Virtuelle Hosts für Apache2
#Auskommentieren von
Debian Root Server ~# mcedit /etc/apache2/sites-available/default
#'RedirectMatch ^/$ /apache2-default/ im vhost unter /etc/apache2/sites-available/'
#einfach eine Raute davor (=Auskommentieren; Kommentieren = Raute weg nehemen), dann wird nicht vom localhost bzw. Ihrer IP auf localhost/default-apache umgeleitet
Debian Server - Namensbasierten virtuelle Host anlegen
#Sie haben eine Domain und diese zeigt auf die IP dieses Servers, dann können wir schnell für Erreichbarkeit sorgen
Debian Root Server ~#mcedit /etc/apache2/sites-available/MeineDomainDE
#Anmerkung der Name ist irrelevant nur der Inhalt ist wichtig
#Inhalt:
----
<VirtualHost * >
ServerAdmin EMAIL
ServerName Domain.de - Das Portal rund um Domains (http://www.Domain.DE)
ServerAlias Domain.DE w.Domain.DE ww.Domain.DE
DocumentRoot /var/www/PFAD/ZUR/WEBSEITE
<Directory //var/www/PFAD/ZUR/WEBSEITE>
Order Deny,Allow
Allow from all
# Don't show indexes for directories
Options -Indexes
</Directory>
</VirtualHost>
---
#F2 für speichern und F10 für schließen und fertig
#Aktivieren bzw. versymlinken des virtuellen Hosts
Debian Root Server ~# a2ensite MeineDomainDE
Debian Root Server ~# /etc/init.d/apache2 reload
#Anmerkung löschen sie nicht den default oder setzen sie die Seite nicht an erste Stelle (Reihenfolge abhänig von Reihenfolge der verlinkung; nicht nach Alphabet)
#Neustart Debian Apache und fertig
Debian Root Server ~# /etc/init.d/apache2 restart
#und fertig ist ihr Vhost
Debian Server - Namensbasierten virtuelle Host mit SSL-Verschlüsselung also https
# Zertifikat erstellen
Debian Server ~# apache2-ssl-certificate -days 365
#-days gibt die Gültigkeitsdauer an
#alle Fragen können nach belieben beantwortet werden, aber Rechnername/ Domain muss mit Vhost übereinstimmen bsp. IP oder Domain
#SSl-Modul aktivieren
Debian Server ~# a2enmod ssl
#Vhost mit SSL erstellen
Debian Server ~# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl
Debian Server ~# mcedit etc/apache2/sites-available/default-ssl
#Inhalt:
----
NameVirtualHost *:443
<VirtualHost *:443>
# SSL (START)
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/ZERTIFIKATSNAME.0
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
# SSL (ENDE)
ServerAdmin EMAIL
#kann auch einfach eine IP sein
ServerName Domain.de - Das Portal rund um Domains (http://www.Domain.DE)
ServerAlias Domain.DE w.Domain.DE ww.Domain.DE
DocumentRoot /var/www/PFAD/ZUR/WEBSEITE
<Directory //var/www/PFAD/ZUR/WEBSEITE>
Order Deny,Allow
Allow from all
# Don't show indexes for directories
Options -Indexes
</Directory>
</VirtualHost>
---
# Eintragen des SSLCertificateKeyFile /etc/apache2/ssl/ZUFALLSNAME.0
Debian Server ~# ls -l /etc/apache2/ssl/
# Der Name der datei die mit xxx.0 endet muss im vHost ergänzt werden.
#Apache den Ports noch mitteilen auf den er horchen soll
Debian Root Server ~# mcedit /etc/apache2/ports.conf
#Inhalt:
----
Listen 80
Listen 443
----
# Default-SSL aktivieren
Debian Server ~# a2ensite default-ssl
#Apache Neustart
Debian Server ~# apache2ctl restart
Debian FTP Server
#Install
Debian Server ~# apt-get install proftpd
#Gruppen
Debian Server ~# addgroup ftpprouser #uneingeschränkter user
Debian Server ~# addgroup ftpuser #eingesckränkter user
#Möglichkeit Anmeldung an System unterbinden und NUR FTP-Anmeldung für bestimmte Benutzer erlauben
#Vorbereitung
#Shell ohne Anmeldung über SSH o.ä. kopieren
Debian Server ~# cp /bin/false /bin/ftp
Debian Server ~# echo "/bin/ftp" >> /etc/shells
#Ftp-User
Debian Server ~# useradd USERNAME #legt nur den Usernamen an sonst nichts
Debian Server ~# usermod -G ftpuser USERNAME#chroot ungleich ftpprouser siehe später proftpd.conf
Debian Server ~# usermod -d /HOME/ERZEICHNIS USERNAME
Debian Server ~# usermod -s /bin/ftp USERNAME#keine Anmeldung an System
#Ftp-User per Hand gruppen zuordnen; eigentlich unnötig (dieser Schritt kann bei simpler Konfiguration übersprungen werden)
Debian Root Server ~# mcedit /etc/group
---Beispiel:
...
ftpprouser:x:1004:user1
ftpuser:x:1005:user2
---
#Proftpd-Config anpassen
Debian Root Server ~# mcedit /etc/proftpd.config
#Inhalt
----
# chroot für alle User der Gruppe ftpuser
# Sehr wichtig zwecks Sicherheit, aber bringt mit sich, dass auf nichts außerhalb des Homeverzeichnisses zugegriffen werden kann; einzelne Verzeichisse können über mount --bind nicht über Symlinks "herein verfachtet" werden; im Anschluss ein Beispiel
DefaultRoot ~ ftpuser
# Login nur von Mitgliedern der Gruppe ftpuser erlauben
<Limit LOGIN>
DenyGroup !ftpuser !ftpprouser
</Limit>
# Root-Login verbieten und gültige Shell verlangen (in /etc/shells)
<Global>
RootLogin off
RequireValidShell on
</Global>
# Speed erhoehen
UseReverseDNS off
IdentLookups off
----
#Ftp neustart
Debian Server ~# /etc/init.d/proftpd restart
Chrootet FTP-Benutzern oder Gruppen Verzeichnisse außerhalb des Homeverzeichnisses
#Bsp. für ein Verzeichnis von User2
# Ein Verzeichnis von User1 --> User2
# Verzeichnis bei User2 erstellen in dem die Daten landen sollen
Debian Root Server ~# mkdir /home/USER2/OrdnerTestVonUser1/
# Verzeichnis mounten; mount --bind /Ursprungsverzeichnis /Zielverzeichnis
Debian Root Server ~# mount --bind /home/USER1/OrdnerTest/ /home/USER2/OrdnerTestVonUser1/
#Anmerkung:
# über 'mount' kann man alle Mountpunte ich anzeigen lassen und über 'umount' löschen
# nach Neustart sind alle Mountpunkte weg, falls sie konsitent sein sollen sie einfach in die /etc/fstab eintragen
Quelle:
Debian Server einrichten Sarge - Linux LAMP SSL MYSQL Root Server Domain Webserver (http://www.tim-bormann.de/index.php?section=87)
#Anmeldung Admin/ root
Debian Server ~# su
#Quellen/ Paketlisten von APT aktualisieren
Debian Root Server ~# apt-get update
#System auf aktuellen Stand bringen
Debian Root Server ~# apt-get upgrade
Benutzer anlegen für Debian Server:
Debian Server ~# adduser
#anstatt 'useradd -m' fragt sie 'adduser' alles notwendige (am wichtigsten ist das Feld Full Name)
#mit "usermod" können den Benutzer problemlo später modifizieren
Debian SSHd anpassen: (wichtig vorher MUSS neuer Benutzer angelegt werden!)
Debian Root Server ~# mcedit /etc/ssh/sshd_config
# 'PermitRootLogin no' von YES auf NO Debian Server - Apache2 Installation
#Install Apache2 mit Php und Anbindung an Mysql-Server; des Weiteren Phpmyadmin zur Verwaltung der Datenbank und GD-Support für Apache zwecks grafik-verarbeitenden Scripten wie CMS-Systemen (bsp. EXPONENT (http://www.exponent-portal.de/))
Debian Root Server ~# apt-get install apache2-mpm-prefork libapache2-mod-perl2 libapache2-mod-php4 mysql-client-4.1 mysql-server-4.1 libmysqlclient10 libmysqlclient12 libmysqlclient14 php4 php4-cgi php4-cli php4-pear php4-mysql phpmyadmin php4-gd libgd2
#Anmerkung: 'prefork' ist nicht die schnellste aber kompatibelste Version in Sachen PHP im Vgl. zu 'apache2-mpm-worker'
# Phpmyadmin muss noch konfiguriert (https) und abgesichert (.htaccess) werden! Darauf gehe ich zunächst nicht ein.
#Funktionstest:
#http://IP oder http://localhost bei lokaler Installation
Troubelshooting (nur der Vollständigkeit halber):
Php und MySQL:
#Install MySQL-Server
Debian Root Server ~# apt-get install mysql-server-4.1
#Install PHPMyadmin
Debian Root Server ~# apt-get install phpmyadmin
#Install
Debian Root Server ~# apt-get install php4-gd libgd2
Anpassungen von MySQL:
#MySQL-Passwort für root setzen!!!
Debian Root Server ~# mysql -u root mysql
Debian Root Server ~# mysql> UPDATE user SET Password=PASSWORD('neues_passwort') WHERE user='root';
Debian Root Server ~# mysql> FLUSH PRIVILEGES;
Debian Root Server ~# mysql -u root -p
#Passworttest über PhpMyAdmin: http://IP/phpmyadmin; Benutzer:root und Passwort:PASSWORT
Toubelshooting Anpassung der Mysqlanbindung an den Indianer
#Php.ini anpassen
Debian Root Server ~# mcedit /etc/php4/apache2/php.ini
#Auskommentieren 'extension=mysql.so'
# Anpassung 'memory_limit = 16'
# und 'upload_max_filesize = 20' setzen (so dass später im CMS auch größere Daten hochgeladen werden können)
Debian Server - Virtuelle Hosts für Apache2
#Auskommentieren von
Debian Root Server ~# mcedit /etc/apache2/sites-available/default
#'RedirectMatch ^/$ /apache2-default/ im vhost unter /etc/apache2/sites-available/'
#einfach eine Raute davor (=Auskommentieren; Kommentieren = Raute weg nehemen), dann wird nicht vom localhost bzw. Ihrer IP auf localhost/default-apache umgeleitet
Debian Server - Namensbasierten virtuelle Host anlegen
#Sie haben eine Domain und diese zeigt auf die IP dieses Servers, dann können wir schnell für Erreichbarkeit sorgen
Debian Root Server ~#mcedit /etc/apache2/sites-available/MeineDomainDE
#Anmerkung der Name ist irrelevant nur der Inhalt ist wichtig
#Inhalt:
----
<VirtualHost * >
ServerAdmin EMAIL
ServerName Domain.de - Das Portal rund um Domains (http://www.Domain.DE)
ServerAlias Domain.DE w.Domain.DE ww.Domain.DE
DocumentRoot /var/www/PFAD/ZUR/WEBSEITE
<Directory //var/www/PFAD/ZUR/WEBSEITE>
Order Deny,Allow
Allow from all
# Don't show indexes for directories
Options -Indexes
</Directory>
</VirtualHost>
---
#F2 für speichern und F10 für schließen und fertig
#Aktivieren bzw. versymlinken des virtuellen Hosts
Debian Root Server ~# a2ensite MeineDomainDE
Debian Root Server ~# /etc/init.d/apache2 reload
#Anmerkung löschen sie nicht den default oder setzen sie die Seite nicht an erste Stelle (Reihenfolge abhänig von Reihenfolge der verlinkung; nicht nach Alphabet)
#Neustart Debian Apache und fertig
Debian Root Server ~# /etc/init.d/apache2 restart
#und fertig ist ihr Vhost
Debian Server - Namensbasierten virtuelle Host mit SSL-Verschlüsselung also https
# Zertifikat erstellen
Debian Server ~# apache2-ssl-certificate -days 365
#-days gibt die Gültigkeitsdauer an
#alle Fragen können nach belieben beantwortet werden, aber Rechnername/ Domain muss mit Vhost übereinstimmen bsp. IP oder Domain
#SSl-Modul aktivieren
Debian Server ~# a2enmod ssl
#Vhost mit SSL erstellen
Debian Server ~# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl
Debian Server ~# mcedit etc/apache2/sites-available/default-ssl
#Inhalt:
----
NameVirtualHost *:443
<VirtualHost *:443>
# SSL (START)
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/ZERTIFIKATSNAME.0
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
# SSL (ENDE)
ServerAdmin EMAIL
#kann auch einfach eine IP sein
ServerName Domain.de - Das Portal rund um Domains (http://www.Domain.DE)
ServerAlias Domain.DE w.Domain.DE ww.Domain.DE
DocumentRoot /var/www/PFAD/ZUR/WEBSEITE
<Directory //var/www/PFAD/ZUR/WEBSEITE>
Order Deny,Allow
Allow from all
# Don't show indexes for directories
Options -Indexes
</Directory>
</VirtualHost>
---
# Eintragen des SSLCertificateKeyFile /etc/apache2/ssl/ZUFALLSNAME.0
Debian Server ~# ls -l /etc/apache2/ssl/
# Der Name der datei die mit xxx.0 endet muss im vHost ergänzt werden.
#Apache den Ports noch mitteilen auf den er horchen soll
Debian Root Server ~# mcedit /etc/apache2/ports.conf
#Inhalt:
----
Listen 80
Listen 443
----
# Default-SSL aktivieren
Debian Server ~# a2ensite default-ssl
#Apache Neustart
Debian Server ~# apache2ctl restart
Debian FTP Server
#Install
Debian Server ~# apt-get install proftpd
#Gruppen
Debian Server ~# addgroup ftpprouser #uneingeschränkter user
Debian Server ~# addgroup ftpuser #eingesckränkter user
#Möglichkeit Anmeldung an System unterbinden und NUR FTP-Anmeldung für bestimmte Benutzer erlauben
#Vorbereitung
#Shell ohne Anmeldung über SSH o.ä. kopieren
Debian Server ~# cp /bin/false /bin/ftp
Debian Server ~# echo "/bin/ftp" >> /etc/shells
#Ftp-User
Debian Server ~# useradd USERNAME #legt nur den Usernamen an sonst nichts
Debian Server ~# usermod -G ftpuser USERNAME#chroot ungleich ftpprouser siehe später proftpd.conf
Debian Server ~# usermod -d /HOME/ERZEICHNIS USERNAME
Debian Server ~# usermod -s /bin/ftp USERNAME#keine Anmeldung an System
#Ftp-User per Hand gruppen zuordnen; eigentlich unnötig (dieser Schritt kann bei simpler Konfiguration übersprungen werden)
Debian Root Server ~# mcedit /etc/group
---Beispiel:
...
ftpprouser:x:1004:user1
ftpuser:x:1005:user2
---
#Proftpd-Config anpassen
Debian Root Server ~# mcedit /etc/proftpd.config
#Inhalt
----
# chroot für alle User der Gruppe ftpuser
# Sehr wichtig zwecks Sicherheit, aber bringt mit sich, dass auf nichts außerhalb des Homeverzeichnisses zugegriffen werden kann; einzelne Verzeichisse können über mount --bind nicht über Symlinks "herein verfachtet" werden; im Anschluss ein Beispiel
DefaultRoot ~ ftpuser
# Login nur von Mitgliedern der Gruppe ftpuser erlauben
<Limit LOGIN>
DenyGroup !ftpuser !ftpprouser
</Limit>
# Root-Login verbieten und gültige Shell verlangen (in /etc/shells)
<Global>
RootLogin off
RequireValidShell on
</Global>
# Speed erhoehen
UseReverseDNS off
IdentLookups off
----
#Ftp neustart
Debian Server ~# /etc/init.d/proftpd restart
Chrootet FTP-Benutzern oder Gruppen Verzeichnisse außerhalb des Homeverzeichnisses
#Bsp. für ein Verzeichnis von User2
# Ein Verzeichnis von User1 --> User2
# Verzeichnis bei User2 erstellen in dem die Daten landen sollen
Debian Root Server ~# mkdir /home/USER2/OrdnerTestVonUser1/
# Verzeichnis mounten; mount --bind /Ursprungsverzeichnis /Zielverzeichnis
Debian Root Server ~# mount --bind /home/USER1/OrdnerTest/ /home/USER2/OrdnerTestVonUser1/
#Anmerkung:
# über 'mount' kann man alle Mountpunte ich anzeigen lassen und über 'umount' löschen
# nach Neustart sind alle Mountpunkte weg, falls sie konsitent sein sollen sie einfach in die /etc/fstab eintragen
Quelle:
Debian Server einrichten Sarge - Linux LAMP SSL MYSQL Root Server Domain Webserver (http://www.tim-bormann.de/index.php?section=87)