1

Я боролся за то, что я хотел бы поставить на место. Я использую свой ноутбук Ubuntu 18.04 на работе и дома.

Я бы хотел, чтобы мои iptables отбрасывали все входящие соединения (кроме, разумеется, установленных), когда меня нет дома, но это позволило бы получить доступ к порту 22, например, когда я дома.

Я действительно не уверен, как справиться с этой проблемой, так как я не знаю, как определить тот факт, что я нахожусь дома непосредственно в правиле iptables. Я думал о попытке запустить скрипт при подключении к сети, пинговать удаленный сервер, чтобы получить мой публичный IP-адрес, а затем сбросить iptables / установить новые правила. Мне не нравится это решение, потому что оно не чистое и что у меня могут быть открыты некоторые порты на несколько секунд (сразу после подключения / до получения внешнего IP-адреса), что мне не нравится

У вас есть идеи о том, как я могу справиться с этим?

Спасибо

1 ответ1

0

Вы можете идентифицировать "быть дома" по вашему сетевому адресу и сделать:

# 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .