Come posso consentire le connessioni in output tramite iptables?

Ho due server. Il programma in primo luogo deve comunicare con il secondo sulla port 2194.

Lo so che non funziona, perché quando faccio:

  • Convertire l'enterprise di Oracle in redhat
  • iptables non cadere da IP e port?
  • Tuning MySQL e Linux per ridurre il tempo massimo di risposta specificamente
  • AWS VPC + IPtables + NAT: La trasmissione della port non funziona
  • Creare un equilibratore di carico multiplo di linux con due connessioni Internet e una connessione LAN
  • Chiudere tutte le connessioni TCP esistenti su alcune porte utilizzando IPTables?
  • root@server1 [~]# telnet myserver2.com 2194 Trying 123.123.123.98... telnet: connect to address 123.123.123.98: Connection timed out telnet: Unable to connect to remote host: Connection timed out 

     server1# iptables -L -n Chain INPUT (policy DROP) ... ... Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy DROP) ... Chain LOCALINPUT (1 references) target prot opt source destination ... Chain LOCALOUTPUT (1 references) target prot opt source destination ... Chain LOGDROPIN (1 references) target prot opt source destination DROP all -- 0.0.0.0/0 0.0.0.0/0 Chain LOGDROPOUT (1 references) target prot opt source destination DROP all -- 0.0.0.0/0 0.0.0.0/0 

  • Quota limite IPtables, Quali sono le differenze tra i moduli? Recenti, Limite
  • Debug di problemi di connessione tra due server Linux
  • Come eseguire tutte le connessioni TCP in output utilizzando HTTP CONNECT su Linux
  • 2 Solutions collect form web for “Come posso consentire le connessioni in output tramite iptables?”

    Per consentire le connessioni in output da server1 a server2 sulla port TCP 2194, utilizzare questo sul server1:

     iptables -A OUTPUT -p tcp -d <server2ip> --dport 2194 -j ACCEPT 

    Per consentire le connessioni in entrata da server1 a server2 sulla port TCP 2194, utilizzare questo in server2:

     iptables -A INPUT -p tcp -s <server1ip> --dport 2194 -j ACCEPT 

    Solo alcuni puntatori

    Il servizio che stai eseguendo l'ascolto solo su localhost? Correre

     netstat -ltn 

    Se vedi una row come 0.0.0.0:2194 allora sei ok. Se vedi 127.0.0.1:2194 allora stai ascoltando solo le connessioni locali (o :::2194 e ::1:2194 rispettivamente per gli indirizzi IPv6, mostrati come righe tcp6 ).

    Quali sono le regole iptables correnti?

     iptables -L 

    È il criterio DROP / REJECT (se non lo è, per tutte le catene)? Esiste una regola specifica per la port necessaria?

    Se si tratta di un problema di firewall, è necessario modificare la regola offendente o aggiungere una regola come

     iptables -A INPUT -p tcp --dport 2194 -j ACCEPT 

    dovrebbe fare il trucco (non testato)

    === EDIT ===

    Per verificare il problema della networking un buon strumento è tcpdump . Eseguirlo su entrambi i server durante il tentativo di connessione e vedere where i pacchetti stanno andando. ad esempio sul server 1 eseguire:

     tcpdump -i eth0 -n host server2.com 

    e sul server 2 eseguire:

     tcpdump -i eth0 -n host server1.com 

    Poi cerchi di connetterti. Dovresti vedere tutti i pacchetti TCP scaricati sullo schermo, dalla sorgente e dalla destinazione. Con queste informazioni dovresti essere in grado di individuare where è il problema.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.