Neues "sicher" Linux aufsetzen

Linux ist Linux, egal ob das nun SuSE, Debian oder Foobar heisst. Und Linux ist heutzutage keineswegs mehr das sichere System, das es einmal war.

Wenn du mit SuSE gut klargekommen bist, dann bleib bei SuSE. Dort hast du dann allerdings 2 Möglichkeiten dich um dein System zu kümmern. Entweder du gehst den Weg über YaST oder du deaktivierst SuSEConfig und kannst das System dann auch ohne YaST verwalten.

Soweit ich informiert bin, bietet dir SuSE bereits bei der Installation die Möglichkeit zur Verschlüsselung einzelner Partitionen. Wenn du also bestimmte Ordner verschlüsselt haben willst, dann kannst du dafür entweder Container verwenden, die du erst nach der Installation erstellst und dann via fstab in die entsprechenden Ordner mountest oder du packst hinter diese Ordner gleich verschlüsselte Partitionen in passender Grösse.

Ein paar grundlegende Sicherungsmaßnahmen sollte man bei jeder Linux-Distro beachten. Dazu gehören einfache Dinge wie eine Passwort-Policy, die dafür sorgt, dass Passwörter nicht endlos gültig sind, System-User, die keine Shell haben, deaktivieren von Crons für normale User usw.. In der Praxis könnte das in etwa so aussehen:

Code:
# sorge dafuer, dass Passwoerter max. 180 Tage alt sein duerfen
perl -npe 's/PASS_MAX_DAYS\s+99999/PASS_MAX_DAYS 180/' -i /etc/login.defs
# und sie duerfen nur ein Mal am Tag geaendert werden
perl -npe 's/PASS_MIN_DAYS\s+0/PASS_MIN_DAYS 1/g' -i /etc/login.defs

# sinnvolle umask-Werte fuer neu angelegte Dateien
perl -npe 's/umask\s+0\d2/umask 077/g' -i /etc/bashrc

# verbiete crons fuer normale user
touch /etc/cron.allow
chmod 600 /etc/cron.allow
awk -F: '{print $1}' /etc/passwd | grep -v root > /etc/cron.deny
touch /etc/at.allow
chmod 600 /etc/at.allow
awk -F: '{print $1}' /etc/passwd | grep -v root > /etc/at.deny

# mach die firewall komplett dicht fuer eingehende verbindungen
# nur ausgehende und zu diesen zugehoerige verbindungen werden akzeptiert
cat > /etc/init.d/firewall << EOF
#!/bin/bash

echo "Starting firewall"

LOGLIMIT=20
IPTABLES=/usr/sbin/iptables

case "$1" in
start)
	# alle alten Regeln entfernen
	echo "Loesche alte Regeln"
	$IPTABLES -F
	$IPTABLES -X
	$IPTABLES -t nat -F

	# setting some procfs values
	echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
	echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
	echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
	echo 61 > /proc/sys/net/ipv4/ip_default_ttl
	echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
	echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
	echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
	echo 3 > /proc/sys/net/ipv4/tcp_synack_retries

	$IPTABLES -P INPUT DROP
	$IPTABLES -P FORWARD DROP
	$IPTABLES -P OUTPUT ACCEPT
	$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
	# im Loopback koennen wir jedem trauen
	$IPTABLES -A INPUT -i lo -j ACCEPT

	# erlaube Pings
	$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
        # erlaube SSH? dann die folgende zeile mit dazu nehmen
        # $IPTABLES -A INPUT -p tcp --dport 22 --tcp-flags ALL SYN -j ACCEPT
	;;
*)
	echo "Usage: `basename $0` {start}" >&2
	exit 64
	;;
esac

exit 0
EOF
ln -s /etc/init.d/firewall /etc/rc3.d/
ln -s /etc/init.d/firewall /etc/rc5.d/
chmod +x /etc/init.d/firewall
/etc/init.d/firewall start
# mach auch noch die TCP-Wrapper dicht
echo "ALL:ALL" >> /etc/hosts.deny
Dann noch in die Modprobe-Blacklist alle Module, die man nicht braucht um bei so netten Bugs wie dem wunderbar_emporium nicht gleich anfällig zu sein. In der /etc/passwd prüfen, dass nur jene User, die es wirklich brauchen, eine echte Shell haben. Alle anderen sollte man auf nologin o.ä. setzen. Sofern man Remote-Logins (z.B. via SSH) zulässt, sollte man dafür sinnvolle Timeout-Werte im System festlegen. Verbindungen sollten nicht ewig offen bleiben dürfen.

Das wäre das "Basic Hardening", das ich für jedes Linux empfehlen würde, egal welchen schicken Namen es hat. Die Default-Settings sind bei allen Distros auf einfache Benutzbarkeit und nicht auf Sicherheit ausgelegt. Allerdings bieten brauchbare Distros (also z.B. nicht Mint ;) ) einen "Hardening Guide" an.
SuSE: https://www.suse.com/documentation/sles11/singlehtml/book_hardening/book_hardening.html
Debian: https://www.debian.org/doc/manuals/securing-debian-howto/index.de.html
CentOS: HowTos/OS Protection - CentOS Wiki
Fedora: Chapter*2.*Basic Hardening Guide
RHEL: https://access.redhat.com/documenta...t_Enterprise_Linux-6-Security_Guide-en-US.pdf
Die sollte man für seine Distro durchaus mal durcharbeiten und die für's eigene System sinnvollen Sachen umsetzen.
 
Was das Skript tut, steht ja eigentlich in den Kommentaren.
- Es ändert in login.defs den Wert 'PASS_MAX_DAYS +99999' auf 'PASS_MAX_DAYS 180'.
- Es setzt PASS_MIN_DAYS auf 0.
- Es packt in die Default-Konfiguration der Bash (/etc/bashrc) einen brauchbaren Wert für die Umask neuer Dateien.
- Es legt leere cron.allow und at.allow an und füllt die zugehörigen deny-Dateien mit allen Usern aus der /etc/passwd mit Ausnahme von root.
- Und es legt ein Firewall-Skript in /etc/init.d/firewall an und verlinkt selbiges in die Runlevel 3 (bei SuSE = Multi-User mit Netzwerk ohne GUI) und 5 (bei SuSE = Multi-User mit Netzwerk mit GUI).
That's it. Für ein Desktop-System sind das neben regelmässigen Updates aus sicheren Quellen und dem Einsatz von Brain 2.0 imo die wichtigsten Einstellungen. Auf Honeypots usw. kannst du jedenfalls verzichten so lange dein Rechner keine Dienste im Netz anbietet, was ja bei einem Desktop-Rechner eher unüblich ist. Für sowas stellt man sich dann doch besser 'nen kleinen RPi o.ä. in's Netzwerk.
 
Ob eine umask von 077 unbedingt sinvoll ist kann man aber auch diskutieren. Ich finde 027 eigentlich sinnvoller, schließlich hat man ja eh eine private Gruppe pro Benutzer, außer man möchte explizit eine andere Konfiguration haben. Indem man das Sticky Group Bit setzt, kann man dann gut Bereiche für andere Benutzer freigeben.

Sowieso wird das bei verschiedenen Distributionen auch anders konfiguriert. Bei Debian muss das beispielsweise in /etc/login.defs und über pam_umask konfiguriert werden. Wähle deshalb auf jeden Fall eine der großen Distribution mit guter Dokumentation und Community, keinen der vielen Ubuntu-Nachahmer (wie Mint). Auch Debian eignet sich wunderbar für einen Desktop wenn man kein bleeding-edge System haben möchte. Ansonsten kann man auch Debian Testing gut am Desktop nutzen, das ist dann allerdings eher vergleichbar mit dem Rolling Release von Archlinux.
 
