Как защитить проброс RDP ?

Тема в разделе "Вопросы начинающих", создана пользователем chas99, 29 фев 2016.

  1. chas99

    chas99 Новый участник

    Посоветуйте, пожалуйста, как защитить проброс RDP ?
    есть правила

    chain=input action=add-src-to-address-list protocol=tcp address-list=rdp_list address-list-timeout=1d in-interface=RT-5G dst-port=3399 log=no log-prefix=""

    chain=dstnat action=netmap to-addresses=192.168.0.100 to-ports=3389 protocol=tcp src-address-list=rdp_list in-interface=RT-5G dst-port=3399 log=no log-prefix=""

    как сделать, чтобы блокировался проброс для адреса после пяти не правильных попыток подключиться?
     
  2. Илья Князев

    Илья Князев Администратор Команда форума

    Последнее редактирование модератором: 23 янв 2019
  3. chas99

    chas99 Новый участник

    Илья, вопрос - а какое правило firewall вперед срабатывает Filter Rules или NAT ?

    попробовал -
    если Вы замените в примере цепочку input на forward, а dst-port замените на 3389, Вы защитите таким образом опубликованный терминальный сервер.
    не заработало :(

    когда chain=input то соединение происходит, но оно установилось с сервером, а дальше начинается перебор паролей на сервере...
     
    Последнее редактирование модератором: 23 янв 2019
  4. chas99

    chas99 Новый участник

    ... Получается, что после первой попытки подключиться адрес заносится в list rdp_stage1

    chain=input action=add-src-to-address-list connection-state=new protocol=tcp address-list=rdp_stage1 address-list-timeout=1m dst-port=3399 log=no log-prefix=""

    и срабатывает правило NAT

    chain=dstnat action=netmap to-addresses=192.168.0.100 to-ports=3399 protocol=tcp src-address-list=rdp_stage1 in-interface=RT-5G dst-port=3399 log=yes log-prefix="RDP"

    А последующие попытки подключения уже не обрабатываются Filer Rules

    chain=input action=add-src-to-address-list connection-state=new protocol=tcp src-address-list=rdp_stage1 address-list=rdp_stage2 address-list-timeout=1m dst-port=3399 log=no log-prefix=""

    так как срабатывает вышеописанное правило NAT
     
  5. Илья Князев

    Илья Князев Администратор Команда форума

    DST-NAT -> Filter -> SRC-NAT
    /ip firewall export покажите.
     
  6. chas99

    chas99 Новый участник

    /ip firewall filter
    add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input comment="Port scanners to list " protocol=tcp psd=\
    21,3s,3,1
    add action=drop chain=input disabled=yes dst-port=3399 protocol=tcp src-address-list=rdp_blacklist
    add action=add-src-to-address-list address-list=rdp_blacklist address-list-timeout=1d chain=forward connection-state=new disabled=yes dst-port=3399 protocol=\
    tcp src-address-list=rdp_stage6
    add action=add-src-to-address-list address-list=rdp_stage6 address-list-timeout=1m chain=forward connection-state=new disabled=yes dst-port=3399 protocol=tcp \
    src-address-list=rdp_stage5
    add action=add-src-to-address-list address-list=rdp_stage5 address-list-timeout=1m chain=forward connection-state=new disabled=yes dst-port=3399 protocol=tcp \
    src-address-list=rdp_stage4
    add action=add-src-to-address-list address-list=rdp_stage4 address-list-timeout=1m chain=input connection-state=new disabled=yes dst-port=3399 protocol=tcp \
    src-address-list=rdp_stage3
    add action=add-src-to-address-list address-list=rdp_stage3 address-list-timeout=1m chain=input connection-state=new disabled=yes dst-port=3399 in-interface=\
    RT-5G protocol=tcp src-address-list=rdp_stage2
    add action=add-src-to-address-list address-list=rdp_stage2 address-list-timeout=1m chain=forward connection-state=new disabled=yes dst-port=3399 in-interface=\
    RT-5G protocol=tcp src-address-list=rdp_stage1
    add action=add-src-to-address-list address-list=rdp_stage1 address-list-timeout=1m chain=input connection-state=new disabled=yes dst-port=3399 in-interface=\
    RT-5G protocol=tcp
    add action=drop chain=input comment="dropping port scanners" src-address-list="port scanners"
    add action=drop chain=input in-interface=RT-5G log=yes log-prefix=BLOCK- src-address-list=block_hack
    add chain=input comment="default configuration" connection-state=established,related
    add chain=input dst-port=22 in-interface=RT-5G protocol=tcp src-address-list=white_list_ssh
    add action=drop chain=forward in-interface=RT-5G src-address-list=block_hack
    add action=add-src-to-address-list address-list=white_list_ssh address-list-timeout=1h chain=input in-interface=RT-5G packet-size=128 protocol=icmp \
    src-address-list=ICMP_SSH_128_stage1
    add action=add-src-to-address-list address-list=ICMP_SSH_128_stage1 address-list-timeout=1m chain=input in-interface=RT-5G packet-size=128 protocol=icmp \
    src-address-list=ICMP_SSH_98_stage2
    add action=add-src-to-address-list address-list=ICMP_SSH_98_stage2 address-list-timeout=1m chain=input in-interface=RT-5G packet-size=98 protocol=icmp \
    src-address-list=ICMP_SSH_98_stage1
    add action=add-src-to-address-list address-list=ICMP_SSH_98_stage1 address-list-timeout=1m chain=input in-interface=RT-5G packet-size=98 protocol=icmp
    add chain=input comment="default configuration" protocol=icmp
    add action=drop chain=input dst-port=53 in-interface=RT-5G protocol=udp
    add action=drop chain=input dst-port=53 in-interface=RT-unlim protocol=udp
    add action=drop chain=input in-interface=RT-5G src-address-list=block_hack
    add action=add-src-to-address-list address-list=block_hack address-list-timeout=1h chain=input dst-port=22 in-interface=RT-5G protocol=tcp
    add action=drop chain=input comment="default configuration" in-interface=ether1-gateway
    add action=fasttrack-connection chain=forward comment="default configuration" connection-state=established,related
    add chain=forward comment="default configuration" connection-state=established,related
    add action=drop chain=forward comment="default configuration" connection-state=invalid
    add action=drop chain=forward comment="default configuration" connection-nat-state=!dstnat connection-state=new in-interface=ether1-gateway
    add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input comment="NMAP FIN Stealth scan" protocol=tcp tcp-flags=\
    fin,!syn,!rst,!psh,!ack,!urg
    add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input comment="SYN/FIN scan" protocol=tcp tcp-flags=fin,syn
    add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input comment="SYN/RST scan" protocol=tcp tcp-flags=syn,rst
    add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input comment="FIN/PSH/URG scan" protocol=tcp tcp-flags=\
    fin,psh,urg,!syn,!rst,!ack
    add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input comment="ALL/ALL scan" protocol=tcp tcp-flags=\
    fin,syn,rst,psh,ack,urg
    add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input comment="NMAP NULL scan" protocol=tcp tcp-flags=\
    !fin,!syn,!rst,!psh,!ack,!urg
    /ip firewall nat
    add action=masquerade chain=srcnat comment="default configuration" out-interface=RT-unlim
    add action=netmap chain=dstnat dst-port=3399 in-interface=RT-5G log=yes log-prefix=RDP protocol=tcp to-addresses=192.168.0.100 to-ports=3389
    add action=netmap chain=dstnat comment=ADSL-WWW dst-port=8880 in-interface=RT-5G log=yes protocol=tcp to-addresses=192.168.5.1 to-ports=80
    add action=masquerade chain=srcnat comment=NAT_to_Modem_Web_Interface dst-address=192.168.5.1 dst-port=80 out-interface=ether1-gateway protocol=tcp
    /ip firewall service-port
    set ftp disabled=yes
    set tftp disabled=yes
    set irc disabled=yes
    set h323 disabled=yes
    set sip disabled=yes
     
  7. Илья Князев

    Илья Князев Администратор Команда форума

    Здесь chain=forward должно быть. И включить его. input это когда пакет идет на ЦПУ маршрутизатора.
    netmap это транслирование СЕТИ 1:1. Вот пример NAT. Часть 4
    В вашем случае action=dst-nat
     
    Последнее редактирование модератором: 23 янв 2019
  8. chas99

    chas99 Новый участник

    сделал, но результат тот же :(

    первый раз срабатывает правило
    add action=add-src-to-address-list address-list=rdp_stage1 address-list-timeout=1m chain=input connection-state=new disabled=yes dst-port=3399 in-interface=RT-5G protocol=tcp

    и при следующем подключении срабатывает NAT
    add action=dst-nat chain=dstnat dst-port=3399 in-interface=RT-5G log=yes log-prefix=RDP protocol=tcp to-addresses=192.168.0.100 to-ports=3389

    а после него следующие подключения не попадают (не доходят) в Filter Rules :(

    что я делаю не правильно?
     
  9. chas99

    chas99 Новый участник

    ... получается внешний адрес сохраняется только в листе rdp_stage1, а в другие списки он не попадает...
     
  10. Илья Князев

    Илья Князев Администратор Команда форума

    DST-NAT срабатывает еще ДО ТОГО как первый пакет соединения доберется до /ip firewall filter
    Попробуйте отключить правило с fasttrack connection
     
  11. chas99

    chas99 Новый участник

    отключил - без изменений.

    попробовал выключить NAT
    add action=dst-nat chain=dstnat dst-port=3399 in-interface=RT-5G log=yes log-prefix=RDP protocol=tcp to-addresses=192.168.0.100 to-ports=3389

    правила со списками заработали, каждое новое подключение добавляет список...
     
  12. Илья Князев

    Илья Князев Администратор Команда форума

    Так. А поясните мне еще такую вещь.
    У вас вижу dst-nat на вход и не src-nat для интерфейса RT-5G Там не получается, что соединение идет "мимо кассы" ?
     
  13. chas99

    chas99 Новый участник

    у меня два провайдера.
    первый с белым ip, но лимитный =5GB в месяц, через только вход из вне на сервер. ну я удаленно winbox'ом на МТ.
    второй безлимитный и через него все в сети идут в инет...
     
  14. Илья Князев

    Илья Князев Администратор Команда форума

    Ага. Еще раз посмотрев правила нашел у вас ошибку.
    Как я уже говорил, Firewall срабатывает в данном случае ПОСЛЕ dst-nat. И dst-port у вас уже будет преобразован.
    т.е. вам надо в правилах файрволла вместо порта 3399 писать 3389
     
    1XTR нравится это.
  15. chas99

    chas99 Новый участник

    изменил на 3389 - не работает :( не считает пакеты
     
  16. chas99

    chas99 Новый участник

    для всех правил изменил forward и порт на 3389!

    УРА ЗАРАБОТАЛО!!!
    Илья СПАСИБО!!!!! :D
     
  17. Илья Князев

    Илья Князев Администратор Команда форума

    Небольшая ремарка из опыта.
    Если вы публикуете RDP на который снаружи подключается достаточно много юзеров, то время блокировки нужно ставить минут в 10.
    Иначе замучаетесь "продвинутых" юзеров из адрес-листа удалять.
     
  18. 1XTR

    1XTR Новый участник

    Надо вот это куданить в ФАКи записать. Бился с файером часа 3, правило с forward и левым портом для RDP стоит выше и не срабатывает, все дропится более нижним правилом. А оказцо порт после NAT уже не левый, а дефолтный! Вот этого нигде нет в мануалах.
    Все таки надо на курсы топать =)
    Спасибо Илья!
     
  19. Илья Князев

    Илья Князев Администратор Команда форума

    Это есть в packet flow diagram