Limita l'accesso ssh per un utente specifico in base all'indirizzo IP
Come posso limitare l' ssh
accesso per un utente specifico da un solo indirizzo IP?
Ho un utente denominato foo
nel server con ad es. Indirizzo IP 127.0.0.5
(il mio primo server) e ho lasciato il suo login ssh
solo tramite chiave pubblica. Voglio solo concedere l'accesso all'accesso a questo utente da un IP specifico (che è il mio altro server), ad esempio IP 127.0.0.6
.
Come è possibile?
Risposte
Puoi cambiare la configurazione di sshd, in /etc/ssh/sshd_config
:
AllowUsers [email protected] [email protected] ....
Puoi anche selezionare che alcuni utenti possano utilizzare solo alcuni metodi di autenticazione:
Match User my_login
AuthenticationMethods publickey
Ma attenzione su entrambi i punti: dovresti avere il controllo fisico o essere molto attento prima di modificare qualsiasi impostazione. E ti consiglio anche di guardare la pagina di manuale per le opzioni AllowUsers
ans AuthenticationMethods
, al fine di comprendere meglio le implicazioni, ed eventualmente anche le opzioni ei metodi di cui hai bisogno.
È possibile configurare un firewall e consentire solo a un determinato IP di connettersi alla porta 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;
}
}