Escolar Documentos
Profissional Documentos
Cultura Documentos
A conversão de endereços de rede é um padrão da Internet que permite que hosts em redes locais usem
um conjunto de endereços IP para comunicações internas e outro conjunto de endereços IP para
comunicações externas. Uma LAN que usa NAT é chamada de rede natted. Para que o NAT funcione,
deve haver um gateway NAT em cada rede natted. O gateway NAT (roteador NAT) executa a reescrita do
endereço IP na maneira como um pacote viaja de / para a LAN.
Existem dois tipos de NAT:
source NAT or srcnat. Esse tipo de NAT é realizado em pacotes originários de uma rede natted. Um
roteador NAT substitui o endereço de origem privado de um pacote IP por um novo endereço IP público
à medida que viaja pelo roteador. Uma operação reversa é aplicada aos pacotes de resposta que viajam
na outra direção.
destination NAT or dstnat. Esse tipo de NAT é realizado em pacotes destinados à rede natted. É mais
comumente usado para fazer com que hosts em uma rede privada sejam acessíveis pela Internet. Um
roteador NAT executando dstnat substitui o endereço IP de destino de um pacote IP à medida que viaja
pelo roteador em direção a uma rede privada.
Os hosts por trás de um roteador habilitado para NAT não têm conectividade de ponta a ponta
verdadeira. Portanto, alguns protocolos da Internet podem não funcionar em cenários com NAT. Os
serviços que requerem o início da conexão TCP de fora da rede privada ou de protocolos sem estado,
como o UDP, podem ser interrompidos. Além disso, alguns protocolos são inerentemente incompatíveis
com o NAT, um exemplo ousado é o protocolo AH do conjunto IPsec.
Para superar essas limitações, o RouterOS inclui vários chamados auxiliares de NAT , que permitem a
travessia de NAT para vários protocolos.
Masquerade
O NAT do firewall action=masquerade é uma subversão exclusiva do action=srcnat , foi projetado para uso
específico em situações em que o IP público pode ser alterado aleatoriamente, por exemplo, o servidor DHCP o
altera ou o túnel PPPoE após a desconexão obtém um IP diferente, enfim - quando o IP público é dinâmico.
Toda vez que a interface é desconectada e / ou seu endereço IP é alterado, o roteador limpa todas as entradas
de rastreamento de conexão mascaradas que enviam pacotes dessa interface, melhorando assim o tempo de
recuperação do sistema após a alteração do endereço IP público.
Infelizmente, isso pode levar a alguns problemas quando action=masquerade é usado em configurações com
links / conexões instáveis que são roteados por um link diferente quando o primário está desativado. Nesse
cenário, as seguintes coisas podem acontecer:
ao desconectar, todas as entradas de rastreamento de conexão relacionadas são eliminadas;
o próximo pacote de todas as conexões limpas (anteriormente mascaradas) entrará no firewall
como connection-state=new e, se a interface principal não estiver de volta, o pacote será roteado por uma
rota alternativa (se houver), criando assim uma nova conexão;
o link primário volta, o roteamento é restaurado pelo link primário, para que os pacotes que pertencem às
conexões existentes sejam enviados pela interface primária sem serem mascarados, vazando IPs locais para
uma rede pública.
Você pode solucionar isso criando uma rota de buraco negro como alternativa à rota que pode desaparecer ao
se desconectar).
Quando action=srcnat é usado, as entradas de rastreamento de conexão permanecem e as conexões podem
simplesmente continuar.
Properties
Property Description
action (action Ação a ser tomada se o pacote corresponder à regra:
name; accept - aceite o pacote. O pacote não é passado para a próxima regra NAT.
Default: accept add-dst-to-address-list - adicione o endereço de destino à Address list
especificada pelo address-list parâmetro
add-src-to-address-list - adicione o endereço de origem à Address list
especificada pelo address-list parâmetro
dst-nat - substitui o endereço de destino e / ou porta de um pacote IP pelos valores
especificados por to-addresses e to-ports parâmetros
jump - pula para a cadeia definida pelo usuário especificada pelo valor do jump-target
parâmetro
log - adicione uma mensagem ao log do sistema contendo os seguintes dados: interface de
entrada, interface de saída, src-mac, protocolo, src-ip: port-> dst-ip: porta e comprimento do
pacote. Após a correspondência do pacote, ele é passado para a próxima regra da lista,
semelhante a passthrough
masquerade - substitui a porta de origem de um pacote IP por uma especificada pelo
to-ports parâmetro e substitui o endereço de origem de um pacote IP por IP determinado
pelo recurso de roteamento
netmap - cria um mapeamento estático 1: 1 de um conjunto de endereços IP para outro.
Geralmente usado para distribuir endereços IP públicos para hosts em redes privadas
passthrough - se o pacote corresponder à regra, aumente o contador e vá para a próxima
regra (útil para estatísticas).
redirect - substitui a porta de destino de um pacote IP por uma especificada por to-ports
parâmetro e endereço de destino por um dos endereços locais do roteador
return - passa o controle de volta para a corrente de onde o salto ocorreu
same - fornece a um cliente em particular o mesmo endereço IP de origem / destino do
intervalo fornecido para cada conexão. É usado com mais frequência para serviços que
esperam o mesmo endereço de cliente para várias conexões do mesmo cliente
src-nat - substitui o endereço de origem de um pacote IP pelos valores especificados por
to-addresses e to-ports parâmetros
address-list- Intervalo de tempo após o qual o endereço será removido da lista de endereços
timeout (none- especificada pelo address-list parâmetro Usado em conjunto com
dynamic | none-
add-dst-to-address-list ou add-src-to-address-list ações
static | time;
Default: none- Value of none-dynamic ( 00:00:00 ) will leave the address in the address list till reboot
dynamic) Value of none-static will leave the address in the address list forever and will be
included in configuration export/backup
chain (name; Specifies to which chain rule will be added. If the input does not match the name of an already
Default: ) defined chain, a new chain will be created.
connection- Matches connections per address or address block after given value is reached.
limit (integer,n
etmaks; Default: )
connection- Matches packets marked via mangle facility with particular connection mark. If no-mark is set,
mark (no-mark | rule will match any unmarked connection.
string; Default: )
connection- Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the
rate (Integer connection. Read more>>
0..4294967295;
Default: )
connection- Matches packets from related connections based on information from their connection tracking
type (ftp | h323 | helpers. A relevant connection helper must be enabled under /ip firewall service-port
irc | pptp |
quake3 | sip | tftp;
Default: )
dst-address Matches packets which destination is equal to specified IP or falls into specified IP range.
(IP/netmask | IP
range; Default: )
dst-address- Matches destination address of a packet against user-defined address list
list (name;
Default: )
dst-address- Matches destination address type:
type (unicast | unicast - IP address used for point to point transmission
local | broadcast | local - if dst-address is assigned to one of router's interfaces
multicast;
broadcast - packet is sent to all devices in subnet
Default: )
multicast - packet is forwarded to defined group of devices
dst-limit Matches packets until a given pps limit is exceeded. As opposed to the limit matcher, every destina
(integer[/time],int / destination port has it's own limit. Parameters are written in following
eger,dst-address format: count[/time],burst,mode[/expire] .
| dst-port | src- count - maximum average packet rate measured in packets per time interval
address[/time];
Default: ) time - specifies the time interval in which the packet rate is measured (optional)
burst - number of packets which are not counted by packet rate
mode - the classifier for packet rate limiting
expire - specifies interval after which recored ip address /port will be deleted (optional)
fragment (yes| Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enable
no; Default: ) no fragments as system automatically assembles every packet
hotspot (auth | Matches packets received from HotSpot clients against various HotSpot matchers.
from-client | http | auth - matches authenticted HotSpot client packets
local-dst | to- from-client - matches packets that are coming from the HotSpot client
client; Default: )
http - matches HTTP requests sent to the HotSpot server
local-dst - matches packets that are destined to the HotSpot server
to-client - matches packets that are sent to the HotSpot client
ipsec-policy Matches the policy used by IpSec. Value is written in following format: direction, policy .
(in | out, ipsec | Direction is Used to select whether to match the policy used for decapsulation or the policy that
none; Default: ) will be used for encapsulation.
in - valid in the PREROUTING, INPUT and FORWARD chains
out - valid in the POSTROUTING, OUTPUT and FORWARD chains
ipsec - matches if the packet is subject to IpSec processing;
none - matches packet that is not subject to IpSec processing (for example, IpSec transport
packet).
For example, if router receives Ipsec encapsulated Gre packet, then rule
ipsec-policy=in,ipsec will match Gre packet, but rule ipsec-policy=in,none will
match ESP packet.
jump-target Name of the target chain to jump to. Applicable only if action=jump
(name; Default: )
layer7- Layer7 filter name defined in layer7 protocol menu.
protocol (nam
e; Default: )
limit (integer,ti Matches packets until a given pps limit is exceeded. Parameters are written in following
me,integer; format: count[/time],burst .
Default: ) count - maximum average packet rate measured in packets per time interval
time - specifies the time interval in which the packet rate is measured (optional, 1s will
be used if not specified)
burst - number of packets which are not counted by packet rate
log-prefix Adds specified text at the beginning of every log message. Applicable if action=log
(string; Default: )
packet-mark Matches packets marked via mangle facility with particular packet mark. If no-mark is set, rule
(no-mark | string; will match any unmarked packet.
Default: )
port (integer[- Matches if any (source or destination) port matches the specified list of ports or port ranges.
integer]: Applicable only if protocol is TCP or UDP
0..65535; Default:
)
psd (integer,time Attempts to detect TCP and UDP scans. Parameters are in following format WeightThreshold,
,integer,integer; DelayThreshold, LowPortWeight, HighPortWeight
Default: )
WeightThreshold - total weight of the latest TCP/UDP packets with different destination
ports coming from the same host to be treated as port scan sequence
DelayThreshold - delay for the packets with different destination ports coming from the
same host to be treated as possible port scan subsequence
LowPortWeight - weight of the packets with privileged (<1024) destination port
HighPortWeight - weight of the packet with non-priviliged destination port
routing-mark Matches packets marked by mangle facility with particular routing mark
(string; Default: )
same-not-by- Specifies whether to take into account or not destination IP address when selecting a new
dst (yes | no; source IP address. Applicable if action=same
Default: )
src-address Matches packets which source is equal to specified IP or falls into specified IP range.
(Ip/Netmaks, Ip
range; Default: )
src-address- Matches source address of a packet against user-defined address list
list (name;
Default: )
src-address- Matches source address type:
type (unicast |
unicast - IP address used for point to point transmission
local | broadcast |
multicast; local - if address is assigned to one of router's interfaces
Default: ) broadcast - packet is sent to all devices in subnet
multicast - packet is forwarded to defined group of devices
src-port List of source ports and ranges of source ports. Applicable only if protocol is TCP or UDP.
(integer[-integer]:
0..65535; Default:
)
src-mac- Matches source MAC address of the packet
address (MAC
address;
Default: )
time (time- Allows to create filter based on the packets' arrival time and date or, for locally generated packets,
time,sat | fri | thu departure time and date
| wed | tue | mon
| sun; Default: )
to-addresses Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat
(IP address[-IP
address];
Default: 0.0.0.0)
to-ports Replace original port with specified one. Applicable if action is dst-nat, redirect, masquerade,
(integer[-integer]: netmap, same, src-nat
0..65535; Default:
)
Stats
/ip firewall nat print stats mostrará propriedades adicionais somente leitura
Property Description
bytes (integer) Total amount of bytes matched by the rule
Basic examples
Source NAT
Masquerade
Se você deseja "ocultar" a LAN privada 192.168.0.0/24 "atrás" de um endereço 10.5.8.109 fornecido pelo ISP,
use o recurso de tradução de endereços de rede de origem (mascaramento) do roteador MikroTik. O
mascaramento alterará o endereço IP de origem e a porta dos pacotes originados da rede 192.168.0.0/24 para o
endereço 10.5.8.109 do roteador quando o pacote for roteado por ele.
Para usar o disfarce, uma regra NAT de origem com a ação 'masquerade' deve ser adicionada à configuração do
firewall:
Todas as conexões de saída da rede 192.168.0.0/24 terão o endereço de origem 10.5.8.109 do roteador e a porta
de origem acima de 1024. Nenhum acesso da Internet será possível aos endereços locais. Se você deseja
permitir conexões com o servidor na rede local, use o NAT (Network Address Translation) de destino.
Source nat to specific address
Se você tiver vários endereços IP públicos, a origem da origem poderá ser alterada para um IP específico, por
exemplo, uma sub-rede local poderá ser oculta por trás do primeiro IP e a segunda sub-rede local será
mascarada por trás do segundo IP.
Adicione uma regra que permita o acesso ao servidor interno a partir de redes externas:
Adicione uma regra que permita ao servidor interno iniciar conexões com as redes externas com o endereço de
origem convertido para 10.5.8.200:
Esta regra se traduz em: quando uma conexão de entrada solicitar a porta TCP 1234, use a ação DST-NAT e
redirecione-a para o endereço local 192.168.1.1 e a porta 1234
Port forwarding to internal FTP server
Como você pode ver na ilustração acima, o FTP usa mais de uma conexão, mas apenas o canal de comando
deve ser encaminhado pelo Destino nat. O canal de dados é considerado como conexão relacionada e deve ser
aceito com a regra "aceitar relacionados" se você tiver um firewall rigoroso. Observe que, para que as conexões
relacionadas sejam detectadas corretamente, o auxiliar FTP deve estar ativado.
Observe que o FTP ativo pode não funcionar se o cliente estiver protegido por um firewall estúpido ou roteador
NAT, porque o canal de dados é iniciado pelo servidor e não pode acessar diretamente o cliente.
If client is behind Mikrotik router, then make sure that FTP helper is enabled
1:1 mapping
Se você deseja vincular a sub-rede IP pública 11.11.11.0/24 à local 2.2.2.0/24, use a conversão de endereço de
destino e os recursos de conversão de endereço de origem com action = netmap.
O mesmo pode ser escrito usando uma notação de endereço diferente, que ainda precisa corresponder à rede
descrita
/ip firewall nat add chain=dstnat dst-address=11.11.11.0-11.11.11.255 \
action=netmap to-addresses=2.2.2.0-2.2.2.255
A configuração CGNAT no RouterOS não difere de nenhuma outra configuração NAT de origem regular:
Onde:
O roteador do provedor de serviços que executa o CGNAT precisa manter uma tabela de estados para
todas as traduções de endereços: isso requer muita memória e recursos da CPU.
Problemas nos jogos de console. Alguns jogos falham quando dois assinantes que usam o mesmo
endereço IPv4 público externo tentam se conectar.
O rastreamento de usuários por razões legais significa registro extra, pois várias famílias ficam atrás de
um endereço público.
Tudo o que requer conexões de entrada está quebrado. Enquanto esse já era o caso do NAT comum, os
usuários finais ainda podiam configurar o encaminhamento de porta no roteador NAT. CGNAT torna isso
impossível. Isso significa que nenhum servidor da web pode ser hospedado aqui e os telefones IP também
não podem receber chamadas por padrão.
Alguns servidores da Web permitem apenas um número máximo de conexões do mesmo endereço IP
público, como forma de combater ataques de DoS como inundações de SYN. Usando o CGNAT, esse limite
é atingido com mais frequência e alguns serviços podem ser de baixa qualidade.
6to4 requer endereços alcançáveis globalmente e não funcionará em redes que empregam endereços
com alcance topológico limitado
.
Mais sobre coisas que podem quebrar podem ser lidas neste artigo [1]
Pacotes com endereços de origem ou destino de espaço de endereço compartilhado NÃO DEVEM ser
encaminhados através dos limites do provedor de serviços. Os prestadores de serviços DEVEM filtrar esses
pacotes nos links de entrada. No RouterOS, isso pode ser feito facilmente com filtros de firewall em roteadores de
borda:
Pode ser necessário que os provedores de serviços façam o registro de endereços MAPed, em uma grande rede
CGN implantada que pode ser um problema. Felizmente, o RFC 7422 sugere uma maneira de gerenciar as
traduções CGN de forma a reduzir significativamente a quantidade de logs necessária e, ao mesmo tempo,
fornecer rastreabilidade para resposta a abusos.
A RFC afirma que, em vez de registrar cada conexão, os CGNs podem mapear deterministicamente os
endereços privados do cliente (recebidos na interface voltada para o cliente do CGN, também conhecida como
lado interno) para endereços públicos estendidos com intervalos de portas.
No RouterOS, o algoritmo descrito pode ser feito com poucas funções de script. Vamos dar um exemplo:
100.64.1.
2.2.2.2:2000-2099
1
100.64.1.
2.2.2.2:2100-2199
2
100.64.1.
2.2.2.2:2200-2299
3
100.64.1.
2.2.2.2:2300-2399
4
100.64.1.
2.2.2.2:2400-2499
5
100.64.1.
2.2.2.2:2500-2599
6
Em vez de escrever mapeamentos NAT manualmente, poderíamos escrever uma função que adiciona essas
regras automaticamente.
Após colar o script acima na função de terminal "addNatRules" está disponível. Se dermos nosso exemplo,
precisamos mapear 6 endereços de rede compartilhados para serem mapeados para 2.2.2.2 e cada endereço
usa um intervalo de 100 portas a partir de 2000. Portanto, executamos nossa função:
1Summary
2Server settings
3Share settings
4User setup
5Example
6Unsupported features
Summary
Sub-menu: /ip smb
Packages required: system
SMB 1.0 server provides file sharing access to configured folders of the router.
Server settings
Property Des
allow-guests (yes | no; Se o usuário convidado SMB tiver permissão para acessar compartilhamentos criados
Default: yes)
comment (string;
Default: MikrotikSMB)
interface (string; Lista de interfaces nas quais o serviço SMB estará em execução. all - smb estará
Default: all)
disponível em todas as interfaces.
Share settings
Sub-menu: /ip smb share
O submenu permite configurar nomes e diretórios de compartilhamento que serão acessíveis pelo SMB.
Se o diretório fornecido na configuração não existir, ele será criado automaticamente.
Property Description
directory ( Diretório no roteador atribuído ao compartilhamento SMB. Se deixado, o valor vazio do
string;
argumento name será usado na pasta raiz.
Default: )
User setup
Sub-menu: /ip smb share
Property Description
read-only Define se o usuário tem apenas direitos de somente leitura ao acessar compartilhamentos
(yes | no;
ou acesso total.
Default: yes)
Example
Para disponibilizar algumas pastas do RouterOS através do serviço SMB, siga estas etapas:
create user:
Now additional configuration changes can be done, like disabling default user and share etc.