Instalação do MRTG no Linux CentOS 6.4 através de scripts e comandos

yum install mrtg httpd
configurar Apache conforme desejado.
arquivo de configuração:
vim /etc/mrtg/mrtg.cfg
———————————————————————————————-

#Configurando MRTG
WorkDir: /var/www/mrtg
Htmldir: /var/www/mrtg
icondir: /mrtg
Refresh: 300
Interval: 5
Language: portuguese
RunAsDaemon:Yes
#LogFormat: rrdtool [caso queira usar RRDTOOL descomentar esta linha e apagar este comentário]
#———————
# Monitorar eth0
# REDE LOCAL
#———————
Target[eth0]: `cat /proc/net/dev |grep eth0 |awk -F’:’ ‘{print $2}’ |awk ‘{print $1}’; cat /proc/net/dev |grep eth0 | awk -F’:’ ‘{print $2}’ |awk ‘{print $9}’; echo -e; echo -e`
Title[eth0]: REDE – Utilização da placa de rede eth0
PageTop[eth0]:

Estatísticas da interface eth0:

Options[eth0]: printrouter, growright, bits, noarrow
MaxBytes[eth0]: 1250000000
YLegend[eth0]: Bits por segundo
LegendI[eth0]: Entrada (download) de dados
LegendO[eth0]: Saída (upload) de dados
Legend1[eth0]: Tráfego de Entrada (download) de dados em Bits por segundo
Legend2[eth0]: Tráfego de Saída (upload) de dados em Bits por segundo
Colours[eth0]: VERDE#008000,AZUL#000080,DARK GREEN#006000,VIOLET#FF00FF
XSize[eth0]: 550
YSize[eth0]: 250
TimeStrPos[eth0]: RU
Continuar lendo

Manual traduzido do Squid – Parte 2

Configurações mínimas recomendadas

Continuação da tradução livre do manual do Squid.

Leia a primeira parte aqui: Manual traduzido do Squid.

Exemplo de regras que permitem acesso às suas redes locais. Adapte as listas às suas redes internas, onde a navegação deve ser permitida.

Comente as linhas que não forem necessárias:

acl localnet src 10.0.0.0/8     # RFC1918 possível rede interna
acl localnet src 172.16.0.0/12  # RFC1918 possível rede interna
acl localnet src 192.168.0.0/16 # RFC1918 possível rede interna
acl localnet src fc00::/7       # RFC 4193 rede privada local
acl localnet src fe80::/10      # RFC 4291 máquinas plugadas no link-local

acl SSL_ports port 443
acl Safe_ports port 80          # HTTP
acl Safe_ports port 21          # FTP
acl Safe_ports port 443         # HTTPS
Acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # HTTP-MGMT
Acl Safe_ports port 488         # GSS-HTTP
Acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling HTTP
acl CONNECT method CONNECT

TAG: follow_x_forwarded_for :: permitindo ou negando o cabeçalho “X-Forwarded-For” para encontrar a fonte original da requisição.

As requisições podem passar através de uma cadeia de outros proxies antes de chegar ao Squid. O cabeçalho “X-Forwarded-For” contém uma lista de IPs separados por vírgulas, sendo que o endereço mais à direita, é o mais recente.

Se a requisição chegar a partir de uma fonte permitida pela configuração, então o cabeçalho “X-Forwarded-For” será consultado para ver de onde veio a requisição. Se o cabeçalho “X-Forwarded-For” contiver múltiplos endereços, o Squid continuará recuando a consulta até chegar a um endereço não autorizado, e seguirá até chegar ao primeiro cabeçalho X-Forwarded-For da lista.

O propósito da ACL utilizada na diretiva “follow_x_forwarded_for”, a ACL do tipo “src” sempre corresponderá ao endereço testadoe a ACL “srcdomain” corresponderá ao DNS.

O resultado final deste processo, é um endereço IP referente ao endereço do cliente. Este endereço pode ser tratado como o endereço do cliente, ICAP, delay pools e logging, dependendo de:

  • acl_uses_indirect_client
  • icap_uses_indirect_client
  • delay_pool_uses_indirect_client
  • log_uses_indirect_client
  • tproxy_uses_indirect_client options

Estas cláusulas são suportadas somente pelas ACLs do tipo fast.

Para maiores detalhes, veja: SquidFaq/SquidAcl – Squid Web Proxy Wiki

Considerações de segurança

Qualquer host do cabeçalho “X-Forwarded-For” pode colocar informações incorretas no cabeçalho e o Squid usará estas informações incorretas como se fosse a fonte da requisição. Isto pode permitir que hosts remotos contornem as restrições de controle de acesso.

Por exemplo:

acl localhost src 127.0.0.1
acl my_other_proxy srcdomain .proxy.example.com
follow_x_forwarded_for allow localhost
follow_x_forwarded_for allow my_other_proxy

Default: follow_x_forwarded_for deny all

TAG: acl_uses_indirect_client on|off :: controla o acesso se o endereço indireto do cliente (veja follow_x_forwarded_for) for usado em vez do endereço direto.

Nota: a ACL maxconn considera que conexões TCP diretas e indiretas serão sempre zero, portanto, não corresponderão.

Default: acl_uses_indirect_client on

TAG: delay_pool_uses_indirect_client on|off

Nota: esta opção só estará disponível se o Squid for compilado com “–enable-follow-x-forwarded-for” e “–enable-delay-pools”.

Controla o acesso se o endereço indireto do cliente (veja “follow_x_forwarded_for”) for usado em vez do endereço direto em “delay pools”.

Default: delay_pool_uses_indirect_client on

TAG: log_uses_indirect_client on|off :: controla o acesso se o endereço indireto do cliente (veja “follow_x_forwarded_for”) for usado em vez do endereço direto em access log.

Default: log_uses_indirect_client on

TAG: tproxy_uses_indirect_client on|off :: controla o acesso se o endereço indireto do cliente (veja “follow_x_forwarded_for”) for usado em vez do endereço direto no spoofing de saída do cliente.

Não tem efeito nas requisições que chegam no modo non-tproxy.

AVISO DE SEGURANÇA: o uso desta opção é perigosa e não deve ser usada trivialmente. A correta configuração de “follow_x_forewarded_for” deve ser usada com um conjunto limitado de fontes para evitar o abuso do proxy.

Default: tproxy_uses_indirect_client off

TAG: http_access :: permite ou nega o acesso com base em listas pré-definidas.

Acesso na porta HTTP:

  • http_access allow|deny [!]aclname …

NOTE sobre os valores padrões:

  • Se não há linhas “access” presentes, o padrão é negar o acesso.
  • Se nenhuma das linhas “access” corresponder, o padrão será o oposto da última linha na lista. Se a última linha negou o acesso, o padrão será permitir. Por outro lado, se a última linha permitiu o acesso, o padrão será negar. Por essa razão sempre tenha uma linha “deny all” no final das ACLs.

Suporta ACLs fast e slow. Para mais detalhes, veja:

Default: http_access deny all

Configurações mínimas

Configurações mínimas recomendadas de permissões de acesso:

Somente permite o acesso do localhost ao “cachemgr”:

http_access allow localhost manager
http_access deny manager

Nega o acesso para determinadas portas inseguras:

http_access deny !Safe_ports

Nega CONNECT para portas SSL inseguras:

http_access deny CONNECT !SSL_ports

Recomendamos, fortemente, descomentar a seguinte linha para proteger as aplicações web rodando no servidor proxy e permitindo o acesso ao localhost somente aos usuários da rede local:

http_access deny manager

Insira suas próprias regras

Insira suas próprias regras aqui para permitir, ou negar, o acesso de seus clientes.

Exemplo de regras permitindo o acesso às suas redes locais:

Obs.: adapte a ACL “localnet” para o endereço IP das suas redes internas.

http_access allow localnet
http_access allow localhost

E, finalmente, negue o acesso a tudo que não foi permitido acima dessa linha:

http_access deny all

TAG: adapted_http_access :: permitir ou negar o acesso com base nas listas pré-definidas.

Idêntica à “http_access”, mas é executada após o redirecionamento e adaptações ICAP/eCAP. Permite o controle de acesso baseado na saída.

Se não for definida, http_access será usada.
Default: none

TAG: http_reply_access :: permite respostas às requisições do cliente. É complementar à “http_access”.

http_reply_access allow|deny [!] aclname …

Nota: se não há linhas de acesso, o padrão é permitir todas as repostas.

Se nenhuma das ACLs corresponder, o oposto da última linha será aplicado. Assim, é uma boa prática terminar as regras com “allow all” ou “deny all”.

Esta cláusula suporta ACLs fast e slow. Para detalhes, veja:

Default: none

TAG: icp_access :: permitir ou negar acesso às portas ICP definidas nas ACLs.

icp_access  allow|deny [!]aclname …

Veja “http_access” para maiores detalhes. Esta cláusula somente é suportada nas ACLs fast. Para detalhes, veja:

Permitir ou negar consultas ICP em redes locais:

icp_access allow localnet
icp_access deny all

Default: icp_access deny all

TAG: htcp_access :: permitir ou negar consultas ICP em redes locais:

htcp_access  allow|deny [!]aclname …

Veja “http_access” para detalhes.

Nota: se nenhuma linha “http_access” estiver presente, o padrão é negar todo o tráfego. Este padrão pode causar problemas com requisições usando HTCP. Esta cláusula somente suporta ACLs do tipo fast.

Para detalhes, veja:

Permitir consultas HTCP a partir das redes locais:

htcp_access allow localnet
htcp_access deny all

Default: htcp_access deny all

TAG: htcp_clr_access :: permitir ou negar o acesso para limpar consultas HTCP.

htcp_clr_access  allow|deny [!]aclname …

Veja “http_access” para detalhes. Suporta somente ACLs fast. Para detalhes, veja:

Permitir requisições HTCP CLR de clientes confiáveis:

acl htcp_clr_peer src 172.16.1.2
htcp_clr_access allow htcp_clr_peer

Default: htcp_clr_access deny all

TAG: miss_access :: determinar se o acesso a rede é permitido quando satisfizer uma requisição.

Por exemplo, para forçar outras redes locais a usar o proxy como um “irmão” em vez de um “pai”.

acl localclients src 172.16.0.0/16
miss_access allow localclients
miss_access deny  !localclients

Isto significa que seus clientes locais estão autorizados a buscar uma resposta “relayed/MISS” da rede e todos os outros clientes só podem buscar objetos em cache (HITs).

HIT significa que o documento foi encontrado no cache. A MISS (ERR), que não foi encontrado no cache. Um Hit negativo significa que foi encontrado no cache, mas não existe.

O padrão para esta configuração permite que todos os clientes que passaram pelas regras, possam retransmitir através do proxy. Suporta apenas ACLs fast.

Para detalhes, veja:

Default: none

TAG: ident_lookup_access :: ACL de elementos que, se combinados, causam uma pesquisa “ident (RFC 931)” a ser realizada na requisição. Por exemplo, você pode optar por sempre realizar pesquisas ident para seus principais usuários Unix, mas não para seus usuários Mac.

Por padrão, as pesquisas ident não são executadas para todas as requisições. Exemplo:

acl ident_aware_hosts src 198.168.1.0/24
ident_lookup_access allow ident_aware_hosts
ident_lookup_access deny all

Somente ACLs do tipo src são suportadas totalmente. ACLs srcdomain podem funcionar às vezes, mas não é recomendável usar. Suporta soment ACLs fast.

Para detalhes, veja:

Default: ident_lookup_access deny all

TAG: reply_body_max_size size [acl acl…] :: esta opção especifica o tamanho máximo de uma resposta. Pode ser usada para evitar que usuários façam download de arquivos grandes, tais como MP3 e filmes. Quando os cabeçalhos das respostas são recebidos, o “reply_body_max_size” é processado, e a primeira linha (se houver) será usada como tamanho máximo.

Este tamanho é verificado duas vezes. Primeiro, quando chegar o cabeçalho, se o conteúdo existe, e é maior do que o tamanho máximo permitido, a requisição será negada e o usuário receberá uma resposta “the request or reply is too large”. Se não houver conteúdo e a resposta exceder o limite, a conexão será fechada e o usuário recebe uma resposta parcial.

Aviso: o downstream de caches não consegue detectar uma resposta parcial se não houver um cabeçalho “content-length”, então, as respostas serão armazenadas em cache e será dado um HIT.

Você NÃO pode usar esta opção se tiver cache downstream.

Aviso: um tamanho menor do que o tamanho das mensagens de erro do Squid causará um loop infinito e o Squid travará. Coloque um valor diferente de zero e maior do que o tamanho máximo do cabeçalho mais o tamanho da sua página de erro.

Se você não definir este parâmetro, não haverá limite. O formato da configuração; é:

reply_body_max_size SIZE UNITS [acl …]

I.e.:

reply_body_max_size 10 MB

Default: none

Opções de rede

TAG: http_port
Uso:

port [mode] [options]
hostname:port [mode] [options]
1.2.3.4:port [mode] [options]

Socket de endereços onde o Squid irá escutar o cliente HTTP. Você pode especificar vários endereços.

Há três formas: somente a porta, hostname com a porta e endereços IP com a porta. Se você especificar um hostname ou IP, o Squid se liga no socket especificado. Se você não precisa se ligar a um endereço específico, pode usar o número da porta sozinho.

Se você estiver executando o Squid no modo accelerator, provavelmente quer escutar na porta 80 também.

A opção “-a” da linha de comando, pode ser usada para especificar porta(s) adicionais. Tais portas são portas de procuração simples sem opções. Você pode especificar vários endereços em várias linhas.

Modos:

  • intercept :: suporte para interceptação de requisições de saída IP-Layer sem setar a configuração no navegador.
    • NP: desativa a autenticação e o IPv6 na porta.
  • tproxy :: suporte para TPROXY Linux para conexões de saída spoofing usando o endereço IP do cliente.
    • NP: desativa autenticação e talvez o IPv5 na porta.
  • accel :: Modo accelerator/reverse do proxy.
  • ssl-bump :: estabelece uma conexão segura entre o cliente e o servidor para cada requisição CONNECT permitida pela ACL ssl_bump e as mensagens HTTPS que passarem pelo Squid serão decifradas e tratadas como mensagens HTTP não criptografadas, tornando o Squid como “man-in-the-middle”.

A opção “ssl_bump” é necessária para habilitar plenamente as requisições CONNECT. Omitindo esta flag, o modo padrão proxy forward será usado.

Opções do modo acelerador:

  • defaultsite=domainname :: o que usar para o Host: se o cabeçalho não está presente na requisição. Determina accelerator de site (não servidor de origem) deve ser considerado o padrão.
  • no-vhost :: desative usando cabeçalho HTTP/1.1 para o suporte de domínio virtual.
  • protocol= :: protocolo para reconstruir requisições aceleradas. O podrão é http_port para HTTP e https_port para HTTPS.
  • vport :: suporte para porta de host virtual. Usa http_port number em vez da porta passada no host.
  • vport=NN :: suporta da porta de host virtual. Usa o número da porta específica em vez da porta passada no host.
  • act-as-origin :: atua como se o Squid fosse o servidor de origem. Isto significa que gera novos cabeçalhos new Date: e Expires: no HIT em vez de adicionar “Age:”.
  • ignore-cc :: ignora requisições com cabeçalhos Cache-Control.

    Aviso: esta opção viola as especificações HTTP se for usada em configurações non-accelerator.

  • allow-direct :: permite o encaminhamento direto no modo accelerator. As requisições diretas no modo accelerator normalmente são negadas como se a opção never_direct fosse usada.

    Aviso: esta opção abre o modo accelerator para vulnerabilidades de segurança que geralmente afetam somente no mod intercept. Certifique-se de proteger as requisições com regras “http_access” adequadas.

