ubuntu vserver firewall

KOR

New Member
Hi,
ich habe meinen ersten vserver. und möchte diesen absichern. als ersten schritt dachte ich an eine firewall. das einzige was ich bisher dazu gefunden habe ist ufw. Was sich im prinzip nicht schlecht anhört. ich habe allerdings angst mich selber auzusperren da ufw auch den ssh port zumacht. Da meine einzige zugangsmöglichkeit ssh ist fände ich das nicht so dolle.
Könnt ihr mir sagen wie ich meine erste firewall einrichte ohne mich auszusperren. Ich bin nicht auf ufw angewiesen das ist nur das was ich als erstes bei google gefunden habe.
 
Lass das mit der Firewall und sicher lieber deine Dienste(ssh,apache etc.) ab. Firewalls machen meist nur Probleme und bringen dir nix wenn du deine Dienste richtig einrichtest bsp. MySql auf localhost dann brauchst du den Port auch nicht Sperren.
 
OK? Gibt es ne checkliste was man so machen sollte.
Ich habe folgende dienste am laufen.
Apache
SSH
Postgresql

ports 80 http
443 https
smtp port which I dont use.
and postgres port(non standard)
 
OK? Gibt es ne checkliste was man so machen sollte.
Ja, die gibt es: Lernen, lernen, lernen, lernen.

Und erst dann einen eigenen Server im Rechenzentrum mieten, wenn man es kann. Und bevor der erwartete Einwand kommt, dass man ja irgendwo anfangen muss zu lernen: Ja, zu Hause auf einem alten PC oder in einer VM, und nicht in einem dicken Rechenzentrum!
 
danke für die information. Hast mir echt geholfen. An ner VM kann man nur einiges lernen. aber wie soll man lernen nen server zu schützen wenn man die gefahr hat das man selber ihn hackt beim schlafwandeln. Ich habe einiges an VMs gemacht. und habe jetzt beschlossen mit nem kleinen Vserver zu spielen. da keine wichtigen daten drauf sind nur zwei test seiten kann relativ wenig passieren. nen mailserver ist nicht installiert. Somit kann ich keine probleme mit spam bekommen.

mein server ist außerdem nicht schutzlos.
kein root zugriff über ssh, authorized_keys only.
da ich kein MySQL nutze ist damit auch ein beliebter angriffspunkt weg.
kein FTP nur SFTP und dabei kein anonymer zugriff.
Dann lese ich gerade über fail2ban was auch noch ganz hilfreich sein soll.

Aber ich möchte halt mehr machen und vor allem rausfinde wo noch schwachstellen sind damit ich die dann auch beheben kann. Und jetzt habe ich mich halt gefragt ob es nicht sinnvoll wäre mit ner firwall alle ungenutzen ports zu schließen. da zumindest soweit ich das verstehe für alle anfragen ein LOG eintrag geschrieben wird.
Was im umkehrschluss heißt mit 100k/s anfragen auf port xxx könnte ich die serverlogs sprengen.
 
Hi,

eine Firewall kann z.B. was bringen, wenn Du verhindern möchtest, dass über einen geknackten Shared Hosting Account auf Deinem Server Schadcode nachgeladen wird. Die FW alleine ist aber kein Allheilmittel, da gibt es noch sehr viele andere Punkte in der Konfiguration zu beachten. Als Anregung hier mal das von mir eingesetzte iptables-Skript:

Code:
<me>@mail:~$ cat /etc/init.d/iptables-firewall
#
# Firewall script based on iptables and
# http:/www.postfixbuch.de - fw script version 3.2 / 1.4.09
#
# Extended by <me>
#

# Server IP
ip_nr=<deine_ip>

# Path to iptables
IPT=/sbin/iptables

