A jogada
Basta editarmos o nosso arquivo de configuração do velho squid em /etc/squid/squid.conf.
E depois localizarmos ou inserirmos estas linhas abaixo:
Assim o squid irá salvar objetos em seu cache de ate 20 megas, e junto com a opção refresh_pattern, realizará a tarefa de nunca expirar os downloads de qualquer objeto que termine com a expressão regular exe$, ou seja, qualquer arquivo executavel.
Portanto, qualquer download de programas menores de 20 megas irão para o cache na hora, tipo, putty.exe, winrar.exe e etc...
E você verá que ao realizar um download destes arquivos, a velocidade será surpreendente !! ....Veja...teste :)
# 20 MB de executavel
maximum_object_size 20480 KB
refresh_pattern -i exe$ 999999 100% 999999 override-expire override-lastmod ignore-reload ignore-no-cache ignore-private ignore-auth
Testando
Basta reiniciar o squid e realizar os downloads para teste.
# squid -k reconfigure
Boa diversão... :)
Espaço dedicado para o meu lazer em TI, pois quando não tenho nada profissional pra desempenhar ou implantar, a diversão é abrir o PC ou notebook e testar SDK's, novas linguagens de programação, FrameWorks, compilar open source games, viajar nas IDE e ai vai. Amo Linux, scripts, ferramentas, LAMP e especialmente o Kernel e Libs do GCC. Como diz um antigo amigo, fazemos de tudo kkkkk, só jogar no peito. Espero que curtam!
terça-feira, 2 de junho de 2009
Script iptables Repasse de Portas fácil
O script
Segue script que realizar o repasse de portas, basta incorporar esta pequena rotina em qualquer firewall iptables e apenas editar o arquivo /etc/ports.conf conforme desejado, ou executa-lo sozinho.
#!/bin/bash
#
# Autor: Claudemir P. da Luz Jr.
#
# Licença: GPL Versão 3
# Interface de Rede Em que esta o seu Link, LP, Frame Relay, Velox VPN e etc.
EXTERNAL_INTERFACE=eth0
# Endereço IP de sua Interface ethX
# ex.: 200.200.200.1
EXTERNAL_IP=192.168.245.1
# Interface de Rede em que esta a Rede Interna , Privada !!
# ex.: 192.168.0.1
INTERNAL_INTERFACE=eth1
# Criando arquivo de sample ;)
if [ ! -f /etc/ports.conf ]; then
touch /etc/ports.conf
# criando exemplos para testes
echo "TCP 5900 192.168.0.37 5900" >> /etc/ports.conf
echo "TCP 25 192.168.0.37 25" >> /etc/ports.conf
echo "TCP 22 192.168.0.37 22" >> /etc/ports.conf
fi
if [ -f /etc/ports.conf ]; then
echo "Habilitando Port-Forwarding"
while read IP_PORT; do
# extrai os Protocolos, IPs e Portas
NAT_TYPE=$(echo "$IP_PORT" | awk '{print $1}')
NAT_EXT_PORT=$(echo "$IP_PORT" | awk '{print $2}')
NAT_INT_IP=$(echo "$IP_PORT" | awk '{print $3}')
NAT_INT_PORT=$(echo "$IP_PORT" | awk '{print $4}')
# escreve as regras !
# regra prerouting dnat
iptables -A PREROUTING -t nat -p $NAT_TYPE -d $EXTERNAL_IP --dport $NAT_EXT_PORT -j DNAT \
--to-destination $NAT_INT_IP:$NAT_INT_PORT
# permite trafego de pacotes da interface externa -> interna
iptables -A FORWARD -i $EXTERNAL_INTERFACE -o $INTERNAL_INTERFACE -p $NAT_TYPE \
-d $NAT_INT_IP --dport $NAT_INT_PORT -m state \
--state NEW,ESTABLISHED,RELATED -j ACCEPT
# permite trafego de pacotes da interface interna -> externa
iptables -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -p $NAT_TYPE \
-s $NAT_INT_IP --sport $NAT_INT_PORT -m state \
--state NEW,ESTABLISHED,RELATED -j ACCEPT
# regra postrounting snat
iptables -t nat -A POSTROUTING -p $NAT_TYPE -d $EXTERNAL_IP -s $NAT_INT_IP \
--sport $NAT_INT_PORT -j SNAT --to $EXTERNAL_IP:$NAT_EXT_PORT
echo "dnat: $NAT_TYPE:$EXTERNAL_IP:$NAT_EXT_PORT - $NAT_INT_IP:$NAT_INT_PORT"
done < /etc/ports.conf # libera estas variaveis unset IP_PORT unset NAT_TYPE unset NAT_EXT_PORT unset NAT_INT_IP unset NAT_INT_PORT else echo "Port-forwarding desabilitado ! " fi
Executando
Basta salvar como repasse-portas.sh, e setar permissão de execução:
# chmod 755 repasse-portas.sh
e
#./repasse-portas.sh
Blz..
Segue script que realizar o repasse de portas, basta incorporar esta pequena rotina em qualquer firewall iptables e apenas editar o arquivo /etc/ports.conf conforme desejado, ou executa-lo sozinho.
#!/bin/bash
#
# Autor: Claudemir P. da Luz Jr.
#
# Licença: GPL Versão 3
# Interface de Rede Em que esta o seu Link, LP, Frame Relay, Velox VPN e etc.
EXTERNAL_INTERFACE=eth0
# Endereço IP de sua Interface ethX
# ex.: 200.200.200.1
EXTERNAL_IP=192.168.245.1
# Interface de Rede em que esta a Rede Interna , Privada !!
# ex.: 192.168.0.1
INTERNAL_INTERFACE=eth1
# Criando arquivo de sample ;)
if [ ! -f /etc/ports.conf ]; then
touch /etc/ports.conf
# criando exemplos para testes
echo "TCP 5900 192.168.0.37 5900" >> /etc/ports.conf
echo "TCP 25 192.168.0.37 25" >> /etc/ports.conf
echo "TCP 22 192.168.0.37 22" >> /etc/ports.conf
fi
if [ -f /etc/ports.conf ]; then
echo "Habilitando Port-Forwarding"
while read IP_PORT; do
# extrai os Protocolos, IPs e Portas
NAT_TYPE=$(echo "$IP_PORT" | awk '{print $1}')
NAT_EXT_PORT=$(echo "$IP_PORT" | awk '{print $2}')
NAT_INT_IP=$(echo "$IP_PORT" | awk '{print $3}')
NAT_INT_PORT=$(echo "$IP_PORT" | awk '{print $4}')
# escreve as regras !
# regra prerouting dnat
iptables -A PREROUTING -t nat -p $NAT_TYPE -d $EXTERNAL_IP --dport $NAT_EXT_PORT -j DNAT \
--to-destination $NAT_INT_IP:$NAT_INT_PORT
# permite trafego de pacotes da interface externa -> interna
iptables -A FORWARD -i $EXTERNAL_INTERFACE -o $INTERNAL_INTERFACE -p $NAT_TYPE \
-d $NAT_INT_IP --dport $NAT_INT_PORT -m state \
--state NEW,ESTABLISHED,RELATED -j ACCEPT
# permite trafego de pacotes da interface interna -> externa
iptables -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -p $NAT_TYPE \
-s $NAT_INT_IP --sport $NAT_INT_PORT -m state \
--state NEW,ESTABLISHED,RELATED -j ACCEPT
# regra postrounting snat
iptables -t nat -A POSTROUTING -p $NAT_TYPE -d $EXTERNAL_IP -s $NAT_INT_IP \
--sport $NAT_INT_PORT -j SNAT --to $EXTERNAL_IP:$NAT_EXT_PORT
echo "dnat: $NAT_TYPE:$EXTERNAL_IP:$NAT_EXT_PORT - $NAT_INT_IP:$NAT_INT_PORT"
done < /etc/ports.conf # libera estas variaveis unset IP_PORT unset NAT_TYPE unset NAT_EXT_PORT unset NAT_INT_IP unset NAT_INT_PORT else echo "Port-forwarding desabilitado ! " fi
Executando
Basta salvar como repasse-portas.sh, e setar permissão de execução:
# chmod 755 repasse-portas.sh
e
#./repasse-portas.sh
Blz..
Assinar:
Postagens (Atom)