Bom galera, este é meu primeiro artigo, estou trabalhando com Linux a alguns meses e graças ao VOL eu hoje sinto a liberdade (hehe) que o Linux pode proporcionar. Neste artigo vou descrever como construir um firewall com uma ajudinha do Webmin para editar seus arquivos de configuração. Então mãos a obra.
Usei alguns arquivos secundários com a finalidade de separar algumas informações do script para facilitar na hora de acessar os mesmos via web.
O formato dos arquivos segue como uma sugestão, pois os mesmos podem ser alterados de acordo com suas necessidades. Viva a liberdade!
O arquivo "portasabertas.conf" trata as portas de entrada no firewall, note que no script em si não trato as portas que estão atravessando o firewall. Sugiro o uso da seguinte forma:
tcp@22@SSH
Obs.: Note que eu usei um separador ("@") que pode ser alterado desde que mantenha-se os parâmetros no script, e também usei um comentário que na verdade não tem caráter de configuração apenas de informação, usei como medida contra esquecimento, hehe, é somente um comentário dentro do arquivo.
O arquivo "portasfoward.conf" cuida dos redirecionamentos, ou seja, tudo que chegar até o servidor e tiver que ser redirecionado para outro computador. Sugiro o uso de seguinte forma:
0@tcp@5800:5999@10.0.0.80@vnc server
Segue-se o mesmo critério que o anterior, só que agora nos deparamos com duas situações inusitadas, existe uma condição de aplicação das regras no firewall, ou seja, um STATUS de operação, se você precisar redirecionar apenas uma porta usa-se o status "0" (zero), e a lógica acima.
Caso precise redirecionar uma porta mudando a mesma deverá ser usado o esquema abaixo mudando o STATUS, ou seja, coloca-se "1" (UM) no primeiro campo, e no 5° campo coloca-se a porta de destino ou seja a porta que deve estar aberta no estação de origem.
Ex.: 1@tcp@5000@10.0.0.80@3389@rdp muda porta
O próximo arquivo é o "portasmascaradas.conf", este por sua vez trata as portas que atravessam o firewall e devem ser mascaradas, não possui nenhum segredo de uso, mas muita atenção, no exemplo do firewall foi criado um "NAT" de portas especificas, que compõe uma camada extra de segurança, então tudo que tiver que sair para a Grande REDE deve ser mascarado.
Modo de USO:
tcp@80@web
Obs.: Para funcionar de primeira a navegação nas estações deve estar no arquivo as seguintes portas: 80@tcp@, 53@udp@
E por fim temos o "sitesdesativados.conf", nenhum segredo neste arquivo, somente iremos colocar aqui os sites que devem ser bloqueados para a rede interna.
[5] Comentário enviado por crandrade em 17/06/2010 - 09:24h
Andre,
Comecei a estudar iptables agora, montei um laboratorio com maquinas virtuais simulando duas redes com um firewall (iptables) no meio, gostaria de saber como faço para bloquear o trafego entre as duas redes e ir liberando aos poucos somente o necessario. As duas redes ja estão se falando.
[6] Comentário enviado por andfeh em 18/06/2010 - 22:35h
Seguinte, você tem que partir do principio, que entre redes separadas, você usará inicialmente a tabela FILTER, cadeia FORWARD para trafegar entre uma rede e outra...
ai por exemplo a rede "A"=192.168.0.XXX/24 e a rede "B"=192.168.10.XXX/24, ok?
entao você cria uma regra + ou - assim:
iptables -t filter -A FORWARD -s 192.168.0.XXX/24 -d 192.168.10.XXX/24 -j DROP
iptables -t filter -A FORWARD -d 192.168.0.XXX/24 -s 192.168.10.XXX/24 -j DROP
tradução: a primeira regra diz que tudo/qualquer protocolo que vier da rede "A" para rede "B" vai seja negado e vice versa...
e assim por diante...
mas lembre-se quando você for adicionar uma regra para aceitar algum tráfego entre as redes vocÊ tem que adicionar antes que o tráfego seja "DROPADO" entre elas, ok?
[7] Comentário enviado por ton.work em 31/08/2010 - 16:44h
André Santos,
estou usando seu firewall e estou gostando muito, tenho em rede dois servidores e cada um com uma placa gv800 e nela precisaria abilitar as seguintes portas:
81
2100
2101
6551
82
4550
2101
6551
abilitei usando a porta 81 e fiz um teste de portas no site shields up e a porta estava aberta, será que tem algum esquema pra deixar essa porta aberta mas em modo Stealth
ficou assim o firewall
#!/bin/bash
## VARIABLES ##
IFWAN=`ifconfig | sed -n "1p" | awk {'print $1'}` # Filtra Saida do comando 'ifconfig' - Automatiza a implantação do Script
IPWAN=`ifconfig | sed -n "2p" | awk {'print $3'}`
IFLAN=`ifconfig | sed -n "11p" | awk {'print $1'}`
IPLAN=`ifconfig | sed -n "12p" | awk {'print $3'}`
LAN=192.168.1.10/24
#compartilhando a web na rede interna
iptables -t nat -A POSTROUTING -s 192.168.1.10/255.255.255.0 -o eth1 -j MASQUERADE &&
echo 1 > /proc/sys/net/ipv4/ip_forward &&
######
# POLICES THIS FIREWALL
$IPT -t filter -P INPUT DROP
$IPT -t filter -P FORWARD DROP
$IPT -t filter -P OUTPUT ACCEPT
# ENABLE LOOPBACK
$IPT -t filter -A INPUT -i lo -j ACCEPT
$IPT -t filter -A OUTPUT -o lo -j ACCEPT
# ENABLE IMPORTANT PORTS
$IPT -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT
$IPT -t filter -A INPUT -m state --state RELATED -j ACCEPT
DOOROPEN=`cat "/home/antonio/portasabertas.conf"`
for n in $DOOROPEN; do
PROTOCOL=`$EC $n | cut -d '@' -f 1`
DOOR=`$EC $n | cut -d '@' -f 2`
if [ "$PROTOCOL" = "tcp" ]; then
$IPT -t filter -A INPUT -p tcp --dport $DOOR -j ACCEPT
elif [ "$PROTOCOL" = "udp" ]; then
$IPT -t filter -A INPUT -p udp --dport $DOOR -j ACCEPT
fi
done
# BLOCK SITES FROM INTRANET
$IPT -t filter -A FORWARD -m state --state ESTABLISHED -j ACCEPT
$IPT -t filter -A FORWARD -m state --state RELATED -j ACCEPT
SITES=`cat "/server/firewall/sitesdesativados.conf"`
for n in $SITES ; do
$IPT -t filter -A FORWARD -s $LAN -d $n -j DROP
$IPT -t filter -A FORWARD -s $n -d $LAN -j DROP
done
# PING OF DEATH
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all
$IPT -N PING
$IPT -A INPUT -p icmp --icmp-type echo-request -j PING
$IPT -A PING -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPT -A PING -j DROP
# SYN-FLOOD
echo "0" > /proc/sys/net/ipv4/tcp_syncookies
$IPT -N syn-flood
$IPT -A INPUT -i $IFWAN -p tcp --syn -j syn-flood
$IPT -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPT -A syn-flood -j DROP
# BRUTE-SSH
$IPT -N BRUTE-SSH
$IPT -A INPUT -i $IFWAN -p tcp --dport 22 -j BRUTE-SSH
$IPT -A BRUTE-SSH -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPT -A BRUTE-SSH -j DROP
# ANTI-SPOOFINGS
$IPT -A INPUT -s 10.0.0.0/8 -i $IFWAN -j DROP
$IPT -A INPUT -s 127.0.0.0/8 -i $IFWAN -j DROP
$IPT -A INPUT -s 172.16.0.0/12 -i $IFWAN -j DROP
$IPT -A INPUT -s 192.168.1.0/16 -i $IFWAN -j DROP
[9] Comentário enviado por sobralmaster em 09/06/2011 - 16:12h
Boa tarde..
Li os seus postssobre coovachilli e sobre firewall, já ha algum tempo eu venho me dedicando a este tipo de trabalho.
Ja passei por outros softwares para hotspot e pretendo testar este pois me parece uma ótima solução. Quanto ao seu Firewall, Show de bola. Muito bom e seguindo a sua linha de raciocínio ninguém precisa "meter" a mão nos códigos para liberar ou Bloquear alguma cosia, muito bom mesmo
Está de parabens, a galera que está começando agora agradece..
Que Deus continue nos dando a sabedoria necessária.