В случае, если вы являетесь счастливым обладателем внешнего IP-адреса, и у вас появилось желание открыть доступ к своему роутеру из интернета по протоколу SSH, то может возникнуть здравая мысль как-то обезопасить его от взлома злоумышленниками.
Полную защиту в данной ситуации может предоставить разве что whitelist, состоящий из известных IP-адресов, с которых доступ будет разрешен, в то время как для всех остальных доступ к роутеру должен быть закрыт. Однако во многих ситуациях такой способ не является допустимым. Многие операторы связи предоставляют динамические IP-адреса. Кроме того, не всегда можно заранее знать, с какого провайдера и по какому каналу связи в следующий раз потребуется связаться со своим роутером. Поэтому будем защищать роутер другими путями.
Основных идей две:
1. Закрыть доступ к порту 22, перенаправить на него какой-либо другой произвольный номер порта.
2. Ограничить количество подключений к перенаправленному порту.
Первое защитит от сканеров, рыскающих в поисках открытых стандартных SSH-портов. Второе – предотвратит возможность брутфорс-атаки с подбором паролей. И поможет нам в этом файрвол iptables.
В терминологии OpenWrt для реализации изложенного достаточно добавить всего лишь три правила /etc/firewall.user:
# redirect ssh masked listening port to real one iptables -t nat -A prerouting_wan -p tcp --dport 39054 -j DNAT --to 172.16.0.1:22 # set restrictions on port 22 from WAN side iptables -A input_wan -d 172.16.0.1 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 3 --name ATTACKER_SSH --rsource -j DROP iptables -A input_wan -d 172.16.0.1 -p tcp --dport 22 -m state --state NEW -m recent --set --name ATTACKER_SSH --rsource -j ACCEPT
Что происходит в данном примере:
1. Порт 39054 со стороны WAN перенаправляется на порт 22 на локальный IP-адрес роутера 172.16.0.1.
2. На перенаправленные таким образом новые подключения накладывается следующее ограничение: за 180 секунд будет принято не более трех коннектов.
Так, за три минуты злоумышленник не сможет сделать более трех попыток подобрать пароль. Следовательно, на широкий перебор вариантов времени у него должно уйти куда как больше. Кроме того, злоумышленнику придется еще потратить некоторое время на поиски порта 39054, ведь на стандартный порт 22 со стороны WAN роутер откликаться не станет.