Duvida para Otimização de Firewall [RESOLVIDO]

1. Duvida para Otimização de Firewall [RESOLVIDO]

Diego Garcia
Diego-Garcia

(usa Linux Mint)

Enviado em 18/09/2013 - 14:33h

Boa Tarde Amigos,

Pegando informações aqui e ali eu montei um arquivo com regras para o IPTables.

Só que preciso otimizar uma das linhas e se possível, alguém com mais experiência, poderia adicionar ou retirar algo que esteja errado.

Bem, segue o arquivo e logo abaixo apontarei qual linha preciso modificar;

################################################################################################

#!/bin/sh -e

echo "# Limpando regras anteriores."
iptables -F
iptables -X
iptables -Z
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -X -t nat
iptables -F -t mangle
iptables -X -t mangle

echo "# Configuracao de interfaces."
IP_range=192.168.2.0/24 # Faixa de IP.
WAN_iface=eth0 # Conexao com a internet.
LAN_iface=eth1 # Conexao com a rede interna.

echo "# Modulo de repasse e conntrack que habilita a parte de status de conexao."
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_conntrack

echo "# Policiamento. Tudo parado como sempre, assim, liberado o necessario."
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

echo "# Permitindo acesso do servidor pela internet e pela rede interna."
iptables -t filter -A INPUT -i $WAN_iface -j ACCEPT
iptables -t filter -A OUTPUT -o $WAN_iface -j ACCEPT
iptables -t filter -A INPUT -s $IP_range -j ACCEPT
iptables -t filter -A OUTPUT -d $IP_range -j ACCEPT

echo "# Liberado so o desejado para a rede interna."
iptables -t filter -A FORWARD -s $IP_range -p tcp --dport 80 -j ACCEPT
iptables -t filter -A FORWARD -s $IP_range -p tcp --dport 433 -j ACCEPT
iptables -t filter -A FORWARD -s $IP_range -p tcp --dport 8080 -j ACCEPT
#iptables -t filter -A FORWARD -s $IP_range -p tcp --dport 0:65535 -j ACCEPT
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

echo "# Mascaramento."
iptables -t nat -A POSTROUTING -s $IP_range -o $WAN_iface -j MASQUERADE

echo "# Bloqueando Facebook e IPs."
iptables -N FACEBOOK
iptables -I FORWARD -s $IP_range -j FACEBOOK
for face in `cat /etc/squid3/acls/IPB`;do
iptables -A FACEBOOK -d $face -j REJECT

echo "# Liberando Facebook e IPs via MAC."
iptables -I FORWARD -m mac --mac-source 00:26:18:F7:84:E0 -d $face -j ACCEPT
done

echo "# Redirecionando porta 80 para 3128."
iptables -t nat -A PREROUTING -i $LAN_iface -p tcp --dport 80 -j REDIRECT --to-port 3128

exit 0;

################################################################################################

Bem, a linha que quero otimizar é esta:
iptables -I FORWARD -m mac --mac-source 00:26:18:F7:84:E0 -d $face -j ACCEPT

O que prentendo fazer é apontar para um arquivo que tem uma lista de MACs e assim, esses computadores terão livre acesso ao facebook e outros IP's que eu bloquear.

Agradeço desde já a atenção
Diego Garcia


  


2. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Alex Sandro Carvalho Borges
asandrob

(usa CentOS)

Enviado em 18/09/2013 - 15:05h

Eu usaria o Squid...


3. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Diego Garcia
Diego-Garcia

(usa Linux Mint)

Enviado em 18/09/2013 - 15:23h

asandrob escreveu:

Eu usaria o Squid...


Amigo, se verificar a ultima linha, vera que eu redireciono a porta 80 para o Squid


4. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/09/2013 - 15:32h

O amigo acima está correto. Pessoalmente não gosto desses tipos de regra via iptables. Use um filtro de conteúdo para esse fim. Pesquise Squid + Dansguardian.
Configure essas regras em grupos via Dansguardian.

Segue alguns conceitos:

* Trecho retirado do artigo do Elgio

Um firewall pode inicialmente ser classificado em dois tipos básicos, filtros de aplicação e filtro de pacotes. 

Filtro de pacotes tem condições de filtrar baseado unicamente no conteúdo de seus cabeçalhos. Apesar do iptables permitir filtragem por contexto, ainda assim ele é considerado um filtro de pacotes.

Já o Squid, por exemplo, é considerado um filtro de aplicação. Ele (Squid) tem conhecimento para analisar não apenas os cabeçalhos mas também o conteúdo de um pacote do tipo HTTP e aplicar regras de bloqueio baseado em textos (strings) contidas dentro dele. O Squid entende uma requisição HTTP, sabe o que é um GET e um POST, assim como todos os campos e dados de uma sessão HTTP. Trata-se, portanto, de um filtro de aplicação. Mesmo o iptables podendo filtrar baseado em strings, não chega nem perto do que um Squid pode fazer.

