PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Der Sichere Server - wie baue ich ihn



Doh!
26.08.03, 10:32
Nabend allerseits. Habe Urlaub und schaue mich so um, was man so alles machen muss, um einen Server sicher zu machen. In dem Thread hier würde ich gerne diskutieren, wie man eine sichere, aber dennoch sinnvolle Grundinstallation für einen Server bauen kann. (Explizit ausgenommen sind hier Firewalls und Router, weil diese natürlich deutlich abgespeckter sein können, als Beispielsweise ein Web-Server).

Natürlich ist das Ergebnis dann eine Ausgangsbasis, um den Server an die speziellen Bedürfnisse weiter anzupassen.

Wie also muss ich einen Server Partitionieren, welche Pakete müssen drauf, welche nicht. Ich will eine Serverinstallation machen, bei der ich eine ordentliche Fernwartung habe, aber der Rechner soll natürlich nicht himmelweit offen stehen.

Um die Diskussionen nicht ausufern zu lassen, will ich das ganze in verschiedene Abschnitte packen. Begonnen werden soll mit der Partitionierung und der Auswahl des Filesystems. Auch hier ist es mir klar, dass natürlich ein Web-Server anders Partitioniert wird, als ein News-Server.

Wie würde man also grundsätzlich einen Server "richtig" Partitionieren?

Hier ein erster Diskussionsvorschlag (ich geh mal von einer IDE-Platte im System aus):

Device \\ Mount-Point \\ File-System \\ Größe

dev/hda1 \\ swap \\ swap \\ [2*RAM], maximum 1 - 1.5 GByte
dev/hda2 \\ /boot \\ ext3 \\ 16 MByte
dev/hda3 \\ / \\ XFS oder ext3 \\ mindestens 3 GByte
dev/hda4 -- Ext. Partition
dev/hda5 \\ /var \\ XFS oder ext3 \\ mindestens 1 GByte
dev/hda6 \\ /var/log \\ XFS oder ext3 \\ mindestens 1 GByte
dev/hda7 \\ /home \\ XFS oder ext3 \\ [Bedarf*User]
dev/hda8 \\ /temp \\ XFS oder ext3 \\ mind. 500 MByte

Bei dieser Partition gehe ich davon aus, dass die Daten die der Dienst bereit stellt, sich auf der Partition für /var befinden. (Also die Webseiten eines Webservers z.B. oder die FTP-Daten).

hier nun die dazu passende fstab mit "--" zum leserlicher machen):

/dev/hda1 -- swap -- swap -- pri=42 -- 0 0
/dev/hda2 -- /boot -- ext3 -- ro -- 1 2
/dev/hda3 -- / -- xfs -- defaults -- 1 1
/dev/hda5 -- /var -- xfs -- nosuid -- 1 2
/dev/hda6 -- /var/log -- xfs -- nosuid, nodev, noexec 1 2
/dev/hda7 -- /home -- xfs -- nosuid, nodev, noexec 1 2
/dev/hda8 -- /tmp -- xfs -- nosuid, nodev, noexec 1 2

Als Filesystem habe ich XFS gewählt, weil ich mit Reiser sehr schlechte Erfahrungen gemacht habe. XFS gilt als stabil, hat nur den Nachteil, dass Partitionen nicht verkleinert werden können!

Die Option nosuid wird immer dort gewählt, wo davon ausgegangen werden kann, dass keine Spezial Bits benötigt werden. So kann verhindert werden, dass ein Programm mit gesetztem userbit mit root-Rechten ausgeführt wird. Devices haben in /var/log, home und tmp nix zu suchen, daher nodev dort. Ebenjenes mit noexec.

So, nun bin ich auf die Anmerkungen gespannt.

Matzetronic
26.08.03, 12:11
hallo,

fast genau die gleiche partitionierung favorisiere ich für solche dinge auch - mit dem einzigen unterschied, dass ich noch eine separate partition für /usr habe und somit die rootpartition wesentlich kleiner ausfallen kann.
die mount-optionen halte ich für äußerst sinnvoll, wobei eine noexec-tmp-partition ab und an mal schwierigkeiten mit irgendwelchen programmen macht.
xfs als filesystem habe ich noch nicht getestet, kann dazu keine aussage treffen. ich verwendete bisher immer ext2 und ext3.

gruß,
matze

echo
26.08.03, 12:43
hi,
jo mache auch alles in ne eigene lvm-partition *g*
zu xfs
habe bemerkt das xfs etwas empfindlicher beim plötzlichem stromausfall ist als ext2. also nicht den rechner ausschalten *fg*


cu
echo

Doh!
26.08.03, 13:02
Original geschrieben von Matzetronic
...mit dem einzigen unterschied, dass ich noch eine separate partition für /usr habe und somit die rootpartition wesentlich kleiner ausfallen kann.


hab' ich auch öfter schon gemacht, nur hatte ich bisher noch nicht wirklich einen Nutzen davon, bin deshalb wieder dazu übergegangen, /usr bei / drinnezulassen.

Matzetronic
26.08.03, 15:45
ok,

und jetzt scheiden sich die geister, was die minimalinstallation angeht :)

ich mach mal den anfang:
also ich verwende debian, mache eine installation ohne dpkg+dselect, wähle shadow+MD5 - Passwords. bei der frage nach der exim-konfiguration wähle ich entweder "local..." oder lasse ihn - unkonfiguriert.

nach abschluss der installation installiere ich zuerst less (more ist bäh) und evtl. auch gleich ssh. ssh-keygen installiere ich nicht suid-root.

dann gehe ich in /etc und ändere dateien wie sshd_config (rootlogin no), inetd.conf (alles auskommentieren) und entferne in group, passwd und shadow noch überflüssige gruppen+user bzw. setze bei verbliebenen die shell auf /bin/false.

jetzt evtl. noch ein:
apt-get remove ppp ipchains exim netkit-inetd, dhcp-client man-db manpages tasksel telnet tcpd ed groff-base setserial nvi info
(je nach anforderung/ziel)

damit ist erst einmal eine ausgangsbasis geschaffen.

mfg,
matze

Doh!
26.08.03, 16:58
naaaaaaaa Matze erst die Partitionen! :D sonst geht das hier gleich komplett durcheinander

$kuLL
26.08.03, 20:15
mal so ne frage nebenbei:
gehst du von einem einzelnen server aus, oder können es auch mehrere sein?
denn sicher wäre es z.b, die logfiles auf eine andere maschine zu schreiben

btw, ich verstehe nicht ganz,was du jetzt von uns erwartest
ich meine du scheinst genug ahnung von der materie zu haben und hast das ja auch in deinen bisherigen postings bewiesen
sicherheit ist immer relativ und ich finde man kann dazu kein allerweltskonzept entwickeln, sowas muss man immer an die gegeben bedingungen und bedürfnisse anpassen ... also würde dieser thread eher zu einer endlosen geschichte werden, wenn jeder seine "sicherheitstherorien" zum besten gibt
als leitfaden finde ich sowas dann ungeeignet ... das is meine meinung

$kuLL

Doh!
26.08.03, 20:25
Original geschrieben von $kuLL
mal so ne frage nebenbei:
gehst du von einem einzelnen server aus, oder können es auch mehrere sein?
denn sicher wäre es z.b, die logfiles auf eine andere maschine zu schreiben


Erst mal nur von einem.


Original geschrieben von $kuLL
btw, ich verstehe nicht ganz,was du jetzt von uns erwartest
ich meine du scheinst genug ahnung von der materie zu haben und hast das ja auch in deinen bisherigen postings bewiesen
sicherheit ist immer relativ und ich finde man kann dazu kein allerweltskonzept entwickeln, sowas muss man immer an die gegeben bedingungen und bedürfnisse anpassen ... also würde dieser thread eher zu einer endlosen geschichte werden, wenn jeder seine "sicherheitstherorien" zum besten gibt
als leitfaden finde ich sowas dann ungeeignet ... das is meine meinung

$kuLL

Um ehrlich zu sein, will ich ein Projekt starten, dass darin ausarten soll eine Linuxdistrie anzubieten, die Speziell für Server geeignet ist. Gibt's zwar bestimmt schon, aber ich mach des auch mehr für mich (wenn's dann später anderen hilft - um so besser). Das mit "der Ahnung" von der Materie haben ehrt mich zwar, aber ich hab' festgestellt, dass es kaum einen gibt, der wirklich Ahnung von Linux hat (und da schließe ich mich definitiv mit ein) sondern nur Leute, die etwas weniger keine Ahnung haben als andere (das trifft's bei mir eher). Ich denke, wenn man sich hier hin stellt und darüber diskutiert und auch wirklich nachhakt, warum dies oder jenes sinnvoll sein soll, und das nicht einfach so hinnimmt, dann macht das auch Sinn. Wenn ich wirklich sooo viel Ahnung hätte, dann würde ich mir als Berater 'ne goldene Nase verdienen können (obwohl ich schon "Linuxspezialisten" auseinander genommen habe... :D ). Ich habe bei Leibe nicht die Ahnung um mir anmaßen zu können zu wissen, wie man eine saubere Linux-Server-Installation hinbringt. Das will ich einfach entwickeln. Einmal, weil's zu meinem Job gehört und zum anderen, weil's mich interessiert.

Steve
26.08.03, 21:01
http://linuxforen.de/forums/showthread.php?s=&threadid=59101

Ist vielleicht interessant für dich.

Steve

Steve
26.08.03, 21:02
Zu der Partitionierung kann ich noch empfehlen alle Daten, die nicht/kaum geändert werden auf ein Readonly-Device zu legen.

Steve

DaGrrr
26.08.03, 21:04
Hi,

ich würde auf Debian nehmen und dann auf Adamantix upzugraden.

http://adamantix.limehouse.org/de

Damit hättest du schonmal eine gute Vorraussetzung.

Grüße
DaGrrr

chrigu
26.08.03, 21:36
hallo zusammen,

kann man problemlos von woody auf dieses adamantix upgraden?
hat jemand schon erfahrungen damit?

gruss chrigu

Spike05
26.08.03, 21:40
Original geschrieben von chrigu
hallo zusammen,

kann man problemlos von woody auf dieses adamantix upgraden?
hat jemand schon erfahrungen damit?

gruss chrigu

Soweit ich weiß wird eine Minimalinstallation durchgeführt dann die sources.list geändert und dann losgelegt!

Einige Sicherheitstips für Server (Debian) gibts auch hier noch: http://www.debianhowto.de

cu

Jochen

Matzetronic
26.08.03, 22:52
"kann man problemlos von woody auf dieses adamantix upgraden? "

jupp.
ich hab hier einen rechner stehen, der mit adamantix läuft. gab keine probleme, außer, dass ich mir die mirrors von hand selber raussuchen musste, weil die links nicht gestimmt haben :(
(kleiner tipp: wenn du dir einen kernel-image mit rsbac installieren willst und keine ahnung davon hast - lass es. ich konnte mich nach dem reboot noch nicht einmal als root einloggen)
ansonsten ist es nicht wesentlich anders als original-debian.

@$kuLL:
dass es DIE lösung nicht gibt, ist glaube ich allen hier klar. nur nutze ich z.b. solche threads gern, um mir anregungen zu holen, die sich dann in 90% der fälle in ein konkretes projekt verwandeln. also ich persönlich halte sehr viel von so etwas - ist quasi ein know-how-transfer, der die kreativität anregt :p

gruüße,
matze