Почему RDP — любимая цель
Порт 3389 сканируется ботами постоянно. Если у вас есть сервер с открытым RDP — через несколько часов после подключения к интернету в логах появятся тысячи неудачных попыток входа.
Я наблюдал объекты где счётчик неудачных входов в Event Viewer показывал 5000–10000 попыток в сутки. При этом владелец понятия не имел что его сервер атакуют.
Принцип защиты
Идея проста: если с одного IP пришло несколько неудачных подключений за короткое время — это брутфорс. Блокируем этот IP на длительный срок.
MikroTik делает это через address-list с таймаутом.
4 правила в цепочке RAW
Используем цепочку RAW — она отрабатывает до conntrack и не создаёт записей в таблице соединений. Минимальная нагрузка на роутер.
# Правило 1: Уже заблокированные — дропаем сразу
/ip firewall raw add chain=prerouting \
src-address-list=RDP_Blacklist \
action=drop \
comment="RDP Bruteforce - Drop Blacklisted"
# Правило 2: Третья попытка → в чёрный список на 4 недели
/ip firewall raw add chain=prerouting \
protocol=tcp dst-port=3389 \
src-address-list=RDP_Stage2 \
action=add-src-to-address-list \
address-list=RDP_Blacklist \
address-list-timeout=4w \
comment="RDP Bruteforce - Stage3 → Blacklist"
# Правило 3: Вторая попытка → Stage2
/ip firewall raw add chain=prerouting \
protocol=tcp dst-port=3389 \
src-address-list=RDP_Stage1 \
action=add-src-to-address-list \
address-list=RDP_Stage2 \
address-list-timeout=1m \
comment="RDP Bruteforce - Stage2"
# Правило 4: Первая попытка → Stage1
/ip firewall raw add chain=prerouting \
protocol=tcp dst-port=3389 \
action=add-src-to-address-list \
address-list=RDP_Stage1 \
address-list-timeout=1m \
comment="RDP Bruteforce - Stage1"
Порядок важен: правила применяются сверху вниз. Правило с дропом заблокированных должно стоять первым.
Защита от SYN Flood
Дополнительно добавим защиту от SYN Flood — когда атакующий засыпает сервер полуоткрытыми соединениями:
/ip firewall raw add chain=prerouting \
protocol=tcp tcp-flags=syn \
dst-port=3389 \
connection-limit=3,32 \
action=add-src-to-address-list \
address-list=RDP_Blacklist \
address-list-timeout=8w \
comment="RDP SYN Flood Protection"
Более 3 одновременных SYN-соединений с одного IP — блокировка на 8 недель.
Белый список для своих
Чтобы случайно не заблокировать себя — добавьте свои IP в белый список до всех правил выше:
/ip firewall address-list add \
list=RDP_Whitelist \
address=ваш.ip.адрес \
comment="Admin IP"
/ip firewall raw add chain=prerouting \
src-address-list=RDP_Whitelist \
action=accept \
place-before=0 \
comment="RDP Whitelist - Always Allow"
Результат
После внедрения этих правил на одном из объектов количество попыток брутфорса упало с 8000 в сутки до 12. Первые волны атак заблокировали большинство ботнет-IP, и они перестали возвращаться.
Address-list RDP_Blacklist через неделю содержал около 2000 IP-адресов — всё это реальные адреса атакующих.
Лучшее решение — вообще не открывать RDP напрямую в интернет, а использовать VPN. Но если RDP необходим — эти правила обязательны.
Настройка MikroTik под ключ — пишите.