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.
comment
Comentário descritivo para a regra.
connection-bytes
Corresponde aos pacotes somente se uma determinada quantidade de bytes foi transferida por meio da conexão específica. 0 - significa infinito, por exemplo, connection-bytes=2000000-0
significa que a regra corresponde se mais de 2 MB tiverem sido transferidos pela conexão relevante
connection-limit
Corresponde às conexões por endereço ou bloco de endereços após o valor fornecido ser alcançado. Deve ser usado junto com connection-state=new e/ou com tcp-flags=syn porque o matcher consome muitos recursos.
connection-mark
Corresponde aos pacotes marcados por meio do mangle com a marca de conexão específica. Se nenhuma marca for definida, a regra corresponderá a qualquer conexão não marcada.
connection-nat-state
Pode corresponder a conexões que são srcnatted, dstnatted ou ambas. Observe que connection-state=conexões relacionadas connection-nat-state é determinado pela direção do primeiro pacote. e se o rastreamento de conexão precisar usar dst-nat para entregar esta conexão aos mesmos hosts que a conexão principal, ela estará em connection-nat-state=dstnat, mesmo que não haja nenhuma regra dst-nat.
connection-rate
Taxa de conexão é um matcher de firewall que permite capturar o tráfego com base na velocidade atual da conexão
connection-state
Interpreta os dados de análise de rastreamento de conexão para um pacote específico:- 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 .
connection-type
Corresponde pacotes de conexões relacionadas com base nas informações de seus auxiliares de rastreamento de conexão. Um auxiliar de conexão relevante deve ser habilitado em /ip firewall service-port
content
Corresponde aos pacotes que contêm o texto especificado
dscp
Corresponde ao campo de cabeçalho IP DSCP.
dst-address
Corresponde aos pacotes cujo destino é igual ao IP especificado ou cai no intervalo de IP especificado.
dst-address-list
dst-address-type
Corresponde ao tipo de endereço de destino:- 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
dst-limit
Corresponde aos pacotes até que uma determinada taxa seja excedida. A taxa é definida como pacotes por intervalo de tempo. Ao contrário do matcher de limite , cada fluxo tem seu próprio limite. O fluxo é definido pelo parâmetro de modo. Os parâmetros são escritos no seguinte formato: 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)
dst-port
Lista de números de porta de destino ou intervalos de números de porta
fragment
Corresponde a pacotes fragmentados. O primeiro fragmento (inicial) não conta. Se o rastreamento de conexão estiver ativado, não haverá fragmentos, pois o sistema monta automaticamente cada pacote.
hotspot
Corresponde os pacotes recebidos de clientes HotSpot com vários correspondentes HotSpot.- 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
icmp-options
Corresponde ao tipo de ICMP:campos de código
in-bridge-port
Interface real em que o pacote entrou no roteador, se a interface de entrada for uma ponte. Funciona apenas se use-ip-firewall estiver ativado nas configurações de ponte.
in-bridge-port-list
Conjunto de interfaces definidas na lista de interfaces . Funciona da mesma forma que na porta em ponte
in-interface
Interface o pacote entrou no roteador
in-interface-list
Conjunto de interfaces definidas na lista de interfaces . Funciona da mesma forma que na interface
ingress-priority
Corresponde à prioridade de um pacote de entrada. A prioridade pode ser derivada do bit VLAN, WMM, DSCP ou MPLS EXP. consulte Mais informação"
ipsec-policy
Corresponde à política usada pelo IpSec. O valor é escrito no seguinte formato: 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.
ipv4-options
Corresponde às opções de cabeçalho IPv4.- 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
jump-target
Nome da cadeia de destino para a qual pular. Aplicável apenas seaction=jump
layer7-protocol
limit
Corresponde a pacotes até uma taxa limitada (taxa de pacote ou taxa de bits). A regra que usa este correspondente corresponderá até que este limite seja atingido. Os parâmetros são escritos no seguinte formato: 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
log-prefix
Adiciona o texto especificado no início de cada mensagem de log. Aplicável seaction=log
nth
Corresponde a cada enésimo pacote.
out-bridge-port
Interface real, o pacote está saindo do roteador, se a interface de saída for uma ponte. Funciona apenas se use-ip-firewall estiver ativado nas configurações de ponte.
out-bridge-port-list
Conjunto de interfaces definidas na lista de interfaces . Funciona da mesma forma que out-bridge-port.
out-interface
Interface o pacote está saindo do roteador.
out-interface-list
Conjunto de interfaces definidas na lista de interfaces . Funciona da mesma forma que a interface externa
packet-mark
Corresponde aos pacotes marcados por meio do mangle com a marca de pacote específica. Se nenhuma marca for definida, a regra corresponderá a qualquer pacote não marcado.
packet-size
Corresponde a pacotes de tamanho especificado ou intervalo de tamanho em bytes.
per-connection-classifier
O matcher PCC permite dividir o tráfego em fluxos iguais com capacidade de manter pacotes com um conjunto específico de opções em um fluxo específico.
port
Corresponde se alguma porta (origem ou destino) corresponder à lista especificada de portas ou intervalos de portas. Aplicável apenas se protocol
for TCP ou UDP
priority
Corresponde à prioridade do pacote depois que uma nova prioridade foi definida. A prioridade pode ser derivada do bit VLAN, WMM, DSCP, MPLS EXP ou da prioridade que foi definida usando a ação set-priority .
protocol
Corresponde ao protocolo IP específico especificado pelo nome ou número do protocolo
psd
Tenta detectar varreduras TCP e UDP. Os parâmetros estão no seguinte formatoWeightThreshold, 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
random
Corresponde aos pacotes aleatoriamente com determinada probabilidade.
reject-with
Especifica o erro de ICMP a ser devolvido se o pacote for rejeitado. Aplicável seaction=reject
routing-table
Corresponde aos pacotes cujo endereço de destino é resolvido em uma tabela de roteamento específica. Mais detalhes podem ser encontrados na página Matcher da Tabela de Roteamento
routing-mark
Corresponde aos pacotes marcados pela facilidade mangle com a marca de roteamento específica
src-address-list
src-address-type
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
src-port
Lista de portas de origem e intervalos de portas de origem. Aplicável apenas se o protocolo for TCP ou UDP.
src-mac-address
Corresponde ao endereço MAC de origem do pacote
tcp-flags
Corresponde aos sinalizadores TCP especificados- 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
tcp-mss
Corresponde ao valor TCP MSS de um pacote IP
time
Permite criar filtro com base na hora e data de chegada dos pacotes ou, para pacotes gerados localmente, hora e data de saída
tls-host
Permite corresponder o tráfego https com base no nome do host TLS SNI. Aceita a sintaxe GLOB para correspondência de curinga. Observe que o correspondente não poderá corresponder ao nome do host se o quadro de handshake TLS estiver fragmentado em vários segmentos TCP (pacotes).
ttl
Corresponde ao valor TTL dos pacotes
Estatísticas
/ip firewall filter print stats
mostrará propriedades adicionais somente leitura
bytes
Quantidade total de bytes correspondidos pela regra
packets
Quantidade total de pacotes correspondidos pela regra