Thema geschlossen
Ergebnis 1 bis 6 von 6

Thema: (Erledigt) Howto-Anfrage: Ports sperren/freigeben

  1. #1
    Newbie
    Registriert seit
    22.01.2007
    Beiträge
    6

    Standard (Erledigt) Howto-Anfrage: Ports sperren/freigeben

    Hallo liebe Linux-User!
    (Suchfunktion wurde genutzt, kein entsprechendes Thema gefunden)

    Ganz nach dem KISS (Keep it simple and small)-Prinzip möchte ich auf einem Suse-System (Zugriff per SSH) nur die allernötigsten Ports öffnen (wie es mir hier in diversen Howtos geraten wurde).

    In meinem Beispiel wären das jetzt 27015, 27016, 27017 und 9008.
    Dazu kämen jetzt noch ein Port für FTP und SSH (denn man sollte wohl besser nicht den Ast absägen, auf dem man sitzt^^).
    Und, falls nötig, andere unbedingt notwendige Ports (wüsste nicht wofür man sonst noch welche zwingend öffnen müsste, lasse mich aber gerne belehren).

    An meinen Beispielports erkennt Ihr wahrscheinlich schon, dass auf dem Server nur 3 Spiele (bzw. ein Spiel in 3 Ausführungen) und Teamspeak laufen. Kein Webserver, kein Mailserver etc.

    Gibt es hier vielleicht jemanden, der für solch eine Situation ein HowTo schreiben könnte? (Denn sicherlich betrifft das viele User.)

    Danke schon im vorraus für alle Antworten.

  2. #2
    Lehrling
    Registriert seit
    08.08.2006
    Beiträge
    226

    Standard AW: Howto-Anfrage: Ports sperren/freigeben

    Zitat Zitat von dirtysanchez Beitrag anzeigen
    Gibt es hier vielleicht jemanden, der für solch eine Situation ein HowTo schreiben könnte? (Denn sicherlich betrifft das viele User.)
    Aber sonst geht es dir gut? - Beschäftige dich mit iptables

    Ernsthaft:
    Das Thema iptables (Firewall unter Linux) kann man nicht in einem drei-Zeilen-HowTo abhandeln, da das Thema doch etwas komplex ist.
    (außerdem beschleicht mich das Gefühl ... da möchte einer eine fertige Firewall geschrieben haben ).

    Es gibt bereits gute HowTos/Erläuterungen zu iptables:
    https://knecht.homelinux.net/phpBB2/viewtopic.php?t=263
    Inhaltsverzeichnis Online-Version Linux-Firewalls - Ein praktischer Einstieg, 2. Auflage
    Harry's Linux-Seite
    IP-Tables-Index
    Gruß b3ll3roph0n
    --
    Denken hilft !

    Für alle meine Beiträge gelten, außer bei Zitaten, die Creative Commons.

  3. #3
    Administrator Avatar von Rain_Maker
    Registriert seit
    06.02.2006
    Beiträge
    5,459

    Standard AW: Howto-Anfrage: Ports sperren/freigeben

    Mal davon abgesehen, daß ein Paketfilter maximal eine _zusätzliche_ Maßnahme sein kann um einen Server abzusichern.

    Was nicht läuft, kann nicht angegriffen werden, was erreichbar sein soll, kann ich nicht durch eine Firewall blocken, denn sonst wäre es nicht mehr erreichbar.

    Ein Paktfilter ist in jedem Fall aber zusätzlicher Code und kann eben auch zusätzliche Fehler beinhalten (siehe KISS-Prinzip)

    Je komplexer diese Firewall ist, desto mehr Fehler können darin enthalten sein und der psychologische Effekt des sich in (trügerischer) Sicherheit Wiegens, weil man ja eine Firewall hat, ist ebenfalls nicht zu unterschätzen.

    Viel wichtiger sind solche Maßnahmen wie:

    - unbenötigte Dienste abschalten

    - benötigte Dienste sicher konfigurieren und unbenötigte Features der Dienste abschalten.

    - Sicherheitspatches _zeitnah_ einspielen

    - Logfiles _regelmässig_ kontrollieren

    Der "übliche Adminkram" eben.

    Greetz,

    RM
    "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

    Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

    openSUSE 11.4 - 3.3.X-desktop - fluxbox 1.3.2

    For Windows-Problems - Reboot / For Linux-Problems - BE ROOT!
    (==> Und hier das wirkliche "Geheimnis meines Erfolges")

  4. #4
    Newbie
    Registriert seit
    22.01.2007
    Beiträge
    6

    Standard AW: Howto-Anfrage: Ports sperren/freigeben

    danke schonmal für die tipps.

    @dienste abschalten.
    das ja sowieso. der server führt ja wie gesagt nicht viele komplizierte netzwerkdienste aus, sondern dient lediglich als game- und teamspeak-server.

    werde mir die themen zu den iptables ansehen...
    Geändert von dirtysanchez (31.01.2007 um 19:29 Uhr)

  5. #5
    Administrator Avatar von Rain_Maker
    Registriert seit
    06.02.2006
    Beiträge
    5,459

    Standard AW: Howto-Anfrage: Ports sperren/freigeben

    Zitat Zitat von dirtysanchez
    (Achtung, hiermit weise ich darauf hin, dass ich nicht Eigentümer/Autor dieses Codes bin. Ist jedoch komplett frei erhältlich.)
    Dann solltest Du auch die Quelle angeben/verlinken.

    Na dann mache ich das mal:

    Harry's Linux-Seite

    Greetz,

    RM
    Geändert von Rain_Maker (31.01.2007 um 19:38 Uhr)
    "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

    Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

    openSUSE 11.4 - 3.3.X-desktop - fluxbox 1.3.2

    For Windows-Problems - Reboot / For Linux-Problems - BE ROOT!
    (==> Und hier das wirkliche "Geheimnis meines Erfolges")

  6. #6
    Newbie
    Registriert seit
    22.01.2007
    Beiträge
    6

    Standard AW: Howto-Anfrage: Ports sperren/freigeben

    NACHTRAG:
    Hallo nochmal!
    Habe das Internet nach einem Grundgerüst für eine halbwegs funktionierende Port-Vergabe durchsucht.
    Eins vorab: Ich möchte hier keinen mit diesem ellenlangen Code nerven, der dies nicht möchte.
    Also: Bitte nur weiterlesen, wenn man Zeit und Lust hat, diesen langen Code zu durchforsten.

    Folgender Code ist bei meiner Suche herausgekommen (Achtung, hiermit weise ich darauf hin, dass ich nicht Eigentümer/Autor dieses Codes bin. Ist jedoch komplett frei erhältlich.)

    Code:
    #!/bin/bash
    # ---------------------------------------------------------------------
    # Linux-iptables-Firewallskript, Copyright (c) 2007 under the GPL
    # Autogenerated by iptables Generator v1.22 (c) 2002-2006 by Harald Bertram 
    # Please visit http://harry.homelinux.org for new versions of
    # the iptables Generator (c).
    # 
    # 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 at hotmail dot 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
    # FTP
        iptables -A INPUT -i dsl1 -m state --state NEW,ESTABLISHED -p tcp --dport 21 -j ACCEPT
        iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -- ACCEPT
    # SSH
        iptables -A INPUT -i dsl1 -m state --state NEW,ESTABLISHED -p tcp --dport 22 -j ACCEPT
    # HALF-LIFE
        iptables -A INPUT -i dsl1 -m state --state NEW -p tcp --dport 6000:6003 -j ACCEPT
        iptables -A INPUT -i dsl1 -m state --state NEW -p tcp --dport 7001:7002 -j ACCEPT
        iptables -A INPUT -i dsl1 -m state --state NEW -p udp --dport 27005 -j ACCEPT
        iptables -A INPUT -i dsl1 -m state --state NEW -p udp --dport 27010 -j ACCEPT
        iptables -A INPUT -i dsl1 -m state --state NEW -p udp --dport 27015:27017 -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
    # 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

    Ich will jetzt nicht damit nerven, eine Korrektur des gesamten Scripts zu erbetteln, aber vielleicht fällt ja jemandem auf den ersten Blick ein Fehler auf.

    Mich machen zum Beispiel die ersten Zeilen etwas stutzig, weil ich das Gefühl habe, das limitiert die Anzahl an Port-Anfragen pro Stunde. Das wäre bei einem Rootserver für Gameserver natürlich ungünstig.

    Ein herzliches Dankeschön an alle, die sich die Zeit nehmen, das Script mal zu überfliegen.

    PS: Doppelpost war leider nötig (bei einfachem editieren wäre der Thread nicht als Neu markiert). Sorry

Thema geschlossen

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87