PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie sicher ist ein neuer Root Server?!



liz
02.03.04, 19:12
Ich habe mir einen Root Server bestellt und wollte nun fragen wie sicher dieser im ausgangszustand ist.

Ich habe vor darüber nur gameserver, irc services und evt eine homepage laufen zu lassen.

wie sicher wäre der root denn, wenn ich in der firewall nur die ports für die jeweiligen dienste durchlasse?
und wie schütze ich mich am besten vor DoS Attacken.

Wer nützliche Links oder Antworten für mich hat, nur her damit :)

Thomas Engelke
02.03.04, 19:39
Und gesegnet seien jene, die den verschlungenen Pfaden (http://www.linuxforen.de/forums/search.php?s=) folgen, denn nur wer suchet, der wird auch finden. Sicherheitsfragen werden oft diskutiert.

AD!

corresponder
02.03.04, 20:04
eine linuxinstallation ist immer so sicher, wie der admin sie einrichtet...und pflegt...



gruss


c.

Bettina
02.03.04, 21:07
Hallo,

nun ich bin Anfängerin in den Bereich und unser Server nicht von mir verwaltet.Ich kann dir aber sagen ohne Grundkentnisse ist es eine Frage der Zeit bis du mit deinen Server offline gehen kannst.
Ich hab sehr viel die letzten Tage zum Thema Sicherheit und Server gelesen, eine Firewall ist so wie ich es verstanden habe unter Linux ein nettes Spielzeug,aber nicht mehr.Bedenke bei einen Hack hast und eventuell nicht nur ein kaputtes System was du neu aufsetzen musst sondern auch noch eine hohe Trafficrechnung die du zahlen musst,weil dein Server z.B. als Warezserver missbraucht wurde.

Nette Grüsse Bettina

liz
02.03.04, 21:35
ich habe jetzt mal mit dem ip table generator von harry.homelinux.org ein script erzeugen lassen.

und ich weiß das ich tief in die tasche greifen kann, wenn meine traffickosten in die höhe schießen, deswegen wolt ich ja auch so anfangen, dass ich erst alles sperre und nach und nach die ports freigebe, weil auf armut hab ich nu keine lust :)

Dellerium
03.03.04, 07:57
Original geschrieben von Bettina
Ich hab sehr viel die letzten Tage zum Thema Sicherheit und Server gelesen, eine Firewall ist so wie ich es verstanden habe unter Linux ein nettes Spielzeug,aber nicht mehr.


Eine Firewall ist GANZ SICHER KEIN nettes Spielzeug... Es gibt Dienste, die man nicht an ein bestimmtes Interface binden kann... Dann hilft z.B. nur eine Firewall um zu verhindern das auch andere darauf zugreifen können !
Ich lege z.B. fest, das eine VPN Verbindung zu meinem Server nur von einer IP aus geöffnet werden darf - Wenn ich zwei Netze verbinde erhöht das schon die Sicherheit falls mal eine Kritische Lücke gefunden - dann kan man das nicht so einfach ausnutzen, weil die Firewall alle Pakete droppt, die nicht vom erlaubten Gateway kommen...
Das lässt sich beliebig fortsetzen... Ausserdem kann man mit genug Wissen noch wesentlich mehr mit IP Tables und Erweiterungen machen also nur Pakete und Verbindungen zu filtern.. es lassen sich z.B. einzelne Pakete geschickt Manipulieren und umleiten...

Bettina
03.03.04, 08:09
Hallo,

Eine Firewall ist GANZ SICHER KEIN nettes Spielzeug
mag sein wenn der Rest der Kiste sicher ist:-)
Ich stutzte eben wegen diesem Satz darüber

Ich habe mir einen Root Server bestellt und wollte nun fragen wie sicher dieser im ausgangszustand ist
Kleiner Einwurf einer Anfängerin die erst vor ein paar Tagen nen Serverhack mit erlebt hat;)
Nette Grüsse Bettina

Spike05
03.03.04, 08:24
Original geschrieben von liz
Ich habe mir einen Root Server bestellt und wollte nun fragen wie sicher dieser im ausgangszustand ist.



Im normalfall ist dort eine Grundinstallation eines Linux-Systems drauf mehr nicht.

Dellerium
03.03.04, 08:38
Original geschrieben von Bettina
Hallo,

mag sein wenn der Rest der Kiste sicher ist:-)
Ich stutzte eben wegen diesem Satz darüber

Kleiner Einwurf einer Anfängerin die erst vor ein paar Tagen nen Serverhack mit erlebt hat;)
Nette Grüsse Bettina

@Bettina:

Ich wollte dich net angreifen .. ich will nur verhindern das noch ein unsicherer Server mehr in der Gegend herumsteht :)

@liz: Das kommt darauf an, wie gut die Admins sind, die den Server aufgesetzt haben... es gibt solche und solche... Wenn es mein Server wäre, und ich den Server noch nicht nutze, würde ich erstmal darangehen und alle Netz Dienste die ich gerade nicht brauche abschalten. Ich würde daher nur ssh überlassen.. den brauchst du, um dich drauf einzu loggen...

Gruss Andre

cane
03.03.04, 09:11
Wenn es mein Server wäre, und ich den Server noch nicht nutze, würde ich erstmal darangehen und alle Netz Dienste die ich gerade nicht brauche abschalten

Das ist der erste und wichtigste Schritt - denn ein Dienst der nicht läuft kann auch nicht angegriffen werden! Deswegen alle nicht benötigten Dienste deaktivieren!!!