Opções do modo SSL Bump (colisão):

  • ssl-bump exige também opções TLS/SSL.
  • generate-host-certificates[=<on|off>] :: cria certificados dinâmicos SSL para os host de destino nas requisições CONNECT. Quando habilitado as opções cert e key são usadas para assinar os certificados gerados. De outra forma, os certificados gerados serão selfsigned.

    Se houver um tempo de vida do certificado gerado, será igual ao lifetime do certificado CA. Se o certificado gerado é “selfsigned”, o tempo de vida será de três anos.
    Esta opção é ativada por padrão quando “ssl-bump” for usado. Veja as opções ssl-bump acima para maiores informações.

  • dynamic_cert_mem_cache_size=SIZE :: tamanho usado da memória RAM total aproximado com certificados gerados em cache. Se for definido como o cache será desativado. O padrão é 4 MB.

Opções TLS/SSL

 

cert= :: caminho para o certificado SSL (PEM format).

key= :: caminho para o arquivo da chave privada SSL (PEM FORMAT). Se não for especificado, o arquivo do certificado é assumido como sendo uma combinação de certificado e chave no mesmo arquivo.

version= :: versões SSL/TLS suportadas:

  1. automática (default)
  2. SSLv2 somente
  3. SSLv3 somente
  4. TLSv1.0 somente
  5. TLSv1.1 somente
  6. TLSv1.2 somente

cipher= :: lista de cifras suportadas, separadas por dois pontos.

Nota: algumas cifras como EDH dependem de configurações adicionais. Se essas configurações forem omitidas, as cifras podem ser ignoradas pela biblioteca OpenSSL.

options= :: opções de implementação SSL. As mais importantes são:

  • NO_SSLv2 :: desabilita o uso de SSLv2
  • NO_SSLv3 :: desabilita o uso de SSLv3
  • NO_TLSv1 :: desabilita o uso de TLSv1.0
  • NO_TLSv1_1 :: desabilita o uso de TLSv1.1
  • NO_TLSv1_2 :: desabilita o uso de TLSv1.2
  • SINGLE_DH_USE :: sempre cria uma nova chave ao trocas DH temporárias/efêmeras.
  • ALL :: ativa várias soluções de bugs sugeridas como “harmless” pelo OpenSSL. Isto reduz a segurança SSL/TLS para alguns ataques.

Veja a documentação “OpenSSL SSL_CTX_set_options” para uma lista completa de opções.

clientca= :: arquivo contendo listas de CAs quando um certificado do cliente for requisitado.

cafile= :: arquivo contendo certificados CA adicionais para usar na verificação. Se não for setada, a opção clientca será usada.

capath= :: diretório contendo certificados CA adicionais e listas CRL para verificação do certificado do cliente.

crlfile= :: arquivo de listas CRL adicionais usadas para verificar o certificado do cliente, além dos CRLs da opção capath. Implica na opção VERIFY_CRL abaixo.

dhparams= :: arquivo contendo os parâmetros DH para trocas de chave temporárias/efêmeras. Veja a documentação OpenSSL sobre como criar este arquivo.

Aviso: a cifragem EDH será silenciosamente desabilitada se esta opção não for setada.

sslflags= :: várias flags que modificam o uso de SSL:

  • DELAYED_AUTH :: não solicitar imediatamente certificados de clientes, mas espere que a ACL requisite. (ainda não implementada).
  • NO_DEFAULT_CA :: não use a lista padrão CA do OpenSSL.
  • NO_SESSION_REUSE :: não permitir a reutilização da sessão. Cada conexão resultará em uma nova sessão SSL.
  • VERIFY_CRL :: verificar listas CRL ao aceitar certificados de clientes.
  • VERIFY_CRL_ALL :: verifique as listas CRL para todos os certificados da cadeia de certificados do cliente.

sslcontext= :: sessão SSL identificadora do contexto ID.

Outras opções: connection-auth[=on|off] :: use connection-auth=off para impedir encaminhamento NTLM, Negotiate e Kerberos. disable-pmtu-discovery= :: Path-MTU controle de uso de descoberta:

  • Em off :: deixa que o S.O. decida (default).
  • transparent :: desabilita a descoberta PMTU.
  • always :: sempre desabilita a descoberta PMTU.

Em muitas configurações de proxy transparente, a descoberta Path-MTU não funciona. Este é o caso quando a interceptação não controla totalmente as conexões e não consegue transmitir mensagens ICMP. Se você tiver essa configuração e alguns clientes não conseguem conectar nunca ou esporadicamente, sete a opção “disable-pmtu-discovery” para “transparent”.

name= :: especifica um nome interno para a porta. Padrões para a especificação de porta (“port” ou “addr:port”).

tcpkeepalive[=idle,interval,timeout] :: habilita o keepalive TCP para conexões ociosas. Em segundos, “idle” é o momento inicial antes do TCP proibir a conexão, interval define quantas vezes, e timeout define o tempo de espera antes de desistir.

Se você rodar o Squid em uma máquina dual-homed com interfaces internas e externas, recomendamos que você especifique o endereço interno “address:port” em “http_port”. Desta forma, o Squid só será visível no endereço interno.

O Squid normalmente escuta na porta 3128

 

Porta padrão do Squid:

http_port 3128

TAG: https_port
Nota: esta opção só funciona se o Squid foi compilado com “–enable-ssl”.

Uso:

[ip:]port cert=certificate.pem [key=key.pem] [mode] [options…]

É o endereço do socket onde o Squid irá escutar as requisições TLS ou SSL. Comumente referido como HTTPS. Isto é muito útil para situações em que você está executando o Squid em modo acelerador e que fazer o trabalho SSL ao nível do acelerador.

Você pode especificar vários endereços em várias linhas, cada com seu próprio certificado SSL e/ou opções.

Modos:

  • accel :: accelerator/reverse proxy modo
  • intercept :: suporte para interceptação IP-Layer das requisições sem setar o proxy no navegador.
    • NP: desabilita a autenticação e IPv6 na porta usada.
  • tproxy :: suporte para Linux TPROXY para conexões spoofing que utilizam o endereço IP do cliente.
    • NP: desabilita a autenticação e talvez IPv6 na porta usada.
  • ssl-bump :: para cada conexão interceptada permitida pela ACL ssl_bump é estabelecida uma conexão segura com o cliente e o servidor, e as mensagens HTTPS serão decifradas e tratadas como mensagens não-criptografadas HTTP, tornando o Squid como “man-in-the-middle” (homem-do-meio).

É requerido um servidor primário “ssl_bump server-first” para habilitar a interceptação das conexões SSL. Requer tproxy ou intercept.

Omitindo-se o modo, faz com que o modo padrão (forward) de proxy seja usado. Veja http_port para uma lista de opções genéricas.

Opções SSL:

cert= :: caminho para o certificado SSL (PEM format).

key= :: caminho para o arquivo da chave privada SSL (PEM format). Se não for especificado, será assumido que o arquivo da chave e do certificado são o mesmo arquivo.

version= :: especifica a versão suportada pelo SSL/TLS:

  1. automática (default)
  2. somente SSLv2
  3. somente SSLv3
  4. somente TLSv1.0

cipher= :: dois pontos “:” separam as listas de cifragens suportadas.

options= :: opções de implementação SSL. As mais importantes são:

  • NO_SSLv2 :: desabilita o uso de SSLv2
  • NO_SSLv3 :: desabilita o uso de SSLv3
  • NO_TLSv1 :: desabilita o uso de TLSv1
  • SINGLE_DH_USE :: sempre cria uma nova chave ao usar mudanças temporárias/efêmeras com chaves DH.
  • ALL :: Habilita várias soluções de bugs sugeridas como “inofensivas” pela OpenSSL. Isso reduz a segurança SSL/TLS para alguns ataques.

Veja “src/ssl_support.c” ou a documentação OpenSSL “SSL_CTX_set_options” para uma lista completa de opções.

clientca= :: arquivo que contém a lista de CAs quando for solicitado um certificado ao cliente.

cafile= :: arquivo contendo certificados CA adicionais para uso ao verificar os certificados dos clientes. Se não for setado, será usada a opção clientca.

capath= :: diretório contendo certificados CA adicionais e listas de CRL para usar ao verificar os certificados dos clientes.

