iptables und DSL Einwahl...

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
disher
Beiträge: 1
Registriert: 30.05.2005 20:05:00

iptables und DSL Einwahl...

Beitrag von disher » 30.05.2005 20:06:56

Hallo leute...

ich bin gerade dabei mir ein script zu bauen welches meine IPtables rules gescheit setzt.

Generell möchte ich erst mal ALLES blocken das funzt auch... funzt sogar zu gut Razz

Zitat:
#!/bin/bash

### Firewall Script by antigone ###

### Ruleset löschen ###

/sbin/iptables -F
/sbin/iptables --delete-chain

### IP Forward erlauben ###

echo "1" > /proc/sys/net/ipv4/ip_forward

### NAT ###

/sbin/iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE

### Alles Blocken ###

/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP

### Loop Interface Access geben ###

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

### LOG Rules ###

#/sbin/iptables -A INPUT -j LOG --log-level debug --log-prefix "Blocked Ports incomming "
#/sbin/iptables -A FORWARD -j LOG --log-level debug --log-prefix "Blocked Ports Forwards "
/sbin/iptables -A OUTPUT -j LOG --log-level debug --log-prefix "Blocked Ports outgoing "

### INPUT erlauben ###

###SSH###

/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --sport 22 -j ACCEPT

###DNS###

/sbin/iptables -A INPUT -p tcp --sport 53 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT

###DNS###

/sbin/iptables -A INPUT -p udp --sport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT


### OUTPUT erlauben ###

###SSH###

/sbin/iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

###DNS###

/sbin/iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT

/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --sport 53 -j ACCEPT


###TeamSpeak###

/sbin/iptables -A OUTPUT -p tcp --sport 14534 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --sport 8767 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 8767 -j ACCEPT

###Surfen###

/sbin/iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --sport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

###E-Mail###

/sbin/iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 110 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --sport 110 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --sport 110 -j ACCEPT


echo "Firewall läuft nun"


### FORWARDS erlauben ###
#########################
IPTABLES=/sbin/iptables
INET_IFACE=ppp0
USER=192.168.0.10
########################


Ich möchte halt jeden Port welche ich nach aussen benutzten möchte auch expliziet erlaufen...

Aber irgentwie scheint dieses nicht zu funktionieren....

Bevor ihr jetzt kommt mit udp/tcp und dport/sport.. das sind alles nur tests weil es ja nicht funzt :-(

Vielleicht hat ja jemand eine gute Idee...

daniel

Benutzeravatar
remus
Beiträge: 214
Registriert: 03.09.2003 12:06:33
Wohnort: Würzburg
Kontaktdaten:

Beitrag von remus » 30.05.2005 20:59:22

Ich will das Problem mal an einem kleinen Beispiel erleutern. Angenommen du willst surfen, dann sendest du durch OUTPUT ein Paket mit dport 80. Das wird auch durchgelassen, aber die Antwort kommt mit sport 80 und irgendeinem dport nach INPUT und wird weggeschmissen.
Damit will ich aber nicht sagen, dass du jetzt bei INPUT für sport 80 ein ACCEPT hinzufügen sollst. Das würde nämlich dazu führen, das man auf jeden Port deines Rechners zugreifen kann, wenn man als sport die 80 nimmt. Die Lösung des Problems ist es, alle Pakete, die zu einer gültigen Verbindung gehören (der Versuch eine Verbindung aufzubauen ist ja im obigen Beispiel geglückt) auch durchzulassen. Das erreichst du mit

Code: Alles auswählen

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Benutzeravatar
Hosi
Beiträge: 226
Registriert: 17.03.2003 15:17:29

Beitrag von Hosi » 31.05.2005 01:14:02

Und außerdem brauchst Du die TCP-Regeln für DNS nicht. Es sei denn, Du hast einen internen Nameserver laufen, der Zonentransfers über die externe Leitung macht.

Antworten