Doh!
26.08.03, 09: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.
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.