case "$1" in
   start)
      echo "Starting firewall..."
        # Load ip_conntrack module
        modprobe ip_conntrack

        # Flush chains (remove rules)
        $IPT -F

        # Delete user-defined chains
        $IPT -X

        # Default policy (-P) is DROP
        $IPT -P INPUT DROP
        $IPT -P OUTPUT DROP
        $IPT -P FORWARD DROP

        # Allow existing connections
        $IPT -A INPUT  -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
        $IPT -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

        $IPT -A INPUT  -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
        $IPT -A OUTPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT

        # Allow loopback traffic
        $IPT -A INPUT -i lo -j ACCEPT
        $IPT -A OUTPUT -o lo -j ACCEPT

        # Allow ICMP traffic
        $IPT -A OUTPUT -p icmp -j ACCEPT
        $IPT -A INPUT -p icmp -j ACCEPT

        #
        # Selectively allow services
        #

        # Allow DNS queries (TCP + UDP)
        $IPT -A OUTPUT -p tcp -s $ip_nr --sport 1024: --dport 53 \
                 -m state --state NEW -j ACCEPT

        $IPT -A OUTPUT -p udp -s $ip_nr --sport 1024: --dport 53 \
                 -m state --state NEW -j ACCEPT

        # Incoming mail (SMTP)
        $IPT -A INPUT  -p tcp -d $ip_nr --sport 1024: --dport 25 \
                 -m state --state NEW -j ACCEPT

        # Outgoing mail (SMTP)
        $IPT -A OUTPUT -p tcp -s $ip_nr --sport 1024: --dport 25 \
                 -m state --state NEW -j ACCEPT

        # Allow IMAP, Submission, Sieve
        $IPT -A INPUT  -p tcp -d $ip_nr --sport 1024: -m multiport --dports 143,587,4190 \
                 -m state --state NEW -j ACCEPT

        # Allow incoming HTTP, HTTPS
        $IPT -A INPUT  -p tcp -d $ip_nr --sport 1024: -m multiport --dports 80,443 \
                 -m state --state NEW -j ACCEPT

        # Allow outgoing HTTP connections to Ubuntu update servers
        $IPT -A OUTPUT -p tcp -s $ip_nr -d de.archive.ubuntu.com,security.ubuntu.com \
                 --sport 1024: --dport 80 \
                 -m state --state NEW -j ACCEPT

        # Allow DHCP (UDP)
        $IPT -A OUTPUT -p udp -s $ip_nr --sport 67:68 \
                --dport 67:68 -m state --state NEW -j ACCEPT

        # Allow NTP queries (UDP)
        $IPT -A OUTPUT -p udp -s $ip_nr --sport ntp \
                --dport ntp -m state --state NEW -j ACCEPT

        # SSH using custom port 45723
        $IPT -A INPUT  -p tcp -d $ip_nr --sport 1024: --dport 45723 \
                 -m state --state NEW -j ACCEPT

        ;;
   stop)
      echo "Stopping firewall..."
        # Flush chains (remove rules)
        $IPT -F

        # Delete user-defined chains
        $IPT -X

        # Default policy (-P) is ACCEPT
        $IPT -P INPUT ACCEPT
        $IPT -P OUTPUT ACCEPT
        $IPT -P FORWARD ACCEPT

      ;;
   restart|reload|force-reload)
   $0 stop
   $0 start
      ;;
   *)
      echo "Usage: /etc/init.d/iptables-firewall (start|stop)"
      exit 1
      ;;
esac
exit 0

Installation z.B. wie folgt:
Code:
<me>@mail:~$ sudo update-rc.d iptables-firewall defaults 18

Du musst aber bedenken, dass das o.g. Skript genau auf meine Bedürfnisse zugeschnitten ist, die bei Dir wieder ganz anders aussehen können. Dazu kommt, dass ich meinen Server ausschließlich alleine nutze.


Edit:
Und jetzt habe ich mich halt gefragt ob es nicht sinnvoll wäre mit ner firwall alle ungenutzen ports zu schließen. da zumindest soweit ich das verstehe für alle anfragen ein LOG eintrag geschrieben wird.
Ein Port ist nur dann geöffnet, wenn ein entsprechender Dienst darauf lauscht. Wieviel dann geloggt wird, hängt vom jeweiligen Dienst und der Konfiguration ab.
 
Last edited by a moderator:
Back
Top