Si cambio mi puerto SSH de 22 a 23453, ya no puedo ingresar.
Con más detalle, estoy usando una instancia de Red Hat EC2 en Amazon Web Services. Este es el segundo cambio que tengo en una instalación nueva (el primer cambio fue agregar un usuario no root).
Puedo ssh bien usando Git Bash y un archivo local .ssh / config, edito la línea en / etc / ssh / sshd_config que actualmente dice
#Port 23453
decir
Port 23453
luego reinicie sshd con
sudo service sshd restart
Luego agrego una línea "Puerto 23453" a mi archivo .ssh / config
Host foo
Hostname my-ec2-public-DNS
Port 23453
IdentityFile my ssl key
Si abro otro shell de Git Bash (sin cerrar mi conexión existente) e intento ingresar a mi instancia ssh (con ssh foo), veo el siguiente error:
ssh: connect to host my-ec2-public-DNS port 23453: Bad file number
El grupo de seguridad adjunto a esta instancia tiene dos entradas, ambas TCP
22 (SSH) 0.0.0.0/0
23453 0.0.0.0/0
Mi mejor conjetura es que el puerto todavía está bloqueado por mi firewall.
La salida de sudo iptables -L
es la siguiente
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
Lo cual me parece bastante abierto.
ACTUALIZAR
Después de agregar una regla de iptables
iptables -A INPUT -p tcp --dport 23453 -j ACCEPT
e intentándolo de nuevo, todavía no tuve suerte.
Salida de 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
Que parece suficientemente abierto. No estoy completamente seguro de cómo buscar los paquetes que entran o la actividad en el puerto. Pero la salida de netstat -ntlp
(como 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
Lo que me parece mostrar sshd en 23453.
He comprobado nuevamente que la instancia tiene el puerto abierto en el grupo de seguridad (Puerto: 23453, Protocolo: tcp, Fuente: 0.0.0.0/0)
¿Qué más puede estar causando la falla de conexión a través de SSH?
Salud
POST MORTEM
Ahora puedo conectarme. Era una regla que faltaba en iptables. La salida de iptables -L
ahora se ve así:
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
iptables -L
(ssh funciona) y el segundoiptables -L
(ssh está bloqueado). Observe el orden de las reglas en la cadena INPUT (las 6 líneas debajo del primer "objetivo"), se leen de arriba a abajo, por lo que en el segundo conjunto de reglas, "RECHAZAR todo" se golpea antes de "ACEPTAR tcp dpt: 23453 ". El tercer conjunto de reglas tiene la entrada ACEPTAR anterior y, por lo tanto, antes, la entrada RECHAZAR.