# [SSH] Problema con OpenSSH y bloqueo de tráfico (solved)

## ekz

Hola gentoos.

Tengo un problema con mi openssh, les cuento.

Un par de veces, solo para ver su funcionamiento, me logeaba desde mi misma máquina mediante ssh (openssh), incluso me hice una cuenta en No-ip para ingresar mediante un alias a mi computador, funcionaba perfecto e inmediatamente se abre un abanico de posibilidades de lo que se puede realizar a través de este sistema de conexión.

Luego nunca mas experimenté con el hasta hace unas cuantas semanas, donde intento logearme como siempre lo hice.. y nada.. dentro de ese lapso de tiempo, hice un emerge --world MUY gordo, incluyendo el cambio de pam-login a shadow y una actualizacion de openssh, entre otros. Bueno, el punto es que ahora me es imposible conectarme a mi máquina, probé modificar más a fondo los ficheros de configuración, probar con distintos puertos, leer muchos howtos de configuración y probar muchas combinaciones diferentes, borrar el directorio de configuración y re-emerger openssh y también re-emergerlo desactivando la use pam, todas ellas sin éxito.

Al intentar el login tampoco me devuelve errores, solo se queda esperando y luego me da el error de timeout:

```
ekz@localhost /var/log $ ssh ekz@201.236.128.57 -v

OpenSSH_4.5p1, OpenSSL 0.9.8d 28 Sep 2006

debug1: Reading configuration data /etc/ssh/ssh_config

debug2: ssh_connect: needpriv 0

debug1: Connecting to 201.236.128.57 [201.236.128.57] port 22.

<unos minutos de espera>

debug1: connect to address 201.236.128.57 port 22: Connection timed out

ssh: connect to host 201.236.128.57 port 22: Connection timed out

```

No sé si pueda ser algo del programa en sí o algo de mi configuración, alguno de ustedes que tenga ssh funcionando sería tan amable de pegar sus ficheros de configuración /etc/ssh/ssh_config y /etc/ssh/sshd_config, me serían de mucha ayuda. Solo quiero algo básico, nada de login con llaves y esas cosas, solo poder acceder desde cualquier pc al mío.

Saludos y gracias de antemano

----------

## jgascon

Parece que tienes un firewall delante descartando paquetes. He hecho la prueba con un router donde tengo Gentoo a filtrar el puerto 22 y me pasa lo mismo que a ti:

```

$ -> ssh 192.168.0.1 -v

OpenSSH_4.5p1, OpenSSL 0.9.8d 28 Sep 2006

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: Connecting to 192.168.0.1 [192.168.0.1] port 22.

debug1: connect to address 192.168.0.1 port 22: Connection timed out

ssh: connect to host 192.168.0.1 port 22: Connection timed out

```

Lo que pasa es que si dices que has probado con diferentes puertos y no ha funcionado, no sé cómo los estarán filtrando. Intenta mirarte lo del no-ip a ver si te está resolviendo tu ip correctamente.

Te pego mi sshd_config por si te sirve de ayuda:

```

Protocol 2

ListenAddress 192.168.0.1

PermitRootLogin no

PasswordAuthentication no

UsePAM yes

UseLogin yes

Subsystem sftp  /usr/lib/misc/sftp-server

```

----------

## Darksidex25

Mi ssh_config está totalmente comentado, así que no lo pego  :Wink: 

mi sshd_config, nada del otro mundo, quito los comentarios:

```

Protocol 2

PasswordAuthentication no

PermitEmptyPasswords no

UsePAM yes

Subsystem       sftp    /usr/lib/misc/sftp-server

PermitRootLogin no

```

¿alguno sabe como hacerlo más seguro?

Respecto a tu problema, ¿iptables? supongo que no porque dices que has probado de todo, pero por si acaso, lo comento.

----------

## jgascon

Para descartar que sea iptables ejecuta iptables -L -n si no lo ves muy claro postéanos la salida aquí. Sobretodo, fíjate en si la política de la cadena INPUT es DROP o ACCEPT si es DROP le tendrás que abrir el puerto con una regla como esta:

```

iptables -A INPUT -p tcp -i $INTERFAZ_DE_ENTRADA -s $IP_ORIGEN --dport 22 --syn -m state --state NEW -j ACCEPT

```

Substituyendo $INTERFAZ_DE_ENTRADA e $IP_ORIGEN por lo que corresponda.

Si la política es ACCEPT asegúrate de no caparlo por otro sitio  :Wink: 

----------

## Annagul

Mi sshd_config:

```

Protocol 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

SyslogFacility AUTH

LogLevel INFO

LoginGraceTime 20

PermitRootLogin no

StrictModes yes

MaxAuthTries 3

RSAAuthentication no

PubkeyAuthentication yes

AuthorizedKeysFile   .ssh/authorized_keys

PasswordAuthentication yes

PermitEmptyPasswords no

UsePAM yes

AllowTcpForwarding no 

X11Forwarding yes

X11DisplayOffset 10

PrintMotd yes

PrintLastLog yes

UsePrivilegeSeparation yes

MaxStartups 3

Subsystem   sftp   /usr/lib/misc/sftp-server

AllowUsers user1 user2 user3 etc

```

Cuando tenga tiempo lo repasaré para hacer más seguro el servicio SSH. ¿Alguna sugerencia?

----------

## Inodoro_Pereyra

 *Quote:*   

> ¿alguno sabe como hacerlo más seguro?

 

A ver que te parece esto...

Hasta donde se, los mas avanzados métodos para crackear el acceso por ssh se basan en medir el tiempo de respuesta al hacer login, con fail2ban queda descartada cualquier posibilidad.

Lo tengo implementado en mi servidor y en mi router y realmente funciona. De paso, sirve para otros servicios tambien.

En mi caso monitorea apache, sshd y webmin.

Otra forma de segurizar (aun mas) las cosas: Port Knocking. Si a eso le agregas tcp/ip sobre puertos cerrados, tendría que venir el mejor hacker del mundo para romper tu seguridad.

Salud!

----------

## ekz

Gracias por sus respuestas

Pensé que no-ip me fuera mal, por lo que probé conectarme sin el alias, lo mismo. Firewall no hay, y por siacaso con el ISP, estoy haciendo todas las pruebas con el puerto 80. Lo de Iptables, no suena tan mal, pero nunca lo configuré ni lo hice andar, y ahora  lo desinstalé por cualquier cosa, pero creo que los tiros van por ahí: No me puedo hacer ping a mi mismo

```

ekz@localhost ~ $ host localhost

localhost has address 127.0.0.1

localhost has IPv6 address ::1

```

```

ekz@localhost ~ $ ping 127.0.0.1

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

--- 127.0.0.1 ping statistics ---

6 packets transmitted, 0 received, 100% packet loss, time 5017ms

ekz@localhost ~ $ ping www.google.cl

PING www.l.google.com (64.233.169.99) 56(84) bytes of data.

64 bytes from yo-in-f99.google.com (64.233.169.99): icmp_seq=1 ttl=241 time=148 ms

64 bytes from yo-in-f99.google.com (64.233.169.99): icmp_seq=2 ttl=242 time=148 ms

64 bytes from yo-in-f99.google.com (64.233.169.99): icmp_seq=3 ttl=241 time=148 ms

--- www.l.google.com ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 1998ms

rtt min/avg/max/mdev = 148.093/148.348/148.708/0.409 ms

```

Recuerdo que cuando comencé con gentoo había puesto lo de bloquear los pings, revisé mi fichero pppoe.conf (ya que me conecto por adsl), que contiene estos 2 apartados relacionados con el filtrado

```
# Character to echo at each poll.  Use PING="" if you don't want

# anything echoed

PING="."

```

```
# Firewalling: One of NONE, STANDALONE or MASQUERADE

FIREWALL=NONE

```

Y recordé que luego los desactivé (los dejé como están ahora) para evitar futuros problemas que no sabría de adonde vendrían. También recuerdo un hilo similar y edité mi fichero /etc/sysctl.conf pero lo mismo. Revisé todos los ficheros de /etc/ buscando algo sospechoso, pero hice varias pruebas y no consigo avanzar. Supongo que el trafico entrante está siendo ignorado/filtrado y que si consigo pingearme podré hacerme ssh.

 */etc/hosts wrote:*   

> 
> 
> 127.0.0.1       localhost gentoo
> 
> 

 

 */etc/conf.d/net wrote:*   

> 
> 
> dns_servers_eth0="200.50.96.90"
> 
> config_eth0=( "adsl" )
> ...

 

 */etc/sysctl.conf wrote:*   

> 
> 
> net.ipv4.conf.default.rp_filter = 0
> 
> net.ipv4.conf.all.rp_filter = 0
> ...

 

Si necesitáis otro fichero o la salida de algún comando solo pedirlo

HEY!!