http://www.vivaolinux.com.br/artigo/Mecanismo-de-firewall-e-seus-conceitos/


5. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Leonardo Eliziario da Silva
leliziario

(usa Debian)

Enviado em 18/09/2013 - 15:39h

Meu amigo,

Use o squidguard para esse tipo de solução. Não é legal ter um firewall tratando requisições de acesso.


6. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Diego Garcia
Diego-Garcia

(usa Linux Mint)

Enviado em 18/09/2013 - 15:52h

Agradeço a ajuda de todos.
Até agora não tinha conseguido bloquear o facebook via HTTPS para uns e liberar para outros até achar essa regra do IPTables que funcionou muito bem.

Verificarei o dansguardian.

Obrigado pela ajuda.


7. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/09/2013 - 16:10h

Dá uma lida no artigo do Elgio que postei acima.


8. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Alex Sandro Carvalho Borges
asandrob

(usa CentOS)

Enviado em 18/09/2013 - 17:24h

Diego-Garcia escreveu:

asandrob escreveu:

Eu usaria o Squid...


Amigo, se verificar a ultima linha, vera que eu redireciono a porta 80 para o Squid


Então... Foi oq eu disse, eu usaria a Squid...


9. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Diego Garcia
Diego-Garcia

(usa Linux Mint)

Enviado em 18/09/2013 - 17:27h

asandrob escreveu:

Diego-Garcia escreveu:

asandrob escreveu:

Eu usaria o Squid...


Amigo, se verificar a ultima linha, vera que eu redireciono a porta 80 para o Squid


Então... Foi oq eu disse, eu usaria a Squid...


É que eu não consegui fazer funcionar com o Squid


10. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Alex Sandro Carvalho Borges
asandrob

(usa CentOS)

Enviado em 18/09/2013 - 17:32h

Diego-Garcia escreveu:

Agradeço a ajuda de todos.
Até agora não tinha conseguido bloquear o facebook via HTTPS para uns e liberar para outros até achar essa regra do IPTables que funcionou muito bem.

Verificarei o dansguardian.

Obrigado pela ajuda.


Beleza, mas qual foi a solução mesmo?
Vc postou a dúvida, agora divide com a comunidade a solução!!!


11. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Pedro
px

(usa Debian)

Enviado em 18/09/2013 - 17:43h

Da pra melhorar aqui:

iptables -t filter -A INPUT -i $WAN_iface -j ACCEPT
iptables -t filter -A OUTPUT -o $WAN_iface -j ACCEPT

Assim é a mesma coisa do que deixar as politicas em accept

tente usar estas regras:

iptables -t filter -A INPUT -i $WAN_iface -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -o $WAN_iface -j ACCEPT

este firewall roda algum serviço (http, bind, DNS)? se sim, coloque uma regra só para este serviço, abaixo desta regra...

use este site para medir a segurança antes e após as alterações

http://www.pcflank.com/

Se quiser você pode fazer algumas modificações no kernel para redes usando o arquivo:

/etc/sysctl.conf

Da uma pesquisada sobre o sysctl.conf, tem bastante coisa boa para fazer nele, por baixo você pode colocar o tempo das conexões inativas, evitando o desperdício de memória e rede, etc etc...


12. Re: Duvida para Otimização de Firewall [RESOLVIDO]

Diego Garcia
Diego-Garcia

(usa Linux Mint)

Enviado em 18/09/2013 - 17:56h

px escreveu:

Da pra melhorar aqui:

iptables -t filter -A INPUT -i $WAN_iface -j ACCEPT
iptables -t filter -A OUTPUT -o $WAN_iface -j ACCEPT

Assim é a mesma coisa do que deixar as politicas em accept

tente usar estas regras:

iptables -t filter -A INPUT -i $WAN_iface -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -o $WAN_iface -j ACCEPT

este firewall roda algum serviço (http, bind, DNS)? se sim, coloque uma regra só para este serviço, abaixo desta regra...

use este site para medir a segurança antes e após as alterações

http://www.pcflank.com/

Se quiser você pode fazer algumas modificações no kernel para redes usando o arquivo:

/etc/sysctl.conf

Da uma pesquisada sobre o sysctl.conf, tem bastante coisa boa para fazer nele, por baixo você pode colocar o tempo das conexões inativas, evitando o desperdício de memória e rede, etc etc...


Boa Noite Amigo,

Vou revisar as regras que me falou.

Neste computador instalei:

Ubuntu 10.04 Server x86
SSH
DHCP3
BIND9
Apache2
PHP5
Squid3
SARG 2.2.6

Será um Servidor que provera IP prefixado para cada computador via DHCP, com o SSH posso acessar remotamente para fazer reparos, o Apache e PHP é para a parte de relatórios do SARG, tem o IPTables como FireWall e o Squid como proxy.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts