PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IPTABLES, Temporäre Portfreigabe?



-As-
30.10.08, 21:48
Hallo,

ich habe grade mich gefragt ob es eine möglichkeit gibt, bei einer restriktiven firewall eine art temporäre portfreigabe machbar ist.

es soll nach möglichkeit mit einem konsolenbefehl eingegeben werden:


iptables -A OUTPUT -o ppp0 -p tcp --dport 12345 -m state --state NEW -j ACCEPT

ziel: freigaben von musikstreams von multiplen ports, welche nur für diese eine verbindung gültig ist.

bisher muss ich den port freigeben und dann wieder aus der tabelle löschen. das sollte von alleine nach 15 sec geschen.

jemand ne idee?


mfg alex

BedriddenTech
30.10.08, 22:55
Mit einem Skript machen. Iptables selbst kennt meines Wissens nach keinen Zeitzähler.

marce
31.10.08, 08:33
evtl. hilft Dir eine Abwandlung von portknocking weiter...

-As-
01.11.08, 22:39
danke!

schade!

da wird beschrieben dass es auch mit iptables geht:
http://www.soloport.com/iptables.html

jetzt müsste ich nur noch ein script bauen, welches den ssh-port auch automatisch nach login wieder schließt. hmm jemand nen tipp?

BedriddenTech
02.11.08, 03:06
Hmm, Du könntest z. B. die .bash_logout benutzen. Das hilft aber nicht so sehr, wenn die Anmeldung nicht interaktiv ist oder eine andere Shell benutzt wird.

Wie wäre es damit: Es gibt das PAM-Modul "pam_exec", das Du dazu benutzen könntest, pro Login die Verwendete IP-Adresse in eine Datei zu schreiben. Regelmäßig läuft dann ein Skript, das prüft, ob eine Regel für die IP-Adresse besteht, noch ein SSH-Login offen ist und ein Eintrag in dieser Datei besteht. Ist dem nicht so, wird die IP aus der Datei entfernt und auch die iptables-Regel gelöscht. Dabei müßtest Du das natürlich für so ziemlich jeden Benutzer machen, damit es keine Probleme gibt, wenn sich zwei unterschiedliche Benutzer von derselben IP-Adresse anmelden, z. B. wegen NAT.

derRichard
02.11.08, 12:18
hi!

du kannst ja eine iptables-regel bauen die auf das fin-flag vom tcp hört...
wenn bei deiner verbindung ein fin kommst machst einfach wieder zu...

hth,
//richard

-As-
02.11.08, 20:26
Fin-Flag.. du meinst so wie in der art, eine weitere chain erstellen und als jumppunkt diese chain angeben? ich hab die rules für die VPN-verbindung mal in eine chain namens VPN (unten TEST) reingestopft und dann in der INPUT-regel mittels -jump nach VPN gelinkt.. klappt jedoch nicht so wirklich.

ein einfacher test:

iptables -A INPUT -p tcp --dport knockport -m recent --update --seconds 10 --hitcount 5 -j TEST
iptables -A TEST -j ACCEPT

Chain INPUT (policy DROP)
TEST tcp -- anywhere anywhere tcp dpt:23500 recent: UPDATE seconds: 10 hit_count: 5 name: DEFAULT side: source


Chain OUTPUT (policy DROP)
ACCEPT tcp -- anywhere anywhere tcp spt:23500


Chain TEST (1 references)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere

oder interpretiere ich da etwas falsch?

403
02.11.08, 21:42
hi!

du kannst ja eine iptables-regel bauen die auf das fin-flag vom tcp hört...
wenn bei deiner verbindung ein fin kommst machst einfach wieder zu...


die Idee ist gut, aber einfach auf fin flags zu setzen waere aergerlich wenn
der Stream vorher abreisst. Besser faende ich auf einen String beim
Beenden der Software zu warten etwa QUIT.



#/bin/sh -
tcpdump_user=pcap
payload=0x51554954
host=$1
#port=$2

if [ -z "$1" ]; then
echo "please enter host";
exit 1;
fi

echo "iptables Befehle zum Oeffnen"
iptables -A OUTPUT -o ppp0 -p tcp --dport 80 -m state --state NEW -j ACCEPT
tcpdump -Z $tcpdump_user -c1 -n -s0 -vvv -X 'tcp[((tcp[12] & 0xf0) / 4):4] = 0x51554954' and host $1 #and port $2

pgrep -u $tcpdump_user tcpdump;
echo "iptables Befehle zum Closen"
iptables -A OUTPUT -o ppp0 -p tcp --dport 80 -m state --state NEW -j REJECT



Dann das Script man ./openport host1 [port1] starten..
wobei das recent modul die bessere Wahl ist, da musst die
Blacklist einfach nur umdrehen.. ;)


Gruss
403

-As-
03.11.08, 00:41
Dann das Script man ./openport host1 [port1] starten..
wobei das recent modul die bessere Wahl ist, da musst die
Blacklist einfach nur umdrehen.. ;)


Gruss
403


ja, leider mach eich noch einen fehler (s.o.) bei der verarbeitung von dem spungpunkt (iptables ... -j TEST) oder?