Transaktionen mit Bitcoins, während es in iptables keine Accept-Regeln gibt

Ist es normal, dass das Netzwerk ohne ACCEPT-Regel funktioniert? Denn jetzt haben meine iptables INPUT DROP, FORWARD DROP und OUTPUT DROP nur Port wie ssh, http (s), 53, es ist offen. Ich füge keine Regel für Port 8333 und 9333 hinzu, aber es funktioniert und wenn ich (mit diesem Tool http://www.adminkit.net/telnet.aspx ) Port 8333 oder 9333 telnet, erhalte ich eine Fehlermeldung

Verbindung fehlgeschlagen: Ein Verbindungsversuch ist fehlgeschlagen, weil der verbundene Teilnehmer nach einiger Zeit nicht richtig geantwortet hat, oder die hergestellte Verbindung ist fehlgeschlagen, weil der verbundene Host nicht geantwortet hat

Ich füge hier alle iptables-Regeln hinzu http://notes.io/qZkF

Ich habe versucht, BTC von einer externen Quelle zu senden, und ich habe es erhalten. In bitcoin.conf habe ich

rpcport=9333

Netstat -tulpn

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      19626/nginx.conf
tcp        0      0 127.0.0.1:9333          0.0.0.0:*               LISTEN      3537/bitcoind
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2446/sendmail: MTA:
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      19626/nginx.conf
tcp        0      0 0.0.0.0:5565            0.0.0.0:*               LISTEN      2416/sshd
tcp        0      0 0.0.0.0:11111           0.0.0.0:*               LISTEN      8575/php
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2936/mysqld
tcp        0      0 127.0.0.1:587           0.0.0.0:*               LISTEN      2446/sendmail: MTA:
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      2440/memcached
tcp        0      0 0.0.0.0:8333            0.0.0.0:*               LISTEN      3537/bitcoind
tcp6       0      0 ::1:9333                :::*                    LISTEN      3537/bitcoind
tcp6       0      0 :::5565                 :::*                    LISTEN      2416/sshd
tcp6       0      0 :::8333                 :::*                    LISTEN      3537/bitcoind
udp        0      0 127.0.0.1:11211         0.0.0.0:*                           2440/memcached

Letztes debug.log

2015-11-22 16:33:33 receive version message: /bitcoinseeder:0.01/: version 60000, blocks=230000, us=[xxxx:xxxx:x:xxxx::]:8333, peer=304
2015-11-22 16:34:01 ERROR: AcceptToMemoryPool: free transaction rejected by rate limiter
2015-11-22 16:34:01 keypool reserve 47
2015-11-22 16:34:01 keypool return 47
2015-11-22 16:34:11 receive version message: /bitcoinseeder:0.01/: version 60000, blocks=350000, us=[xxxx:xxxx:x:xxxx::]:8333, peer=305
2015-11-22 16:34:11 ERROR: AcceptToMemoryPool: free transaction rejected by rate limiter
2015-11-22 16:34:12 ERROR: AcceptToMemoryPool: free transaction rejected by rate limiter
2015-11-22 16:34:31 ERROR: AcceptToMemoryPool: free transaction rejected by rate limiter
2015-11-22 16:34:38 ERROR: AcceptToMemoryPool: free transaction rejected by rate limiter
2015-11-22 16:34:44 ERROR: AcceptToMemoryPool: nonstandard transaction: dust
2015-11-22 16:34:53 receive version message: /bitcoinseeder:0.01/: version 60000, blocks=350000, us=[xxxx:xxxx:x:xxxx::]:8333, peer=306

Mit PHP verwende ich diese

$server = new jsonRPCClient("http://$user:$passwd@127.0.0.1:9333/");

Update: Ich denke, es liegt daran, dass ich diese Regeln habe

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

Ist es eine gute Idee, die Ports 8333 und 9333 zu schließen?

Wenn Sie versuchen zu verhindern, dass sich Personen mit Ihnen verbinden, warum verwenden Sie nicht listen=0 in bitcoin.conf?
Danke für die Antwort, nein, ich möchte die Verbindung nicht verhindern. Ich habe gerade getestet, um alle Regeln zu löschen, aber ich sehe, dass es funktioniert hat, ohne den Bitcoin-TCP-Port zu öffnen. Ich denke, es liegt daran, dass ich eine ESTABLISHED-Regel habe, aber ich bin mir nicht sicher. Was ist Ihre iptables-Regel für Bitcoin? Ich muss nur den TCP-Port (9333) oder/und den Bitcoin-Port (8333) öffnen?
Aufgebaut bedeutet, dass Pakete einer bereits aufgebauten Verbindung zugelassen werden. Was in Ordnung ist. Das erste Paket einer Verbindung entspricht NICHT dieser Regel, da es noch nicht aufgebaut ist. Es muss zuerst von einer der anderen Regeln akzeptiert werden.
Die Reihenfolge hat Bedeutung? Denn jetzt habe ich erstmal ESTABLISHED und nach 8333 INPUT OUTPUT ACCEPT

Antworten (1)

Telnet sagt „Verbindung fehlgeschlagen“, was bedeutet, dass andere keine Verbindung zu Ihnen herstellen können. Ihr iptables funktioniert wie es sollte.

Sie können sich irren, wenn Sie glauben, dass Bitcoin ohne ACCEPT-Regel funktioniert, weil Sie ausgehende Verbindungen sehen. Wahrscheinlich 8.

Ihr Netstat zeigt, dass Bitcoin LISTENing ist, aber wenn iptables nicht AKZEPTIEREN, werden keine eingehenden Verbindungen angezeigt.

Versuchen Sie es netstat -na | grep 8333und Sie sehen nur ausgehende Verbindungen (Quelladresse: Sie).

Um Ihren Bitcoin-Knoten für die Außenwelt erreichbar zu machen, fügen Sie einfach eine Regel hinzu, um 8333 zu akzeptieren.

Achtung: 9333 NICHT öffnen! Es ist nur für den lokalen Gebrauch gedacht und Sie könnten Ihre Bitcoins verlieren, wenn andere darauf zugreifen (tatsächlich ist es besser, es zu deaktivieren, wenn Sie es nicht verwenden).

Ah ja danke! Meine vorherige Konfiguration hat die Ports 8333 und 9333 geöffnet ... danke für diese Präzision. Jetzt ändere ich für 2 Regelniptables -t filter -A INPUT -p tcp --dport 8333 -j ACCEPT and iptables -t filter -A OUTPUT -p tcp --dport 8333 -j ACCEPT
Nun, netstat hat gezeigt, dass Bitcoin sowieso nur auf localhost lauscht, also spielte die offene Firewall in diesem Fall keine Rolle. Aber besser geschlossen halten. Andere (nicht zum Thema gehörende) Anmerkungen: Es ist üblich, die ESTABLISHED-Regeln als (fast) erste Regel zu haben, da sie vom meisten Verkehr getroffen werden. (Beachten Sie, dass dies die Bedeutung der Zähler ändern wird, wenn Sie sie jemals ansehen.) Ein weiterer Punkt, DROP verursacht lange Verzögerungen und dann eine Zeitüberschreitung, was ärgerlich sein oder die Dinge verlangsamen kann. Vor allem, wenn OUTPUTSie stattdessen DENY verwenden möchten. Jede Anwendung, die über einen verbotenen Port sendet, erhält sofort einen Fehler.