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"