Antes de firmar este post, fui a la otra PC con windous (esa y esta están conectadas al mismo modem-router) y me hice ping a mi PC, y me asombré al ver como respondía, asi que me baje el cliente ssh putty, e intenté la conección, pero me devuelve Network error: connection refused   :Confused:   :Confused: 

Gracias por ayudar

SAludos!

----------

## jgascon

 *ekz wrote:*   

> 
> 
> Y recordé que luego los desactivé (los dejé como están ahora) para evitar futuros problemas que no sabría de adonde vendrían. También recuerdo un hilo similar y edité mi fichero /etc/sysctl.conf pero lo mismo. 
> 
> 

 

Para aplicar los cambios de sysctl no basta editar el archivo, tienes que ejecutar la siguiente orden:

```

sysctl -p /etc/sysctl.conf

```

Y si quieres comprobar que realmente se han aplicado los cambios, ejecuta esto:

```

sysctl -a | grep 'icmp'

```

Una prueba un poco tonta para descartar que tu ISP te esté filtrando, desde tu misma máquina prueba a hacerte un ssh a ti mismo. Si esto falla es más probable que el problema esté en tu máquina.

----------

## ekz

Vale no sabía que había que ejecutar algo, y si.. el problema de seguro está en mi máquina por que solo en ella estoy realizando pruebas (con excepción del intento de conexión con putty )

```
ekz@localhost ~ $ sudo sysctl -a | grep 'icmp' 

error: permission denied on key 'net.ipv4.route.flush'

net.ipv4.icmp_echo_ignore_all = 0

net.ipv4.icmp_echo_ignore_broadcasts = 0

net.ipv4.icmp_ignore_bogus_error_responses = 0

net.ipv4.icmp_errors_use_inbound_ifaddr = 0

net.ipv4.icmp_ratelimit = 250

net.ipv4.icmp_ratemask = 6168

```

Aquí añadí la salida completa del comando sysctl -a  por si quieren (y se animan a) verlo.

Como dato muy importante añado que le hice un escaneo de puerto a mi ip con nmap, y me dice que que esta bloqueando los pings, así que le paso la opción -P0 para escanear sin pings, y me dice que todos los puertos están filtered (incluso revisé por separado el 22, 25, 80 y 8080).

Apenas pueda hago un escaneo desde el otro PC hacia este con nmap y agrego los resultados.

-----

No me funciono el nmap en win2... pero probé nmap-online. Un resumen:

*Pings desde este PC, hacia mi ip actual y hacia 127.0.0.1 NO responden, pero puedo hacer ping a google y demas

*Pings desde el otro PC a este, SI responde

*Nmap desde este PC, hacia mi ip actual y hacia 127.0.0.1, me devuelve que todos los puertos están filtrados

*Nmap desde nmap-online hacia mi ip, me devuelve que el puerto 22 está cerrado, el 25 abierto, el 80 cerrado (y el resto filtrados)

De verdad no se cómo pude dejar tan seguro mi gentoo  :Embarassed: 

Gracias por ayudar

SAludos!

----------

## jgascon

¿Has probado con netstat a ver si te abre el puerto?

```

cerbero ~ # netstat -tlan | grep 22

tcp        0      0 192.168.0.1:22          0.0.0.0:*               LISTEN

```

Lo del netstat me he dado cuenta que es una tontería porque si no te abriera el puerto no te daría un timeout sino que te daría un connection refused... pero bueno por probar  :Wink: 

También puedes ver a ver si averiguas algo con tcpdump:

```

tcpdump -n -i $INTERFAZ port 22

```

----------

## Inodoro_Pereyra

Realmente raro tu problema.

Existe el archivo /etc/init.d/net.lo? si existe, se carga como servicio durante el arranque?

Que te devuelve como respuesta hacer: ssh root@localhost ??

Lo mas lógico sería que estés corriendo algun tipo de fierwall, una forma mas gráfica de ver todo podría ser emerger webmin y usarlo para revisar la configuración desde ahí, quizás te aclare un poco las cosas...

Podrías postear tu uname -a??

Salud!

----------

## jgascon

¿No estarás usando TCP Wrappers?

----------

## ekz

SOLUCIONADO!! gracias por su ayuda

Inodoro diste en el clavo, tenía que echar a andar el servicio net.lo   :Embarassed:  Ya veo que ese servicio SI servía..

Ahora todo me anda perfecto  :Very Happy:   :Very Happy: 

Además aprendí muchas cosas

Saludos

Gracias de nuevo a todos

----------

## Inodoro_Pereyra

Bueno, me alegro de haber sido util.

Salud!

----------

