iptables problem n00b@work

W

WasserDragoon

Foren As
hi,
ich hab probleme mit azureus und limewire.
die wollen nicht, wegen iptables.
ich hab echt null ahnung davon.
ich weiß nur dass ich noch keine regeln drin stehen hab.
wäre nett, wenn mir jemand weiterhelfen könnte.
hab ne eth0 verbindung und weiß leider nur den port von azureus: 52000
bitte keine links ich wollte das heute gerne fertig bekommen und ich muss auch noch hausaufgaben machen :-(
danke im voraus.
mfg,
WasserDragoon.
 
Wenn iptables -L nix außer ACCEPT bringt, liegt es nicht an iptables! ;)
 
Per Default sind alle Ports bei Linux erstmal zu, sofern sie nicht von einem Programm benutzt werden. Das folgende kleine Skript sollte dir weiter helfen.

Code:
#!/bin/bash
echo "Starting firewall"
LOGLIMIT=20
IPTABLES=/sbin/iptables
# alle alten Regeln entfernen
echo "Loesche alte Regeln"
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
# Erstelle neue Ketten
echo "Erstelle neue Ketten..."
$IPTABLES -N LOGREJECT
$IPTABLES -A LOGREJECT -m limit --limit $LOGLIMIT/minute -j LOG --log-prefix "FIREWALL REJECT " --log-level notice --log-ip-options --log-tcp-options
$IPTABLES -A LOGREJECT -j REJECT --reject-with icmp-port-unreachable
### PROC MANIPULATION ###
echo ""Aendere proc-Einstellungen"
# auf Broadcast-Pings nicht antworten
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# halt die Klappe bei komischen ICMP Nachrichten
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Kicke den ganzen IP Spoofing Shit
# (Source-Validierung anschalten)
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Setze Default-TTL auf 61 (Default fuer Linux ist 64)
echo 61 > /proc/sys/net/ipv4/ip_default_ttl
# sende RST-Pakete wenn der Buffer voll ist
echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
# warte max. 30 secs auf ein FIN/ACK
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# unterbreche Verbindungsaufbau nach 3 SYN-Pakete, Default ist 6
echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
# unterbreche Verbindungsaufbau nach 3 SYN/ACK-Paketen, Default ist 6
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
### MAIN PART ###
echo "Erstelle neue Regeln"
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# im Loopback koennen wir jedem trauen
$IPTABLES -A INPUT -i lo -j ACCEPT
# erlaube Pings
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# azureus
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport <hier-tcp-port-eintragen> -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p udp --dport <hier-udp-port-eintragen> -j ACCEPT
# limewire
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport <hier-tcp-port-eintragen> -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p udp --dport <hier-udp-port-eintragen> -j ACCEPT
# Alle TCP Packete, die bis hier hin kommen, werden geloggt und rejected
# Der Rest wird eh per Default Policy gedroppt...
$IPTABLES -A INPUT -p tcp -j LOGREJECT
exit 0

Musst nur noch deine Ports eintragen und dann solltest du weniger Probleme haben.
 
Ich bin mir nicht ganz sicher, ob bei kubuntu nicht schon ein init-script bei ist, aber:

Tu folgendes:

Speicher das script von theton nach z.B. /sbin ;Mach anschließend ein chmod 700 darauf. Ich geh in meinem script davon aus, dass du es startiptables genannt hast.

Dann nimm folgendes script:

Code:
#!/bin/sh

case "$1" in
  start)
        [ -e /sbin/startiptables ] && /sbin/startiptables
        ;;
  stop)
        iptables -F
        iptables -t nat -F
        iptables -X
        iptables -P INPUT ACCEPT
        iptables -P OUTPUT ACCEPT
        iptables -P FORWARD ACCEPT
        echo "iptables gestoppt."
        ;;
  panic)
        iptables -F
        iptables -t nat -F
        iptables -X
        iptables -P INPUT DROP
        iptables -P FORWARD DROP
        echo "alles verriegelt..."
        ;;
  *)
        echo "Usage: /etc/init.d/iptables {start|stop|panic}" >&2
        exit 3
        ;;
esac

Nenn es iptables oder so und speicher es in /etc/init.d ;dann noch chmod 700
Anschließend nimmst du dein Kontrolzentrum und trägst das script in deine runlevel ein.
Wenn du nicht weißt in welche, nimm 2,3,4 und 5.

Das war's schon. Vergiss nicht im script von theton deine ports einzutragen, sonst geht's schief.


greetz, Ralle
 
so hab in kcontrol das iptables script bei boot autostart aktiviert...
nun hab ich mal neu gestartet und er will das iptables script nicht starten...ich hatte vorher schon was rumprobiert mit kmyfirewall aber davon lass ich lieber wieder die finger.
hab ich das falsche skript ausgewählt?
in azureus gibt er mir beim port/firewall sagt er mir ich hätte ein NAT Problem und er will nicht runterladen.
limewire verbindet auch nicht.
ich sehe in der iptables -L auch niergendwo die kette LOGREJECT, d.h. also er hat das skript nciht ausgeführt...
 
