Em conexão com a pandemia do vírus covid-19 e a quarentena universal em muitos países, a única saída de muitas empresas para continuar trabalhando é o acesso remoto a empregos via Internet. Existem muitos métodos relativamente seguros para o trabalho remoto - mas, dada a escala do problema, você precisa de um método simples para qualquer usuário se conectar remotamente ao escritório e sem a necessidade de configurações adicionais, explicações, consultas tediosas e instruções longas. Este método é o favorito de muitos administradores RDP (Remote Desktop Protocol). Conectar-se diretamente ao local de trabalho via RDP resolve o nosso problema idealmente, exceto por uma grande mosca na pomada - manter a porta RDP aberta para a Internet é muito inseguro. Portanto, abaixo, proponho um método de proteção simples, porém confiável.
Como geralmente encontro pequenas organizações nas quais os dispositivos Mikrotik são usados como acesso à Internet, será mostrado abaixo como implementar isso no Mikrotik, mas o método de proteção Port Knocking é facilmente implementado em outros dispositivos de classe superior com as mesmas configurações para o roteador de entrada e firewallBrevemente sobre Port Knocking . Uma proteção externa ideal para uma rede conectada à Internet é quando todos os recursos e portas são fechados externamente por um firewall. E embora um roteador com esse firewall configurado não reaja de maneira alguma aos pacotes vindos de fora, ele os ouve. Portanto, você pode configurar o roteador para que, ao receber uma certa sequência (de código) de pacotes de rede em portas diferentes, ele (o roteador) para IP de onde vieram os pacotes abra o acesso a determinados recursos (portas, protocolos etc.).Agora ao ponto. Não farei uma descrição detalhada das configurações de firewall no Mikrotik - a Internet está cheia de fontes de alta qualidade para isso. Idealmente, um firewall bloqueia todos os pacotes recebidos, mas/ip firewall filter
add action=accept chain=input comment="established and related accept" connection-state=established,related
Permite tráfego de entrada de conexões estabelecidas (relacionadas).Agora configure o Port Knocking no Mikrotik:/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
move [/ip firewall filter find comment=RemoteRules] 1
/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389
Agora mais: asduas primeiras regras/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
proibir pacotes recebidos de endereços IP que estão na lista negra ao digitalizar portas;A terceira regra:add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules
Adiciona ip à lista de hosts que fizeram a primeira batida correta na porta desejada (19000);As quatro regras a seguir:add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
crie portas de interceptação para aqueles que desejam varrer suas portas e, quando essas tentativas forem detectadas, coloque seu IP na lista negra por 60 minutos, durante o qual as duas primeiras regras impedirão que esses hosts batam nas portas corretas;A seguinte regra:add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
coloca ip na lista de permissões por 1 minuto (o suficiente para estabelecer uma conexão), uma vez que a segunda batida correta é feita na porta desejada (16000);Próximo comando:move [/ip firewall filter find comment=RemoteRules] 1
move nossas regras para a cadeia de processamento do firewall, pois provavelmente já teremos regras de proibição diferentes configuradas que impedirão que nossos recém-criados funcionem. A primeira regra no Mikrotik começa do zero, mas no meu dispositivo o zero foi ocupado pela regra interna e era impossível mover - mudei para 1. Então, olhamos para as nossas configurações - onde você pode mover e especificar o número desejado.A seguinte configuração:/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp_to_33" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389
encaminha a porta 33890 selecionada aleatoriamente para uma porta RDP comum 3389 e ip do computador ou servidor de terminal de que precisamos. Criamos essas regras para todos os recursos internos necessários, de preferência expondo portas externas não padrão (e diferentes). Naturalmente, o ip de recursos internos deve ser estático ou protegido para um servidor DHCP.Agora nosso Mikrotik está configurado e precisamos de um procedimento simples para o usuário se conectar ao nosso RDP interno. Como temos principalmente usuários do Windows, criamos um arquivo bat simples e o chamamos de StartRDP.bat:1.htm
1.rdp
consequentemente 1.htm contém o seguinte código:<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">
ele contém dois links para imagens imaginárias localizadas no endereço my_router.sn.mynetname.net - pegamos esse endereço do sistema DDNS do Mikrotik pré-habilitando-o em nosso Mikrotik: vá para o menu IP-> Nuvem - marque a caixa de seleção DDNS ativado, clique em Aplicar e copie o nome do DNS do nosso roteador. Mas isso é necessário apenas quando o ip externo do roteador é dinâmico ou é usada uma configuração com vários provedores de Internet.A porta no primeiro link: 19000 corresponde à primeira porta na qual você precisa bater, na segunda, respectivamente, na segunda. Entre os links, há uma breve instrução que mostra o que fazer se, de repente, nossa conexão for interrompida devido a problemas de rede curtos - atualizamos a página, a porta RDP se abre novamente para nós por 1 minuto e nossa sessão é restaurada. Além disso, o texto entre as tags img forma um micro atraso para o navegador, o que reduz a probabilidade de o primeiro pacote ser entregue na segunda porta (16000) - até o momento não houve casos em duas semanas de uso (30 pessoas).A seguir, está o arquivo 1.rdp, que podemos configurar um para todos ou separadamente para cada usuário (eu fiz isso - é mais fácil gastar mais 15 minutos do que várias horas para consultar aqueles que não conseguiram descobrir)screen mode id:i:2
use multimon:i:1
.....
connection type:i:6
networkautodetect:i:0
.....
disable wallpaper:i:1
.....
full address:s:my_router.sn.mynetname.net:33890
.....
username:s:myuserlogin
domain:s:mydomain
das configurações interessantes aqui usam multimon: i: 1 - isso inclui o uso de vários monitores - alguns precisam, mas eles não pensam em ativá-lo.tipo de conexão: i: 6 e networkautodetect: i: 0 - como a maioria da Internet é superior a 10 Mbps, ative o tipo de conexão 6 (rede local de 10 Mbps e superior) e desative o networkautodetect, porque se for (automático) por padrão, é ainda raro o atraso da rede define automaticamente permanentemente uma velocidade subestimada para a nossa sessão, o que pode criar atrasos visíveis no trabalho, especialmente em programas gráficos.desativar papel de parede: i: 1 - desativar onome de usuário da imagem da área de trabalho : s: myuserlogin - especifique o nome de usuário, pois uma parte significativa de nossos usuários não sabe o nome de usuáriodomain: s: mydomain - especifique o domínio ou o nome do computador.Mas, se queremos simplificar a tarefa de criar um procedimento de conexão, também podemos usar o PowerShell - StartRDP.ps1Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 19000
Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 16000
mstsc /v:my_router.sn.mynetname.net:33890
Também um pouco sobre o cliente RDP no Windows: a MS percorreu um longo caminho para otimizar o protocolo e seu servidor e o lado do cliente, implementou muitos recursos úteis - como trabalhar com o hardware 3D, otimizar a resolução da tela do monitor, da tela múltipla e muito mais. Mas, é claro, tudo é implementado no modo de compatibilidade com versões anteriores e, se o cliente for Windows 7 e o PC remoto for Windows 10, o RDP funcionará usando a versão 7.0 do protocolo. Mas o benefício é que você pode atualizar versões do RDP para versões mais recentes - por exemplo, você pode atualizar a versão do protocolo de 7.0 (Windows 7) para 8.1. Portanto, para a conveniência dos clientes, você precisa maximizar a versão do servidor, bem como liberar links para atualizar para novas versões dos clientes do protocolo RDP.Como resultado, temos uma tecnologia simples e relativamente segura para conexão remota a um PC ou servidor de terminal em funcionamento. Mas, para uma conexão mais segura, nosso método Port Knocking pode ser complicado para ataques de várias ordens de magnitude, adicionando portas para verificação - você pode adicionar 3,4,5,6 ... a mesma lógica e, neste caso, uma intrusão direta em sua rede será quase impossível .Espaços em branco de arquivo para criar uma conexão remota com o RDP .