crlfile= :: arquivo de listas CRL adicionais para usar ao verificar o certificado do cliente, além dos setados na opção capath. Implica no uso da flag “VERIFY_CRL”, abaixo.

dhparams= :: arquivo contendo os parâmetros DH para trocas de chaves DH temporárias/efêmeras.

sslflags= :: várias flags modificam o uso de SSL:

  • DELAYED_AUTH :: não solicite imediatamente os certificados, mas espere até a ACL requisitar um certificado (ainda não implementado).
  • NO_DEFAULT_CA :: não use a lista padrão CA do OpenSSL.
  • NO_SESSION_REUSE :: não habilita a reutilização da sessão. Cada conexão resultará em uma nova sessão SSL.
  • VERIFY_CRL :: verifica as listas CRL ao aceitar os certificados.
  • VERIFY_CRL_ALL :: verifica as listas CRL para todos os certificados dos clientes.

sslcontext= :: identificador de contexto ID da sessão SSL.

generate-host-certificates[=<on|off>] :: cria certificados SSL dinâmicos para o host de destino das requisições SSL. Quando habilitada, as opções “cert” e “key” serão usadas para assinar os certificados gerados. Caso contrário, o certificado gerado será selfsigned (auto-assinado).

Se existir um tempo de vida para o certificado, será o lifetime do certificado CA. Se o certificado gerado for “selfsigned”, o tempo de vida é de três anos.

Esta opção é ativada por padrão quando SslBump for usado. Veja a opção “SslBump” acima para maiores informações.

dynamic_cert_mem_cache_size=SIZE :: tamanho usado da memória RAM total aproximado com certificados gerados em cache. Se for definido como o cache será desativado. O padrão é 4 MB.

Veja “http_port” para uma lista de opções.
Default: none

TAG ToS

TAG: tcp_outgoing_tos :: permite que você selecione um valor “ToS/DiffServ” para os pacotes de saída do servidor com base em uma ACL.

tcp_outgoing_tos ds-field [!]aclname …

Exemplo de ACL normal_service_net usando o valor ToS 0x00 e good_service_net usando 0x20:

acl normal_service_net src 10.0.0.0/24
acl good_service_net src 10.0.1.0/24
tcp_outgoing_tos 0x00 normal_service_net
tcp_outgoing_tos 0x20 good_service_net

Os valores ToS/DSCP só tem significado local – então, você deve saber o que está especificando. Para maior informação, veja as RFC2474, RFC2475 e RFC3260. O byte ToS/DSCP deve ser exatamente um octeto – entre 0 – 255, ou “default” para usar o padrão do host. Muitas vezes, apenas múltiplos de 4 são utilizáveis para os dois bits mais à direita, quando forem predefinidos para serem usados por ECN (RFC 3168 seção 23.1).

Processa os recursos na ordem especificada e para na primeira linha correspondente.
Default: none

TAG: clientside_tos :: permite selecionar um valor ToS/DiffServ para pacotes transmitidos pelo cliente, com base em uma ACL.

clientside_tos ds-field [!]aclname …

Exemplo de ACL “normal_service_net” usando o valor ToS 0x00 e good_service_net usando 0x20:

acl normal_service_net src 10.0.0.0/24
acl good_service_net src 10.0.1.0/24
clientside_tos 0x00 normal_service_net
clientside_tos 0x20 good_service_net

Nota: este recurso é incompatível com “qos_flows”. Quaisquer valores ToS definidos aqui, serão substituídos pelos valores ToS em qos_flows.
Default: none

TAG: tcp_outgoing_mark
Nota: esta opção só está disponível quando o Squid for compilado com o pacote MARK (Linux).

Permite que você aplique um valor de marca Netfilter para os pacotes de saída no servidor, com base em uma ACL.

tcp_outgoing_mark mark-value [!]aclname …

Exemplo de ACL “normal_service_net” usando a marca de valor 0x00 e good_service_net usando 0x20:

acl normal_service_net src 10.0.0.0/24
acl good_service_net src 10.0.1.0/24
tcp_outgoing_mark 0x00 normal_service_net
tcp_outgoing_mark 0x20 good_service_net

Default: none

TAG: clientside_mark
Nota: esta opção só está disponível quando o Squid for compilado com o pacote MARK (Linux).

Permite que você aplique um valor de marca Netfilter para os pacotes de saída no cliente, com base em uma ACL.

clientside_mark mark-value [!]aclname …

Exemplo de ACL “normal_service_net” usando a marca de valor 0x00 e good_service_net usando 0x20:

acl normal_service_net src 10.0.0.0/24
acl good_service_net src 10.0.1.0/24
clientside_mark 0x00 normal_service_net
clientside_mark 0x20 good_service_net

Nota: este recurso é incompatível com “qos_flows”. Quaisquer valores ToS definidos aqui, serão substituídos pelos valores ToS em qos_flows.
Default: none

TAG: qos_flows :: permite selecionar um valor ToS/DSCP para marcar conexões de saída com base na resposta de origem. Para plataformas que usam Netfilter, permite definir uma marca de valor Netfilter em vez do, ou com o valor ToS.

Os valores ToS só tem significado local – então, você deve saber o que está especificando. Para maior informação, veja as RFC2474, RFC2475 e RFC3260.

O byte ToS/DSCP deve ser exatamente um octeto – entre 0 – 255, ou “default” para usar o padrão do host. Muitas vezes apenas múltiplos de 4 são utilizáveis para os dois bits mais à direita quando forem predefinidos para serem usados por ECN (RFC 3168 seção 23.1).

Os valores da marca podem ser qualquer inteiro de 32 bits sem sinal. Os seguintes valores podem ser configurados:

  • tos|mark :: define os valores ToS ou Netfilter.
  • local-hit=0xFF :: valor para marcar os acessos ao cache local..
  • sibling-hit=0xFF :: valor para marcar hits de pares de irmãos.
  • parent-hit=0xFF :: valor para marcar hits de pares de pais.
  • miss=0xFF[/mask] :: valor para marcar cache perdido. Tem precedência sobre o recurso “preserve-miss” (veja abaixo), a menos que a máscara for especificada, caso em que apenas os bits especificados na máscara serão escritos.

As variantes ToS dos seguintes recursos somente são possíveis no GNU/Linux e requerem que o kernel tenha o patch ToS preservando o patch ZPH, disponível em:

Não precisa nenhum patch para Netfilter, sendo que trabalha com todas as variantes do Netfilter.

disable-preserve-miss :: esta opção desabilita a preservação da marca ToS ou Netfilter.

Por padrão, os valores ToS ou Netfilter existentes vindos do servidor remoto serão mantidos e mascarados com miss-mark.
Nota: no caso de ser Netfilter, a marca deve ser definida na conexão (usando o alvo CONNMARK) e não sobre o pacote (alvo MARK).

miss-mask=0xFF :: permite mascarar certos bits ToS ou as marcas dos valores recebidos do servidor remoto antes de copiar o valor para enviar ao cliente.

Default para ToS: 0xFF (ToS do servidor não é alterado).
Default for mark: 0xFFFFFFFF (mark do servidor não é alterada).

Estes recursos requerem a compilação com a flag “–enable-zph-qos” (habilitada por default). A marcação Netfilter requer também as bibliotecas libnetfilter_conntrack (–with-netfilter-conntrack) e libcap 2.09+ (–with-libcap).
Default: none

TAG tcp_outgoing_address

 

TAG: tcp_outgoing_address :: permite mapear requisições para diferentes endereços IP com base no nome do usuário ou no endereço de origem do usuário que fez a requisição.

tcp_outgoing_address ipaddr [[!]aclname] …

Por exemplo, encaminhamento de clientes com IPs dedicados para certas sub-redes:

acl normal_service_net src 10.0.0.0/24
acl good_service_net src 10.0.2.0/24

tcp_outgoing_address 2001:db8::c001 good_service_net
tcp_outgoing_address 10.1.0.2 good_service_net

tcp_outgoing_address 2001:db8::beef normal_service_net
tcp_outgoing_address 10.1.0.1 normal_service_net

