PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables ports https oder 443



habbom
28.10.02, 18:08
Hi,
nach langer Zeit habe ich es endlich geschafft mein iptables Script (mehr oder weniger) so zum Laufen zu bekommen.

Nur habe ich immer wieder festgestellt, daß wenn ich z.B. als Zielport https eingebe
$IPTABLES -A OUTPUT -p TCP --sport $UNPRIV --dport https -j ACCEPT
$IPTABLES -A OUTPUT -p UDP --sport $UNPRIV --dport https -j ACCEPT
wird trotzdem port 443 geblockt.
Ersetze ich https durch 443 funktioniert es.

Die Verbindung, z.B. web.de klappt mit der oben angegebenen Zeile, aber erstens langsam und in den Logs steht port 443 als SYN-TCP gedropt. (steht für TCP --syn)
mit dem Ersatz klappt es.

Das selbe gilt für ntp (port 37), mit pop3 und smtp gibt es keine Probs

Eigentlich sollte es egal sein, nur müßte es doch eine Erklärung dafür geben, in diversen Beispielen werden doch die Namen und nicht die Ports verwendet.
In der services hab ich keine Änderungen vorgenommen und die Portzuweisungen stimmen auch.

Hat jemand eine Erklärung dafür ?
Gruß
Michael.

tomes
28.10.02, 19:05
Was sagt den ein --> iptables -L -n -v bzw iptables -L -n -v | grep 443
dazu ?
Also bei mir *funct* es problemlos.

# /usr/local/sbin/iptables -L -n -v | grep 443
2857 374K ACCEPT tcp -- * ippp0 0.0.0.0/0 0.0.0.0/0 tcp spts:1024:65535 dpt:443 state NEW,RELATED,ESTABLISHED

aus meinem firewall Script:
$IPTABLES -A WEITER -o $A_IF -p TCP --sport $HP --dport https -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

T;o)Mes

habbom
28.10.02, 19:20
Hi tomes,
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1024:65535 dpt 443

0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1024:65535 dpt 443

bei beiden Varianten, daß ist ja das Merkwürdige.

In der log steht beim Einsatz von https

Oct 28 20:16:05 host kernel: DROP: TCP IN=eth0 OUT=ippp0 SRC=192.168.2.16 DST=217.72.195.152 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=8704 DF PROTO=TCP SPT=33546 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 28 20:16:05 host kernel: DROP: TCP IN=eth0 OUT=ippp0 SRC=192.168.2.16 DST=217.72.195.152 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=8704 DF PROTO=TCP SPT=33546 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 28 20:16:05 host kernel: DROP: TCP-SYN IN=eth0 OUT=ippp0 SRC=192.168.2.16 DST=217.72.195.152 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=8704 DF PROTO=TCP SPT=33546 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 28 20:16:05 host kernel: DROP: TCP-SYN IN=eth0 OUT=ippp0 SRC=192.168.2.16 DST=217.72.195.152 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=8704 DF PROTO=TCP SPT=33546 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 28 20:16:05 host kernel: DROP: TCP IN=eth0 OUT=ippp0 SRC=192.168.2.16 DST=217.72.195.152 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=1902 DF PROTO=TCP SPT=33547 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 28 20:16:05 host kernel: DROP: TCP IN=eth0 OUT=ippp0 SRC=192.168.2.16 DST=217.72.195.152 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=1902 DF PROTO=TCP SPT=33547 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 28 20:16:05 host kernel: DROP: TCP-SYN IN=eth0 OUT=ippp0 SRC=192.168.2.16 DST=217.72.195.152 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=1902 DF PROTO=TCP SPT=33547 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 28 20:16:05 host kernel: DROP: TCP-SYN IN=eth0 OUT=ippp0 SRC=192.168.2.16 DST=217.72.195.152 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=1902 DF PROTO=TCP SPT=33547 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0

Gruß
Michael

habbom
28.10.02, 19:51
weiter getestet,

jetzt habe ich, wie in Deinem Script, die externe Schnittstelle mit angegeben und jetzt klappt es auch mit https:)

Ich denke mal, daß da zwei Regeln kollidierten, da bei dieser Regel kein Device angegeben war.

Danke

Gruß
Michael

Harry
28.10.02, 22:12
Hallo,

vielleicht habe ich etwas übersehen, jedoch haben Deine Regeln im ersten Posting keinen Zusammenhang mit den Log-Meldungen aus dem zweiten Posting.

Die Regeln im ersten Posting beziehen sich auf die OUTPUT-Chain. Die Log-Meldungen aus dem zweiten Posting werden in der FORWARD-Chain erzeugt und dort werden die Pakete auch gedroppt. Überprüfe mal die Regeln in der FORWARD-Chain; dort müssen sie stimmig eingetragen sein.

btw: Für das Protokoll UDP solltest Du die Regeln gänzlich löschen. HTTPS läuft exklusiv über TCP.

Harry

habbom
29.10.02, 17:42
Original geschrieben von Harry
Hallo,

vielleicht habe ich etwas übersehen, jedoch haben Deine Regeln im ersten Posting keinen Zusammenhang mit den Log-Meldungen aus dem zweiten Posting.

Die Regeln im ersten Posting beziehen sich auf die OUTPUT-Chain. Die Log-Meldungen aus dem zweiten Posting werden in der FORWARD-Chain erzeugt und dort werden die Pakete auch gedroppt. Überprüfe mal die Regeln in der FORWARD-Chain; dort müssen sie stimmig eingetragen sein.

btw: Für das Protokoll UDP solltest Du die Regeln gänzlich löschen. HTTPS läuft exklusiv über TCP.

Harry

Hi Harry,
danke für den Hinweis.
Logischerweise hast Du recht, daran habe ich garnicht gedacht, daß es FORWARD sein muß.
UDP -> da bin ich nach der /etc/services gegangen, darin steht für https tcp und udp, deshalb hatte ich beides eingetragen.

Naja, im Moment versuche ich für mich, mein Script zu sortieren, damit ich solche Fehler schneller finde, bzw. neue Regeln schneller einfügen kann.

Danke für die Tips

Gruß
Michael