Вы можете идентифицировать «быть дома» по вашему сетевому адресу и сделать:
# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT # iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT # iptables -A INPUT -p tcp --dport 22 -j DROP
Где вы обменяете 192.168.0.0/24 с адресом вашей локальной сети дома. Это все равно откроет порт, когда вы находитесь в сети с тем же сетевым адресом и подсетью, что и ваша домашняя сеть, хотя вы должны выбрать тот, который не очень распространен.
Но это было только для того, чтобы ответить на ваш вопрос о том, как определить «дом». Это не правильный и не безопасный метод, на который вы должны полагаться при защите SSH-сервера (подумайте об IP-спуфинге). Лучше следовать проверенным рекомендациям по безопасности, например, 2FA, изменение общих портов, использование аутентификации по ключу, отключение корневых входов, блокировка неудачных попыток и т. Д.
Смотрите это: https://blog.devolutions.net/2017/04/10-steps-to-secure-open-ssh