tcp_outgoing_address 2001:db8::1
tcp_outgoing_address 10.1.0.3

Processa os recursos na ordem especificada, parando na primeira linha que corresponder. O Squid irá adicionar uma versão de teste de IP implícito para cada linha:

  • Requisições indo para sites IPv4 usarão endereços: 10.1.0.*
  • Requisições indo para sites IPv6 usarão endereços: 2001:db8:*

Nota 1: esta opção é incompatível com o uso de clientes que dependem de ACLs em conexões persistentes no lado servidor. Para garantir resultados corretos, é melhor definir “server_persistent_connections” como “off” quando usar esta opção.

Nota 2: esta opção é incompatível para definir um IP local nas conexões TCP de saída usando um TPROXY. Quando precisar, use as opções “no-tproxy”, “cache_peer” e “client_dst_passthru” para reabilitar o encaminhamento normal.
Default: none

TAG: host_verify_strict :: independentemente da configuração desta opção, o Squid sempre verifica se o endereço IP de destino corresponde ao domínio do cabeçalho do host ou do IP (chamado “authority form URL”).

Isto é feito para satisfazer a exigência da RFC2616, seção 14.23:

“O valor do campo host deve representar a autoridade de nomeação do servidor de origem ou gateway dada pela URL original”.

Quando setado em “ON”: Squid sempre responde com uma página de erro HTTP 409 (Conflict) e registra um log de segurança. O Squid verifica se o endereço IP de destino corresponde ao cabeçalho do host para o tráfego forward-proxy e reverse-proxy.

Para esse dois tipos de tráfego, o Squid compara os cabeçalhos do host e os componentes Request-URI:

  • Os nomes do host (domínio ou IP) devem ser idênticos, mas se estiverem sem valor, todas as verificações serão desabilitadas. Os nomes de host devem ser IP ou FQDN.
  • Os números de portas devem ser idênticos, mas se a porta estiver faltando, o esquema padrão é assumido.

Quando setado em OFF (padrão): O Squid permite que as requisições suspeitas continuem, mas registra um aviso de segurança e bloqueia o cache de resposta.

  • O tráfego forward-proxy não é verificado em tudo.
  • O tráfego reverse-proxy não é verificado em tudo.
  • O tráfego interceptado é tratado de acordo com a opção client_dst_passthru.
  • Requisições interceptadas nas quais falharam a verificação, são enviadas para o destino original do cliente em vez de DIRECT. Isto substitui “client_dst_passthru off”.

Requisições CONNECT suspeitas são sempre respondidas com uma página de erro HTTP 409 (Conflict).

Nota de Segurança: Como descrito em “CVE-2009-0801”, quando o “host:header for” usado para determinar o destino de uma requisição, torna-se trivial que scripts maliciosos em sites remotos contornem a política de segurança do navegador e as proteções sandboxing.

A causa disso é que tais applets estão autorizadas a efetuar sua própria pilha TCP, caso em que a política sandboxing do navegador verifica apenas que a applet tenta contatar o mesmo endereço IP a partir de onde foi carregado. O “host:header” pode ser diferente do IP conectado e da origem aprovada na requisição.

Default: host_verify_strict off

TAG: client_dst_passthru :: com NAT ou TPROXY o tráfego pode passar a requisição diretamente ao IP de destino original do cliente ou buscar uma fonte mais rápida usando o cabeçalho do host HTTP.

A utilização do host para localizar servidores alternativos fornecem uma conectividade mais rápida com um leque de opções de recuperação de falhas. Mas também, pode levar a problemas de conectividade quando o cliente e o servidor estão tentando interações stateful desconhecidas para o proxy.

Esta opção (on por padrão) impede que DNSs alternativos sejam localizados para enviar o tráfego direto a um servidor de origem. O IP de destino e a porta originais dos clientes serão usados em vez dos desconhecidos.

Independentemente desta opção estar configurada, o Squid verificará o “host:header” e todo o tráfego será tratado como se esta opção estivesse ON.

Veja “host_verify_strict” para obter detalhes do processo de verificação.
Default: client_dst_passthru on

Cacti + Plugins (Settings, Monitor, Thold e Weathermap) – Instalação e configuração

Introdução / Requisitos

Introdução

Não entrarei muito em detalhes sobre a ferramenta Cacti, por se tratar de uma ferramenta altamente difundida na Internet, assim como suas qualidade e defeitos.

Podemos salientar, de forma simplificada, que se trata de uma ferramenta de monitoramento de rede e devices de redes de dados através do protocolo SNMP.

Demonstrarei como implantar o Cacti, os plugins Settings, Monitor, Thold e Weathermap, as devidas configurações para seu uso e como ativar o protocolo nos hosts Windows.

Encontrei diversas fontes e materiais de pesquisas na Internet, mas todos de forma separada e alguns com erros de configurações, que só percebi quando estava implantando a ferramenta.

Este artigo propõe o que descrevi acima, mas tudo em um único artigo.

Requisitos

Softwares e hardware usados no projeto.

Para desenvolver este projeto, usei os devidos softwares e hardware descritos abaixo:

Hardware:

  • Computador Pentium 4.
  • HD de 80 GB.
  • Memória física de 1 GB.
  • Placa de rede Ethernet 10/100MBPS.

Softwares:

  • Sistema operacional GNU/Linux Debian 6.
  • Pacote apt-build.
  • Cacti e Cacti-Spine.
  • PHP 5.
  • Servidor MySQL 5.
  • Plugins Settings, Monitor, Thold e Weathermap.

Instalação

Instalando o Debian 6 e Cacti

A instalação do Debian 6 não irei abordar, uma vez que não é o foco do artigo. Mas, deixo umas dicas que sempre achei interessante:

Logo após a instalação do Debian, faço as seguintes alterações e instalações:

# vi /etc/apt/sources.list

E adiciono o repositório:

deb http://linorg.usp.br/debian/ squeeze main contrib non-free

# apt-get update

E:

# apt-get upgrade

Para atualizar o servidor.

# vim /boot/grub/grub.cfg

Para alterar as configurações da resolução de vídeo para:

vga=773

# aptitude install apt-build

Para instalar o pacote “apt-build”.

# aptitude install vim

Para instalar o editor de textos mais fácil de usar no GNU/Linux (em minha opinião).

# aptitude install openssh-server

Para acessar o servidor via SSH.

Após essas práticas, passaremos para a instalação do Cacti:

# apt-get install cacti cacti-spine

Com esse comando, ele irá achar todas as dependências para que a instalação do Cacti seja feita, por exemplo: MySQL 5, Apache 2 e PHP 5.

Após a instalação, ele irá mostrar uma tela de configuração do banco de dados do Cacti, basta seguir o que for pedido, que o banco será instalado.

Uma coisa importante que acho que vale ressaltar, é que quando a instalação é feita via apt-get, toda a instalação é feita em “/usr/share/cacti/site”, pois, na maioria dos tutoriais que encontrei pela Internet, a instalação do Cacti é toda feita com Wegt e com isso, muitos desses tutoriais apontam a pasta raiz como “/var/www/cacti”.

Pronto! Com o Cacti instalado, vá até um browser e digite:

http:\\IPDOSERVIDOR\CACTI

Com isso, é só seguir o restante da instalação. Ele mostrará os caminhos dos arquivos de configuração e, por padrão, ele já começa com o servidor sendo monitorado e dois usuários padrão: O admin e o Guest.

Como prátic,a deixo o admin somente para configuração, e o Guest para acesso aos gráficos.

Vá até a aba “Utilities”, do lado esquerdo da tela, selecione “User Managment”, nesta tela aparecerá os dois usuários. Clique em cada um deles para alterar permissões de acesso, troca de senhas e demais configurações que acharem necessárias.

Na opção “Settings”, também do lado esquerdo, você terá as opções de configuração da ferramenta, pode-se deixar todas como padrão que a ferramenta irá funcionar em perfeitas condições, mas, uma que acho interessante revisar é a aba “Paths”, ela contém o caminho de todos os arquivos e pastas para o Cacti funcionar.