Was möchtest Du denn mit dem Server machen?

mfg
cane

LKH
03.03.04, 09:36
Hi,

Root-Server sind doch in aller Regel Web-, Maill-, FTP- und DB-Server. Diese genannten Dienste (ausser der Datenbank) müssen ja nach aussen freigegben werden, sonst macht der Server ja keinen Sinn. :D Und genau hier fängt die Gefahr dann auch schon an, die keine Firewall lösen kann:

- alle Dienste dürfen keine kritischen Bugs haben, die es erlauben eine Shell zu öffnen oder sonstige Befehle auszuführen oder gar root-Rechte zu erlangen. Also regelmäßig Securityupdates fahren. Es ist auch sinnnvoll alle Dienste wenn möglich in einer chroot-Umgebung laufen zu lassen.

- der Mailserver darf nicht als offenes Relay von Spammern missbraucht werden. Daher entsprechende Sicherheitsmassnahmen (z.B. smtp-auth) einrichten.

- der FTP-Server darf nicht zur Warez-Schleuder werden. Wenn möglich FTP ganz abschalten (scp ist dein Freund, also Kopieren auf den Server über ssh).

- wenn möglich die Datenbankdienste nicht nach aussen freigeben. meistens wird die DB ja eh nur vom Webserver für dynamische Webseiten genutzt.

- kein ssh-Zugang für root. Leg dir dafür einen extra Benutzer an (auch nicht die Standardbenutzer, die die Provider freundlicherweise einrichten, die kennt mittllerweile jeder) und benutze sichere Passworte.

Ein IDS (Intrusion Detection System) kann auch nützlich sein, da die meisten bösen Cracker auch nicht innerhalb von einer Minuten auf deiner Maschine drauf sind (es sei denn, sie nutzen einen bekannten Bug). Dann erkennt man in aller Regel die Einbruchsversuche und kann reagieren.

Ich könnte noch zwei Jahre weiter schreiben, aber ich glaube es reicht erst mal für den Anfang ...

liz
03.03.04, 16:36
ersteinal danke für die antworten, hat mir bis jetzts chonmal geholfen.

also, server kommt btw. von strato und er soll eigentlich als gameserver dienen und nebenbei nen eggdrop laufen lassen.

evt soll ne homepage drauf, aber das erst später.

also, ichhabe mir von harry ipteablegenrator nu mal dieses hier generieren lassen. wenn ihr nur einen kurz blick drauf werfen könntet :)

sollte nur ssh, irc und half life gameserver durchlassen



#!/bin/bash
# ---------------------------------------------------------------------
# Linux-iptables-Firewallskript, Copyright (c) 2004 under the GPL
# Autogenerated by iptables Generator v1.16 (c) 2002 by Harald Bertram_
# Please visit http://www.harry.homelinux.org for new versions of
# the iptables Generator (c).
#
# This Script was generated by request from:
# ******@***.net on: 2004-3-3 17:33.22 MET.
#
# If you have questions about the iptables Generator or about
# your Firewall-Skript feel free to take a look at out website or
# send me an E-Mail to webmaster@harry.homelinux.org.
#
# My special thanks are going to Lutz Heinrich (trinitywork@hotmail.com) who
# made lots of Beta-Testing and gave me lots of well qualified
# Feedback that made me able to improve the iptables Generator.
# --------------------------------------------------------------------
#
### BEGIN INIT INFO
# Provides: IP-Paketfilter
# Required-Start: $network $local_fs
# Required-Stop: $local_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Short-Description: Harry's IP-Paketfilter
# Description: Harry's IP-Paketfilter provides reasonable
# IP-Security for Home-Computers and small networks
### END INIT INFO
#

case "$1" in
start)
echo "Starte IP-Paketfilter"

# iptables-Modul
modprobe ip_tables
# Connection-Tracking-Module
modprobe ip_conntrack
# Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp

# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP

# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "

# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP

# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP

# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP

# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP

# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP

# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP

# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP

# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP

# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 22 -j ACCEPT

# IRC
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 6667 -j ACCEPT

# HALF-LIFE
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 6000:6003 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 7001:7002 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 27005 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 27010 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 27015:27016 -j ACCEPT

# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT

# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

# Speicherallozierung und -timing für IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time

# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1

# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2

;;

stop)
echo "Stoppe IP-Paketfilter"
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
echo "Deaktiviere IP-Routing"
echo 0 > /proc/sys/net/ipv4/ip_forward

# Default-Policies setzen
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;

status)
echo "Tabelle filter"
iptables -L -vn
echo "Tabelle nat"
iptables -t nat -L -vn
echo "Tabelle mangle"
iptables -t mangle -L -vn
;;

*)
echo "Fehlerhafter Aufruf"
echo "Syntax: $0 {start|stop|status}"
exit 1
;;

esac

liz
03.03.04, 17:44
hm, ich könnte doch auch die firewall über yast bei suse konfigurieren oder ist das irgendwie unsicherer?

sry für diese für euch sicher läppischen fragen ...

cane
04.03.04, 07:22
Morgen liz!


hm, ich könnte doch auch die firewall über yast bei suse konfigurieren oder ist das irgendwie unsicherer?

Das könntest Du natürlich...
Meiner Meinung nach ist das Iptables Script von Harry aber besser aufgebaut und enthält mehr sinnvolle Voreinstellungen als das Suse2 Script. (Mittels Yast änderst Du ja auch ein Iptables-Script - eben dass von SuSE)

mfg
cane