allg. Überlegungen | spezielle Schutzgebiete | spezielle Dienste |
---|---|---|
Schutz des Rechners Datensicherung Firewall, rootkits Spam-Schutz |
Apache Samba Squid SSH SSH-Zertifikat Telnet, FTP usw. |
Empfänger : SCHUL-NETZ@LISTSERV.DFN.DE Absender : usenet-marcel at xcore.net (Marcel Noe) > http://www.netfilter.org/documentation/index.html
Ein Packetfilter (idealerweise auf einem eigenen Rechner, der sonst nichts anderes macht) schützt dich nur gegen Angriffe von aussen. Gegen innen hilft das nichts, wenn du nicht auch von innen filterst. Dann kannst du allerdings auch den entsprechenden Daemon entfernen. Ein per Firewall geschütztes System ist "Ein weicher Kern mit einer harten Schale", wie Tsutomu Shimomura einst meinte.
Die grundlegende Vorgehensweise beim Installieren eines Rechners sieht eigentlich immer so aus:
dd if=/dev/zero of=/tmp/bla.outnicht dafür sorgen, dass keine E-Mails mehr verschickt oder keine Logfiles mehr geschrieben werden können.
/etc/Schule/vollblockdie von /etc/Schule/ipfilter-start eingebunden wird.
http://medienzentrum-oberberg.de/seiten/arktur2.htm#chkrootkit https://www.spenneberg.com/197.html http://www.netfilter.org/documentation/index.html http://www.hackerthreads.org/tutorials/securing_linux.php Werner Dolle: "Rootkits" ("freeX" 5/2003 Seite 44 - 53 )Intrusion Detection System
/etc/httpd/access.conf
order deny,allow # ist die Voreinstellung, schadet aber nicht # letzter Befehl gilt # also: erst mal alles verbieten, dann einige Ausnahmen erlauben # keine Leerzeichen beim Komma! deny from all allow from 127. 192.168. 10. # Netzmaske geht auch: allow from 127. 172.16.0.0/255.240.0.0 # "localhost" (127.) muss unbedingt eingetragen seinDann ist der Apache erst mal nur fürs lokale Netz freigegeben. Er muss nach diesen Änderungen natürlich neu gestartet werden:
/etc/init.d/apache stop /etc/init.d/apache startoder
killall -HUP httpdUnd nach wenigen Minuten sollte geprüft werden, ob er die Änderungen überhaupt angenommen hat:
pgrep -l httpdsollte mehrere Nummern liefern.
/etc/samba/smb.confAbschnitt
[global]vor der "include"-Zeile!
hosts allow = 127., 192.168. # weitere lokale Netze: 10. 172.16.0.0/255.240.0.0Wer auch nachlesen will, welcher Rechner sich wann eingeloggt hat:
log file = /var/log/samba/%m.logDas Verzeichnis "/var/log/samba" muss natürlich existieren; anzulegen
mkdir -p /var/log/samba
/etc/init.d/samba stop /etc/init.d/samba startoder
killall -HUP smbd killall -HUP nmbdPrüfung auf syntaktische Richtigkeit:
testparm -s
/etc/squid/squid.conf.insowie
/etc/squid/allowed_clients
In "allowed_clients" stehen die erlaubten IP-Adressen; Vorgabe: komplette Bereiche.
In "squid.conf.in" stehen die Vorgaben für "squid.conf", die bei jedem Start des "squid" erneut übernommen werden.
Zugriff nur lokal: in "squid.conf.in" nach "Allow everything else" suchen, in der Zeile darunter abändern:
statt
http_access allow allneu
http_access deny all !allowed_hosts
/etc/init.d/squid stop /etc/init.d/squid startoder
squid -k reconfigure
Kontrollen:
pgrep -l squidmuss eine Zahl zurückgeben (der Zahlenwert ist egal)
squid -X > /home/tmp/squidconf.log 2>&1
"ssh" sollte (natürlich) nur entweder als Dämon oder aber per "inet"-Dämon laufen;
pgrep -l sshdeine Zahl liefert, dann muss der entsprechende "ssh"-Eintrag in "/etc/inetd.conf" per Kommentarzeichen ausgeblendet werden.
Wer seinen Rechner (z.B. wegen des noch kostenlosen T@School-Zugangs) ununterbrochen am Netz lässt, der sollte einerseits (z.B. per TCP-Wrapper) für "root" den Zugang per "telnet" aus dem Internet blockieren, er sollte andererseits auch für "root" den direkten Zugang von draussen blockieren.
Gelegentlich laufen (z.B. aus fernöstlichen Ländern) Automaten, die u.a. versuchen, als "root" mit simplen Passwörtern den Zugang zu schaffen.
PermitRootLogin nooder aber
PermitRootLogin without-passwordDann muss der Dämon neu gestartet werden:
/etc/init.d/sshd stop /etc/init.d/sshd startNur sicherheitshalber; wer sich gerade per SSH übers Netz eingeloggt hat, der sollte diese Befehle nicht abschicken; er sägt sonst den Ast ab, auf dem er sitzt.
ssh root@localhostmuss mit einer Fehlermeldung enden
ssh hhullen@localhostmuss klappen, wenn "hhullen" ein eingetragener Benutzer auf dem System ist.
su -und bei Nachfrage das "root"-Passwort eingeben.
# # hosts.allow Hier stehen die Rechner, denen der Zugriff erlaubt ist. # Im Gegensatz zu hosts.deny, wo mittels tcpd der # Zugriff verboten ist. Siehe man hosts_access # # Author: Reiner Klaproth, 08.06.2000 # # # Änderungen Helmut Hullen 30.8.03 # Änderungen Helmut Hullen 31.8.03 # "twist" und "spawn" ergaenzt 10.9.03 Hullen # "portmap" für NFS und NIS überarbeitet 18.9.03 Hullen # Syntax: # service-Liste: Host-Liste [: Befehl] # Man-pages hosts_access, hosts_options # erster Treffer gilt # erst mal alles, was in "inetd.conf" steht in.telnetd: 192.168., 127.: ALLOW in.telnetd: ALL: twist mail -s "%d-Zugriff von %h" root in.ftpd, in.proftpd: 192.168., 127.: ALLOW in.ftpd, in.proftpd: ALL: twist mail -s "%d-Zugriff von %h" root popper, imapd: 192.168., 127.: ALLOW popper, imapd: ALL: twist mail -s "%d-Zugriff von %h" root cvs,swat: 192.168., 127.: ALLOW cvs,swat: ALL: twist mail -s "%d-Zugriff von %h" root in.tftpd, in.identd, in.comsat: 192.168., 127.: ALLOW in.tftpd, in.identd, in.comsat: ALL: twist mail -s "%d-Zugriff von %h" root in.fingerd,in.xfingerd: 192.168., 127.: ALLOW in.fingerd,in.xfingerd: ALL: twist mail -s "%d-Zugriff von %h" root # und jetzt die Dienste jenseits von inetd.conf # bei denen muss "spawn" und "twist" nicht funktionieren sshd: 192.168., 127.: ALLOW sshd: ALL: ALLOW # sshd: ALL: spawn mail -s "%d-Zugriff von %h" root # Zugriff von draussen erlaubt # sshd ALL: DENY # Zugriff von draussen gesperrt # opensshd 3.6p1 erlaubt "spawn" und "twist", 3.7p1 anscheinend nicht # httpd: 192.168., 127.: ALLOW httpd: ALL: DENY # derzeit nicht in "/etc/inetd.conf" rsync: ALL: spawn mail -s "%d-Zugriff von h%" root # ist erlaubt, sollte nur berichtet werden portmap: 192.168.: ALLOW # für NFS und NIS portmap: 255.255.255.255 0.0.0.0 # für PC-NFS, siehe man 8 portmap portmap: ALL: DENY # "spawn", "twist" und "command xxx" funktionieren nicht; 18.9.03 Hullen ALL: 192.168., 127.: spawn mail -s "%d-Zugriff von %h" root ALL: ALL: twist mail -s "%d-Zugriff von %h" root # erst mal melden und abwürgen ALL: ALL: DENY # eigentlich überflüssig ... # Ende von "hosts.allow"Tipp am Rande: Das TCP-wrapper-Regelwerk lässt sich mithilfe von tcpdchk(8) und tcpdmatch(8) überprüfen.