Debianserver Hosteurope
Hier beschreibe ich, was ich alles an meinem Debianserver bei Hosteurope geändert habe. Die Liste ist nicht wirklich vollständig, einige Dinge sollten selbstverständlich sein bzw. bedürfen keiner weiteren Erklärung.
IP: 87.230.34.242
Todo
- Apache-SSL dokumentieren
Allgemein
#Quellen/ Paketlisten von APT aktualisieren ~# apt-get update #System auf aktuellen Stand bringen ~# apt-get upgrade
Zum Anlegen von Benutzern ist adduser nicht die schlechteste Wahl.
Und dann, wenn mindestens 1 User da ist:
# vi /etc/ssh/sshd_config 'PermitRootLogin no' von YES auf NO # /etc/init.d/ssh restart
/etc/apt/sources.list
#Das war schon hier #deb ftp://ftp.debian.org/debian stable main contrib non-free deb http://security.debian.org sarge/updates main contrib non-free
#Hab ich auskommentiert #Host Europe server: #deb ftp://80.237.136.138/mirror/ftp.debian.org/debian/ sarge main contrib non-free
#Von mir deb ftp://ftp.fu-berlin.de/pub/unix/linux/mirrors/debian/ stable main deb-src ftp://ftp.fu-berlin.de/pub/unix/linux/mirrors/debian/ stable main
Webzeug
Die allgemeine Webroot liegt jetzt in /srv/www/default/ (geändert von /var/www/)
Subversion
Für mich ist es schick, wenn ich über den Indianer auf SVN zugreifen kann. Subversion (apt-get install subversion) und das Apache-Modul (apt-get install libapache2-svn) sind installiert.
Virtual-Host-Eintrag:
<VirtualHost *:80>
ServerName svn.thomserver.de
<Location />
DAV svn
SVNParentPath /var/svn/repos
AuthType Basic
AuthName "Thoms Subversion repository"
AuthUserFile /var/svn/users
AuthzSVNAccessFile /var/svn/acl
# Satisfy Any
Require valid-user
</Location>
</VirtualHost>
Dann weiter in /var/svn/
htpasswd -c users [newusername] # -c beim erstmaligen Erstellen der Datei chown root:www-data users chmod 640 users
vi acl
[/] thaas = rw [groups] [test1:/] thaas = rw
vi create_repository.sh
#!/bin/bash
cd /var/svn/repos
svnadmin create --fs-type fsfs $1
chown -R www-data:www-data $1/{dav,db,locks}
#svnadmin create $1
#chown -R www-data:www-data $1
#chmod -R 777 $1
#chmod 770 $1
echo "I hope, the new repository "$1" was successfully created."
chmod 700 create_repository.sh
Das wars auch schon. Der Zugriff erfolgt jetzt über http://svn.thomserver.de/NAME_DES_REPOS. Wahlweise Lesezugriff über den Webbrowser oder auch alles inklusive mit Tortoise-SVN oder anderen SVN-Clients.
ProFTPd
siehe ProFTPd
Apache2 SSL
mkdir /etc/apache2/ssl/ # Zertifikat erstellen openssl req $@ -new -x509 -days 3650 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/apache.pem #Rechte chmod 600 /etc/apache2/ssl/apache.pem #noch ein lustiger Link ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0
Dann in /etc/apache2/ports.conf
Listen 443
eintragen
Die Virtual Hosts für https müssen auch noch eingestellt werden:
<VirtualHost *:443> ... SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem
Die Einrichtung folgte dem Link weiter unten, ich hab noch ein paar Änderungen mit reingetan:
CREATE VIEW view_domains AS
SELECT id, name
FROM virtual_domains
WHERE active = 1;
CREATE VIEW view_users AS
SELECT CONCAT(virtual_users.user, '@', view_domains.name) AS email,
virtual_users.password
FROM virtual_users
INNER JOIN view_domains ON virtual_users.domain_id=view_domains.id
WHERE virtual_users.active = 1;
CREATE VIEW view_aliases AS
SELECT CONCAT(virtual_aliases.source, '@', view_domains.name) AS email,
destination
FROM virtual_aliases
INNER JOIN view_domains ON virtual_aliases.domain_id=view_domains.id
WHERE virtual_aliases.active = 1;
Config-Kleinkram
/etc/vim/vimrc
Ein paar Kleinigkeiten habe ich dort auch noch auskommentiert (z.B. set background=dark)
" Linenumbers set nu " Tabstop 4 set ts=4
set noautoindent
" Anfügen eines Zeilenendes an die letzte Zeile verhindern set binary set noeol
" das hier geht irgendwie nicht, soll aber das automatische Auskommentieren verhinden, NACHFORSCHEN! " Es geht aber, wenn ich es unten eingebe set fo-=r
Kosmetik
motd
cp /etc/motd /etc/motd.bak echo "Willkommen auf Thom's Debian-Server!" > /etc/motd
bash
/etc/bash.bashrc
# Taken from /root/.bashrc export LS_OPTIONS='--color=auto' eval "`dircolors`" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -la' alias l='ls $LS_OPTIONS -lA'
alias vir='vim -R'
/etc/profile
. /etc/bash.bashrc
phpMyAdmin
Die Standard-Schriftgröße ist mit 100% viel zu groß. Deshalb muss man manuell ran. In libraries/Config.Class.php gibt es die Funktion checkFontsize. In dieser Funktion ändert man die 100% in den Wert seiner Wahl. Ich empfehle 70%.
Cronjobs
Spam und Ham
# Dieses Skript ruft mein Spamlearning auf und verschiebt die Mails auch gleich noch # @author Thomas Haas 2007-08-10 # # Ausführung ist zur vollen Stunde um 8, 12, 16 und 20 Uhr täglich # siehe man 5 crontab # 0 8,12,16,20 * * * root /usr/local/sbin/spamlearn.sh 1> /dev/null
/usr/local/sbin/spamlearn.sh
#!/bin/bash -e
SADIR=/var/lib/amavis/.spamassassin
DBPATH=/var/lib/amavis/.spamassassin/bayes
SPAMFOLDERS="\
/home/vmail/zaunpfahl.de/thom/.Spam/cur \
/home/vmail/thomashaas.de/info/.Spam/cur \
"
HAMFOLDERS="\
/home/vmail/zaunpfahl.de/thom/.Ham/cur \
"
for spamfolder in $SPAMFOLDERS ; do \
echo Learning spam from $spamfolder ; \
#nice sa-learn --spam --showdots --dbpath $DBPATH $spamfolder
nice sa-learn --spam --dbpath $DBPATH $spamfolder
done
for hamfolder in $HAMFOLDERS ; do \
echo Learning ham from $hamfolder ; \
#nice sa-learn --ham --showdots --dbpath $DBPATH $hamfolder
nice sa-learn --ham --dbpath $DBPATH $hamfolder
done
chown -R amavis:amavis $SADIR
# Verschieben der Mails
# Die Fehlerumleitung unterdrückt die Fehlermeldung, wenn das Verzeichnis leer ist
# Anmerkung offenbar steigt das Script aus, wenn hier ein Fehler käme
mv /home/vmail/zaunpfahl.de/thom/.Spam/cur/* /home/vmail/zaunpfahl.de/thom/.Spam.Old/cur/ 2> /dev/null
mv /home/vmail/zaunpfahl.de/thom/.Ham/cur/* /home/vmail/zaunpfahl.de/thom/.Ham.Old/cur/ 2> /dev/null
mv /home/vmail/thomashaas.de/info/.Spam/cur/* /home/vmail/zaunpfahl.de/thom/.Spam.Old/cur/ 2> /dev/null
Reinigen der Spamordner
# Dieses Skript löscht alte Spammails (älter als 7 Tage) aus den Spamablagen
# @author Thomas Haas 2007-08-20
#
# Ausführung ist zur vollen Stunde um 5 Uhr morgens täglich als User vmail
# siehe man 5 crontab
#
0 5 * * * vmail find /home/vmail/*/*/.Spamablage/*/ -mtime +7 -exec rm {} \;
# nix@thomserver.de ist quasi die Muelltonne, da wird alles nur 1 Tag aufgehoben
0 5 * * * vmail find /home/vmail/thomserver.de/nix/cur/* -mtime +1 -exec rm {} \;
0 5 * * * vmail find /home/vmail/thomserver.de/nix/cur/* -mtime +1 -exec rm {} \;
# horst@zaunpfahl.de ist eine Zweit-Muelltonne, die hebt die Mails 7 Tage auf
0 5 * * * vmail find /home/vmail/zaunpfahl.de/horst/new/* -mtime +7 -exec rm {} \;
0 5 * * * vmail find /home/vmail/zaunpfahl.de/horst/new/* -mtime +7 -exec rm {} \;
Logclean
#Um 4 Uhr nachts die Maillog wegrotieren, die wird riesig #dann syslogd neu starten 4 0 4 * * * root mv /var/log/maillog /var/log/maillog.old; kill -1 `pidof syslogd`
FTP
Die Installation von proFTPd ist etwas buggy, deshalb:
# Alle 3 Minuten wird ueberprueft, ob der FTP-Dienst noch laeuft und er wird # ggf. neu gestartet */3 * * * * root /root/ftpteststart.sh
/root/ftpteststart.sh
#!/bin/bash # wenn der ProFTPs nicht laeuft, wird er eben gestartet test -f /var/run/proftpd.scoreboard || /usr/sbin/proftpd
Links
- http://workaround.org/articles/ispmail-etch/ (hier habe ich mich eher orientiert)
- http://workaround.org/articles/ispmail-sarge/
Notizen
subversion libapache2-svn mkdir /var/svn svnadmin create --fs-type fsfs /var/svn/svn_test groupadd subversion chown -R www-data:subversion /var/svn/* chmod -R 770 /var/svn/* ## 87.230.34.242 svn import -m "importing test over ssh+svn" ~/TEST/ svn+ssh://87.230.34.242/var/svn/svn_test/trunk svn co svn+ssh://87.230.34.242/var/svn/svn_test/trunk testcheckout
Wie auch immer das hier passieren konnte...
/etc/mailname lvps87-230-32-18.dedicated.hosteurope.de
Ich habs dann auch entsprechend geändert...