Transacciones de bitcoins mientras no hay reglas de aceptación en iptables

¿Es normal que la red funcione sin ninguna regla ACCEPT? Porque ahora mis iptables tienen puertos INPUT DROP, FORWARD DROP y OUTPUT DROP como ssh, http(s), 53 está abierto. No agrego ninguna regla para el puerto 8333 y 9333 pero funciona y si hago telnet (con esta herramienta http://www.adminkit.net/telnet.aspx ) puerto 8333 o 9333 tengo un mensaje de error

Conexión fallida: un intento de conexión falló porque la parte conectada no respondió correctamente después de un período de tiempo, o la conexión establecida falló porque el host conectado no respondió

Agrego aquí todas las reglas de iptables http://notes.io/qZkF

Intenté enviar btc desde una fuente externa y lo recibí. En bitcoin.conf tengo

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

Último registro de depuración

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

Con PHP uso esto

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

Actualización: creo que es porque tengo estas reglas

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

¿Es buena idea cerrar los puertos 8333 y 9333?

Si está tratando de evitar que las personas se conecten con usted, ¿por qué no usar listen=0 en bitcoin.conf?
Gracias por responder, no, no quiero evitar la conexión. Acabo de probar para ABANDONAR todas las reglas, pero veo que funcionó sin abrir el puerto tcp de bitcoin. Creo que es porque tengo una regla ESTABLECIDA, pero no estoy seguro. ¿Cuál es su regla de iptables para bitcoind? ¿Necesito abrir solo el puerto tcp (9333) o/y el puerto bitcoind (8333)?
Establecido significa que permitirá paquetes de una conexión ya establecida. Lo cual está bien. El primer paquete de una conexión NO coincidirá con esa regla ya que aún no está establecida. Primero debe ser aceptado por una de las otras reglas.
¿El orden tiene importancia? Porque ahora he ESTABLECIDO primero y después 8333 ENTRADA SALIDA ACEPTAR

Respuestas (1)

Telnet dice "Error de conexión", lo que significa que otros no podrán conectarse con usted. Su iptables está funcionando como debería.

Puede estar equivocado al pensar que Bitcoin está funcionando sin la regla ACEPTAR porque está viendo conexiones salientes. Probablemente 8.

Su netstat muestra que bitcoin está ESCUCHANDO, pero si iptables no ACEPTA, nunca verá ninguna conexión entrante.

Pruébelo netstat -na | grep 8333y verá solo las conexiones salientes (dirección de origen: usted).

Para hacer que su nodo de bitcoin sea accesible para el mundo exterior, simplemente agregue una regla para aceptar 8333.

Nota ¡NO abra 9333! Está destinado solo para uso local y es posible que pierda sus bitcoins si las personas tienen acceso a él (de hecho, es mejor que lo deshabilite si no lo está usando).

Ah si gracias! Mi configuración anterior tiene los puertos 8333 y 9333 abiertos... gracias por esta precisión. Ahora cambio por 2 reglasiptables -t filter -A INPUT -p tcp --dport 8333 -j ACCEPT and iptables -t filter -A OUTPUT -p tcp --dport 8333 -j ACCEPT
Bueno, netstat mostró que bitcoind solo escucha en localhost de todos modos, por lo que el firewall abierto no importó en este caso. Pero mejor mantenerlo cerrado. Otras notas (fuera del tema): es común tener las reglas ESTABLECIDAS como la (casi) primera regla, ya que se verán afectadas por la mayor parte del tráfico. (Tenga en cuenta que eso cambiará el significado de los contadores si alguna vez los mira). Otro punto, DROP provoca largas demoras y luego un tiempo de espera, lo que puede ser molesto o ralentizar las cosas. Especialmente porque OUTPUTes posible que desee utilizar DENY en su lugar. Cualquier aplicación que se envíe a un puerto prohibido obtendrá un error inmediatamente.