Otimização do iptables e squid

1. Otimização do iptables e squid

Felipe Aparecido
felipe_alves

(usa Fedora)

Enviado em 19/07/2013 - 13:48h

Boa tarde pessoal

Estou implementando aqui na empresa um firewall em iptables e um squid, porém estou com alguns problemas, a internet funciona normalmente as regras do iptables estão funcionando, só estou com uma duvida, a internet ficou um pouco mais lenta com o squid e o firewall... gostaria que me ajudassem a achar algum problema nos arquivos de conf.

Utilizo Cent OS.


fw.sh



#!/bin/bash
# IP da Rede
NETWORK=192.168.0.0/24

# Interface da Rede Local - LAN
ILAN=eth0

# Interface da Rede Externa - Internet
INET=eth1
IPT=/sbin/iptables

/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_MASQUERADE

INTERNET () {
$IPT -t nat -A POSTROUTING -o $INET -s $NETWORK -j MASQUERADE
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

echo 1 > /proc/sys/net/ipv4/ip_forward
}

LIMPAR () {
# Removendo regras
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F

# Apagando chains
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Zerando contadores
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z
}

PARAR () {
# Limpando regras
LIMPAR

$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

# Compartilhando a Internet
INTERNET
}

INICIAR () {
# Limpando regras
LIMPAR


$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

# Compartilhando a Internet
INTERNET


echo 1 > /proc/sys/net/ipv4/tcp_syncookies

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

for i in /proc/sys/net/ipv4/conf/*; do
echo 0 > $i/accept_redirects

echo 0 > $i/accept_source_route

echo 1 > $i/log_martians

echo 1 > $i/rp_filter

done

#Bind9 - Servidor DNS
$IPT -A INPUT -p udp --dport 53 -j ACCEPT

# DHCP - Servidor DHCP
$IPT -A INPUT -i $ILAN -p udp --sport 68 --dport 67 -j ACCEPT

# Squid - Servidor Proxy
$IPT -A INPUT -i $ILAN -p tcp --dport 3128 -j ACCEPT

#SSH - Servidor SSH
$IPT -A INPUT -i $ILAN -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 10 -j DROP
$IPT -A INPUT -i $ILAN -p tcp --dport 22 -m state --state NEW -m recent --set
$IPT -A INPUT -i $ILAN -p tcp --dport 22 -j ACCEPT


#servicos
# DNS - Serviçde Nomes de Dominios
$IPT -A FORWARD -o $INET -p udp -m multiport --dports 53,5353 -j ACCEPT

#HTTP - Protocolo de Transferêia de Hypertext
$IPT -A FORWARD -o $INET -p tcp -m multiport --dports 80,8080 -j ACCEPT

# HTTPS - Protocolo de Transferêia de Hypertext Seguro
$IPT -A FORWARD -o $INET -p tcp --dport 443 -j ACCEPT


# Ping
$IPT -A INPUT -i $ILAN -p icmp --icmp-type 8 -j ACCEPT
$IPT -A FORWARD -o $INET -p icmp --icmp-type 8 -j ACCEPT

# POP3 - Protocolo de Correio
$IPT -A FORWARD -o $INET -p tcp --dport 110 -j ACCEPT

# POP3S - Protocolo de Correio Seguro
$IPT -A FORWARD -o $INET -p tcp --dport 995 -j ACCEPT


#RDP - Protocolo de Áea de Trabalho Remota
$IPT -A FORWARD -o $INET -p tcp --dport 3389 -j ACCEPT

# SSH - Shell Seguro
$IPT -A FORWARD -o $INET -p tcp --dport 22 -j ACCEPT

# SMTP - Protocolo Simples para Transferêia de Correio
$IPT -A FORWARD -o $INET -p tcp --dport 25 -j ACCEPT
$IPT -A FORWARD -o $INET -p tcp --dport 587 -j ACCEPT

# SSMTP - Protocolo Simples para Transferêia de Correio Seguro
$IPT -A FORWARD -o $INET -p tcp --dport 465 -j ACCEPT

# Manter ConexõEstabelecidas
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Liberando o Trágo na Interface loopback
$IPT -A INPUT -i lo -j ACCEPT

################################## LOG ###################################

$IPT -A INPUT -p tcp -m multiport ! --dports 0:1056 -j DROP
$IPT -A INPUT -p udp -j DROP
$IPT -A INPUT -p icmp -j DROP
$IPT -A INPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-prefix "LOG-FW: "
}

case "$1" in
start)
echo " * Starting Firewall iptables"
INICIAR
;;
stop)
echo " * Stopping Firewall iptables"
PARAR
;;
restart|reload)
echo " * Reloading Firewall iptables"
INICIAR
;;
*)
echo " * Usage: $0 {start|stop|restart|reload}"
exit 1
esac

exit 0


e o squid.conf


http_port 3128 transparent
visible_hostname farore

#####Configuracao do armazenamento de cache do servidor######
#Quantidade de memoria RAM dedicada ao cache.
cache_mem 64 MB

#Determina o tamanho maximo do arquivo em cache
maximum_object_size_in_memory 8192 KB

#Maximo e minimo de objetos salvos no hd
maximum_object_size 512 MB
minimum_object_size 0 KB

#percentagem de uso do cache que ira descartar os arquivos mais antigos.
cache_swap_low 90
cache_swap_high 95

cache_dir ufs /var/spool/squid 60048 16 256
# Espaco em MB que sera usada para cache
# Numero de pastas que serao criadas
# Numero de sub-pastas que serao criadas


#Log do cache.
cache_access_log /var/log/squid/access.log


refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

##Criacao dos controles de acesso#
acl rede src 192.168.0.0/24
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT


#Filtragem de conteudo#

#Whitelist
acl siteseguro url_regex -i "/etc/squid/regras/siteseguro"
http_access allow siteseguro

#BlackList
acl palavrasbloq url_regex -i "/etc/squid/regras/palavrasbloq"
http_access deny palavrasbloq

http_access allow localhost
http_access allow rede
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports


#limitando a velocidade dos sites e ip's especificos#
#DELAYS POOLS#
#acl sites_1k url_regex -i "/etc/squid/regras/mod_bandwidth/sites_1k.txt"
#acl sites_50k url_regex -i "/etc/squid/regras/mod_bandwidth/sites_50k.txt"
#acl ips_1k src "/etc/squid/regras/mod_bandwidth/ips_1k.txt"
#acl ips_50k src "/etc/squid/regras/mod_bandwidth/ips_50k.txt"

#delay_pools 2
#delay_class 1 2
#delay_parameters 1 -1/-1 1000/1000 1000/1000
#delay_access 1 allow sites_1k ips_1k

# Libera 50kb/s para os sites cadastrados no arquivo "sites_50k.txt"
#delay_class 2 2
#delay_parameters 2 -1/-1 50000/50000 50000/50000
#delay_access 2 allow sites_50k
#delay_access 1 allow sites_50k ips_50k

#Liberando o acesso de quem nao foi barrado pelas regras#
http_access allow localhost
http_access allow rede
http_access deny all


quem puder me ajudar... agradecerei muito.









  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts