In AWS devo aprire le porte in un firewall di un'istanza EC2 così come un gruppo di protezione?

Se cambio la port SSH da 22 a 23453, non posso più ssh in.

Più in dettaglio, sto utilizzando un'istanza Red Hat EC2 su Amazon Web Services. Questa è la seconda modifica che ho su una nuova installazione (prima modifica è stato aggiungere un utente non-root).

Posso ssh bene usando Git Bash e un file locale .ssh / config, ho modificato la row in / etc / ssh / sshd_config che attualmente dice

#Port 23453 

dire

 Port 23453 

quindi riavviare sshd con

 sudo service sshd restart 

Quindi aggiungo una linea "Port 23453" il mio file .ssh / config

 Host foo Hostname my-ec2-public-DNS Port 23453 IdentityFile my ssl key 

Se apro un altro shell di Git Bash (senza chiudere la mia connessione esistente) e cercare di ssh nel mio esempio (con ssh foo) vedo il seguente errore:

 ssh: connect to host my-ec2-public-DNS port 23453: Bad file number 

Il gruppo di protezione allegato a questa istanza presenta due voci, sia TCP

22 (SSH) 0.0.0.0/0

23453 0.0.0.0/0

La mia migliore ipotesi è che la port sia ancora bloccata dal mio firewall.

L'output di sudo iptables -L è il seguente

 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination 

Quello che mi sembra abbastanza aperto.

AGGIORNARE

Dopo aver aggiunto una regola iptables

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

e cercare di nuovo, ancora nessuna fortuna.

Uscita di iptables -L

 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited ACCEPT tcp -- anywhere anywhere tcp dpt:23453 Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination 

Che sembra sufficientemente aperto. Non sono completamente sicuro di come cercare i pacchetti in arrivo o l'attività sul porto. Ma l'output di netstat -ntlp (come root)

 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:56137 0.0.0.0:* LISTEN 948/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 930/rpcbind tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1012/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1224/master tcp 0 0 0.0.0.0:23453 0.0.0.0:* LISTEN 32638/sshd tcp 0 0 :::36139 :::* LISTEN 948/rpc.statd tcp 0 0 :::111 :::* LISTEN 930/rpcbind tcp 0 0 ::1:631 :::* LISTEN 1012/cupsd tcp 0 0 :::23453 :::* LISTEN 32638/sshd 

Quella che mi sembra di mostrare sshd su 23453.

Ho verificato di nuovo che l'istanza ha la port aperta nel gruppo di protezione (Porta: 23453, Protocollo: tcp, Origine: 0.0.0.0/0)

Cosa altro può causare l'insuccesso di connessione tramite SSH?

Saluti

POSTMORTEM

Ora posso collegarmi. Era una regola mancante in iptables. L'output di iptables -L ora sembra così:

 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:23453 state NEW ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination 

  • Il login di chiave pubblica SSH non riesce senza motivo
  • Accendere una macchina Linux in remoto
  • Posso nohup / screen un process già avviato?
  • SSH: si blocca dopo "connessione stabilita"
  • Come tunnel con SSH correttamente?
  • Esxi file ssh configuration chnages per rendere non permanente e permananet
  • Un modo corretto per creare un SSO chroot su CentOS 7
  • Eseguire il command locale dopo la fine della session ssh
  • 4 Solutions collect form web for “In AWS devo aprire le porte in un firewall di un'istanza EC2 così come un gruppo di protezione?”

    Il firewall di istanza non dispone di questa port aperta. Prova il seguente command:

     iptables -I INPUT 3 -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 23453 -m state --state New -j ACCEPT 

    Si noti che le regole di iptables devono essere salvate per persistere dopo un riavvio. Su RHEL che è:

     /sbin/service iptables save 

    Sei sicuro che il gruppo di protezione sia impostato correttamente? Hai fatto clic su "Applica modifiche"? Molte persone dimenticano di applicare effettivamente i loro cambiamenti 🙂

    "Numero di file difettoso" di solito indica gli orari di connessione e l'installazione di iptables sembra corretta.

    Aggiungi una regola iptables

     iptables -I INPUT 1 -p tcp --dport 23435 -j ACCEPT 

    che accetta il traffico da qualsiasi host, per la port 23435, e prova a ssh, se vedi pacchetti o attività, allora significa che i pacchetti stanno raggiungendo il server.

    Se non vedi nessun pacchetto, significa che il gruppo di protezione AWS non dispone di regola per consentire la port.

    ma se vedi il traffico su questa regola (da iptables -nvL ), allora devi eseguire "netstat -ntlp" e verificare se il daemon SSH è in esecuzione sulla port 2435 e su 0.0.0.0/0 .

    speriamo che questi passaggi risolvano il problema. se ancora no, allora dimmi.

    Nel caso in cui qualcuno si sia imbattuto in questo argomento perché hanno cambiato la port predefinita di ssh, ecco una soluzione che mi ha risolto:

    1. Per aggirare un firewall aziendale, ho cambiato la port a 80 su /etc/ssh/sshd_conf .
    2. Purtroppo, Apache era già installato in quel caso, quindi non potevo ssh più.
    3. Ho staccato il volume dall'istanza.
    4. l'ha collegata ad un'altra istanza
    5. montato, ha modificato la port nel file di configuration
    6. lo staccato, l'ha rimessa attaccata all'antica istanza
    7. riavviato: tutto bene: D
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.