Anzeige:
Ergebnis 1 bis 10 von 10

Thema: Iptables script + Interface aliases

  1. #1
    Registrierter Benutzer
    Registriert seit
    Feb 2004
    Beiträge
    74

    Iptables script + Interface aliases

    hallo,
    ich hab da grad ein knopf im hirn:

    wenn ich mehrere ofizielle Ip Adressen habe in der Form:

    eth0 --> 198.64.xxx.xxx
    eth0:1---> 198.104.xxx.xxx
    eth0:2
    eth0:3
    u.s.w.

    kan ich die dann mittels Iptables so ansprechen?
    # HTTP
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p tcp --dport 80 -j ACCEPT

    u.s.w

    ich frag nur weil wenn ich mein script starte dann kommt folgende Fehlermeldung:
    Warning: wierd character in interface `eth0:1' (No aliases, :, ! or *).
    Warning: wierd character in interface `eth0:2' (No aliases, :, ! or *).
    Warning: wierd character in interface `eth0:3' (No aliases, :, ! or *).

    vielleicht habt ihr ne idee wie ich das lösen kann.

    lg,
    -Komaii

  2. #2
    Registrierter Benutzer
    Registriert seit
    Feb 2004
    Beiträge
    74
    sorry hab das script vergessen:
    hier ist es nun. idee des scriptes ist nur ein wenig mehr schutz auf dem
    server, später kommt eh mal ne hardware firewall davor, aber bis dahin dauerts noch ein wenig:

    #!/bin/sh
    # comments to: komaii@gmx.at
    # last modified by <komaii@gmx.at>

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

    # iptables-Modul
    modprobe ip_tables
    # Connection-Tracking-Module
    modprobe ip_conntrack
    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

    # HTTP
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:4 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:5 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:7 -m state --state NEW -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i eth0:8 -m state --state NEW -p tcp --dport 80 -j ACCEPT

    # HTTPS
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -i eth0:4 -m state --state NEW -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -i eth0:5 -m state --state NEW -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -i eth0:6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -i eth0:7 -m state --state NEW -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -i eth0:8 -m state --state NEW -p tcp --dport 443 -j ACCEPT

    # SMTP
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i eth0:4 -m state --state NEW -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i eth0:5 -m state --state NEW -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i eth0:6 -m state --state NEW -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i eth0:7 -m state --state NEW -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i eth0:8 -m state --state NEW -p tcp --dport 25 -j ACCEPT

    # POP3
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i eth0:4 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i eth0:5 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i eth0:6 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i eth0:7 -m state --state NEW -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i eth0:8 -m state --state NEW -p tcp --dport 110 -j ACCEPT

    # FTP
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -i eth0:4 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -i eth0:5 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -i eth0:6 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -i eth0:7 -m state --state NEW -p tcp --dport 21 -j ACCEPT
    iptables -A INPUT -i eth0:8 -m state --state NEW -p tcp --dport 21 -j ACCEPT

    # SSH
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0:4 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0:5 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0:6 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0:7 -m state --state NEW -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -i eth0:8 -m state --state NEW -p tcp --dport 22 -j ACCEPT

    # MYSQL
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -i eth0:4 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -i eth0:5 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -i eth0:6 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -i eth0:7 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -i eth0:8 -m state --state NEW -p tcp --dport 3306 -j ACCEPT

    # NTP
    iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -i eth0:1 -m state --state NEW -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -i eth0:2 -m state --state NEW -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -i eth0:3 -m state --state NEW -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -i eth0:4 -m state --state NEW -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -i eth0:5 -m state --state NEW -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -i eth0:6 -m state --state NEW -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -i eth0:7 -m state --state NEW -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -i eth0:8 -m state --state NEW -p udp --dport 123 -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

  3. #3
    Registrierter Benutzer
    Registriert seit
    Feb 2002
    Ort
    Strana Metschty
    Beiträge
    1.021
    Das geht meines Wissens nicht, aber du kannst mit -s <IP> bzw. -d <IP> die Adresse angeben .. reicht das ?
    "Der Mensch ist der einzige rückkopplungsstabilisierte und vorallem multifunktionale Regel- und Servomechanismus, der genügend preiswert in Massenproduktion von ungelernten Leuten hergestellt werden kann."

  4. #4
    Registrierter Benutzer
    Registriert seit
    Feb 2004
    Beiträge
    74
    du meinst so in der art:
    -s 0.0.0.0 -d 198.64.xxx.xxx ,meine IP`s halt die ich verwende?

  5. #5
    Moderator
    Registriert seit
    May 2002
    Ort
    Dortmund
    Beiträge
    1.407
    Ja - genau so geht es. Lass das "-s 0.0.0.0" noch weg, denn so ist das eh nur ein optionales Argument.
    PS: Vielen Dank für die Benutzung meines Generators

    Harry
    Wer einen Fehler findet, der darf ihn gerne behalten ;)
    http://harry.homelinux.org - iptables Generator & mehr

  6. #6
    Registrierter Benutzer
    Registriert seit
    Feb 2004
    Beiträge
    74
    danke für den tip
    jep der generator is pippifein, wenn ich das so sagen darf )
    grosses lob )

    dann hab ich gleich ne weitere Frage: hier der output beim starten..
    modprobe: Can't open dependencies file /lib/modules/2.4.18/modules.dep (No such file or directory)
    iptables v1.2.5: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    iptables v1.2.5: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    iptables v1.2.5: Unknown arg `--state'
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.5: Unknown arg `--state'
    Try `iptables -h' or 'iptables --help' for more information.
    iptables v1.2.5: Unknown arg `--state'

    ist das schlimm, weil ich kann den kernel nicht updaten auf der RedHat Maschine, die steht in den USA und ist ein Priduktionsserver, wenn der nicht mehr hochkommt bin ich hinüber...
    drauf ist:Linux 2.4.18 #7 SMP Fri Sep 27 13:24:53 EDT 2002 i686 unknown


    lg,
    -Thomas

    ps. dein ACID/SNORT Anleitung ist kewl, hatt auf Anhieb geklappt damit )

  7. #7
    Moderator
    Registriert seit
    May 2002
    Ort
    Dortmund
    Beiträge
    1.407
    Zitat Zitat von komaii
    danke für den tip
    jep der generator is pippifein, wenn ich das so sagen darf )
    grosses lob )
    Ja darfst Du so sagen - ein Lob hört man immer gerne Das motiviert auch zum weitermachen

    dann hab ich gleich ne weitere Frage: hier der output beim starten..
    modprobe: Can't open dependencies file /lib/modules/2.4.18/modules.dep (No such file or directory)
    ...
    Schaut ganz so aus, als hättest Du mal ein Kernel-Update versucht oder aber neuere Module eingespielt, die nicht zum Kernel passen oder einfach nur Deine /etc/modules.conf verändert.
    Im letzteren Falle sollte ein "depmod -a" die Abhängigkeiten der Module untereinander neu erstellen.

    ps. dein ACID/SNORT Anleitung ist kewl, hatt auf Anhieb geklappt damit )
    Das ACID/SNORT-HOWTO hat HangLoose verfasst - der Dank gebührt ihm an der Stelle. Ich habe ihn nur zum Verfassen des HOWTOS angestiftet

    Harry
    Wer einen Fehler findet, der darf ihn gerne behalten ;)
    http://harry.homelinux.org - iptables Generator & mehr

  8. #8
    Registrierter Benutzer
    Registriert seit
    Feb 2004
    Beiträge
    74
    nachtrag an Harry,
    vllt kannst du noch die zwei einbaun in den generator:

    1. Backlog-Queue
    2. SYN/ACK-Versuche

    gefunden auf www.heisec.de

    http://www.heise.de/security/artikel/43066/1

    lg,
    -Thomas

  9. #9
    Registrierter Benutzer
    Registriert seit
    Feb 2004
    Beiträge
    74
    Schaut ganz so aus, als hättest Du mal ein Kernel-Update versucht oder aber neuere Module eingespielt, die nicht zum Kernel passen oder einfach nur Deine /etc/modules.conf verändert.
    Im letzteren Falle sollte ein "depmod -a" die Abhängigkeiten der Module untereinander neu erstellen.

    depmod -a = depmod: QM_MODULES: Function not implemented
    ach gott , jetzt steht ich an: das steht in der "modules.conf"
    # module support has been disabled in the default EWH kernel to
    # reduce the risk posed by rootkits. enable module support at your own risk.

    tja, soweit bin ich noch nicht vorgedrungen, vllt einen tipp wie ich das antellen soll, oder ist es wirklich so das ich den jetzt selber basteln kann den kernel?

    und noch ein dickes Lob an "HangLoose" für das ACID/SNORT HOWTO, spitzenmässig

    lg,
    -Thomas

  10. #10
    Moderator
    Registriert seit
    May 2002
    Ort
    Dortmund
    Beiträge
    1.407
    Hallo,

    erstmal vielen Dank für den Hinweis
    Zitat Zitat von komaii
    nachtrag an Harry,
    vllt kannst du noch die zwei einbaun in den generator:

    1. Backlog-Queue
    2. SYN/ACK-Versuche
    Ich zaudere mit der Implementierung dieser beiden Parameter etwas. Die Gründe:
    1. Der Wert der Backlog-Queue wird automatisch vom Kernel beim Start gesetzt und zwar in Abhängigkeit vom verfügbaren Arbeitsspeicher. Systeme mit >= 128MB bekommen den Wert 1024 (so wie Heise es vorschlägt), andere Systeme den Wert 128 (das werden eher selten Serversysteme sein).
    2. Der Defaultwert von tcp_synack_retries steht auf 5 -> 180 Sekunden. Aus meiner Sicht könnte man ihn vielleicht auf 4 oder 3 runtersetzen; 1 halte ich gerade für weit entfernte und langsame Clientverbindungen für zu kompromisslos. Und wenn es ein böswilliger Angreifer wirklich auf einen Server abgesehen hat und den mit einem distributet SYN-Flooding belegt, dann ist davon auszugehen, dass die Angriffsbandbreite so hoch ist, dass er innerhalb kürzester Zeit die Backlog-Queue vollschreibt, ganz egal wie klein der Wert von tcp_synack_retries gesetzt ist.

    Harry
    Wer einen Fehler findet, der darf ihn gerne behalten ;)
    http://harry.homelinux.org - iptables Generator & mehr

Ähnliche Themen

  1. htb traffic control script von CT
    Von Hellek im Forum Router und Netzaufbau
    Antworten: 8
    Letzter Beitrag: 29.10.04, 14:55
  2. Wo ist der Fehler?
    Von der_angler im Forum Sicherheit
    Antworten: 10
    Letzter Beitrag: 10.09.03, 12:25
  3. iptables forwarding
    Von Mathew im Forum Sicherheit
    Antworten: 6
    Letzter Beitrag: 22.05.03, 09:28
  4. IPTables Script verursacht sporadischen disconnect
    Von Rotzbuab im Forum Router und Netzaufbau
    Antworten: 7
    Letzter Beitrag: 10.04.03, 15:23
  5. firewall blockt ACK,SYN-Pakete
    Von SniperRifle im Forum Sicherheit
    Antworten: 32
    Letzter Beitrag: 18.01.03, 22:54

Lesezeichen

Berechtigungen

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