FIREWALL
Resumo
O firewall implementa a filtragem de pacotes e, assim, fornece funções de segurança que são usadas para gerenciar o fluxo de dados para, de e através do roteador. Juntamente com a tradução de endereço de rede, ele serve como uma ferramenta para impedir o acesso não autorizado a redes conectadas diretamente e ao próprio roteador, bem como um filtro para o tráfego de saída.
Os firewalls de rede mantêm as ameaças externas longe dos dados confidenciais disponíveis na rede. Sempre que diferentes redes são unidas, há sempre uma ameaça de que alguém de fora da sua rede invada sua LAN. Tais invasões podem resultar no roubo e distribuição de dados privados, na alteração ou destruição de dados valiosos ou no apagamento de discos rígidos inteiros. Os firewalls são usados como meio de prevenir ou minimizar os riscos de segurança inerentes à conexão com outras redes. O firewall configurado corretamente desempenha um papel fundamental na implantação de infraestrutura de rede eficiente e segura.
O MikroTik RouterOS possui uma implementação de firewall muito poderosa com recursos que incluem:
- inspeção de pacotes com estado
- Detecção de protocolo da camada 7
- filtragem de protocolos ponto a ponto
- classificação do tráfego por:
- endereço MAC de origem
- Endereços IP (rede ou lista) e tipos de endereço (broadcast, local, multicast, unicast)
- porta ou intervalo de portas
- protocolos IP
- opções de protocolo (tipo ICMP e campos de código, sinalizadores TCP, opções IP e MSS)
- interface de onde o pacote chegou ou saiu
- fluxo interno e marcas de conexão
- byte DSCP
- conteúdo do pacote
- taxa na qual os pacotes chegam e números de sequência
- tamanho do pacote
- tempo de chegada do pacote
- e muito mais!
Chains
O firewall opera por meio de regras de firewall. Cada regra consiste em duas partes - o correspondente que corresponde ao fluxo de tráfego em determinadas condições e a ação que define o que fazer com o pacote correspondente.
As regras de filtragem do firewall são agrupadas em cadeias. Ele permite que um pacote seja comparado com um critério comum em uma cadeia e, em seguida, encaminhado para processamento em relação a algum outro critério comum para outra cadeia. Por exemplo, um pacote deve corresponder ao par endereço IP:porta. Obviamente, isso pode ser obtido adicionando quantas regras com endereço IP: correspondência de porta forem necessárias para a cadeia de encaminhamento, mas uma maneira melhor seria adicionar uma regra que corresponda ao tráfego de um endereço IP específico, por exemplo: /ip filtro de firewall adicione src-address=1.1.1.2/32 jump-target="mychain" e, em caso de correspondência bem-sucedida, passe o controle sobre o pacote IP para alguma outra cadeia, id est mychain neste exemplo. Em seguida, as regras que executam a correspondência em portas separadas podem ser adicionadas à cadeia mychain sem especificar os endereços IP.
Existem três cadeias predefinidas, que não podem ser excluídas:
- input - usado para processar os pacotes que entram no roteador por uma das interfaces com o endereço IP de destino que é um dos endereços do roteador. Os pacotes que passam pelo roteador não são processados contra as regras da cadeia de entrada
- forward - usado para processar pacotes que passam pelo roteador
- saída - utilizada para processar os pacotes originados no roteador e saindo dele por uma das interfaces. Os pacotes que passam pelo roteador não são processados contra as regras da cadeia de saída
Os diagramas de fluxo de pacotes ilustram como os pacotes são processados no RouterOS.
Ao processar uma cadeia, as regras são retiradas da cadeia na ordem em que são listadas de cima para baixo. Se um pacote corresponder aos critérios da regra, a ação especificada será executada nele e nenhuma outra regra será processada nessa cadeia (a exceção é a ação de passagem). Se um pacote não corresponder a nenhuma regra dentro da cadeia integrada, ele será aceito.
Propriedades
action
Ação a ser tomada se o pacote corresponder à regra:
- accept - aceita o pacote. O pacote não é passado para a próxima regra de firewall.
- add-dst-to-address-list - adiciona o endereço de destino à lista de endereços especificada pelo
address-list
parâmetro - add-src-to-address-list - adiciona o endereço de origem à lista de endereços especificada pelo
address-list
parâmetro - drop - descarta silenciosamente o pacote
- fasttrack-connection - processa pacotes de uma conexão usando FastPath ativando o FastTrack para a conexão
- jump - salta para a cadeia definida pelo usuário especificada pelo valor do
jump-target
parâmetro - log - adiciona uma mensagem ao log do sistema contendo os seguintes dados: in-interface, out-interface, src-mac, protocol, src-ip:port->dst-ip:port e comprimento do pacote. Depois que o pacote é correspondido, ele é passado para a próxima regra na lista, semelhante a
passthrough
- passthrough - se o pacote corresponder à regra, aumente o contador e vá para a próxima regra (útil para estatísticas)
- reject - descarte o pacote e envie uma mensagem de rejeição ICMP
- return - passa o controle de volta para a cadeia de onde o salto ocorreu
- tarpit - captura e mantém conexões TCP (responde com SYN/ACK ao pacote TCP SYN de entrada)
address-list-timeout
Intervalo de tempo após o qual o endereço será removido da lista de endereços especificada pelo address-list
parâmetro. Usado em conjunto com add-dst-to-address-list
ou add-src-to-address-list
ações
- O valor de none-dynamic (
00:00:00
) deixará o endereço na lista de endereços até a reinicialização - O valor de none-static deixará o endereço na lista de endereços para sempre e será incluído na configuração de exportação/backup
chain
Especifica a qual regra de cadeia será adicionada. Se a entrada não corresponder ao nome de uma cadeia já definida, uma nova cadeia será criada.
connection-bytes=2000000-0
significa que a regra corresponde se mais de 2 MB tiverem sido transferidos pela conexão relevante- established - um pacote que pertence a uma conexão existente
- invalid - um pacote que não possui determinado estado no rastreamento de conexão (geralmente - pacotes fora de ordem graves, pacotes com sequência/número de confirmação errados ou em caso de uso excessivo de recursos no roteador), por esse motivo o pacote inválido não participará no NAT (como somente o estado da conexão = novos pacotes fazem) e ainda conterá o endereço IP de origem original quando roteado. Sugerimos enfaticamente descartar todos os pacotes connection-state=invalid no filtro de firewall e cadeias de entrada
- new - o pacote iniciou uma nova conexão ou, de outra forma, associado a uma conexão que não viu pacotes em ambas as direções.
- related - um pacote que está relacionado, mas não faz parte de uma conexão existente, como erros de ICMP ou um pacote que inicia uma conexão de dados FTP
- untracked - pacote que foi definido para ignorar o rastreamento de conexão nas tabelas RAW do firewall .
- unicast - endereço IP usado para transmissão ponto a ponto
- local - se o endereço dst for atribuído a uma das interfaces do roteador
- broadcast - o pacote é enviado para todos os dispositivos na sub-rede
- multicast - o pacote é encaminhado para um grupo definido de dispositivos
count[/time],burst,mode[/expire]
.- count - contagem de pacotes por intervalo de tempo por fluxo para corresponder
- time - especifica o intervalo de tempo em que a contagem de pacotes por fluxo não pode ser excedida (opcional, 1s será usado se não for especificado)
- burst - número inicial de pacotes por fluxo para combinar: este número é recarregado por um a cada
time
/count
, até este número - mode - este parâmetro especifica quais campos únicos definem o fluxo (endereço-origem, endereço-dst, endereço-src-e-dst, endereço-dst-e-porta, endereços-e-porta-dst)
- expire - especifica o intervalo após o qual o fluxo sem pacotes poderá ser excluído (opcional)
- auth - corresponde a pacotes de clientes HotSpot autenticados
- from-client - corresponde aos pacotes que vêm do cliente HotSpot
- http - corresponde a solicitações HTTP enviadas ao servidor HotSpot
- local-dst - corresponde aos pacotes destinados ao servidor HotSpot
- to-client - corresponde aos pacotes enviados ao cliente HotSpot
direction, policy
. Direção é Usado para selecionar se deve corresponder à política usada para desencapsulamento ou à política que será usada para encapsulamento.- in - válido nas cadeias PREROUTING, INPUT e FORWARD
- out - válido nas cadeias POSTROUTING, OUTPUT e FORWARD
- ipsec - corresponde se o pacote está sujeito ao processamento IpSec;
- none - corresponde ao pacote que não está sujeito ao processamento IpSec (por exemplo, pacote de transporte IpSec).
Por exemplo, se o roteador receber o pacote Gre encapsulado Ipsec, a regra ipsec-policy=in,ipsec
corresponderá ao pacote Gre, mas a regra ipsec-policy=in,none
corresponderá ao pacote ESP.
- any - corresponde ao pacote com pelo menos uma das opções ipv4
- loose-source-routing - combina pacotes com opção de roteamento de fonte solta. Esta opção é usada para rotear o datagrama da internet com base nas informações fornecidas pela fonte
- no-record-route - corresponde a pacotes sem opção de rota de registro. Esta opção é usada para rotear o datagrama da internet com base nas informações fornecidas pela fonte
- no-router-alert - corresponde a pacotes sem opção de alteração de roteador
- no-source-routing - corresponde a pacotes sem opção de roteamento de origem
- no-timestamp - corresponde a pacotes sem opção de registro de data e hora
- record-route - combina os pacotes com a opção de rota de registro
- router-alert - combina os pacotes com a opção de alteração do roteador
- strict-source-routing - corresponde a pacotes com a opção de roteamento de fonte estrita
- timestamp - combina pacotes com timestamp
action=jump
count[/time],burst:mode
.- count - contagem de pacotes ou bits por intervalo de tempo para corresponder
- time - especifica o intervalo de tempo em que a contagem de pacotes ou bits não pode ser excedida (opcional, 1s será usado se não for especificado)
- burst - número inicial de pacotes ou bits para corresponder: esse número é recarregado a cada 10 ms, então o burst deve ser de pelo menos 1/100 da taxa por segundo
- mode - modo de pacote ou bit
action=log
protocol
for TCP ou UDPWeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight
- WeightThreshold - peso total dos últimos pacotes TCP/UDP com diferentes portas de destino provenientes do mesmo host a serem tratados como sequência de varredura de porta
- DelayThreshold - atraso para os pacotes com diferentes portas de destino provenientes do mesmo host serem tratados como possível subsequência de varredura de porta
- LowPortWeight - peso dos pacotes com porta de destino privilegiada (<1024)
- HighPortWeight - peso do pacote com porta de destino não privilegiada
action=reject
Corresponde ao tipo de endereço de origem:
- unicast - endereço IP usado para transmissão ponto a ponto
- local - se o endereço for atribuído a uma das interfaces do roteador
- broadcast - o pacote é enviado para todos os dispositivos na sub-rede
- multicast - o pacote é encaminhado para um grupo definido de dispositivos
- ack - reconhecimento de dados
- cwr - janela de congestionamento reduzida
- ece - sinalizador ECN-echo (notificação explícita de congestionamento)
- fin - conexão próxima
- psh - função push
- rst - queda de conexão
- syn - nova conexão
- urg - dados urgentes
Estatísticas
/ip firewall filter print stats
mostrará propriedades adicionais somente leitura