terça-feira, 2 de junho de 2009

Squid com Super Downloads !!!

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... :)

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..

terça-feira, 26 de maio de 2009

ViVo 3G E220 no SuSe Linux 11.1

Vivo 3g

Bem peguei um modem usb da vivo para testes no OpenSuSe 11.1.

E segue resultado, pois pesquisando da para ver que somente algums modems usb são detectados em kernels mais recentes, como o 2.6.25 e superiores.

Para algums modems existem ate algums jogadas que devem ser feitas no UDEV e por ai vai, mas o modem testando foi um E220, já muito comun aqui na Região, e o SUSE 11.1 detectou legal e carregou os modulos necessários tranquilamente.

Segue saida do comando lsusb, reconhecendo o modem:

srve:~ # lsusb
Bus 008 Device 003: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem


srve:~ # dmesg | grep USB
Olhando o kernel, vemos que a interface USB do modem foi levantada, segue:
usb 8-6: new high speed USB device using ehci_hcd and address 3
usb 8-6: GSM modem (1-port) converter now attached to ttyUSB0
usb 8-6: GSM modem (1-port) converter now attached to ttyUSB1
scsi21 : SCSI emulation for USB Mass Storage devices
scsi22 : SCSI emulation for USB Mass Storage devices
usb 8-6: New USB device found, idVendor=12d1, idProduct=1003
usb 8-6: New USB device strings: Mfr=2, Product=1, SerialNumber=0

Configurando o WVDIAL

Com o modem ja detectado e a interface usb levantada, basta apenas instalarmos o programa wvdial, que da conta do recado.

# zypper install wvdial

Basta agora executarmos o programa wvdialconf, para ele detectar o modem e já criara o arquivo de configuração nicial em /etc/wvdial.conf, segue:

[Dialer Defaults]
Modem = /dev/ttyUSB0
Baud = 921600
DialCommand = ATDT
Check Def Route = on
FlowControl = Hardware(CRTSCTS)
Username = vivo
Password = vivo
Phone = *99#
Stupid mode = 1
Auto Reconnect = on
Auto DNS = on
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
ISDN = 0
Modem Type = Analog Modem

Bem, basta adicionarmos a opção Phone, com o da vivo, que é *99# e colocarmos o username e password igual a vivo.

PPPd

Bem, as vezes temos algums pequenos problemas com o daemon do PPP, que devido a algumas configurações, pode causar a falha "Modem Hang UP".

Basta voce colocar estas opção ativas no seu arquivo do /etc/ppp/options, segue:

srve:~ # cat /etc/ppp/options

noipdefault
debug
noauth
crtscts
lock
modem
asyncmap 0
nodetach
lcp-echo-interval 30
lcp-echo-failure 4
lcp-max-configure 60
lcp-restart 2
idle 600
noipx
file /etc/ppp/filters
proxyarp
ipcp-max-failure 30
asyncmap 0xa0000
mru 1500
refuse-chap


Conectando na NET =P

Bem para conectarmos na Net, basta agora executarmos o wvdial no console:

# wvdial

e esperar a interface ppp0 levantar, segue:

ppp0 Link encap:Protocolo Ponto-a-Ponto
inet end.: 189.99.149.102 P-a-P:10.64.64.64 Masc:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Métrica:1
RX packets:24336 errors:0 dropped:0 overruns:0 frame:0
TX packets:23430 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:17269529 (16.4 Mb) TX bytes:10678980 (10.1 Mb)


Rota !?

Hah...lembre-se, cheque se a rota padrão foi alterada com sucesso apos a conexão, e não custa nada dar uma verificado no /etc/resolv.conf para checar os DNS da vivo...

Pode adicionar a rota manualmente assim como root, segue:

# route add default dev ppp0


SuSe Firewall

Ei...Lembre-se ao navegar e utilizar algum serviço de verificar o Firewall do SuSe 11, qualquer coisa vá no Yast na parte de Segurança e Firewall.


Aê galera grande abraço...

SUSE 11 - Adicionado impressora Texto (Raw Printer)

Geralmente as impressoras de texto, são do tipo de cabo paralelo ( /dev/lp0 ) e com driver do tipo texto ( Raw Printer ).

As vezes em uma instalação via setup padrão (kcontrol, Yast e etc), até atraplha, pois em algumas vezes o driver text only (Generic Raw Printer) simplesmente não aparece ;)

Dica: No SuSe 11, basta instalar o pacote cups-drivers, zypper install cups-drivers.

Vamos lá:

1 - Sempre devemos checar se o Linux detectou uma impressora ligada na porta paralela:

linux-70es:~ # dmesg | grep lp0
lp0: using parport0 (interrupt-driven).

linux-70es:~ # lsmod | grep lp
lp 8644 0
parport 33832 3 lp,ppdev,parport_pc

Nota: Se não, olhar a BIOS da maquina, pois a porta paralela pode estar desabilitada !!


2 - Adicionando uma Impressora Raw Printer no Cups:

Sempre verificar se o cups esta rodando e verificar se a interface web esta funcionado:

# service cups status

http://localhost:631 -> Acesso via navegador Web !

Para adicionar, basta executar este comando:

# lpadmin -p myprinter -E -v parallel:/dev/lp0

-p


That' s all folks !! ;)

quinta-feira, 12 de março de 2009

Suse 11 - Compilando BlackLists no squidGuard

Segue um pequeno passo-a-passo

firewall:~ # cd /var/lib/squidGuard/db

firewall:/var/lib/squidGuard/db # ls
blacklist dest

firewall:/var/lib/squidGuard/db # cd dest/

firewall:/var/lib/squidGuard/db/dest # ls
.permitidos-vendas.swp expressions permitidos-vendas permitidos-vendas.db

firewall:/var/lib/squidGuard/db/dest # vim permitidos-vendas
You have new mail in /var/spool/mail/root

NOTA.: É neste arquivo que colocamos os dominios dos sites "permitidos" !!

firewall:/var/lib/squidGuard/db/dest # squidGuard --help
squidGuard: invalid option -- '-'
Usage: squidGuard [-u] [-C block] [-t time] [-c file] [-v] [-d]
Options:
-v : show version number
-d : all errors to stderr
-c file : load alternate configfile
-t time : specify startup time in the format: yyyy-mm-ddTHH:MM:SS
-u : update .db files from .diff files
-C file|all : create new .db files from urls/domain files
specified in "file".

Criando a Base do SquidGuard (depois da alteração)

firewall:/var/lib/squidGuard/db/dest # squidGuard -C all
Processing file and database /var/lib/squidGuard/db/dest/permitidos-vendas
[==================================================] 100 % done

Reiniciando o Proxy Squid

firewall:/var/lib/squidGuard/db/dest # squid -k reconfigure
firewall:/var/lib/squidGuard/db/dest #

Só testar... ;)