Für erfahrene Linuxer, die so halbwegs wissen, was sie wollen, ist Debian natürlich eine Alternative. Die Erfahrung zeigt aber, dass Neueinsteiger bereits bei der Repo-Auswahl gern mal überfordert sind und dadurch dann an Dingen hängen bleiben wie WLAN-Konfiguration, die erst irgendwelche nicht-freie Firmware bedingt u.ä.. Es hat durchaus Gründe, warum Debian so oft geforkt und um eine bessere Usability erweitert wurde.

Und natürlich lässt sich über sinnvolle Default-Konfigurationen wunderbar streiten. Wenn ich richtig informiert bin (hab gerade kein SuSE zur Hand), sind bei SuSE alle Benutzer in der Gruppe 'users', damit sie untereinander leichter Dateien austauschen und zusammenarbeiten können. Wenn man die Idee dahinter nicht kaputt konfigurieren will, sollten die Default-Rechte für die Gruppe halbwegs grosszügig vergeben werden. Vor allem wenn ein Desktop privat verwendet wird, die anderen Benutzer also eher Familienmitglieder sind, sollte ausreichend Vertrauen für eine "offene" Zusammenarbeit an gemeinsamen Dateien gegeben sein.
 
Ist zwar ein desktop @ home, aber grundsätzlich werden da maximal 3 Personen dran sein, wobei zu 95% nur ich es sein werde, von daher sollen die rechte Recht restrektiv sein!

Um noch mal kurz auf das Thema Honeypots zu kommen, kann ich dafür einen pie verwenden?
 
Für erfahrene Linuxer, die so halbwegs wissen, was sie wollen, ist Debian natürlich eine Alternative. Die Erfahrung zeigt aber, dass Neueinsteiger bereits bei der Repo-Auswahl gern mal überfordert sind und dadurch dann an Dingen hängen bleiben wie WLAN-Konfiguration, die erst irgendwelche nicht-freie Firmware bedingt u.ä.. Es hat durchaus Gründe, warum Debian so oft geforkt und um eine bessere Usability erweitert wurde.

Na gut, das ist natürlich richtig. Aber wenn man sein System besonders absichern möchte dann geht das eben nicht per Mausklick, und deshalb würde ich da lieber ein System nehmen welches einem keine Steine bei der Konfiguration in den Weg legt. Man kann sicherlich auch mit anderen Distributionen glücklich werden ;)

Und natürlich lässt sich über sinnvolle Default-Konfigurationen wunderbar streiten. Wenn ich richtig informiert bin (hab gerade kein SuSE zur Hand), sind bei SuSE alle Benutzer in der Gruppe 'users', damit sie untereinander leichter Dateien austauschen und zusammenarbeiten können. Wenn man die Idee dahinter nicht kaputt konfigurieren will, sollten die Default-Rechte für die Gruppe halbwegs grosszügig vergeben werden. Vor allem wenn ein Desktop privat verwendet wird, die anderen Benutzer also eher Familienmitglieder sind, sollte ausreichend Vertrauen für eine "offene" Zusammenarbeit an gemeinsamen Dateien gegeben sein.
Richtig, aber eine umask von 077 (aus deinem Skript) gibt der Gruppe gar keine Rechte. 027 gibt der Gruppe standardmäßig Leserechte. Debian default ist sogar 022, also Leserechte für alle. Man muss sehen ob die users Gruppe standardmäßig für Dateien gesetzt wird, dann möchte man evtl. lieber 077 als umask um private Dateien auf jeden Fall zu schützen.

@Coolzero1982 ich glaube du brauchst keinen Honeypot für dein Netzwerk. Wenn du möchtest kannst du dich zur Absicherung auch mit SELinux oder Apparmor befassen, das bringt sicherlich mehr.
 
Wieso nicht gleich OpenBSD + Windows als DualBoot, statt sich damit herumzuärgern ein Linux in den Griff zu bekommen?
 
OpenBSD - nicht FreeBSD.

OpenBSD ist von handling wesentlich einfacher und eleganter, verlangt vom Nutzer aber Kenntnis der Shell ab (was bei UNIXen imho eh eine Grundvoraussetzung sein sollte).

