Zum Inhalt springen


PHPWelt.net Blog - Ein weiteres tolles WordPress-Blog


16. März 2008

Wie kann ich meinen Server absichern?

Ein Webserver sendet von Haus aus viele Informationen mit um sich zu identifizieren. Dem normalen Webseiten besucher nützen die Zusatzinformationen recht wenig. Sie werden eigentlich nur für Statistikzwecke verwendet. Eigentlich.. uneigentlich kann ein angreifer so verwundbare Systeme erkennen. So sendet der Server z.B. folgendes: “Apache/1.3.27 (Linux/SuSE) PHP/4.3.1″ Ist nun im Apache oder PHP dieser Version ein Fehler, ist es für den Angreifer einleichtes. Um es potentiellen Angreifern etwas zu erschweren kann man die mitgesanten Informationen etwas beschneiden.
Apache
In der http.conf den Eintrag “ServerToken Prod” editieren/erstellen.
Lighttpd
in der lighttpd.conf den Eintrag server.tag editieren/erstellen.
PHP
Bei PHP lässt sich die Ausgabe nur unterdrücken und leider nicht modifizuiern. Editiere/erstelle dazu in der php.ini den Eintrag expose_php und setze in auf off.

Sonstige
Nicht nur der Webserver “verrät” potentielle Sicherheitslücken, sondern auch die FTP-Software ist gesprächig:
vsFTPD
In der vsftpd.conf den Eintrag ftpd_banner editieren/erstellen.


23. Februar 2008

Dienste unter Linux deaktivieren

Verwendet man ein Vorinstalliertes Linux so sind oftmals viele unnütze Dienste installiert, die man nicht benötigt. Diese bergen ein erhöhtes Sicherheitsrisiko und fressen unnütz Arbeitsspeicher.
Zum testweisen deaktivieren (%%dienst%% bitte durch einen zu deaktivieren Dienst ersetzten):

/etc/init.d/%%dienst%% stop

Damit der Dienst nicht automatisch beim Neustart startet, muss dieser im “Autostart” deaktiviert werden. Unter Debianverwanten Disdributionen befinden sich die Autostartdateien unter

/etc/rc%%runlevel%%.d

Das Runlevel für Mehrbenutzer- und Netzwerkbetrieb ist 3. Also befinden sich die Relevanten Dateien im Ordner:

/etc/rc3.d

Bei einer Susedistribution kann man entweder über Yast oder chkconfig den Dienst dauerhaft deaktiveren. Per Yast:

Yast > System > Runlevel-Editor

oder per chkconfig:

chkconfig --list/del/add

18. Februar 2008

Ubuntu auf einen VServer installieren

Zuerst muss der VServer in den Reparaturzustand versetzt werden. Dann loggen wir uns in den VServer via SSH ein und führen folgende Befehle aus:

cd /repair
mkdir /repair/save
mv * /repair/save/

rm .gnupg -R
rm .rnd -R

wget http://www.gurusatwork.com/debootstrap-0.3.3.0ubuntu2-2.noarch.rpm

rpm -ihv debootstrap-0.3.3.0ubuntu2-2.noarch.rpm

debootstrap --arch i386 dapper /repair/ ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com

Jetzt ist Ubuntu quasi virtuell im Verzeichniss /repair/ installiert. Nun geht es an die Konfiguration. Als erstes editieren wie die Datei sources.list:

vi /repair/etc/apt/sources.list

Und fügen folgenden Inhalt ein:

#Ubuntu
deb ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com dapper main restricted universe multiverse
deb-src ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com dapper main restricted universe multiverse

#Ubuntu Updates
deb ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com dapper-updates main restricted universe multiverse
deb-src ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com dapper-updates main restricted universe multiverse

#Ubuntu Backports
deb ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com dapper-backports main restricted universe multiverse
deb-src ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com dapper-backports main restricted universe multiverse

#Ubuntu Security
deb ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com dapper-security main restricted universe multiverse
deb-src ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com dapper-security main restricted universe multiverse

vi /repair/etc/hosts
127.0.0.1       localhost.localdomain localhost

Nun wird die Datei resolv.conf editiert. Normalerweise sollte in dieser Datei schon alles korrekt sein. Bitte ersetzt hierbei %%IP%% durch die IP eures Nameservers.

vi /repair/etc/resolv.conf
nameserver %%NSIP%%
vi /repair/etc/fstab
proc  /proc  proc  defaults        0       0
none   /dev/pts devpts  rw               0       0
/dev/vzfs /  vzfs    defaults,remount    0       0

Bei dem editieren der datei interfaces, bitte wieder %%IP%% ersetzten. Dieses mal wird %%IP%% durch die IP-Adresse des VServers ersetzt.

vi /repair/etc/network/interfaces
auto lo
iface lo inet loopback

auto venet0
iface venet0 inet static
  address 127.0.0.1
  broadcast 0.0.0.0
  netmask 255.255.255.255

auto venet0:0
iface venet0:0 inet static
  address %%IP%%
  netmask 255.255.255.255
vi /repair/etc/init.d/route
#!/bin/sh
#
# /etc/init.d/route
#

set -e

case "$1" in
  start)
    route add -net 191.255.255.0 netmask 255.255.255.0 dev venet0
    route add default gw 191.255.255.1 dev venet0
    exit 0
    ;;

  stop|restart|force-reload)
    exit 0
    ;;

  *)
    echo "Usage: $0 {start|stop|restart|force-reload}" >&2
    exit 3
    ;;
esac
chmod 755 /repair/etc/init.d/route
cd /repair/etc/rc3.d
ln -s ../init.d/route S12route
cd /repair/etc/rc2.d
ln -s ../init.d/route S12route


mount -t proc /proc /repair/proc
mount -t devpts /dev/pts /repair/dev/pts


chroot /repair /bin/bash
source /etc/profile

apt-get update && apt-get upgrade

dpkg-reconfigure passwd

passwd

hostname > /etc/hostname

apt-get install openssh-server mc quota

exit

Und zum Schluss ganz wichtig, das unmounten:

umount /repair/proc
umount /repair/dev/pts

logout

Nun verlassen wir den Reparaturmodus des VServers.

Sobald der Server wieder per SSH erreichbar ist, loggen wir uns ein und kommentieren 6 Zeilen in der inittab aus:

vi /etc/inittab
#1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6