PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Iptables dynamische ausgehende Ports



Same
13.05.18, 12:47
Guten Morgen zusammen,

ich habe auf meinem Server eigene Iptable Rules angelegt und bin damit sehr gut unterwegs. Nun habe ich einen Rustserver über SteamCMD installiert. Bei den eingehenden Ports, also bei INPUT, musste ich nur 2 Ports freischalten. Leider gibt es aber Probleme bei den OUTPUT Regeln. Eigentlich ist ja klar, dass beim eingehen einer Verbindung, auch eine ausgehende Verbindung geöffnet wird, um zu antworten. Nun ist es aber irgendwie so, dass Rust mit Steam einen sporadischen Port nimmt. Ich habe leider nirgends funktionierende Infos dazu gefunden, welche Ports das genau sind. Beim testen waren es halt auch immer andere. Momentan habe ich als Notlösung alle Verbindung bei OUTPUT auf ACCEPT gesetzt, aber das soll nicht immer so bleiben. Ich benutze Iptables mit States und habe versucht mit ESTABLISHED und RELATED rumzuspielen, aber leider nie Erfolg gehabt. Kann mir dabei vielleicht jemand helfen?

Hier mal kurz mein Skript um die Iptables Regeln zu setzen.



#!/bin/bash
iptables -F

#important
iptables -A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 22 -j ACCEPT

#Rust
iptables -A INPUT -m state --state NEW,ESTABLISHED -p udp --dport 28015 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 28016 -j ACCEPT
#iptables -A OUTPUT -m state --state ESTABLISHED -p udp --sport 28015 -j ACCEPT
#iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 28016 -j ACCEPT

#teamspeak
iptables -A INPUT -m state --state NEW,ESTABLISHED -p udp --dport 9987 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p udp --sport 9987 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 30033 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 30033 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 10011 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 10011 -j ACCEPT
#iptables -A OUTPUT -m state --state ESTABLISHED -p udp --sport 2010 -j ACCEPT
#iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 41144 -j ACCEPT
#iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 2008 -j ACCEPT

#http/s
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 443 -j ACCEPT

#email
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 25 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 143 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 143 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 587 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 587 -j ACCEPT

#dns
iptables -A OUTPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

#apt
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -p tcp --sport 443 -j ACCEPT

#localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

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

#Drop all other
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT



Ich habe die Iptables mal vor einiger Zeit erstellt und bin leider etwas aus dem Thema wieder raus.

fork
13.05.18, 15:53
Kannst Du mal einen tcpdump von 1-2 solcher Sitzungen zeigen?

Dynamische Zielports sind so ohne weiteres ja nicht möglich. Es muss immer ein bekannten Verbindungspunkt geben, an den sich der Client wendet. Zielports sind üblicherweise statisch(Vielleicht mit Ausnahme von NFS, wo ein portmapper dafür da ist diese dynamischen Ports ermitteln zu können). Quellports sind schon häufiger dynamisch. An diesen würde ich mich allerdings nicht orientieren, genau aus diesem Grund.

Same
13.05.18, 17:02
tcpdump halte ich jetzt nicht für sinnvoll, da auch noch andere Dienste auf dem Server laufen. Hab aber mal netstat gemacht und auf den Rustserver reduziert. Ich glaube aktuell ist aber auch niemand



Aktive Internetverbindungen (Server und stehende Verbindungen)
Proto Recv-Q Send-Q Local Address Foreign Address State Benutzer Inode PID/Program name
tcp 0 0 MEINEIP:56401 155.133.229.250:27020 VERBUNDEN 1003 1214205 1147/./RustDedicate
tcp 0 0 MEINEIP:35292 34.246.51.218:443 VERBUNDEN 1003 4114353 1147/./RustDedicate
tcp 0 0 MEINEIP:56910 46.51.202.173:443 VERBUNDEN 1003 4099985 1147/./RustDedicate
tcp 32 0 MEINEIP:40168 104.23.139.18:443 CLOSE_WAIT 1003 4156320 1147/./RustDedicate