Anzeige:
Ergebnis 1 bis 12 von 12

Thema: IPTABLES Edonkey sperren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Ayreonaut Avatar von Sayonara
    Registriert seit
    Jul 2002
    Ort
    irgendwo im Oberberg
    Beiträge
    1.051

    IPTABLES Edonkey sperren

    Ich hab ein IPTABLES Script von Harry auf meinen Router laufen. Masquerading ist aktiviert, damit Rechner aus der LAN ins Internet kommen. Nur nervt mich die Nutzung von Edonkey innerhalb der LAN. Wie kann ich das unterbinden? Eigentlich müsste doch einfach alle Pakete die Source oder Destination auf Port 4662? haben einfach droppen lassen. Wie müsste da entsprechende Regel in IPTABLES aussehen, um auch NAT Pakete zu filtern?
    Desktop, Laptop, Macbook Pro: all powered by openSUSE

  2. #2
    Registrierter Benutzer Avatar von klemens
    Registriert seit
    Nov 2002
    Ort
    Wien
    Beiträge
    2.061
    würd es einmal damit versuchen:
    iptables -t nat -A PREROUTING -p tcp (oder udp) --dport 4662 -j DNAT --to 127.0.0.1

    Was ich nicht weiss, ist ob diese Filesharing-Programme, nicht auch gerne ihren Weg finden ...

    edit:

    Über die FORWARD-Kette sollte es eigentlich auch gehen:
    iptables -A FORWARD -p tcp --dport 4662 -j REJECT
    Geändert von klemens (28.11.03 um 23:43 Uhr)

  3. #3
    Ayreonaut Avatar von Sayonara
    Registriert seit
    Jul 2002
    Ort
    irgendwo im Oberberg
    Beiträge
    1.051
    funktioniert leider nicht
    Ich hab mal mit Ethereal das ppp0 Device des Routers überwacht. Ausgehende Edonkey Pakete gehen immer an TCP Port 4662. Eingehende Pakete gehen an unterschiedliche Ports am Router. Ein andere Scan an eth0 des Router zeigt aber, das sie and TCP Port 4662 des Clients in der LAN weitergeleitet werden. Genau diese Pakete sollen gedroppt werden! Es soll keine Traffic mir rein oder raus gehen mit diesem Drecks-Donkey! Mein IPTABLES Script sie so aus:
    Code:
    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 "
        iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "
    
        # Korrupte Pakete zurueckweisen
        iptables -A INPUT -m state --state INVALID -j DROP
        iptables -A OUTPUT -m state --state INVALID -j DROP
        iptables -A FORWARD -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
        iptables -A FORWARD -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
        iptables -A FORWARD -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
        iptables -A FORWARD -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
        iptables -A FORWARD -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
        iptables -A FORWARD -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
        iptables -A FORWARD -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
        iptables -A FORWARD -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
    
        # Maximum Segment Size (MSS) für das Forwarding an PMTU anpassen
        iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    
        # Connection-Tracking aktivieren
        iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
        iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
        iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
        iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
        # HTTP
        iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    
        # SSH
        #iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    
        # POP3
        iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    
        # FTP
        #iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    
        # LAN-Zugriff auf eth0
        iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
    
        # Default-Policies mit REJECT
        iptables -A INPUT -j MY_REJECT
        iptables -A OUTPUT -j MY_REJECT
        iptables -A FORWARD -j MY_REJECT
    
        # Routing
        echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
    
        # Masquerading
        iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    
        # SYN-Cookies
        # echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
    
        # Stop Source-Routing
        for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done
    
        # Stop Redirecting
        for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done
    
        # Reverse-Path-Filter
        for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done
    
        # Log Martians
        for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done
    
        # BOOTP-Relaying ausschalten
        for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done
    
        # Proxy-ARP ausschalten
        for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done
    
        # Ungültige ICMP-Antworten ignorieren
        echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null
    
        # ICMP Echo-Broadcasts ignorieren
        echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
    
        # 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
    
        ;;
    Desktop, Laptop, Macbook Pro: all powered by openSUSE

  4. #4
    Registrierter Benutzer Avatar von klemens
    Registriert seit
    Nov 2002
    Ort
    Wien
    Beiträge
    2.061
    Die Regel muss vor masquerading erstellt werden und das connection-tracking hätte ich auch in Verdacht. Baut sich edonkey ev. über eine Webseite auf? - Sodass die Verbindung ev. schon besteht? (Sorry kenne edonkey selbst nur vom Hörensagen.)

    Das macht schon viel auf:

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

    Setz die Regeln davor!

  5. #5
    Ayreonaut Avatar von Sayonara
    Registriert seit
    Jul 2002
    Ort
    irgendwo im Oberberg
    Beiträge
    1.051
    AAAAHHHHRRRR, ich hasse diese EDonkey!!!!!
    Ich hab die Regeln davor gesetzt und die Firewall neu gestartet. Eine Überprüfung mit Ethereal zeigt mir an, das der Traffic auf und von Port 4662 eingestellt wurde. Es sind jediglich nur noch ein paar SYN Pakete des Donkey Clients, die bei dem Router eintreffen. Aber keine Antwort.
    Dafür kracht es jetzt auf anderen Ports. Anscheinend sucht sie der Donkey Müll einfach andere Ports, wenn die Standardports nicht mehr gehen.
    Desktop, Laptop, Macbook Pro: all powered by openSUSE

  6. #6
    Registrierter Benutzer Avatar von klemens
    Registriert seit
    Nov 2002
    Ort
    Wien
    Beiträge
    2.061
    Diese Dinge sind hundig (hatte bisher nur Erfahrung mit kazaa)
    Sind damals so vorgegangen, dass wir (auf windowsrechner) kazaa laufen liessen und netstat mitrennen liessen. Dann einfach IP für IP sperren. Irgendwann hatten wir das Ding dann in den Knien. Möcht aber nicht die Hand ins Feuer legen, dass wir alle Hintertüren erwischt hatten.

    Du kannst auch den umgekehrten Weg gehen: Alles verbieten und nur die Ports öffnen, die gebraucht werden. Und hoffen, dass da einer nicht zum tunneln beginnt ...

  7. #7
    Gottesfreund
    Registriert seit
    Aug 2002
    Ort
    Wiesbaden
    Beiträge
    357
    Den 4662-Port-Traffic vom Router aus auf z.B. 1Kb/s runtersetzen, geht das nicht irgendwie?
    Dann würde Donkey zwar noch laufen, aber bei der Geschwindigkeit wird das keiner mehr nutzen...

  8. #8
    Netzwerker
    Registriert seit
    Oct 2002
    Ort
    Grevenbroich
    Beiträge
    551
    Der ED2k "sucht sich nicht seinen Weg" sonder die Ports werden vom User eingestellt. Wenn der User merkt, dass auf Port 4662 die Türen zu sind, dann setzt der den Esel auf 4663 oder sonstwo... Einzig und alleine hilft da nur mal ne dicke fette Schelle dem User.

    MfG
    LordDarkmage
    Kind: "Maaamaaaa! Wo ist denn der Waschlappen?"
    Schwiegermutter: "Zigaretten holen!"

  9. #9
    leon
    Gast
    Du könntest natürlich auch den wahnsinnigen Weg gehen und alle Ports auf beiden Seiten dicht machen. Für das Web lässt Du einen Proxy auf dem Router laufen. andere wichtige Dienste auf dem Router lässt Du von beiden Interfaces frei die anderen Dienste auf anderen Servern die von aussen erreicht werden müssen Forwardest Du einfach durch.
    So sind alle Ports erstmal dicht und nur die gebraucht werden hast du offen.
    Du solltest aber wissen was in Deiner Firma noch alles nach draussen muss. z.B. Meeting Software, wenn kein eigener Mailserver vor Ort dann halt POP und SMTP.
    Ist eine heiden Arbeit, aber Du hast ein gutes Gewissen, dass alles dicht ist.




    Gruß Leon

  10. #10
    Ayreonaut Avatar von Sayonara
    Registriert seit
    Jul 2002
    Ort
    irgendwo im Oberberg
    Beiträge
    1.051
    Original geschrieben von LordDarkmage
    Der ED2k "sucht sich nicht seinen Weg" sonder die Ports werden vom User eingestellt. Wenn der User merkt, dass auf Port 4662 die Türen zu sind, dann setzt der den Esel auf 4663 oder sonstwo... Einzig und alleine hilft da nur mal ne dicke fette Schelle dem User.

    MfG
    LordDarkmage
    Wenn das nur so wäre... Ich hab aber letzte Nacht ganz andere Erfahrungen gemacht. Der ED2k Client in der LAN lief ganz autonom ohne einwirken des Users. Ich hab dann die mit Ethereal emittelten Ports auf dem das Edonkey Protokol angwant wurde gesperrt und sogar meine Inet Verbindung neu gewählt, damit ich eine neue IP Addresse bekommen würde, und der Donkey Client seine Verbindungen erneut initialisieren muss. Das hat er dann auch nach wenigen Minuten wieder geschaft, nur diesmal auf anderen Ports. Die hab ich dann auch zu gemacht, und das Spiel wiederhohlt. Doch es finden immer wieder einen neuen Weg. Ich hab jetzt komplett TCP und UDP von 4660-4665 also Destination Port gesperrt. Damit sollte es eigentlich nicht möglich sein, sich überhaupt an einem Server anzumelden. Es hat aber wieder einen Weg gefunden und ich bin total genervt von dem ******
    Desktop, Laptop, Macbook Pro: all powered by openSUSE

  11. #11
    BigTuX Avatar von Link
    Registriert seit
    Jun 2003
    Ort
    Balingen
    Beiträge
    242
    Original geschrieben von LordDarkmage
    Der ED2k "sucht sich nicht seinen Weg" sonder die Ports werden vom User eingestellt. Wenn der User merkt, dass auf Port 4662 die Türen zu sind, dann setzt der den Esel auf 4663 oder sonstwo... Einzig und alleine hilft da nur mal ne dicke fette Schelle dem User.

    MfG
    LordDarkmage
    Richtig! Der Esel (unter welchem Prog) auch immer sucht sich nicht selbst nen freien Port.
    Viele User stellen andere Ports ein, z.B. Port 80. Da man somit kein Ärger mit seinem Provider hat. Denn zeigt mir mal nen Provider der den Port 80 sperrt

    MfG, Link
    Cheers, Link!!!

  12. #12
    Netzwerker
    Registriert seit
    Oct 2002
    Ort
    Grevenbroich
    Beiträge
    551
    ich würde da evtll noch nen anderen Weg gehen. Schnapp dir den User und sag ihm/ihr er/sie soll das mit der "filesharerei" mal hübsch sein lassen, da du sonst JEDEN Port sperren wirst auf dem du mal den Esel entdeckt hast. Wenn der Troll sich das dann "schaulerweise" auf nen wichtigen Port (wie Link schon sagte auf Port 80) legt, dann kann er mit seiner Internetverbindung einpacken.

    OOOOooooder mach Trafficshaping... Dann ist das Thema sowieso vom Tisch. Ich denke mal, dass dich nervt, wenn die Leitung zu ist oder? Gibst du demjeningen 20 down und 5 up und Ende im Gelände.

    MfG
    LordDarkmage
    Kind: "Maaamaaaa! Wo ist denn der Waschlappen?"
    Schwiegermutter: "Zigaretten holen!"

Lesezeichen

Berechtigungen

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