Probier mal:

$ /etc/init.d/iptables start

und poste dann bitte den output von

$ iptables -L
 
sudo: /etc/init.d/iptables: command not found
 
Nu ja, was soll ich machen. Wenn ich dort hinschreibe: "chmod 700" und er tut's nicht, kann ich's auch nicht ändern.

Vielleicht hängt's auch am vergessenen chown. Wer weiß.

Am liebsten würde ich ja sagen: starte ssh, bastle nat, gib mir ip und pw. ich mach's.
Würde irgendwie schneller gehen... :D
 
also chmod hab ich gemacht chown nur nicht...ich hab den chmod mit sudo geändert..also müsste es doch gehen
 
Ne. Du hast das script als user erstellt. Und dann ne 700 drauf. Das klappt ni.

Ich kenn die Sicherheitsdiskussionen wegen alles mit sudo machen. Meine Meinung ist aber immer noch die: Wenn du mehrere Dinge hintereinander als root machen mußt (Wie bei dieser Sache hier), solltest du schon su'n. Das nur nebenbei.

Mach jetzt folgendes:

$ su -
$ chown root:root /sbin/startiptables
$ chmod 700 !$
$ chown root:root /etc/init.d/iptables
$ chmod 700 !$
$ /etc/init.d/iptables start
$ iptables -L

den letzten output postest du bitte.
 
ok hab mal chowm gemacht und nun gibt er mir folgendes aus:
Code:
andy@andy:~$ sudo /etc/init.d/iptables start
Starting firewall
Loesche alte Regeln
Erstelle neue Ketten...
/sbin/startiptables: line 35: unexpected EOF while looking for matching `"'
/sbin/startiptables: line 55: syntax error: unexpected end of file
nachdem ging das internet nicht mehr.
als ich dann /etc/init.d/iptables stop ausgeführt hab ging das inet wieder
 
WasserDragoon schrieb:
nachdem ging das internet nicht mehr.

Och, da mach dir mal keine Sorgen, das Internet ging noch. Auch wenn du keinen Zugriff mehr hattest... :D Sorry.

Poste mal bitte:

$ cat /sbin/startiptables
 
Code:
#!/bin/bash
echo "Starting firewall"
LOGLIMIT=20
IPTABLES=/sbin/iptables
# alle alten Regeln entfernen
echo "Loesche alte Regeln"
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
# Erstelle neue Ketten
echo "Erstelle neue Ketten..."
$IPTABLES -N LOGREJECT
$IPTABLES -A LOGREJECT -m limit --limit $LOGLIMIT/minute -j LOG --log-prefix "FIREWALL REJECT " --log-level notice --log-ip-options --log-tcp-options
$IPTABLES -A LOGREJECT -j REJECT --reject-with icmp-port-unreachable
### PROC MANIPULATION ###
echo ""Aendere proc-Einstellungen"
# auf Broadcast-Pings nicht antworten
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# halt die Klappe bei komischen ICMP Nachrichten
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Kicke den ganzen IP Spoofing Shit
# (Source-Validierung anschalten)
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Setze Default-TTL auf 61 (Default fuer Linux ist 64)
echo 61 > /proc/sys/net/ipv4/ip_default_ttl
# sende RST-Pakete wenn der Buffer voll ist
echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
# warte max. 30 secs auf ein FIN/ACK
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# unterbreche Verbindungsaufbau nach 3 SYN-Pakete, Default ist 6
echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
# unterbreche Verbindungsaufbau nach 3 SYN/ACK-Paketen, Default ist 6
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
### MAIN PART ###
echo "Erstelle neue Regeln"
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# im Loopback koennen wir jedem trauen
$IPTABLES -A INPUT -i lo -j ACCEPT
# erlaube Pings
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# azureus
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 52000 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p udp --dport 52000 -j ACCEPT
# limewire
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 33032 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p udp --dport 33032 -j ACCEPT
# Alle TCP Packete, die bis hier hin kommen, werden geloggt und rejected
# Der Rest wird eh per Default Policy gedroppt...
$IPTABLES -A INPUT -p tcp -j LOGREJECT
exit 0
 
In der Zeile 16:
echo ""Aendere proc-Einstellungen"
muss ein " am Anfang raus.

Dann geht's.
 
jo ging aber ich kann in azureus und limewire immernoch nicht runterladen
iptables -L:
Code:
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTAB
LISHED
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:5
2000
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:5                                                                           2000
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:3                                                                           3032
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:3                                                                           3032
LOGREJECT  tcp  --  anywhere             anywhere

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTAB                                                                           LISHED

Chain LOGREJECT (1 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            limit: avg 20/min b                                                                           urst 5 LOG level notice tcp-options ip-options prefix `FIREWALL REJECT '
REJECT     all  --  anywhere             anywhere            reject-with icmp-po                                                                           rt-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
 

Ähnliche Themen

iptables - default policy - Server macht dicht

Denkfehler, oder was? iptables Script-Problem

Portknocking mit iptables

nach debian dist-upgrade kein Mailupruf mehr

Zurück
Oben