Hardwareunterstützung ist OK, sofern man "gute" Hardware auch benutzt. Bei Servern gibts erstklassigen Support für alle relevanten RAID Treiber und Supermicro Zeugs. Der Laptop Support ist bei den TPs auch sehr gut.
 
Wenn wir schon beim OT sind:
Hör nicht auf den Opa Chrom, der verwechselt sicher FreeBSD mit BSD 4.4 ;)
Der Vorteil von (Free)BSD ist eine sehr gute, konsistente Dokumentation "aus einer Hand".

https://www.freebsd.org/doc/de/books/handbook/ <- Anwenderhandbuch
https://www.freebsd.org/doc/de/books/porters-handbook/ <- Für Software-Portierer
https://www.freebsd.org/doc/de/books/developers-handbook/ <- Für Entwickler
https://www.freebsd.org/doc/en/books/arch-handbook/ <- Achitektur/Aufbau
https://www.freebsd.org/doc/en/books/design-44bsd/
https://www.freebsd.org/doc/en/books/dev-model/
https://www.freebsd.org/doc/de/books/faq/
https://www.freebsd.org/doc/en/articles/


Was Hardwareunterstützung und einfache Installation angeht:
ggf. lohnt sich ein Blick auf PC-BSD und das Ausprobieren der "Live-USB": What is PC-BSD?
 
guten morgen , darf ich mal mitmischen mit meiner meinung ?

wine ist einfach zu schwach, die erfahrung habe ich bei linux gemacht,
um windows applikationen besser starten zu können und das flüssig habe ich mir crossover gekauft. mint finde ich besser als ubuntu, weil mich die ständigen updates und versions änderungen von ubuntu nerven. ist aber ansicht sache. wenn du ein virus auf linux erhältst, muss du sowieso alles neu installieren, denn dann geht da bei linux garnichst mehr. die scanner verbrauchen nur arbeitsspeicher. viren kann man auch vermeiden, wenn man saubere seiten besucht, keine cracks runter lädt und bei unerwartenden emails den verstand einsetzt. windows kann auch sehr sicher sein, wenn man die richtigen tools hat! wer musik lieb wie ich, ist windows einfach besser. es gibt da richtig profis tool, von rippen oder editieren der musik, da ist halt linux lichtjahre zurück. coole musik-profis schwören auf mac. die multimedia ist einfach aber mit hervorragender klangqualität. wer es einmal hört möchte es haben. gruss whoopy 84
 
Auch wenn das mit der Sicherheit nicht direkt was zu tun hat, hab wie weiter oben erwähnt mal vor einigen Jahren mich mehr mit wine beschäftigt, und schon damals war damit so einiges möglich wenn man sich ein wenig damit auseinander gesetzt hat, so das ich denke ( ohne es geprüft zu haben) das es heute noch viel besser funktionieren sollte. Werd das aber die nächsten Wochen mal in Angriff nehmen. Damals hab ich auch was Spiele angeht mich ein wenig mit cedega beschäftigt was ja grundsätzlich auch auf wine basiert, wie da aber heut der aktuelle Stand ich weiß ich nicht. Mit Crossover hab ich mich nie richtig beschäftigt, das es zumindest damals "nur" für Anwendungen und nicht für Spiele zugebrachten war, und da war und bin ich der Meinung das es sehr gute Alternativen unter Linux zu den windows Programmen gibt! Was Musik USW. Angeht, brauch ich zumindest nur einen Player und vielleicht eine Verwaltung, das sollte aber z.b amarok absolut zufriedenstellend bewältigen!
Was rippen usw.angeht hab ich mich lange nicht mehr mit beschäftigt, ging aber früher über die bash mit transcode ganz hervorragend, wenn auch nicht so komfortabel wie unter Windows!

Zu meinem aktuellen Stand. Hab opensuse 13.1 installiert und bin jetzt dabei die Hardware einzurichten. Bevor ich dann nach und nach eure tips abarbeite
 
Zurück
Oben