As que estiverem em cor VERDE, é que a pasta foi encontrada, já as que tiverem em VERMELHO, não foi encontrado a pasta, mas por padrão, a instalação via apt-get já direciona tudo para o lugar correto de destino.

Baixando e instalando os plugins

Bom, eu baixei todos os plugins deste site:

Pois neste site, encontrei todos os plugins disponíveis e suas devidas documentações. Depois de baixar os plugins, eu acessei o servidor com um programa de acesso SSH, o WinSCP

Bem, feito isso, acessei o servidor pelo WinSCP e copiei todos os plugins para o servidor no diretório “/usr/share/cacti”. Beleza, agora é a hora de descompactar esses plugins.

Dentro do diretório “/usr/share/cacti”, execute os comandos:

# ls

Irá listar todos os arquivos dentro do diretório. Dentro terá:

  • cacti-plugin-0.8.7g-PA-v2.8.tar.gz
  • monitor-v1.3-1.tgz
  • php-weathermap-0.97a.zip
  • settings-v0.7-1.tgz
  • thold-v0.5.0.tgz.

Irá descompactar os arquivos tar.gz:

# tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz monitor-v1.3-1.tgz settings-v0.7-1.tgz thold-v0.5.0.tgz

Irá descompactar o arquivo ZIP:

# gzip php-weathermap-0.97a.zip

Irá mover todos os plugins para a pasta “plugins” dentro do Cacti, para que possamos visualizá-los via browser:

# mv monitor settings thold weathermap /usr/share/cacti/site/plugins

# cd /usr/share/cacti/cacti-plugin-arch
# patch -p1 -N –dry-run < cacti-plugin-0.8.7g-PA-v2.8.diff
# patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff

Entre dentro do diretório descrito e execute os comandos acima para executar os arquivos diff. Esses comandos têm que ser executados dentro do diretório “/usr/share/cacti/cacti-plugin-arch”.

Outros sites que encontrei com material, dizem ser necessário editar o arquivo “global.php” que fica dentro de “/usr/share/cacti/site/include”, quando na verdade não é necessário, pelo menos na instalação via apt-get.

Na verdade, o arquivo que necessita ser alterado é o arquivo “config.php”, que fica dentro de “/usr/share/cacti/site/include”.

Abaixo, segue o arquivo já modificado e pronto para o uso:

/* make sure these values refect your actual database/host/user/password */
$database_type = “mysql”;
require(‘/etc/cacti/debian.php’);

/* load up old style plugins here */
$plugins=array();
$plugins[]=’settings’;
$plugins[]=’thold’;
$plugins[]=’monitor’;
$plugins[]=’weathermap’;
/*
Edit this to point to the default URL of your Cacti install
ex: if your cacti install as at http://serverip/cacti/ this
would be set to /cacti/
*/
$url_path = “/cacti/”;

/* load up old style plugins here */
$plugins = array();
//$plugins[] = ‘thold’;

/*
Edit this to point to the default URL of your Cacti install
ex: if your cacti install as at http://serverip/cacti/ this
would be set to /cacti/
*/
$url_path = “/cacti/”;

/* Default session name – Session name must contain alpha characters */
#$cacti_session_name = “Cacti”;

Observação: é necessário trocar onde está sem comentários, os locais comentados são default do arquivo.

Entre na pasta do plugin arch e dê o comando abaixo para criar a tabela no MySQL:

# mysql -p cacti < pa.sql

Faça o Apache reler os arquivos de configuração:

# service apache2 reload

Feito esses passos, vá até seu navegador e entre no servidor Cacti, no canto esquerdo, clique em “Settings” e, na aba acima, clique em “patch”.

Feito isso, caso seja necessário, acrescente os seguintes caminhos:

  • RRDTool Default Font Path → para: /usr/bin/rrdtool
  • Spine Poller File Path → para: /usr/sbin/spine

1. Depois, vá em: Utilies → User Management
2. Clique no usuário “admin” e libere as permissões de configurar os plugins em: “Realm Permission”.
3. E faça logoff.

Após isso, aparecerá do lado esquerdo do browser, a opção “Plugin Management” dentro desta aba, basta instalar e ativar os plugins.

Para que os plugins apareçam na tela descrita, é necessário que o arquivo “config.php” esteja exatamente como o descrito acima.

Configurando os plugins

Monitor

As configurações dos plugins são muito simples e começarei pelo plugin Monitor.

Para colocar um host para ser monitorado e aparecer suas estatísticas, na aba “Monitor” é necessário, quando estiver adicionando um host no servidor, marcar a opção “MONITOR HOST”.

Com isso, seu monitor já estará apto a ser monitorado ou, após adicionar o host no servidor, clique em “Devices”, marque o host a ser monitorado e clique na opção “ENABLE MONITORING”, na caixa de diálogo abaixo do host.

Thold

Para receber notificações de hosts offline é muito simples, basta clicar no lado esquerdo do browser, na opção “Settings” e na aba “Mail/DNS”.

  • Na primeira opção, coloque o e-mail usado para o envio de alerta.
  • Na segunda opção, escolha: SMTP
  • Na terceira opção, coloque o destinatário do e-mail, no caso, o mesmo da primeira opção.
  • Na quarta opção, coloque o nome de exibição do e-mail recebido, por exemplo: Cacti
  • Deixe a quinta opção sem alteração.
  • Na sexta opção está o diretório do Sendmail, caso não esteja com a cor verde, dê OK e altere para o diretório correto.
  • Na sétima opção, coloque o seu SMTP de envio.
  • Na oitava opção, a porta do SMTP.
  • Na nona opção, seu e-mail de envio, o mesmo da primeira opção.
  • Na décima e décima primeira opção, a senha de autenticação no servidor de e-mails.
  • Na décima segunda e décima terceira, o seu servidor DNS.
  • Na décima quarta opção, deixe sem alteração.

Para que um host receba e-mails de downtime, é necessário habilitar a opção para ele, para isso, clique em “Devices”, selecione o host e clique em “Apply Thresholds”. Ou na adição de um host, marque a opção “Global and List Below” na opção “Thold Up”.

Weathermap

Para esta configuração, teremos que editar alguns arquivos no servidor Cacti. Vamos lá:

Mude o nome do arquivo “editor-config.php-dist”:

# cd /usr/share/cacti/site/plugins/weathermap
# chmod 777 output
# cp editor-config.php-dist editor-config.php

# vim editor-config.php

Na linha 14, altere de:

$cacti_base = ‘C:/httpd-.2_x64/htdocs/cacti’;

Para:

$cacti_base = ‘/usr/share/cacti/site‘;

Na linha 20, altere de:

$cacti_url = “http://support.company.net/cacti/&#8221;;

Para:

Editar o arquivo “editor-config.php” como descrito acima. Após isso, faça:

# vim editor.php

Na linha 7, altere de:

$ENABLED=false;

Para:

$ENABLED=true;

Na linha 18, altere de:

$cacti_base = ‘../../’;

Para:

$cacti_base = ‘/usr/share/cacti/site‘;

Na linha 19, altere de:

$cacti_url = ‘/’;

Para:

$cacti_url = ‘http://IPDOSERVIDOR/cacti/‘;

# vim cacti-pick.php

Na linha 6, altere de:

$cacti_base = ‘../../’;

Para:

$cacti_base = ‘/usr/share/cacti/site’;

Na linha 7, altere de:

$cacti_url = ‘/’;

Para:

Com estas alterações, estamos habilitando as edições do Weathermap via browser.

Alterar as permissões de escrita para a pasta “cacti”. E com isso, finalizamos a edição no servidor Cacti:

# chown www-data.www-data -R /var/www/cacti*

Usando os plugins

Nesta parte do artigo, os plugins já estão instalados e configurados, bastando apenas usá-los. Então, vamos lá:

Monitor

Na aba “Monitor”, você verá as estatísticas dos seus host como tempo de uptime, última falha, tempo de ping entre outras informações.

Para que seus hosts apareçam na aba “Monitor”, basta ativar a monitoração quando seu host estiver sendo integrado ao Cacti, clicando em “monitor host” ou, na aba “Device”, clique no micro que queira monitorar e marque ele, após isso, escolha a opção ENABLE MONITORING. Pronto, assim os hosts passam a ser monitorados.

