10 Regras do Firewall IPTables que todo sysadmin Linux deve conhecer



O Firewall IPTables é um firewall de nível de pacotes, ou seja, usa parâmetros, como porta/endereço de origem/destino, estado da conexão, e outros para fazer a filtragem e segurança na rede. Em suma, o IPTables tem inúmeras possibilidades de controle oferecidas pelos recursos de filtragem.

É um firewall de linha de comando encontrado nos sistemas Linux. Permite gerenciar o tráfego de rede através de um conjunto de conjunto de tabelas que possuem cadeias que contém o conjunto de regras internas ou definidas pelo usuário. Uma tabela praticamente define o seu poder, o que pode ou o que não pode realizar com o pacote.

Assim, existem 3 tabelas gerenciáveis no IPTables:

1 - Exibir todas as regras disponíveis

iptables -L -n -v

Se preferir, verificar apenas uma tabela em específico (no caso a tabela nat):

iptables -t nat -L -n -v

Ou através de linhas numeradas:

iptables -n -L -v --line-numbers

2 - Bloquear endereço IP específico entrante na rede

Para adicionar regra:

iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

Para removê-la:

iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP

3 - Bloquear porta específica

Sainte:

iptables -A OUTPUT -p tcp --dport xxx -j DROP

Entrante:

iptables -A INPUT -p tcp --dport xxx -j ACCEPT

Ou múltiplas portas:

iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT

4 - Permitir rede específica acessar determinada porta:

iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT

5 - Bloquear Network Flood sobre o servidor web que esteja escutando na porta 80

Aceitando de 100 a 200 conexões por minuto (ajuste da maneira que achar melhor):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT

6 - Manter registros de Log’s de pacotes bloqueados:

iptables -A INPUT -i eth0 -j LOG --log-prefix "Quantidade pacotes bloqueados:"

iptables -A INPUT -p tcp -dport 21 -j LOG -log-prefix “Serviço: ftp”

Os log’s são salvos em /var/log/messages. Onde você poderá filtrar usando comando grep:

grep "Quantidade pacotes bloqueados:" /var/log/messages

7 -Limitar o número de conexões simultâneas oriundas de determinado IP:

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT

Onde, essa regra permitirá 3 conexões simultâneas advindas de um mesmo endereço IP na porta 22 (SSH).

8 - Permitir conexões já estabelecidas:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

9 - Bloquear Ping Requests:

iptables -A INPUT -p icmp -icmp-type echo-request -j DROP

10 - Bloquear por endereço MAC:

iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP

Por fim, exemplos de regras, extraídas do Cyberciti.biz:

Replace ACCEPT with DROP to block port:
## open port ssh tcp port 22 ##
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
 
## open cups (printing service) udp/tcp port 631 for LAN users ##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 631 -j ACCEPT
 
## allow time sync via NTP for lan users (open udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 123 -j ACCEPT
 
## open tcp port 25 (smtp) for all ##
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
 
# open dns server ports for all ##
iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
 
## open http/https (Apache) server port to all ##
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
 
## open tcp port 110 (pop3) for all ##
iptables -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT
 
## open tcp port 143 (imap) for all ##
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
 
## open access to Samba file server for lan users only ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
 
## open access to proxy server for lan users only ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT
 
## open access to mysql server for lan users only ##
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

gravatar

Ricardo Ferreira

Criador e administrador desse portal para Sysadmin Linux. Possui mais de 6 anos de experiência com administração de servidores Linux. Pretende compartilhar todo seu conhecimento e experiência, da mesma forma como no Linux Descomplicado, onde também é criador e administrador ;-)

Quer receber novidades diretamente no e-mail?!

Informe seu endereço de e-mail:

Deixe seu comentário:



2016 - Para este material, você precisa informar a origem e criar conteúdo com a mesma licença para poder usá-lo. Licença Creative Commons BY-NC-SA 4.0

"Este material foi publicado originalmente por Ricardo Ferreira em Sysadmin | Linux Descomplicado com título e link 10 Regras do Firewall IPTables que todo sysadmin Linux deve conhecer."

comments powered by Disqus