Hallo nochmal, :) Matthias Rahn schrieb:
Hallo Liste,
habe hier ein ganz seltsames Problem:
Ein Masquerading-Router (Kernel 2.2.19 - SuSEfirewall 4.6) soll den Zugriff auf einen im lokalen Netz vorhandenen FTP-Server ermöglichen,
[...bla-blubb...] Hm, es kommt noch besser. Hab jetzt mal den Verkehr bei der Daten- übertragung in beiden Fällen per tcpdump mitgeloggt, das Ergebnis ist jetzt erst recht verwirrend.... :) Hier erst mal mein (derzeitiges) Setup, ergänzend zum ersten Posting: INTERNET | --------------- | Masq-Router | --------------- | ------------- --------- |-----| FTP-Server | | Sniffer |--| | 192.168.1.5 | --------- | ------------- -------- | Router | -------- | ------------------ | FTP + NFS-Server | | 192.168.2.3 | ------------------ Das FTP Verzeichnis des inneren FTP-Servers wird ro exportiert und vom äusseren FTP als public FTP-Verzeichnis gemountet: Auf dem NFS: #/etc/exports /usr/local/ftp/pub 192.168.1.5(ro,insecure,all_squash) Auf dem FTP: # mount -t nfs 192.168.2.3:/usr/local/ftp/pub /usr/local/ftp/pub Auf dem Masq-Router (SuSEfirewall 4.6): #/etc/rc.config.d/firewall.rc.config FW_FORWARD_MASQ_TCP="0/0,192.168.1.5,21" Im ersten Posting hab ich ja schon geschildert, wie sich das ganze verhält, jetzt habe ich allerdings mal für beide Fälle den Verkehr auf- gezeichnet und es zeigt sich, dass das Problem nicht beim FTP-Transfer liegt, sondern beim NFS-Transfer vom inneren zum äusseren Router. Der definitiv einzige Unterschied - das habe ich mittlerweile *zig* mal ausprobiert - ist, dass auf dem Masquerading Router (!) die Regel FW_LOG_ACCEPT_ALL verändert wird. Die beiden Logs hab ich mal angehängt, sie wurden per # tcpdump -l -n -v > logfile erstellt, auffällig könnte dabei sein, dass Portnummern teilweise nach Namen aufgelöst werden, obwohl der Parameter -n gesetzt ist. :o\ 213.7.25.39 ist in allen Fällen die IP des Internet-Clients. Beim ersten Log, ist auf dem Masq-Router FW_LOG_ACCEPT_ALL="yes" gesetzt, die Übertragung funktioniert reibungslos. Während des gesamten Übertragungsvorgangs scheinen NFS und FTP nur zwei mal kurz Pakete auszutauschen, nämlich folgender Art: 192.168.1.5.2344796719 > 192.168.2.3.2049: 108 getattr fh Unknown/1 (DF) (ttl 64, id 0) 192.168.2.3.2049 > 192.168.1.5.2344796719: reply ok 96 getattr REG 100644 ids 0/0 sz 1232295 (ttl 63, id 31871) 192.168.1.5.2361573935 > 192.168.2.3.2049: 108 getattr fh Unknown/1 (DF) (ttl 64, id 0) 192.168.2.3.2049 > 192.168.1.5.2361573935: reply ok 96 getattr REG 100644 ids 0/0 sz 1232295 (ttl 63, id 31873) Was soll ich denn in dem Fall von den Portnummern halten? Sieht nicht so nach 16 Bit aus und in /etc/services sind sie auch nicht als Name zu finden. Davon mal abgesehen kommt das File allerdings einwandfrei an!? :) Beim zweiten Log ist auf dem Masq-Router FW_LOG_ACCEPT_ALL="no" ge- setzt, hier passiert seltsames. Zuerst ein paar Pakete dieser Art: 192.168.1.5.851624495 > 192.168.2.3.2049: 120 lookup fh Unknown/1 [|nfs] (DF) (ttl 64, id 0) 192.168.2.3.2049 > 192.168.1.5.851624495: reply ok 128 lookup fh Unknown/1 DIR 40755 ids 0/0 sz 4096 (ttl 63, id 31777) Oops, das ging wohl schief. Und der FTP-Transfer scheint in der Folge mächtig durcheinanderzukommen, bis irgendwann garnix mehr geht. Werde mich übers Wochenende wohl mal dran machen müssen, die tcpdump Ausgabe im Detail zu verstehen, aber nichtsdestotrotz frage ich mich doch, wie eine Einstellung auf dem Masq-Router - auch noch das Logging betreffend - die Übertragung zwischen FTP und NFS dergestalt beeinflussen kann. Spontan käme mir vielleicht ein LKM/Rootkit in den Sinn, das an SuSE angepasst ist und in Code-Red-Manier über mein gesamtes Netzwerk hergefallen ist. Zugegebenermassen bin ich mit Patchen etwas nach- lässig und leiste mir auch sonst den ein oder anderen Spaß, der aus sicherheitstechnischer Sicht bedenklich ist, aber ist ja auch mein privates Netz hier. Oder wäre der Gedanke übertrieben paranoid? Vielleicht kommt ja jemandem diese ganze Mimik bekannt vor, ich wäre jedenfalls für jeden Tip dankbar, der - wie auch immer - etwas Licht ins Dunkel bringt. :) Schönes Wochenende, Matthias