#########################
# ACHTUNG #
#########################
das script wurde für einen frisch instalierten debian woody server geschrieben
es sollte also nicht auf schon eingerichteten systemen benutzt werden
genauer gesagt werden erstmal einige grundprogramme auf den neusten stand gebracht:
nmap screen gcc bzip2 apt wget sed
danach werden apache2, libXML (wird für das kompilieren von PHP benötigt) und MySQL installiert
dann wird php 5.0.4 kompiliert und installiert
nun wird der proFTPd und ne java JRE installiert und mit meiner config eingerichtet
als kleine hilfe wird ein script installiert mit dem man einfach per /etc/neueruser.sh einen neuen user anlegen kann
das besondere an dem script ist das nach eingabe der domain automatisch das homeverzeichnis angelegt wird, die domain eingerichtet, die rechte gesetzt und der apache restartet
zu guter letzt wird ein defaulthost eingerichtet und phpmyadmin runtergeladen, entpackt und ne domain dafür eingerichtet
wäre nett wenn ihr euch das dingen mal anguckt und sagt was noch fehlt (bis auf den mailserver) oder was man verbessern könnte
einfach den folgenden code in eine datei kopieren und ausführbar machen sowie ausführen
Code: Select all
#!/bin/bash
echo "Herzlich willkommen bei der Installation eines Webservers."
echo "Dieses Installationsscript wurde von PyroGX entwickelt."
echo "Sie benutzen die Version 0.1 Beta 1"
echo "Start der installation ..."
echo -n "Bitte gib die Standarddomain ein (bsp. pyrogx.de): "
read domain
echo "Lege Stadardordner an..."
cd /etc/skel
mkdir html
mkdir log
mkdir temp
mkdir cgi
cd /usr
mkdir orginaldateien
echo "Ã?ndere die Sourcelisten ..."
cd /etc/apt/
mv /etc/apt/sources.list /usr/orginaldateien/sources.list
echo 'deb http://security.debian.org/ testing/updates main contrib non-free
deb ftp://ftp.uni-erlangen.de/pub/Linux/debian/ testing main non-free contrib
deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main
deb http://security.debian.org/ woody/updates main contrib non-free
#deb ftp://ftp.serverkompetenz.de/debian stable main contrib non-free
#deb-src ftp://ftp.serverkompetenz.de/debian stable main contrib non-free' >> /etc/apt/sources.list
################
#Update der Quellen
echo "Update der Quellen ..."
################
apt-get update
################
#Sonstige Programme Installieren / Upaten
echo "Sonstige Programme Installieren / Updaten ..."
################
apt-get install nmap screen gcc bzip2 apt wget sed
################
#Apache Installieren
echo "Apache2 Installieren ..."
################
apt-get install apache2 apache2-common apache2-doc apache2-mpm-prefork apache2-dev
################
#LibXML installieren
echo "LibXML installieren ..."
################
apt-get install libxml2-dev libxml2-utils
################
#MySQL Installieren
echo "MySQL Installieren ..."
echo -n "Bitte geben sie das Rootpasswort für MySQL ein: "
read sqlpasswort
################
apt-get install mysql-server mysql-client mysql-common libmysqlclient12-dev
/usr/bin/mysqladmin -u root password $sqlpasswort
################
#PHP 5.0.4 installieren
echo "PHP 5.0.4 installieren ..."
################
cd /usr/src
mkdir php
cd php
wget http://de.php.net/get/php-5.0.4.tar.bz2/from/this/mirror
tar xjvf php-5.0.4.tar.bz2
cd php-5.0.4
./configure --enable-memory-limit --enable-track-vars --with-pcre-regex --with-mysql --without-sqlite --without-mm --with-apxs2=/usr/bin/apxs2 --prefix=/etc/php
make && make install
################
#proFTPd installieren
echo "proFTPd installieren ..."
################
apt-get install proftpd
addgroup ftpuser
cp /bin/false /bin/ftp
echo "/bin/ftp" >> /etc/shells
apt-get install openssl
openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/proftpd.cert.pem -keyout /etc/ssl/certs/proftpd.key.pem
mv /etc/proftpd.conf /usr/orginaldateien/proftpd.conf
echo -n "Bitte gib einen Namen für den FTP-Server ein:"
read ftpserver
echo 'ServerName "'$ftpserver'"
ServerType standalone
DeferWelcome off
ShowSymlinks on
MultilineRFC2228 on
DefaultServer on
AllowOverwrite on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayFirstChdir .message
DenyFilter *.*/
Port 21
MaxInstances 30
User nobody
Group nogroup
<Directory /*>
Umask 022 022
AllowOverwrite on
</Directory>
DefaultRoot ~ ftpuser
<Limit LOGIN>
DenyGroup !ftpuser
</Limit>
<Global>
RootLogin off
RequireValidShell on
</Global>
UseReverseDNS off
IdentLookups off
LogFormat default "%h %l %u %t "%r" %s %b"
LogFormat auth "%v [%P] %h %t "%r" %s"
LogFormat write "%h %l %u %t "%r" %s %b"
ExtendedLog /var/log/ftp_auth.log AUTH auth
ExtendedLog /var/log/ftp_access.log WRITE,READ write
TLSEngine on
TLSLog /var/log/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem
TLSVerifyClient off
TLSRequired on' >> /etc/proftpd.conf
################
# Java JRE Installieren
################
# DL link unter http://java.sun.com/j2se/1.4.2/download.html holen
################
echo -n "Bitte holen sie sich Downloadlink für Java unter http://java.sun.com/j2se/1.4.2/download.html und geben ihn hier ein:"
read javadllink
cd /etc/
mkdir java
cd /usr/src
mkdir java
cd java
wget $javadllink
mv -f j2re-1_4_2_08-linux-i586.bin?* j2re-1_4_2_08-linux-i586.bin
chmod 755 j2re-1_4_2_08-linux-i586.bin
./j2re-1_4_2_08-linux-i586.bin
################
#Ã?nderungen an der adduser.conf vornehmen
################
cd /etc
mv /etc/adduser.conf /usr/orginaldateien/adduser.conf
echo 'DSHELL=/bin/ftp
DHOME=/var/www
GROUPHOMES=no
LETTERHOMES=no
SKEL=/etc/skel
FIRST_SYSTEM_UID=100
LAST_SYSTEM_UID=999
FIRST_UID=1000
LAST_UID=29999
USERGROUPS=no
USERS_GID=1000
QUOTAUSER=""
DIR_MODE=0755
SETGID_HOME=no' >> adduser.conf
################
#Script zum anlegen von neuen Usern anlegen
################
echo '#!/bin/bash
echo -n "Bitte die Domain eingeben (gleichzeitig der Benutzernamen): "
read domain
echo "## Erstelle Benutzer $username..."
useradd -d /var/www/$domain -g ftpuser -s /bin/ftp $domain
echo "## Erstelle Heimatverzeichnis..."
mkdir /var/www/$domain
echo "## Richte den Virtuellen Host ein..."
echo "<VirtualHost *>
ServerName $domain
ServerAdmin webmaster@'$domain'
DocumentRoot /var/www/$domain/html
php_admin_value open_basedir /var/www/$domain/html/
php_admin_value upload_tmp_dir /var/www/$domain/temp
php_admin_value session.save_path /var/www/$domain/temp/
php_admin_value safe_mode on
ErrorLog /var/www/$domain/log/error.log
LogLevel warn
CustomLog /var/www/$domain/log/access.log combined
<Directory /var/www/$domain/html>
Order allow,deny
Allow from all
AllowOverride All
</Directory>
ServerSignature Off
</VirtualHost>" >> /etc/apache2/sites-available/default
echo "## Kopiere verzeichnisse..."
cp -r /etc/skel/* /var/www/$domain/
echo "## Lege Stadarddatei an..."
echo "<head><title>Neue Homepage auf '$domain' eingerichtet</title></head><body><center>Soeben wurde die domain <b>$domain</b> auf diesem Server eingerichtet.</center>" >> /var/www/$domain/html/index.html
echo "## Setze Benutzerberechtigungen..."
chown $domain:ftpuser /var/www/$domain/*
chmod 1770 /var/www/$domain/*
chown $username:ftpuser /var/www/$domain/
chmod 1770 /var/www/$domain/
chown $username:ftpuser /var/www/$domain/html/*
chmod 1770 /var/www/$domain/html/*
passwd $username
echo "## Starte den Apache neu..."
apache2 -k restart
echo "## Fertig!!!"' >> /etc/neueruser.sh
chmod u+x neueruser.sh
################
#Webuser einrichten
echo "Webuser einrichten ..."
echo -n "Bitte geben Sie den Usernamen für den Default-Host ein: "
read webuser
echo -n "Bitte geben Sie das Passwort für den Default-Host ein: "
read webpass
echo -n "Es wird für phpMyAdmin ein eigener User angelegt, bitte geben Sie hier das Passwort für den User (phpmyadmin) ein: "
read phppass
################
useradd -g ftpuser -d /var/www/www.$domain/ -s /bin/ftp -p $webpass $webuser
useradd -g ftpuser -d /var/www/phpmyadmin.$domain/ -s /bin/ftp -p $phppass phpmyadmin
################
# einrichtung es default-hosts
################
usermod -G ftpuser www-data
mv /etc/apache2/sites-available/default /usr/orginaldateien/default
cd /var/www/
rm -r /var/www/*
mkdir www.$domain
cd www.$domain
cp -r /etc/skel/* /var/www/www.$domain/
echo "<head><title>Server fertig eingerichtet</title></head><body><center>Soeben wurde der Server mit der Domain: <b>"$domain"</b> fertig eingerichtet.<br /><br />Der Server wurde mit dem Installscript von PyroGX installiert.</center>" >> /var/www/www.$domain/html/index.html
chown $webuser:ftpuser /var/www/www.$domain/*
chmod 1770 /var/www/www.$domain/*
chown $webuser:ftpuser /var/www/www.$domain/
chmod 1770 /var/www/www.$domain/
chown $webuser:ftpuser /var/www/www.$domain/html/*
chmod 1770 /var/www/www.$domain/html/*
useradd -g group -d home -s shell -p passwd name
echo 'NameVirtualHost *
<VirtualHost *>
ServerName '$domain'
ServerAdmin webmaster@'$domain'
DocumentRoot /var/www/www.'$domain'/html
ErrorLog /var/www/www.'$domain'/log/error.log
LogLevel warn
CustomLog /var/www/www.'$domain'/log/access.log combined
<Directory /var/www/www.'$domain'/html>
Order allow,deny
Allow from all
AllowOverride All
</Directory>
ServerSignature Off
</VirtualHost>' >> /etc/apache2/sites-available/default
################
# phpMyAdmin installieren
################
cd /var/www/
mkdir phpmyadmin.$domain
cd phpmyadmin.$domain
cp -r /etc/skel/* /var/www/phpmyadmin.$domain/
cd /usr/src
mkdir phpmyadmin
cd phpmyadmin
wget http://mesh.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.6.2.tar.bz2
tar xjvf phpMyAdmin-2.6.2.tar.bz2
cd phpMyAdmin-2.6.2
cp -r /usr/src/phpmyadmin/phpMyAdmin-2.6.2/* /var/www/phpmyadmin.$domain/html
echo '<VirtualHost *>
ServerName phpmyadmin.'$domain'
ServerAdmin webmaster@'$domain'
DocumentRoot /var/www/phpmyadmin.'$domain'/html
ErrorLog /var/www/phpmyadmin.'$domain'/log/error.log
LogLevel warn
CustomLog /var/www/phpmyadmin.'$domain'/log/access.log combined
<Directory /var/www/phpmyadmin.'$domain'/html>
Order allow,deny
Allow from all
AllowOverride All
</Directory>
ServerSignature Off
</VirtualHost>' >> /etc/apache2/sites-available/default
apache2 -k restart
echo "Bitte passen Sie die config von phpMyAdmin manuell unter /var/www/phpmyadmin.pyrogx.de/html/config.inc.php an Ihre bedürfnisse an!!!"
echo "FERTIG !!! Vielen dank das Sie mein Script zum installieren eines Webservers benutzen."
ich freue mich über jede konstruktive kritik

