Limite el inicio de sesión ssh para un usuario específico según la dirección IP

Aug 20 2020

¿Cómo puedo limitar el sshinicio de sesión para que un usuario específico pueda acceder desde una sola dirección IP?

Tengo un usuario nombrado fooen el servidor con, por ejemplo, una dirección IP 127.0.0.5(mi primer servidor) y dejé su inicio de sesión a través de sshsolo una clave pública. Solo quiero otorgar acceso de inicio de sesión a este usuario desde una IP específica (que es mi otro servidor), por ejemplo, IP 127.0.0.6.

¿Como es posible?

Respuestas

2 GiacomoCatenazzi Aug 20 2020 at 20:50

Puede cambiar la configuración de sshd, en /etc/ssh/sshd_config:

AllowUsers [email protected] [email protected] ....

También puede seleccionar que algunos usuarios solo puedan usar algunos métodos de autenticación:

Match User my_login
AuthenticationMethods publickey

Pero con cuidado en ambos puntos: debe tener control físico o ser muy cuidadoso antes de cambiar cualquier configuración. Y le recomiendo que también busque en la página del manual las opciones de AllowUsersans AuthenticationMethods, para comprender mejor las implicaciones y, eventualmente, las opciones y métodos adicionales que necesita.

dirdi Aug 20 2020 at 20:27

Puede configurar un firewall y permitir que solo una determinada IP se conecte al puerto 22:

/etc/nftables.conf

#!/usr/sbin/nft -f

flush ruleset

table inet firewall {

    chain inbound {
        # By default, drop all traffic unless it meets a filter
        # criteria specified by the rules that follow below.
        type filter hook input priority 0; policy drop;

        # Allow traffic from established and related packets.
        ct state established,related accept

        # Drop invalid packets.
        ct state invalid drop

        # Allow loopback traffic.
        iifname lo accept

        # Allow all ICMP and IGMP traffic, but enforce a rate limit
        # to help prevent some types of flood attacks.
        ip protocol icmp limit rate 4/second accept
        ip6 nexthdr ipv6-icmp limit rate 4/second accept
        ip protocol igmp limit rate 4/second accept

        # Allow SSH on port 22 but only from 127.0.0.6
        ip saddr 127.0.0.6 tcp dport 22 accept
    }

    chain forward {
        # Drop everything (assumes this device is not a router)
        type filter hook forward priority 0; policy drop;
    }

    chain outbound {
        # Allow all outbound traffic
        type filter hook output priority 0; policy accept;
    }
}