por mazzei32 » Ter Ago 23, 2005 1:11 am
Mestre Claudio, resolvi fazer um proxy_auth completo, ou seja com um proxy
interno também e com cache, o que já fiz foi quase tudo, na realidade o que está
faltando é a introdução dos módulos (Rotina de chamada), o servidor de Web para
autorização, e como criar o arq. de configuração é nesse ponto que estou parado
pois ainda não entendi o processo do WebAdmin, eu sei que é HML mas como é feito
as traduções (outras línguas) e gravação do config (de qualquer programa) ainda
não me aprofundei, por isso estou disponibilizando parte do config para o Sr.
Mestre dar uma olhada e ver se pode (quando tiver tempo) me ajudar nesta
empreitada, e mesmo que o Mestre só fazer uma parte da página no WebAdmin já dá
para eu entender o que tenho que fazer e terminar o resto (eu acho).
Fiz o que podia em termos de configuração no programa, inclusive ele recria o
arquivo de configuração sozinho se não tiver ou estiver com erro, os campos que
coloquei estão abaixo:
# Diretório do Programa.
MZPROXY_BASE_DIR = "/usr/local/mzproxy"
# Diretórios para o modulo Servidor de html se existir.
HTTP_BIN_DIR = "/usr/local/mzproxy/bin"
HTTP_CGI_DIR = "/usr/local/mzproxy/cgi-bin"
HTTP_HTTP_DIR = "/usr/local/mzproxy/htdocs"
# Diretório do comfig, logs, forbidden, acl e etc...
MZPROXY_ETC_DIR = "/usr/local/mzproxy/etc"
# Nível do log do programa o numero indica quais
# vai ter
# 0 todos + mensagem do sistema (iniciar e sair do programa)
# 1 serviços,configurações,network,clientes, acesso de IP e acesso de disco.
# 2 network,clientes e acesso.
# 3 network
# 4 nenhum log, se quiser acrescentar mais informação é fácil colocar o
# numero pois a criação de log é uma rotina e é só colocar o dado + o numero
MZPROXY_LOGLEVEL = "1"
# Nome do proxy para indicação das páginas e erros.
SERVER_HOSTNAME = "any"
# Porta do Servidor de HTML.
SERVER_PORT = "81"
# QTD. máxima de usuários conectados ao servidor de HTML para autenticação.
SERVER_MAXCONN = "5"
# Tempo de conexão antes de chamar de novo a autenticação.
SERVER_MAXIDLE = "120"
# Debug no Prompt, isso só é usado para depurar no final nem vai existir
# Ou vai ficar escondido.
MZPROXY_VERBOSE = "1"
# Número máximo de conexões simultâneas total.
MZPROXY_CONNECTIONS = "1000"
# Número máximo de conexões simultâneas por usuário.
MZPROXY_CONNECTIONS_ONE = "50"
# Tamanho máximo de cache em MB.
CACHE_SIZE = "50"
# Tamanho máximo do arq. para colocar no cache.
CACHE_SIZE_ONE = "512"
# Local do cache.
CACHE_DIR = "/usr/local/mzproxy/cache"
# Tempo de permanência no cache, dias.
CACHE_AGE = "30"
# Porta do proxy.
MZPROXY_LISTEN = "8080"
# Proxy Transparente 1 sim, 0 não.
MZPROXY_TRANSP = "1"
# local dos Módulos.
MODULO_DIR = "/usr/local/mzproxy/modules"
Está faltando o config do autenticador que seria um outro arquivo mas poderia
ficar tudo junto no WebAdmin a rotina que eu queria usar é (E não estou
entendendo) tipo o redirecionamento de portas, pois para o config da autorização
seria mais ou menos assim:
Usuário|Senha|Muda Senha|Tempo de Acesso|IP|CARGA
Explicando:
Usuário = "mazzei" # Nome do usuário
Senha = "1234" # Senha, eu posso criar uma chave para indicar o comprimento
mínimo de senha só não fiz pois não sei se vai usar ou não.
Muda Senha = "0" # "1" o usuário pode mudar a senha "0" não.
Tempo de Acesso = "120" # Tempo de acesso desse usuário não pode ser maior que
o SERVER_MAXIDLE.
IP = "192.168.1.100" # controle ACL para esse usuário.
CARGA = "10" # Máximo de MB por dia, eu não fiz ainda essa rotina mas já tenho alguns modelos.
E está faltando o config do ACL que seria um outro arquivo mas acho que daria
para ficar junto na mesma página no WebAdmin a rotina que eu queria usar é (E não
estou entendendo) a mesma do autenticador, mas se já não entendi a primeira
imagine eu criar 2 páginas.
O que eu fiz em termos de memória é o seguinte, é mais fácil criar um disco
virtual e indicar o caminho pois assim eu deixo de fazer vários comandos para
memória, tipo se quiser que o meu programa só trabalhe na memória é só fazer
isso.
mount /dev/ram1 -t tmpfs -o size=32M /usr/local/mzproxy/cachemem
e colocar os seguintes parametros no config.
CACHE_SIZE = "32"
CACHE_DIR = "/usr/local/mzproxy/cachemem"
Mas para isso eu teria que fazer um configurador que tivesse a chave memória (sim
ou não) e criar o diretório pois o mount só vai funcionar se tiver um diretório
real, antes de eu fazer isso vim pedir ajuda ao Mestre pois já vi isso no
WebAdmin mas não estou achando(Ou não sabendo onde procurar).
Os nomes dos arquivos (forbidden, acl, log's e etc..) eu coloquei fixo mas nada
impede de eu trocar por uma variável no config é fácil para mim só não fiz pois
não sei se precisa, tipo:
original no programa (linha de código):
get_forbidden = (fopen(forbidden.txt, "r")
como eu posso alterar:
NOME_ARQ_FORBIDDEN = "pagtrava.txt
FILE *arq
arq = NOME_ARQ_FORBIDDEN
get_forbidden = (fopen(arq, "r")
Por isso também que fiz esse Tópico, caso alguém queira algumas mudanças é para
colocar aqui. Por favor é um proxy novo, então cuidado no que pedir pois pode
demorar a ser implementado, o que eu queria era já disponibilizar o mais rápido
possível.
OBS: MZPROXY é MAZZEIPROXY, na internet ainda não encontrei nada com esse nome,
caso alguém descobrir um vou mudar para CYPROXY que é Coyote-proxy (Se o Autor do
Coyote deixar).