A seguir temos um firewall que irá deixar todo o tráfego da rede interna sair para a Internet sem qualquer bloqueio, isto é apenas uma situação inicial.
[root@fw ~] vim /root/bin/fw2.sh
#!/bin/bash
# Limpa as regras e chains da tabela FILTER
iptables -F
iptables -X
# Limpa as regras e chains da tabela NAT
iptables -t nat -F
iptables -t nat -X
# Coloca a politica das chains INPUT e FORWARD como descarte dos pacotes
iptables -P INPUT DROP
iptables -P FORWARD DROP
# Aceita todos os pacotes que estejam entrando na interface de lopback
iptables -A INPUT -i lo -j ACCEPT
# Registra todos os pacotes que estejam entrando no firewall, limitado a 1
# pacote por segundo colocando um prefixo no registro de acordo com a chain,
# isto serve para melhor identificar relativo a qual chain é o registro
# Para que este registro seja gravado em um arquivo separado do
# /var/log/messages altere no arquivo /etc/syslog.conf e inclua na última
# linha
# *.debug /var/log/debug.log
iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:INPUT] "
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:FORWARD] "
# Irá mascarar todas as requisições como se fosse o IP da interface eth0 que estivesse pedindo
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#!/bin/bash
# Limpa as regras e chains da tabela FILTER
iptables -F
iptables -X
# Limpa as regras e chains da tabela NAT
iptables -t nat -F
iptables -t nat -X
# Coloca a politica das chains INPUT e FORWARD como descarte dos pacotes
iptables -P INPUT DROP
iptables -P FORWARD DROP
# Aceita todos os pacotes que estejam entrando na interface de lopback
iptables -A INPUT -i lo -j ACCEPT
# Registra todos os pacotes que estejam entrando no firewall, limitado a 1
# pacote por segundo colocando um prefixo no registro de acordo com a chain,
# isto serve para melhor identificar relativo a qual chain é o registro
# Para que este registro seja gravado em um arquivo separado do
# /var/log/messages altere no arquivo /etc/syslog.conf e inclua na última
# linha
# *.debug /var/log/debug.log
iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:INPUT] "
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:FORWARD] "
# Irá mascarar todas as requisições como se fosse o IP da interface eth0 que estivesse pedindo
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Em uma segunda situação podemos bloquear os pacotes de broadcast do windows vindos da rede interna.
[root@fw ~] vim /root/bin/fw3.sh
#!/bin/bash
# Limpa as regras e chains das tabelas FILTER e NAT
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# Coloca a politica das chains INPUT e FORWARD como descarte dos pacotes
iptables -P INPUT DROP
iptables -P FORWARD DROP
# Aceita todos os pacotes que estejam entrando na interface de lopback
iptables -A INPUT -i lo -j ACCEPT
# Bloqueia todos os pacotes que sejam do protocolo UDP com destino a porta 137 que estejam
# entrando em qualquer interface.
iptables -A INPUT -p udp --dport 137 -j DROP
# Registra todos os pacotes que estejam entrando ou passando pelo firewall, limitado a 1 pacote por segundo.
iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:INPUT] "
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:FORWARD] "
# Irá mascarar todas as requisições como se fosse o IP da interface eth0 que estivesse pedindo
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#!/bin/bash
# Limpa as regras e chains das tabelas FILTER e NAT
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# Coloca a politica das chains INPUT e FORWARD como descarte dos pacotes
iptables -P INPUT DROP
iptables -P FORWARD DROP
# Aceita todos os pacotes que estejam entrando na interface de lopback
iptables -A INPUT -i lo -j ACCEPT
# Bloqueia todos os pacotes que sejam do protocolo UDP com destino a porta 137 que estejam
# entrando em qualquer interface.
iptables -A INPUT -p udp --dport 137 -j DROP
# Registra todos os pacotes que estejam entrando ou passando pelo firewall, limitado a 1 pacote por segundo.
iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:INPUT] "
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:FORWARD] "
# Irá mascarar todas as requisições como se fosse o IP da interface eth0 que estivesse pedindo
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Uma outra situação seria bloquear todas os pacotes vindos da rede interna das máquinas windows e liberar acesso a administração remota via ssh.
[root@fw ~] vim /root/bin/fw4.sh
#!/bin/bash
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
# Aceita a entrada de todos os pacotes que pertença a conexões estabelecidas ou relacionadas
# independente da interface de entrada
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Bloqueia todos os pacotes que sejam do protocolo UDP com destino ao range de portas que vão
# de 137 a 139 que estejam entrando em qualquer interface.
iptables -A INPUT -p udp --dport 137:139 -j DROP
# Aceita a entrada de pacotes que sejam do protocolo TCP com destino a porta 22 e sejam início
# de conexão
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:INPUT] "
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:FORWARD] "
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#!/bin/bash
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
# Aceita a entrada de todos os pacotes que pertença a conexões estabelecidas ou relacionadas
# independente da interface de entrada
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Bloqueia todos os pacotes que sejam do protocolo UDP com destino ao range de portas que vão
# de 137 a 139 que estejam entrando em qualquer interface.
iptables -A INPUT -p udp --dport 137:139 -j DROP
# Aceita a entrada de pacotes que sejam do protocolo TCP com destino a porta 22 e sejam início
# de conexão
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:INPUT] "
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:FORWARD] "
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Até o momento nos preocupamos com os pacotes que chegaram ao firewall, ou seja, trabalhamos somente com a chain INPUT, posteriormente mudaremos o firewall para trabalhar com os pacotes que irão atravessar o firewall, chain FORWARD. Iremos controlar o acesso da rede interna à rede externa.
Nenhum comentário:
Postar um comentário