Log in

Bekijk de volledige versie : Probleme mit iptables (u.a. segmentation fault)



Copter
11-03-2010, 23:20
Was muss ich in die post-firewall schreiben, damit der Prozess 'tor' aus dem Internet auf dem Port 9001 mit dem Protokoll TCP erreichbar ist?

wl500w ist im gateway mode.

Grüsse, Copter

akbor
15-03-2010, 09:11
iptables -A INPUT -p tcp --dport 9001 -j ACCEPT

vermute ich mal

Man kann diese Einstellung auch ins Webinterface eingeben, unter "NAT Setting - Virtual Server". Ggf. nach dem Start aus der Kommandozeile mit


iptables -L -n

überprüfen, ob die gewünschte Regel drin ist.

Gruß

Robert

Copter
15-03-2010, 13:32
Vielen Dank für deine Antwort, akbor.


iptables -A INPUT -p tcp --dport 9001 -j ACCEPTfunktioniert.

Im WebIF hab ich bei Virtual Server
Port Range: 9001
Local IP: 192.168.1.1
Local Port: 9001
Protocol: TCP
eingegeben und rebootet. 9001 war nicht offen. Ich könnte mir vorstellen, dass man über das WebIF nur die FORWARD chain verändern kann.

iptables -L -n bei offenem Port 9001:

[admin@router /]$ iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Segmentation fault

ich hab iptables v1.3.8, ist die vielleicht veraltet?

Grüsse, Copter

akbor
15-03-2010, 13:57
Ja klar wird es "geforwarded", aber wenn es zu der eigenen IP geforwarded wird, dann sollte es doch trotzdem funktionieren? Wenn nicht, dann habe ich mich geirrt.

Wegen "segmentation fault" kann ich nichts sagen, sorry. Habe meine iptables nicht extra aktualisiert. Habe bis jetzt auch keine einzige benutzedefinierte Regel erstellt - bei mir ist alles bei default.

Gruß

Robert

Copter
22-03-2010, 21:49
Inzwischen bekommen ich schon nen Segmentation fault, wenn ich einfach nur
iptables -A INPUT -p tcp --dport 9001 -j ACCEPTeingebe..

Kann man iptables updaten? Wenn ja, wie?


Gruß, Copter

akbor
22-03-2010, 22:40
Hast du schon mal "segmentation fault" in die Suche eingetippt? Manche behaupten, es hilft, die uclibc upzudaten.

Gruß

Robert

Copter
23-03-2010, 01:11
Da hab ich die neusten.
libuclibc++ - 0.2.2-8
uclibc-opt - 0.9.28-13

ipkg is up to date. iptables is da leider nicht dabei, sonst wüsste ich wie man es updated.

Akbor, weisst du welche codepage im russischen Teil des Forums hauptsächlich benutzt wird?
Für mich und Googles Übersetzung ist das leider nicht entzifferbar: Óñòàíîâêà ïðîãðàìì äëÿ ÷àéíèêà. Und für mich sieht leider der grösste Teil des russischen Forums so aus.
Google kann aber zum Beispiel mit "Вопрос насчет Torrent" was anfangen, ich somit auch.

