EDV:SecureLinuxPC: Difference between revisions
(erstmal speichern) Â |
mNo edit summary  |
||
(2 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
Die meisten Sachen sind von einer älteren Seiten übernommen worden, sollten allerdings noch so oder so ähnlich gültig sein. |
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 [http://www.urz.uni-heidelberg.de/AllgemeinInfo/Ordnungen/firewall.shtml Mail-Firewall]) muss man dem lokalen [http://de.wikipedia.org/wiki/Mail_Transfer_Agent MTA] auf eine bestimmte Weise konfigurieren, wenn der Rechner mails verschicken können soll. |
Aufgrund der speziellen mail-Situation in Heidelberg (siehe auch [http://www.urz.uni-heidelberg.de/AllgemeinInfo/Ordnungen/firewall.shtml Mail-Firewall]) muss man dem lokalen [http://de.wikipedia.org/wiki/Mail_Transfer_Agent 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'''). |
Und zwar müssen alle Mails über den Mailserver des [[KIP]] versendet werden anstatt direkt ('''Smarthost'''). |
||
Line 46: | Line 46: | ||
/etc/init.d/exim4 restart |
/etc/init.d/exim4 restart |
||
echo "Init-Mail-Test from Host '$HOSTNAME' - $RANDOM" | mail -s "Init-Mail-test from $HOSTNAME" root |
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" |
|||
== [[EDV:SecureLinuxPC/fou4s|fou4s installieren]] == |
|||
'''fou4s''' ist übrigends 'Fast Online Update for SuSE' |
Latest revision as of 12:25, 26 November 2007
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.
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'