Você está na página 1de 4

Sobre Firewall IPTABLES

O que são regras?


As regras são como comandos passados ao iptables para que ele realize uma determinada ação
de acordo com o endereço/porta de origem/destino, interface de origem/destino, etc..

O que são tabelas?


Tabelas são os locais usados para armazenar os chains e conjunto de regras com uma
determinada característica em comum.

As tabelas podem ser referenciadas com a opção -t


tabela e existem 3 tabelas disponíveis no iptables:
filter = Esta é a tabela padrão, responsávelpor determinar o entra e o sai da máquina local.
nat = Usada para dados que gera outra conexão,como mascarar conexão, direcionar requisições.
mangle = Utilizada para alterações especiais de pacotes como marcação de QOS e balanceamento
de carga

O que são chains?


Os Chains são locais onde as regras do firewall definidas pelo usuário são armazenadas para
operação do firewall. (INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING)

PREROUTING = Executa antes do kernel tomar decisão de roteamento


POSTROUTING = Executa após o kernel ter sido tomada a decisão de roteamento
INPUT = Executa na Entrada de dados
OUTPUT = Excuta na saída de dados
FORWARD = Transfere dados de uma placa para outra
Digite iptables -t filter -L
Será mostrado as CHAINS dessa tabela --> INPUT, FORWARD, OUTPUT

Digite iptables -t nat -L


será mostrado as CHAINS dessa tabela --> PREROUTING, INPUT, POSTROUTING, OUTPUT

Digite iptables -t mangle -L


será mostrado as CHAINS dessa tabela --> PREROUTING, INPUT, FORWARD OUTPUT,
POSTROUTING

As principais ações são:


ACCEPT --> Aceitar. Permite a passagem do pacote.
DROP --> Abandonar. Não permite a passagem do pacote, descartando-o. Não avisa a origem
sobre o ocorrido.
REJECT --> Igual ao DROP, mas avisa a origem sobre o ocorrido (envia pacote icmp unreacha-
ble).
LOG --> Cria um log referente à regra, em /var/log/messages. Usar antes de outras ações.

As principais opções são:

P --> Policy (política). Altera a política da chain. A política inicial de cada chain é AC-
CEPT. Isso faz com que o firewall, inicialmente, aceite qualquer INPUT, OUTPUT ou
FORWARD.
A política pode ser alterada para DROP, que irá negar o serviço da chain, até que
uma opção -A entre em vigor.

O -P não aceita REJECT ou LOG.

Exemplos:
iptables -P FORWARD DROP
iptables -P INPUT ACCEPT
A --> Append (anexar). Acresce uma nova regra à chain. Tem prioridade sobre o -P.
Geralmente, como buscamos segurança máxima, colocamos todas as chains em política
DROP, com o -P e, depois, abrimos o que é necessário com o -A.
Exemplos:
iptables -A OUTPUT -d 172.20.5.10 -j ACCEPT
iptables -A FORWARD -s 10.0.0.1 -j DROP
iptables -A FORWARD -d www.chat.com.br -j DROP

D --> Delete (apagar). Apaga uma regra. A regra deve ser escrita novamente, trocan- do-
se a opção para -D.

Exemplo:
iptables -t filter -D INPUT -d 127.0.0.1 -j DROP

Gerar Dados
Os elementos mais comuns para se gerar dados são os seguintes:
-s --> Source (origem).
-d --> Destination (destino).
-p --> Protocol (protocolo).
-i --> In-Interface (interface de entrada).
-o --> Out-Interface (interface de saída).
! --> Exclusão. Utilizado com -s, -d, -p, -i, -o e outros, para excluir o argumento.
--sport --> Source Port. Porta de origem. Só funciona com as opções -p udp e -p tcp.
--dport --> Destination Port. Porta de destino. Só funciona com as opções -p udp e -p tcp. Similar a
–sport.

# Sobre as Regras de ESTADOS ESTABELECIDOS


Exemplo REAL
#iptables -t filter -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#iptables -t filter -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#iptables -t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

New --> pacotes inciais de um fluxo.


ESTABLISHED --> quando a resposta ao pacote inicial (NEW) chega ao firewall, os próximos
pacotes desse fluxo passam a ser identificado como ESTABLISHED.
RELATED --> pacotes que de alguma maneira se relacionam a uma conexão já estabelecida

Mais Exemplos:
Bloqueando SSH
iptables -A INPUT -p tcp -s 192.168.1.2 --dport 22 – j DROP

Bloqueando Protocolo
iptables -A INPUT -s 200.200.200.200 -p udp -j DROP

Bloqueando por Exceção


iptables -t filter -A INPUT ! -s 200.200.200.10 -j DROP
Exemplos mais Completos
# Limpa tabelas (regras)
iptables -t filter -F
iptables -t mangle -F
iptables -t nat -F

###Bloqueia tudo
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

###Habilita o NAT
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE

##### Regras acesso a VM Security #####

### Libera conexoes ja estabelecidas


#iptables -t filter -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#iptables -t filter -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#iptables -t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

### Libera acesso SSH ao firewall


#iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT

### Libera ICMP para o firewall


#iptables -t filter -A OUTPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT
#iptables -t filter -A INPUT -p icmp --icmp-type 8 -s 172.16.1.0/24 -d 0/0 -j ACCEPT
#iptables -t filter -A INPUT -p icmp --icmp-type 8 -s 192.168.20.0/24 -d 0/0 -j ACCEPT

### Libera DNS para o firewall


#iptables -t filter -A OUTPUT -p udp -d 0/0 --dport 53 -j ACCEPT

### Libera HTTP e HTTPS para o firewall


#iptables -t filter -A OUTPUT -p tcp -m multiport -d 0/0 --dport 80,443 -j ACCEPT

##### Regras para a Rede 172.16.1.0/24 #####

###Libera ICMP a partir da rede


#iptables -t filter -A FORWARD -p icmp --icmp-type 0 -s 172.16.1.0/24 -d 0/0 -j ACCEPT
#iptables -t filter -A FORWARD -p icmp --icmp-type 8 -s 172.16.1.0/24 -d 0/0 -j ACCEPT

### Libera consulta DNS a partir da LAN


#iptables -A FORWARD -p udp -s 172.16.1.0/24 -d 0/0 --dport 53 -j ACCEPT

### Libera consulta DNS a partir da LAN


#iptables -A FORWARD -p tcp -m multiport -s 172.16.1.0/24 -d 0/0 --dport 80,443 -j ACCEPT

### Libera consulta DNS a partir da LAN


#iptables -t nat -A PREROUTING -p tcp -s 0/0 -d 192.168.10.X --dport 2210 -j DNAT --to
172.16.1.100:22
#iptables -t filter -A FORWARD -p tcp -s 0/0 -d 172.16.1.100 --dport 22 -j ACCEPT

Você também pode gostar