EDV:SecureLinuxPC

From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽

Absichern eines Linux PCs

Hier gibt es verschiedene Tipps wie man einen Linux PC absichert. Die meisten Sachen sind von einer älteren Seiten übernommen worden, sollten allerdings noch so oder so ähnlich gültig sein.

Mail

Aufgrund der speziellen mail-Situation in Heidelberg (siehe auch Mail-Firewall) muss man dem lokalen MTA auf eine bestimmte Weise konfigurieren, wenn der Rechner mails verschicken können soll. Und zwar müssen alle Mails über den Mailserver des KIP versendet werden anstatt direkt (Smarthost).

sendmail (Bsp. SuSe)

In der Datei /etc/rc.config.d/sendmail.rc.config müssen die folgenden Eintragungen gemacht werden.

  SENDMAIL_TYPE="yes"
  SENDMAIL_SMARTHOST="[mail.kip.uni-heidelberg.de]"

Danach als root 'SuSEconfig' eingeben. Es ist übrigens nicht so ohne weiteres möglich, dass Ihr Rechner mails unter [Benutzername]@[Rechnername].kip.uni-heidelberg.de empfängt! Auch das hat mit dem mail-firewall zu tun.

exim4 (Bsp. debian)

Test ob exim installiert ist:

aptitude search exim4

Die /etc/exim4/update-exim4.conf.conf neu erstellen:

cp /etc/exim4/update-exim4.conf.conf /etc/exim4/update-exim4.conf.conf.old
grep '^#' /etc/exim4/update-exim4.conf.conf.old > /etc/exim4/update-exim4.conf.conf
echo "
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='$HOSTNAME.kip.uni-heidelberg.de'
dc_local_interfaces='127.0.0.1'
dc_readhost='$HOSTNAME.kip.uni-heidelberg.de'
dc_relay_domains=
dc_minimaldns='false'
dc_relay_nets='127.0.0.1/24'
dc_smarthost='mail.kip.uni-heidelberg.de'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'" >>/etc/exim4/update-exim4.conf.conf

echo "$HOSTNAME.kip.uni-heidelberg.de" > /etc/mailname

Exim updaten und neu starten:

update-exim4.conf
/etc/init.d/exim4 restart
echo "Init-Mail-Test from Host '$HOSTNAME' - $RANDOM" | mail -s "Init-Mail-test from $HOSTNAME" root

root-mails

Verschiedentlich werden Fehlermeldungen, Warnungen etc. auf einem Linux-Rechner als mail an den User 'root' verschickt. Der/Die verantwortungsvolle Linux-User/in loggt sich aber normalerweise nur als 'root' ein, wenn administratives gemacht werden soll. D.h. er/sie wird diese Meldungen sehr spät oder nie erhalten. Deshalb sollte man für den User 'root' ein alias einrichten:

/etc/aliases:

postmaster: root
...
root: sesselm

sesselm: sesselm@kip.uni-heidelberg.de

hosts.allow, hosts.deny

In den beiden Dateien /etc/hosts.allow und /etc/hosts.deny kann man für viele Dämonen und Dienste festlegen, welcher fremde Rechner was mit unserem Rechner machen darf. Die Syntax ist dabei '<daemon> : <Rechner bzw Netz>'. Siehe auch 'man 8 tcpd' oder 'man 5 hosts_access'.Übrigens reagieren nur Dämonen, die mit dem tcp-wrapper kompilliert wurden. Wichtig dabei ist, dass zuerst in der Datei /etc/hosts.allow geprüft wird, ob eine bestimmte Verbindung explizit erlaubt ist. Wenn sie nicht explizit erlaubt ist, wird in /etc/hosts.deny geprüft, ob diese Verbindung explizit verboten ist. Ist in beiden Listen kein Treffer, wird die Verbindung erlaubt(!!). Deshalb empfehle ich als erstes: Alles was nicht explizit erlaubt ist, ist verbieten! Dazu schreibt man in /etc/hosts.deny:

 ALL : ALL

D.h. ALLe Dienste sind für ALLe Rechner verboten. In der Datei /etc/hosts.allow kann (und muss) man jetzt festlegen, was erlaubt sein soll. Ein Beispiel wäre

 ALL : localhost
 ALL : 127.0.0.1
 ALL : 129.206.127.0/255.255.255.0
 ALL : 129.206.176.0/255.255.248.0
 sshd : 129.206.0.0/255.255.0.0

Dem lokalen Rechner soll natürlich alles erlaubt sein. Auch dem lokalen Subnetz trauen wir. Sonst aber ist nur noch ssh aus dem Subnetz 129.206.0.0 (uni-heidelberg.de) möglich. Alles andere ist verboten.

syslog

Oft ist es bei Rechner-Einbrüchen von Crackern das wichtigste, erst einmal zu erfahren, dass dieser stattgefunden hat. Dazu ist es nützlich, die systemeigene SYSLOG-Datei auszuwerten. Nach einem erfolgten Einbruch ist dieser Datei aber nicht zu trauen, da sie manipuliert worden sein kann. Deshalb ist es in einem Netzwerk von vielen Computern (und das Netz vom KIP kann wirklich dazu gezählt werden) besser, wenn man einen Syslog-Server einrichtet, der die syslog-Meldungen aller anderen Rechner sammelt und auswertet. Der syslog-Server ist syslog.kip.uni-heidelberg.de- Alles was Sie tun sollten, ist jetzt Ihr syslog-system so einzustellen, dass von allen Meldungen eine Kopie an den jeweiligen syslog-Server geschickt wird. Dazu muss man nur in der Datei '/etc/syslog.conf' die folgende Zeile hinzufügen:

*.*		@syslog.kip.uni-heidelberg.de

Danach entweder neu starten oder aber als root 'rcsyslogd reload' eingeben.

Beides zusammen sollte meistens so funktionieren:

echo -e '*.*\t@syslog.kip.uni-heidelberg.de'  >>/etc/syslog.conf
/etc/init.d/sysklogd restart

X11-Sitzungen, von anderen Rechnern erlauben

Das braucht nun wirklich nicht jeder, dass man von einem anderen Rechner oder X-Terminal eine vollständige X-Sitzung auf den SuSE-Linux-Rechner machen kann. Aber wer es machen möchte: Zunächst ist diese Funktion bei der Standard-Installation deaktiviert. Zum Aktivieren:

1. In der Datei /etc/X11/xdm/xdm-config (SuSE7.1ff) ist die letzte Zeile mit

DisplayManager.requestPort:    0

wegzukommentieren. Das macht man in dieser Datei, indem man ein Ausrufungszeichen (!) davorsetzt! Also:

!DisplayManager.requestPort:    0

2. Jetzt sollte man noch festlegen, wer ein Login-Fenster bekommen darf bzw. wer eine Auswahlliste (per XDMCP) der verfügbaren Rechnern bekommt. Beides wird in der Datei /etc/X11/xdm/Xaccess (SuSE7.1ff) geregelt. Zunächst sollte man die Zeile

*               #any host can get a login window

wegzukommentieren. Das macht man in dieser Datei, indem man ein Gatter-zeichen (#) davorsetzt! Also:

#*              #any host can get a login window

Als Vorschlag könnte man es erlauben, dass Rechner des KIP eine Zugangsmöglichkeit bekommen, dazu einfach die Zeile

*.kip.uni-heidelberg.de

einfügen.

Ähnlich sollte man es mit der Auswahlliste machen: Einfach den Eintrag

*   CHOOSER BROADCAST    #any indirect host can get a chooser

ändern in

#*  CHOOSER BROADCAST    #any indirect host can get a chooser
*.kip.uni-heidelberg.de CHOOSER BROADCAST

(Man kann sich natürlich auch eine Liste selbst zusammenstellen, das ist aber meist in der Datei Xaccess erklärt)

3. Bei dem neueren KDE2 muss jetzt noch zusätzlich die Konfigurationsdatei /opt/kde2/share/config/kdm/kdmrc angepasst werden. Dort befindet sich eine Rubrik '[Xdmcp]'. Diese sollte etwa so aussehen:

[Xdmcp]
Enable=true
Xaccess=/usr/X11R6/lib/X11/xdm/Xaccess
Willing=/usr/X11R6/lib/X11/xdm/Xwilling

Der default-Wert für 'Enable' ist 'False' und muss auf 'True' geändert werden.

4. Den Rechner neu starten oder wahlweise als root 'rcxdm restart' eingeben. Doch Vorsicht! Das sollte man möglichst nicht aus einer X-Sitzung heraus machen, da dabei die laufenden X-Sitzungen beendet (oder besser: abgewürgt) werden.

X-Terminal (Der Linux-Rechner als X-Terminal)

Dies ist der zu dem eben Beschriebenen umgekehrte Fall. Jetzt möchte ich den Linux-Rechner als X-Terminal verwenden. Eine einfache Möglichkeit ist: Mit Hilfe von Ctrl-Alt-F1 auf die Textkonsole wechseln und als 'root' einloggen. Als root gibt man dann ein:

X :1 -query fremderRechner

wobei 'fremderRechner' derjenige Rechner ist, zu man eine X-Sitzung aufbauen möchte. Man kann auch einen Rechner nach seiner Auswahlliste fragen (XDMCP):

X :1 -indirect fremderRechner

Es handelt sich dabei um eine vollständige Sitzung. Es wird dabei nicht nur die Grafikausgabe einer einzelnen Anwendung übertragen. Nützlich kann das zum Beispiel dann sein, wenn man für eine bestimmte Anwendung ein X-Terminal braucht, dessen Farbtiefe genau 8 Bit beträgt. Die 'normal' Sitzung muss man deswegen nicht umkonfigurieren (wo man gerne 16-, 24- oder 32-Bit Farbtiefe hat). Diese zweite X-Sitzung kann man nämlich auch starten mit:

X :1 -bpp 8 -query fremderRechner

bpp steht für Bits-Per-Pixel. Man kann übrigens mit Hilfe von Ctrl-Alt-F7 wieder zur 'normalen' X-Sitzung wechseln, das ist dann die Konsole ':0'. Die von uns neu gestartete Konsole ist ':1' und zu der kann man mit Ctrl-Alt-F8 wechseln. ':2' wäre dann mit Ctrl-Alt-F9 erreichbar.

Achtung: neuere Linux-Versionen: Bei den neueren Versionen, insbesondere wenn man XFree86 Version 4 installiert hat, ändert sich der oben erwähnte Aufruf für die 256-Farben-Variante. Die Zeile lautet dann:

X :1 -depth 8 -query fremderRechner

Eventuell muss man auch die Datei /etc/X11/XF86Config ändern und bei der Farbtiefe 8-Bit noch die gewünschte Auflösung hinzufügen: Beispiel:

SubSection "Display"
    Depth      32
    Modes      "1280x1024" "1024x768" "800x600" "640x480" 
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "640x480"

muss dann geändert werden in :

SubSection "Display"
    Depth      32
    Modes      "1280x1024" "1024x768" "800x600" "640x480" 
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "1280x1024" "1024x768" "800x600" "640x480"

fou4s installieren

fou4s ist übrigends 'Fast Online Update for SuSE'