Thold

Nesta aba ficam os alarmes disparados por e-mail e os alarmes de hosts offline, lembrando que a configuração deste plugin foi mostrado no capítulo “Instalando os plugins”.

Para que seu host passe a ser passível de envio de alarmes, basta na adição do host, marcar a opção GLOBAL AND LIST BELOW, ou escolher o host e marcar a opção APPLY TRESHOLDS.

Weathermap

Nesta aba, iremos criar o mapa de nossa rede, para isso precisamos clicar em “EDITOR”, em “Named” crie um nome para o mapa e clique em “CREATE”.

Após isso, aparecerá abaixo de onde você criou o mapa, o nome do mapa criado, com isso, basta clicar no mapa criado.

Na próxima tela aparecerá diversas opções, vou relatar as mais importantes:

  • ADD NODE :: para adicionar seu host no mapa, clique nele e depois em qualquer ponto do mapa para criar o host. Após, clique no host criado para editá-lo. As opções para mudar são ICON FILENAME, para escolher o ícone e depois, clique em PICK FROM CACTI. Após isto abrirá os seus hosts cadastrados, clique em qual queira mapear e qual opção quer mapear, por exemplo HD, Rede, etc.
  • ADD LINK :: para criar os links entre os hosts do mapa, clique nos hosts que queira linkar e pronto.

Zabbix server 2.0 no Centos – Instalação e configuraçao

Introdução e preparação

Introdução

O Zabbix é um software de gerenciamento de rede, que verifica a saúde dos ativos de redes. Ele faz estas monitorações através do protocolo SNMP, checagens simples e configurações através de agentes.

Então, só mudarei as particularidades do sistema.

Após a instalação do CentOS e serviços básicos, vamos resolver as dependências da aplicação, para que a instalação do Zabbix tenha sucesso.

Nesta instalação, optei pelos seguintes pacotes:

  • Banco de dados MySQL
  • Front-end Apache 2
  • PHP 5 e extensões do PHP

Preparando o sistema

Comece a instalar os pacotes:

# yum update
# yum install [NOME_DO_PACOTE]

Instalando o MySQL:

# yum install apr-util-mysql mod_auth_mysql mysql mysql-connector-odbc mysql-devel mysql-embedded mysql-embedded-devel mysql-libs mysql-server php-mysql perl-DBD-MySQL qt-mysql qt3-MySQL

Configurando a inicialização:

# chkconfig mysqld on

Instalando a base:

# mysql_install_db

Inicie o serviço:

# service mysqld start

Configure a senha e teste o acesso:

# mysqladmin -u root password ‘zabbix’
# mysql -uroot -p

Instalando o Apache:

# yum install httpd httpd-devel httpd-tools mod_auth_mysql mod_perl mod_ssl php-zts ws-commons-util

Instalando o PHP:

# yum install php php-cli php-common php-dba php-devel php-gd php-mysql php-pear php-process php-snmp php-xmlrpc php-xml rrdtool-php php-gd php-bcmath php-mbstring php-mcrypt php-mhash php-ncurses

Outros pacotes importantes:

# yum install OpenIPMI OpenIPMI-devel OpenIPMI-libs OpenIPMI-perl
# yum install libssh2 libssh2-devel openssh
# yum install libcurl curl libcurl-devel
# yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-perl net-snmp-utils php-snmp
# yum install make MAKEDEV
# yum install gcc wget mlocate

Instalando o fping:

# wget http://pkgs.repoforge.org/fping/fping-3.1- 1.el6.rf.i686.rpm
# rpm -ivh fping-3.1-1.el6.rf.i686.rpm

Obs.: eu prefiro instalar um pacote de cada vez, para verificar o passo a passo.

Instalação e configuração

Instalando o Zabbix Server

Depois das dependências resolvidas, vamos baixar o source do Zabbix, em:

Crie um diretório “/srv/zabbix” e copie o source do Zabbix. Depois, extraia os arquivos:

$ tar -xvzf zabbix-[Versão].tar.gz

Crie o usuário “zabbix” em seu sistema:

# groupadd zabbix
# useradd -g zabbix zabbix

Preparando o banco de dados MySQL

Entre no MySQL e digite a senha:

# mysql -uroot -p

Crie a database:

mysql> create database zabbixdb;
mysql> quit;

Configure a permissão ao usuário “zabbix”:

# mysql -uroot -p -e “grant all privileges on zabbixdb.* to zabbix@localhost identified by ‘zabbix’;”

Obs.: vá até o diretório descompactado do Zabbix, que possui os arquivos “.sql”, no caso desta versão (/srv/zabbix/zabbix- 2.0.6/database/mysql) e, estando neste diretório, digite:

# mysql -u zabbix -p zabbixdb < schema.sql
# mysql -u zabbix -p zabbixdb < images.sql
# mysql -u zabbix -p zabbixdb < data.sql

Agora, o banco de dados está preparado para a instalação do Zabbix.

Configurando os pacotes (sources)

Dentro do diretório do Zabbix (/srv/zabbix/zabbix-2.0.6/), vamos compilá-lo com os seguintes parâmetros:

# ./configure –enable-server –enable-agent –with-mysql –enable-ipv6 –with-snmp –with-libcurl3 –with-ssh2 # make install

Adicione, ao final do arquivo “/etc/services”, as seguintes linhas:

zabbix-agent      10050/tcp  #Zabbix Agent
zabbix-agent      10050/udp  #Zabbix Agent
zabbix-trapper   10051/tcp  #Zabbix Trapper
zabbix-trapper   10051/udp  #Zabbix Trapper

Edite as seguintes linhas do arquivo “/usr/local/etc/zabbix_agentd.conf”:

PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
LogFileSize=1
DebugLevel=3
EnableRemoteCommands=1
LogRemoteCommands=1
Server=127.0.0.1
ListenPort=10050
Hostname=[Nome_do_HOST]

Edite as seguintes linhas do arquivo “/usr/local/etc/zabbix_server.conf”:

ListenPort=10051
LogFile=/tmp/zabbix_server.log
LogFileSize=2
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbixdb
DBUser=zabbix
DBPassword=senha do zabbix para acessar o banco de dados
StartIPMIPollers=1
StartDiscoverers=5
Timeout=3
FpingLocation=/usr/bin/fping

 

Configurando o front-end PHP

Precisamos ajustar algumas informações do PHP, para os pré-requisitos do Zabbix. Edite o arquivo “/etc/php.ini”, com as seguintes opções:

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = America/Sao_Paulo

Configure o Apache para iniciar com o sistema:

# chkconfig –add httpd
# chkconfig –level 35 httpd on

Após editar o arquivo, reinicie o Apache:

# service httpd start

Como estamos configurando um servidor CentOS, o diretório default do Apache é “/var/www/html/”. É aconselhável criar um diretório “zabbix”:

# mkdir /var/www/html/zabbix

Entre no diretório dos fontes “/srv/zabbix/zabbix-2.0.6/frontends/php” e copie todo o conteúdo para “/var/www/html/zabbix”:

# cp -a * /var/www/html/zabbix/
# chown -R apache:apache /var/www/html/zabbix/

Configurando a inicialização do sistema

Entre no diretório “/srv/zabbix/zabbix-2.0.6/misc/init.d/fedora/core” e copie os arquivos para “/etc/init.d”:

# cp zabbix-agent /etc/init.d
# cp zabbix-server /etc/init.d

Dê permissão de execução para estes arquivos:

# chmod +x /etc/init.d/zabbix_server /etc/init.d/zabbix_agentd

Inicie os serviços:

# /etc/init.d/zabbix_server start
# /etc/init.d/zabbix_agentd start

Verifique se os processos estão rodando:

# ps -ef|grep zabbix

 zabbix 15833     1  0 10:19 ?  00:00:00 /usr/local/sbin/zabbix_server
 zabbix 15835 15833  0 10:19 ?  00:00:00 /usr/local/sbin/zabbix_server
 zabbix 15836 15833  0 10:19 ?  00:00:00 /usr/local/sbin/zabbix_server
 zabbix 15838 15833  0 10:19 ?  00:00:00 /usr/local/sbin/zabbix_server