akbor
23-03-2010, 10:07
Ich glaube immer noch nicht, dass es an iptables liegt, es muss an etwas anderem liegen... Welche FW ist bei dir überhaupt im Einsatz? Lohnt es sich eventuell auf die neuste "Enthusiasten-FW" (http://code.google.com/p/wl500g/) umzusteigen? Dann hast du iptables unter Umständen mitaktualisiert. Mehr Ideen habe ich im Moment nicht.


weisst du welche codepage im russischen Teil des Forums hauptsächlich benutzt wird?
Für mich und Googles Übersetzung ist das leider nicht entzifferbar: Óñòàíîâêà ïðîãðàìì äëÿ ÷àéíèêà. Und für mich sieht leider der grösste Teil des russischen Forums so aus.
Google kann aber zum Beispiel mit "Вопрос насчет Torrent" was anfangen, ich somit auch.
Das Gekrakel, das du nicht entziffern kannst, ist Russisch, kodiert in Win-1251 und dargestellt von deinem Browser als Win-1252. Die Forums-Engine hat eine Eigenart, sie übermittelt die Codepage nicht richtig an den Browser. Wenn du die Kodierung des Browsers manuell auf Kyrillisch-1251 umstellst, wird die Seite richtig dargestellt, bis du auf die nächste Seite navigierst, dann springt die Kodierung wieder auf Gekrakel um. Das einzige was dauerhaft hilft, ist die Forumssprache (ganz unten am Seitenrand, see Bild im Anhang) auf Russisch umzustellen. Dann müssen aber die deutschen Umlaute daran glauben und die ganze Forumsnavigation ist dann auch auf Russisch :( Man kann das Forum aber trotzdem intuitiv bedienen.

P.S.: "Óñòàíîâêà ïðîãðàìì äëÿ ÷àéíèêà" = "Установка программ для чайника". Google Übersetzungstool wird dir sicherlich so etwas ausspucken wie "Installieren der Software für eine Teekanne" Google weiß nicht, dass im russischen (Computer-)Jargon die Neulinge als Teekannen bezeichnet werden :D:D:D

Copter
23-03-2010, 12:41
Welche FW ist bei dir überhaupt im Einsatz?

d-r1222.

Hier (ftp://core.dumped.ru) wären noch neuere Versionen, aber ich hab leider noch kein Changelog dazu gefunden. Und ich glaube das sind ehr Arbeitsversionen, die für die Allgemeinheit sind auf http://code.google.com/p/wl500g/ .


Das Gekrakel, das du nicht entziffern kannst, ist Russisch, kodiert in Win-1251 und dargestellt von deinem Browser als Win-1252.
Dann werd ich mir bei Zeiten mal den russischen Teil des Forums zu Gemüte führen.

PS: Meine post-boot scheint ordnungsgemäß ausgeführt worden zu sein.

lly
23-03-2010, 13:28
"segmentation fault" for built-in applets usually means that you force executables to use optware's uClibc instead of /lib/libc.so
Probably, you have to modify LD_LIBRARY_PATH. We will add some extra fool proof protection for iptables in future builds.

Changelist for night builds from core.dumped.ru in SVN commit log http://code.google.com/p/wl500g/source/list

P.S. Sorry, I can't speak German

Copter
23-03-2010, 20:28
after searching around in the forum, I have installed buidroot to get ldd. this is what it says:
[admin@router sbin]$ ldd iptables
libdl.so.0 => /lib/libdl.so.0 (0x2aabe000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aad1000)
libc.so.0 => /lib/libc.so.0 (0x2aaf0000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)

I also installed strace:
[admin@router sbin]$ strace iptables -L
execve("/usr/sbin/iptables", ["iptables", "-L"], [/* 11 vars */]) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaad000
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=1304, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
old_mmap(NULL, 1304, PROT_READ, MAP_SHARED, 3, 0) = 0x2aaae000
close(3) = 0
open("/opt/lib/libdl.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=9444, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaaf000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\3 60\7\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 77824, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aabe000
old_mmap(0x2aabe000, 8024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aabe000
old_mmap(0x2aad0000, 176, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0x2aad0000
close(3) = 0
munmap(0x2aaaf000, 4096) = 0
open("/opt/lib/libgcc_s.so.1", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=68368, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaaf000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0p\ 27\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 126976, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aad1000
old_mmap(0x2aad1000, 58164, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aad1000
old_mmap(0x2aaef000, 2296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xe000) = 0x2aaef000
close(3) = 0
munmap(0x2aaaf000, 4096) = 0
open("/opt/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=698368, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaaf000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\2 20\311\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 741376, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaf0000
old_mmap(0x2aaf0000, 645496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aaf0000
old_mmap(0x2ab9e000, 4696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9e000) = 0x2ab9e000
old_mmap(0x2aba0000, 19168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2aba0000
close(3) = 0
munmap(0x2aaaf000, 4096) = 0
open("/opt/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=698368, ...}) = 0
close(3) = 0
open("/opt/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=698368, ...}) = 0
close(3) = 0
munmap(0x2aaae000, 1304) = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=22632, ...}) = 0
mprotect(0x2aabc000, 4096, PROT_READ) = 0
ioctl(0, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
socket(PF_INET, SOCK_RAW, IPPROTO_RAW) = 3
getsockopt(3, SOL_IP, 0x40 /* IP_??? */, "filter\0\0\r\0\0\0\24\0\0\0P%B\0\235\0\0\0\240g\27 2*\240\347\271\0"..., [84]) = 0
brk(0) = 0x473ab0
brk(0x474ab0) = 0x474ab0
brk(0x475000) = 0x475000
brk(0x476000) = 0x476000
getsockopt(3, SOL_IP, 0x41 /* IP_??? */, "filter\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0"..., [6928]) = 0
brk(0x477000) = 0x477000
brk(0x478000) = 0x478000
write(1, "Chain INPUT (policy ACCEPT)\n", 28Chain INPUT (policy ACCEPT)
) = 28
write(1, "target prot opt source "..., 62target prot opt source destination
) = 62
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=1304, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 4
old_mmap(NULL, 1304, PROT_READ, MAP_SHARED, 19, 0x10000) = 0x2aaae000
close(4) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault

It really uses /opt/lib/libdl.so.0 .

in which way do I have to change LD_LIBRARY_PATH in /opt/etc/profile ?
now its:
LD_LIBRARY_PATH=/opt/lib:${LD_LIBRARY_PATH}
Do I just have to delete the /opt in it?

thanks for your help lly