Debianserver Hosteurope: Unterschied zwischen den Versionen

Aus Thoms Wiki
Zur Navigation springenZur Suche springen
all>Verkehrsminister
K 42 Versionen importiert
 
(kein Unterschied)

Aktuelle Version vom 18. April 2020, 13:55 Uhr

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

Email

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

Spam/Virencheck für E-Mails noch erweitern

apt-get install razor pyzor

Nun müssen wir SpamAssassin mitteilen, diese Programme zu verwenden

vi /etc/spamassassin/local.cf

[...]
#pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1
#razor use_razor2 1 razor_config /etc/razor/razor-agent.conf
[...]

Starte danach amavisd-new neu:

/etc/init.d/amavis restart

Quelle: [1]

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 ab 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
5 5 * * * vmail find /home/vmail/thomserver.de/nix/cur/* -mtime +1 -exec rm {} \;
10 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
15 5 * * * vmail find /home/vmail/zaunpfahl.de/horst/new/* -mtime +7 -exec rm {} \;
20 5 * * * vmail find /home/vmail/zaunpfahl.de/horst/new/* -mtime +7 -exec rm {} \;
#
# Und Amavis hat ja auch noch seine eigene Spamablage. Diese
# hatte jetzt nach 2 Jahren oder so die stattliche Größe von
# 4,7 GB !!! erreicht. Ich hab doch grad mal 15 GB Speicherplatz!
25 5 * * * amavis /usr/local/bin/clean_virusmails.sh

/usr/local/bin/clean_virusmails.sh

#!/bin/bash

# Der Ordner /var/lib/amavis/virusmails füllt sich so schnell,
# dass ich da nicht die Dateien, die älter als x Tage sind
# löschen kann. Also verschiebe ich den ganzen Ordner und lege
# ihn neu an. Es gibt dann noch Versionen von allen Tagen der Woche.

ONLYUSER="amavis"
test `/usr/bin/whoami` != $ONLYUSER && echo "Dieses Skript soll nur vom User "$ONLYUSER" ausgefuehrt werden!" && exit

# $TAG enthält jetzt den Tag der Woche beginnend mit 0
TAG=`/bin/date +%w`

WDIR="/var/lib/amavis/"
cd $WDIR

OLDDIR="virusmails"
NEWDIR="virusmails_"$TAG

rm -fr $NEWDIR
mv -f $OLDDIR $NEWDIR
mkdir $OLDDIR

Logclean

#Um 4 Uhr nachts die Maillog wegrotieren, die wird riesig
#dann syslogd neu starten

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

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...