Я бы расположил по "приличности" примерно так:
1. RDS Gateway и/или vpn по вкусу (anyconnect, ipsec+l2tp и т.п.)
2. vpn по вкусу (anyconnect, ipsec+l2tp и т.п.)
прятать порт в нестандартных - ну это от школоты разве что, хотя сейчас и школота не руками сканит = боты с разных адресов сканят все диапазоны портов, максимум вначале известные порты
Вот последним можно воспользоваться:
делаем правила дропа и занесения в блэклист обращения к типичным, но не задействованым портам (telnet, ftp, ssh, sql, mysql, sip и тп)
в итоге бот сунулся в порт из списка - не успев получить ответ дропнулся и попал в список и больше ему нет ответа даже с "правильных" портов.
На микротике - это собственно две строки:
input правило если src addr в блэклисте
input правило с действием add src to list - помещать в блэклист
у меня на этой сладкой палочке со сроком очистки 10 дней висит порядка 2-4 тысяч адресов
p.s. главное родной rdp в правила не подсовывать, а то одна ошибка, забыв указать порт и отдых)