Se você administra os servidores de uma empresa ou apenas de um VPS para um site sabe o quanto é importante à segurança das maquinas.

O que é o Firewall? Firewall é uma solução de segurança baseada em um conjunto de regras ou instruções que analisa o tráfego de rede para determinar quais operações de transmissão ou recepção de dados podem ser executadas. A sua missão, do firewall consiste basicamente em bloquear tráfego de dados indesejado e liberar acessos bem-vindos.

Atualmente existe diversos aplicativos no mercado que fazem a segurança do seu servidores como IPCorp, UFW, Shorewall, entre outros, hoje vamos falar do simples porem eficiente IPTables que vem instalado por padrão na maior parte das distribuições Linux.

As regras que vamos citar funcionam na maior parte das distribuições Linux como, Ubuntu, Debian, Fedora, Cent OS, Slackware . . .

Vamos então à criação das regras que determinam o que entra e o que não entra na máquina.

Aqui está um resumo dos parâmetros do Iptables, que vai ajudá-lo a escrever seus próprios scripts e entender melhor os scripts de exemplo que encontrar pela web:

  • -A INPUT: Especifica que a regra se aplica a pacotes de entrada, ou seja, pacotes recebidos pelo servidor, em qualquer interface.
  • -A OUTPUT: A regra se aplica a pacotes de saída, transmitidos pelo próprio servidor.
  • -A FORWARD: Este parâmetro é usado ao compartilhar a conexão com a Internet, permitindo que os micros da rede local acessem através do servidor. Os pacotes de outros micros, encaminhados pelo servidor, são tratados como “FORWARD”, diferentemente dos pacotes transmitidos pelo próprio servidor, que são tratados como “OUTPUT”. Você pode definir regras diferentes para cada situação.
  • -p tcp: Especifica que a regra se aplica a pacotes TCP, o que é o mais comum.
  • -p udp: Alguns serviços usam também portas UDP. Um bom exemplo são os servidores DNS, que escutam tanto na porta 53 TCP, quanto na 53 UDP. Este parâmetro permite definir regras que se aplicam a estes casos, abrindo ou fechando as portas UDP, como em:

 

# Abre para a interface de loopback.
iptables -A INPUT -i lo -j ACCEPT

# Libera o servidor para ser acessado de um IP específico.
iptables -A INPUT -s 200.200.200.155 -j ACCEPT
iptables -A INPUT -s 192.168.2.2 -j ACCEPT

# Liberando portas para serem acessada de fora.
iptables -A INPUT -p tcp –dport 22 -j ACCEPT # Porta SSH
iptables -A INPUT -p tcp –dport 21 -j ACCEPT # Porta FTP
iptables -A INPUT -p tcp –dport 80 -j ACCEPT # Porta HTTP/Apache/NGinx

# Abre um intervalo de para serem acessada de fora.
iptables -A INPUT -p tcp –dport 20000:20534 -j ACCEPT

# Limita o ICMP
iptables -A INPUT -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT

# Desativa Source Routing
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Protege contra IP spoofing:
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state –state INVALID -j DROP

# Desativa broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Desativa Source Routing
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

# Impede a abertura de novas conexões, efetivamente bloqueando o acesso
# externo ao seu servidor, com exceção das portas e faixas de endereços
# especificadas anteriormente:
iptables -A INPUT -p tcp –syn -j DROP

# Desativa encaminhamento de Pacotes
echo 0 > /proc/sys/net/ipv4/ip_forward

# SYN cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Permitirá pacotes de conexões já iniciadas:
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

# Bloqueia as portas UDP
iptables -A INPUT -p udp –dport 0:1023 -j DROP

Post Relacionado

Leave a Reply

Your email address will not be published.