Atualize os arquivos de inicialização do sistema. Adicione os serviços:

# chkconfig –add zabbix_agentd
# chkconfig –add zabbix_server
# chkconfig –level 35 zabbix_agentd on
# chkconfig –level 35 zabbix_server on

Verificando:

# chkconfig –list|grep zabbix

 zabbix_agentd 0:off 1:off 2:off 3:on  4:off 5:on  6:off
 zabbix_server 0:off 1:off 2:off 3:on  4:off 5:on  6:off

Configurando o firewall

Nós precisamos configurar uma regra de firewall permitindo o acesso do servidor na porta 80, para que a publicação do site seja visível a todos os hosts.

Adicione a seguinte linha no arquivo “/etc/sysconfig/iptables”:

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

Adicione, também, estas duas linhas que são as portas que o Zabbix trabalha:

-A INPUT -m state –state NEW -m tcp -p tcp –dport 10050 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 10051 -j ACCEPT

Obs.: estas linhas devem ser adicionadas antes das regras de REJECT, deste arquivo.

Agora, atualize as regras:

# iptables-restore /etc/sysconfig/iptables

Temos também que desabilitar o SELinux para o site funcionar.

Edite o arquivo /etc/sysconfig/selinux:

SELINUX=permissive

Reinicie o servidor para que as configurações tenham efeito.

Finalizando a instalação pela interface gráfica

 

Agora, já pode acessar o Zabbix através da URL:

Vejas se está tudo OK:

Configure a conexão com o MySQL:

Detalhes do servidor:

Instalação efetuada com sucesso:

Agora, é só começar a usá-lo:

Username: admin
Password: zabbix

Linux: 
Zabbix Server 2.0 no CentOS - Instalação e configuração   Linux: 
Zabbix Server 2.0 no CentOS - Instalação e configuração

Bloqueando ultrasurf definitivamente

Introdução

 Que tal passar horas planejando e configurando o controle de acesso a conteúdo de uma rede, ir dormir feliz da vida com o gostinho do dever cumprido e acordar no dia seguinte, com o pesadelo de saber que foi tudo em vão, pois os usuários estão acessando o conteúdo bloqueado normalmente?

O objetivo aqui não é entrar na discussão se o controle de acesso a conteúdo deve ou não ser realizado na navegação WEB de uma empresa, instituições de ensino, residências ou onde quer se seja.

O fato é que, se por algum motivo, determinado conteúdo teve que ser bloqueado ou monitorado, este deve ser bloqueado, ou monitorado, de forma que os usuários da rede não consigam burlar tais controles. Sendo necessário assim, prever e tratar todos os possíveis desvios que, eventualmente, os usuários tentem utilizar para burlar os controles estipulados.

Muitas são as técnicas que os usuários de uma rede de computadores acabam recorrendo na tentativa, em geral com sucesso, de burlar os controles impostos. Entre essas técnicas, podemos citar como exemplo:

  • https;
  • tunneling;
  • socks;
  • proxy anônimo;
  • webproxy;
  • ferramentas como HotSpot Shield, HideIpPlatinum, JAP ou o implacável UltraSurf. Continuar lendo

Instalando o Mplayer+ w32codecs

O Mplayer é um reprodutor de vídeo bastante completo e fornece suporte a uma boa quantia de formatos multimidia, quem usa Linux conhece bem. Bom no inicio apanhei bastante dele levando em consideração que ainda estou aprendendo a mexer com Linux então como ralei um pouquinho e fui bastante ajudado também hehe.
Vou deixar aki uma ajudinha ok.

Primeiro vamos configurar a sources.list

nano /etc/apt/sources.list

Deixe-a conforme abaixo

#

# deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ – Official i386 CD Binary-1 20110$

#deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ – Official i386 CD Binary-1 201102$
deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.br.debian.org/debian/ squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

deb http://ftp.br.debian.org/debian/ squeeze-updates main
deb-src http://ftp.br.debian.org/debian/ squeeze-updates main

# backports
deb http://www.backports.org/debian squeeze-backports main contrib non-free

deb http://www.debian-multimedia.org squeeze main non-free

vamos baixar a chave para isso ainda no terminal digite:
wget http://debian-multimedia.org/gpgkey.pub
depois de baixar a chave é só dar um #apt-key add (nome da chave) e vai aparecer o ok

Apos fazer a edição da sources.list vamos dar os seguintes comandos

#ap-get update

#apt-get install mplayer

#aptget install w32codecs

lembrando que o repositório é do Debian squeeze

DansGuardian: Filtrando o acesso a Web

Introdução

Fala Linuxers, tudo em ordem?

Em um primeiro artigo sobre o gênero:

Vimos apenas o bloqueio de sites indesejados, neste artigo veremos como filtrar este conteúdo. Mas como assim? Faremos realmente uma filtragem, ou seja, pelo conteúdo do site, seja por palavras, expressões ou frases.

Sendo assim bloqueamos praticamente tudo que não queremos, quase sem falhas.

Requerimentos:

  • Um computador com Linux ou Unix instalado;
  • E este computador deve assumir ou já ser responsável pelo serviço web.

Conteúdo programado:

  • Apresentação do DansGuardian;
  • Instalação;
  • Limpando configurações pré-definidas e alterando a linguagem;
  • Integração com Squid;
  • Configurando o DansGuardian, método por frases proibidas;
  • Método por frases pontuadas;
  • Aprofundando-se em seus arquivos de configuração;
  • Considerações finais.

Espero que gostem, uma boa leitura a todos.

Continuar lendo

Instalando o Squid

Ambiente:

  • S.O.: Conectiva Linux;
  • Versão do SquidGuard: 1.2.0;
  • Versão do DB Berkeley: Berkeley DB 4.1.

Squid

Pré-requisitos:

Para implementar o servidor é necessário:

  • que o acesso à Internet esteja configurado corretamente;
  • recomenda-se que o servidor tenha uma boa quantidade de memória (por exemplo, 512 MB) e que seja usado um disco rígido SCSI para permitir um acesso mais rápido aos arquivos armazenados no buffer (Este tipo de disco é recomendado para servidores que tenham grande capacidade de vazão de informações).

Instalação

Para instalação do servidor proxy, execute o Synaptice instale os seguintes pacotes:

  • squid
  • squid-auth
  • squid-extra-templates

ou utilize a linha de comando, executando o apt-get:

# apt-get install squid.*

Continuar lendo

Visualizando acessos dos usuários em tempo real no Squid

O link na empresa em que trabalho é um pouco limitado e sempre algum usuário acaba abusando um pouco e deixando o acesso mais lento para todos os outros.

Sempre tive dificuldades em conseguir rastrear quem está abusando do link (com o iptraf é possível, mas é um pouco complicado e não é muito exato). Buscando no Google, encontrei o SQStat.

Este script mostra em uma página PHP todos os acessos que estão acontecendo em tempo real e também permite que você configure um tempo para atualização automática da página.

Continuar lendo

Como instalar o drive da hp 1020 ubuntu

$ sudo apt-get install build-essential
$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
$ tar -zxvf foo2zjs.tar.gz
$ cd foo2zjs
$ sudo make uninstall
$ make
$ ./getweb 1020
$ sudo make install install-hotplug cups

Pronto, resolvido driver, agora você tem que reinstalar a impressora dentro do Ubuntu como se nada tivesse acontecido.
Sistema \ Administração \ Imprimindo
Vá em adicionar impressora, é tudo muito simples, só tem um detalhe, NO PASSO 2 DE 3 – DRIVER DA IMPRESSORA, faça o seguinte:
Vá no final, em Driver escolha foo2zjs (recommended) SEM A MARCAÇÃO DE SUGERIDO.
O driver SUGERIDO é o que NÃO funciona. Escolha o outro.
Finalize a instalação e pronto, impressora funcionando.
Importante, antes de imprimir, desligue e ligue a impressora novamente.