sexta-feira, 22 de julho de 2011

Servidor Linux Proxy Completo com Administração Web + Samba + Cups + Monitoramento de Servidores

Fala galera,

Antes de tudo agradeço a todos que seguem meu blog e que estão dispostos a criar novas soluções na área de informática e compartilha-las para difundirmos o conhecimento sem restrições. Este é meu segundo artigo, espero ser claro o suficiente para que tenham êxito nesta solução o tanto quanto eu tive.

Resolvi disponibilizar um tutorial bem detalhado de um servidor com Proxy autenticado com opção do usuário poder alterar sua senha da internet e relatório de acesso a internet por usuário.

Nosso servidor conta também com pastas compartilhadas para uma eventual troca de arquivos entre os usuários e, é claro, um servidor de impressão para facilitar a instalação e não ter aquele problema da máquina, que está compartilhando a impressora estar desligada ou com vírus, que é o mais comum.

Primeiramente ditarei o ambiente que utilizo e que está em funcionamento: Ubuntu Server 8.04.

Considerando que o servidor tenha duas placas de rede e acesso à internet.

No meu caso tenho IP fixo, então meu modem dá o IP real da internet para minha placa de rede onboard.

Na placa de rede off-board coloco um switch de 24 portas para fornecer internet para os demais.

Atualizando servidor e criando usuário root

Edite o arquivo /etc/apt/sources.list e remova todas as "#" dos "#deb".

# apt-get update
# apt-get upgrade


Pode demorar até 20 minutos, dependendo da conexão.

# passwd root

Adicione a senha do root.

Instalando os pacotes necessários
Digite:

# apt-get install squid sarg samba php5-cgi gcc swat xinetd cupsys make mc g++ patch

Obs.: porta do Swat é 901 e a do CUPS é 631.


 Configurando o Squid

Antes de editar o arquivo original do Squid vamos criar um backup do mesmo:
# cp squid.conf squid.conf.backup

Edite o arquivo /etc/squid/squid.conf e copie a configuração abaixo, não esquecendo de modificar o nome da máquina e o IP na configuração do squid.conf.

# -----------------------------------------------------------------------------
# SCRIPT DE CONFIGURACAO DO PROXY-SQUID - FABIO VIEIRA
# -----------------------------------------------------------------------------
# Autor: Fabio Vieira
# fabioovieira@hotmail.com
# Script de Proxy Squid v.0.1-beta
#
# -----------------------------------------------------------------------------
# CONFIGURACAO PARA AUTENTICACAO DO PROXY
# -----------------------------------------------------------------------------
#
# -----------------------------------------------------------------------------
# PORTA DE REDIRECIONAMENTO PARA O PROXY
# -----------------------------------------------------------------------------
cache_mgr e-mail_do_admin@admin.com.br
http_port IP_DO_SERVIDOR:3128 transparent
visible_hostname  IP_DO_SERVIDOR
#
# -----------------------------------------------------------------------------
# CACHE DE MEMORIA DE ACESSOS
# -----------------------------------------------------------------------------
maximum_object_size_in_memory 1024 KB
maximum_object_size 40960 KB
cache_swap_low 90
cache_swap_high 95
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 override-expire ignore-no-cache ignore-private
refresh_pattern -i \.(iso|avi|wav|mp3|mp4|mpeg|swf|flv|x-flv)$ 43200 90% 432000 override-expire ignore-no
cache ignore-private
refresh_pattern -i \.nup$ 120 90% 180 override-expire ignore-no-cache ignore-private
refresh_pattern -i \.(deb|rpm|exe|zip|tar|tgz|rar|ppt|doc|tiff|cab)$ 43200 90% 432000 override-expire ignore
no-cache ignore-private
refresh_pattern -i imp 0 0% 0
refresh_pattern -i \.index.(html|htm)$ 0 40% 10080
refresh_pattern -i \.(html|htm|css|js)$ 1440 40% 40320
refresh_pattern . 0 40% 40320
refresh_pattern (/cgi-bin/|\?) 0 0% 0
#
# -----------------------------------------------------------------------------
# ARQUIVOS ONDE REGISTRAM OS LOGS DE ACESSO
# -----------------------------------------------------------------------------
cache_access_log /var/log/squid/access.log
cache_store_log /var/log/squid/store.log
cache_log /var/squid/logs/cache.log
cache_dir ufs /var/spool/squid 5000 16 256
error_directory /usr/share/squid/errors/Portuguese
#
# -----------------------------------------------------------------------------
# REGRAS DE ACESSO PARA LIBERACAO DE PORTAS
# -----------------------------------------------------------------------------
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 110
acl Safe_ports port 25
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl Safe_ports port 901
acl Safe_ports port 1025-65535
acl Safe_ports port 3389
acl purge method PURGE
acl CONNECT method CONNECT
#
# -----------------------------------------------------------------------------
# PROIBE ACESSO AS PORTAS NAO LISTADAS ACIMA
# -----------------------------------------------------------------------------
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#
# -----------------------------------------------------------------------------
# DESATIVA A VERIFICACAO DE LETRAS MAIUSCULAS E MINUSCULAS
# -----------------------------------------------------------------------------
auth_param basic casesensitive off
#
# -----------------------------------------------------------------------------
# CONFIGURACOES BASICAS
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
# POLITICA DE ACESSO POR USUARIO, HORARIO, IPS, PALAVRAS E DOMINIOS
# -----------------------------------------------------------------------------
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
#
# -----------------------------------------------------------------------------
# REGRA QUE LIBERA ACESSO TOTAL A INTERNET POR IP MENOS AOS SITES BLOQUEADOS
# -----------------------------------------------------------------------------
acl ips_liberados src "/etc/squid/acls/liberados/ips"
http_access allow ips_liberados
#
# -----------------------------------------------------------------------------
# REGRA QUE BLOQUEIA ACESSO TOTAL A INTERNET (BLOQUEIA IP PARA ACESSO)
# -----------------------------------------------------------------------------
acl ips_bloqueados src "/etc/squid/acls/bloqueados/ips"
http_access deny ips_bloqueados
#
# -----------------------------------------------------------------------------
# AUTENTICACAO DE USUARIOS PARA ACESSO A INTERNET
# -----------------------------------------------------------------------------
auth_param basic program /usr/lib/squid/ncsa_auth /usr/local/squid/etc/passwd
auth_param basic realm Proxy server Fabio Vieira. ATENCAO! Ao digitar seu login e senha o usuario declara estar ciente do conteudo acessado na internet.
auth_param basic credentialsttl 1 hours
# auth_param basic children 5
#
# -----------------------------------------------------------------------------
# PEDE A AUTENTICACAO NO PROXY
# -----------------------------------------------------------------------------
acl autenticados proxy_auth REQUIRED
#
# -----------------------------------------------------------------------------
# LIBERA O ACESSO NA HORA DO ALMOCO
# -----------------------------------------------------------------------------
alc almoco time 12:00-13:00
acl acesso_full url_regex -i "/etc/squid/acls/almoco"
http_access allow acesso_full almoço
#
# -----------------------------------------------------------------------------
# DEFINE O CAMINHO DO ARQUIVO DE USUARIOS LIBERADOS
# -----------------------------------------------------------------------------
acl user_liberados proxy_auth "/etc/squid/acls/liberados/usuarios"
http_access allow user_liberados
#
# -----------------------------------------------------------------------------
# DEFINE OS USUARIOS TOTALMENTES LIBERADOS
# -----------------------------------------------------------------------------
acl user_total proxy_auth "/etc/squid/acls/liberados/usuarios_total"
http_access allow user_total
#
# -----------------------------------------------------------------------------
# DEFINE O CAMINHO DO ARQUIVO DE SITES LIBERADOS
# -----------------------------------------------------------------------------
acl dominios_liberados dstdomain -i "/etc/squid/acls/liberados/dominios"
http_access allow dominios_liberados
#
# -----------------------------------------------------------------------------
# DEFINE O CAMINHO DO ARQUIVO DE PALAVRAS LIBERADAS
# -----------------------------------------------------------------------------
acl palavras_liberadas url_regex -i "/etc/squid/acls/liberados/palavras"
http_access allow palavras_liberadas
#
#------------------------------------------------------------------------------
# DEFINE DLLs E DOMINIOS LIBERADOS PARA O MSN-PROXY
# -----------------------------------------------------------------------------
acl msn_proxy url_regex sqmserver.dll contacts.msn.com login.live.com
http_access allow msn_proxy
#
# -----------------------------------------------------------------------------
# DEFINE O CAMINHO DO ARQUIVO DE USUARIOS BLOQUEADOS
# -----------------------------------------------------------------------------
acl user_bloqueados proxy_auth "/etc/squid/acls/bloqueados/usuarios"
http_access deny user_bloqueados dominios_liberados
#
# -----------------------------------------------------------------------------
# DEFINE O CAMINHO DO ARQUIVO DE SITES BLOQUEADOS
# -----------------------------------------------------------------------------
acl dominios_bloqueados dstdomain -i "/etc/squid/acls/bloqueados/dominios"
http_access deny dominios_bloqueados user_liberados
#
# -----------------------------------------------------------------------------
# DEFINE O CAMINHO DO ARQUIVO DE PALAVRAS BLOQUEADAS
# -----------------------------------------------------------------------------
acl palavras_bloqueadas url_regex -i "/etc/squid/acls/bloqueados/palavras"
http_access deny palavras_bloqueadas user_liberados
#
# -----------------------------------------------------------------------------
# DEFINE O CAMINHO DO ARQUIVO DE EXTESOES BLOQUEADAS
# -----------------------------------------------------------------------------
acl extensoes url_regex -i "/etc/squid/acls/bloqueados/extensoes"
http_access deny extensoes user_bloqueados
#
# -----------------------------------------------------------------------------
# DEFINE O CAMINHO DO ARQUIVO QUE BLOQUEIA DOMINIOS DO MSN
# -----------------------------------------------------------------------------
acl msn url_regex -i "/etc/squid/acls/bloqueados/msn_dominios"
http_access deny msn
#
# -----------------------------------------------------------------------------
# LIBERACAO DE ACESSO AO SQUID NA REDE LOCAL
# -----------------------------------------------------------------------------
acl redelocal src 192.168.0.0/255.255.255.0
http_access deny redelocal
#
# -----------------------------------------------------------------------------
# BLOQUEIA TODO RESTANTE
# -----------------------------------------------------------------------------
no_cache deny SSL_ports
http_access deny all

Criando o arquivo que irá armazenar os logins e senhas dos usuários do proxy
Digite:

# mkdir /usr/local/squid
# mkdir /usr/local/squid/etc
# touch /usr/local/squid/etc/passwd
# chmod 777 /usr/local/squid/etc/passwd


Criar arquivo de cache dos diretórios:

# mkdir /var/cache/squid
# chmod 777 /var/cache/squid


Pastas das ACLs:

# mkdir /etc/squid/acls

# mkdir /etc/squid/acls/bloqueados

# mkdir /etc/squid/acls/liberados

ACLs:

# touch /etc/squid/acls/almoco
# touch /etc/squid/acls/bloqueados/domínios
# touch /etc/squid/acls/bloqueados/extensões
# touch /etc/squid/acls/bloqueados/ips
# touch /etc/squid/acls/bloqueados/msn_dominios
# touch /etc/squid/acls/bloqueados/palavras
# touch /etc/squid/acls/bloqueados/usuarios
# touch /etc/squid/acls/liberados/domínios

# touch /etc/squid/acls/liberados/ips
# touch /etc/squid/acls/liberados/ips_msn_direto
# touch /etc/squid/acls/liberados/palavras
# touch /etc/squid/acls/liberados/usuários
# touch /etc/squid/acls/liberados/usuários_total


Aplique permissão total sobre os arquivos e pastas criadas:

# cd /etc/squid
# chmod 777 * -R

Edite os arquivos e bloqueie os usuários, sites e palavras ao seu gosto:

Exemplo:

# vi /etc/squid/acls/liberados/ips
# vi /etc/squid/acls/bloqueados/ips
# touch /var/log/squid/access.log
# chmod 777 /var/log/squid/access.log


Reinicie o Squid e você verá que já pode adicionar o proxy ao seu navegador e irá pedir usuário e senha, lembrando que seu proxy deve estar como IP do servidor e a porta selecionada:

$ sudo /etc/init.d/squid restart

Exemplo abaixo da reinicialização do mesmo:

* Restarting Squid HTTP proxy squid
* Waiting...
* ...
* ...
* ...
* ...
* ...
* ...
...done.
...done.

Criando os usuários e senha para acesso a internet

Obs.: não funciona sem o Apache instalado caso você pule parte do tutorial.

Entre na pasta:

# cd /usr/local/squid/etc

Crie o usuário de seu gosto como comando:

#  htpasswd -c passwd fabio

Digite a senha e confirme. Somente a primeira vez usar o comando com -c para criar usuários. Pronto, na caixa de autenticação do seu navegador você já pode digitar esse usuário criado que o acesso à internet já será liberado

Configuração do SARG
Edite o aquivo /etc/squid/sarg.conf e altere as seguintes linhas.

Localize a linha:

"language"

Por padrão deve estar como "English", mude para "Portuguese" (esta é a linha que define a linguagem padrão do SARG).
language Portuguese

Caso de algum erro ao reiniciar o Squid altere o arquivo para:

languagePartuguese

Procure a linha:

"access_log"

E coloque o caminho e o nome do arquivo de log do Squid, por padrão esse arquivo fica em "/var/log/squid/access.log".

access_log /var/log/squid/access.log

title "Relatório de acesso a internet"

Encontre a linha:

"output_dir"

E coloque "/var/www/sarg". Essa linha define onde o relatório será colocado depois de pronto para que possa ser acessado.

output_dir /var/www/sarg

Para gerar o relatório no SARG com o nome de usuário ao invés do IP, altere a seguinte linha.

Mude por padrão de:

"user_ip yes"

Para "no":

user_ip no

# TAG: Mostrar Usuário
usertab /etc/squid/sarg.usertab

Crie a pasta:

# mkdir /var/www/sarg
# sarg


Instalando script para troca de senhas da internet

Entre na pasta:

# cd /etc/squid
# wget http://prdownloads.sourceforge.net/orsochpasswd/chpasswd-2.2.3.tar.gz?download
# ls
# tar -xvzf chpasswd-2.2.3.tar.gz
# mv chpasswd-2.2.3 chpasswd
# cd chpasswd
# mkdir /var/www/cgi-bin
# mkdir /var/www/cgi-bin/chpasswd


Baixe o patch:

# wget http://sarg.sourceforge.net/htoi.patch
# patch -p0 < htoi.patch
# ./configure --enable-language=Portuguese --enable-cgidir=/usr/lib/cgi-bin
# make
# make install


Edite o arquivo chpasswd.conf:

# vi /usr/local/etc/chpasswd/chpasswd.conf

E altere o parâmetro e descomente:

header "Change your Squid account password"

Para:

header "Alteração de senha da internet"

Para entrar na página de alteração de senha:

http://seu_ip/cgi-bin/chpasswd.cgi


Configurando o .htaccess

Abra o arquivo /etc/apache2/apache2.conf:

# vi /etc/apache2/apache2.conf

Verifique se a linha "AccessFileName" está desta forma:

AccessFileName .htaccess


Agora vamos criar o arquivo .htaccess e jogá-lo dentro do diretório do Sarg. Criar o arquivo .htaccess e acrescentar as linhas descritas:

$ sudo vim /var/www/sarg/.htaccess

Cole as linhas abaixo:

AuthType Basic
AuthName "Digite usuário e senha para ter acesso ao relatório de páginas de acesso a internet"
AuthUserFile /usr/local/squid/etc/.htpasswd
Require valid-user
Satisfy Any


O arquivo de senhas /usr/local/squid/etc/.htpasswd tem que ser criado. Crio este arquivo facilmente com o comando htpasswd da seguinte forma:

# htpasswd -c /usr/local/squid/etc/.htpasswd fabio

Você pode adicionar o usuário que desejar, no exemplo foi fabio

Onde: -c = create new archive, apenas para criar o primeiro usuário que terá acesso aos relatórios do SARG, caso haja necessidade de mais usuários, utilizar o comando mas sem o "-c".


Reinicie o Apache:

# /etc/init.d/apache2 restart
# vi /etc/apache2/sites-enabled/000-default


Copie no final do arquivo, mas antes do fechamento da tag "</VirtualHost>".
<Directory /var/www/sarg>
Deny from all
AuthType Basic
AuthName "Digite usuário e senha para ter acesso ao relatório de páginas acessadas dos usuários da internet"
AuthUserFile /usr/local/squid/etc/.htpasswd
Require valid-user
Satisfy Any
</Directory>


Salve o arquivo e:

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start


Ou:

#/etc/init.d/apache2 restart

Pronto, basta digitar no seu navegador:

http://seu_ip/sarg

E terá o aviso pedindo senha.

Configurando o Samba
Edite o arquivo do Samba:

$ sudo vi /etc/samba/smb.conf

Vou citar um exemplo de configuração do Samba bem simples, afinal tem muito artigo sobre isso na internet, alguns com veto files e lixeira da rede, mas não vou me aprofundar agora, quem sabe em um próximo tutorial.

Entre na pasta onde contem os arquivos do Samba:
# cd /etc/samba
Crie um backup do arquivo original de configuração do Samba:
# cp smb.conf smb.conf.backup

Agora vamos editar o arquivo:
# vi /etc/samba/smb.conf

Apague todo seu arquivo do smb.conf e cole o exemplo abaixo:
global]
   workgroup = SEU_DOMINIO
   server string = DOMINIO - Ubuntu Server Test
   hosts allow = 0.0.0.0/0
   interfaces = lo eth0
   bind interfaces only = yes
   smb ports = 445
   printcap name = /etc/printcap
   load printers = yes
   printing = cups
   log file = /var/log/samba/log.%m
   max log size = 50
   debug level = 1
   security = share
   encrypt passwords = true
   passdb backend = tdbsam
   admin users = root
   client lanman auth = yes
   client ntlmv2 auth = yes
   client schannel = auto
   client signing = auto
   client use spnego = yes
   server schannel = yes
   server signing = yes
   use spnego = yes
   unix charset = iso8859-1
   hide dot files = yes
   level2 oplocks = no
   time server = yes
   socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384
   local master = no
   os level = 3
   domain master = no
   logon path =
   preferred master = no
   domain logons = no
   logon script = logon.bat
   wins support = yes
   dns proxy = yes
   create mask = 0777
   force create mode = 0777
   security mask = 0777
   force security mode = 0777
   directory mask = 0777
   force directory mode = 0777
   directory security mask = 0777
   force directory security mode = 0777
[printers$]
            comment = All Printers
            path = /var/spool/samba
            browseable = yes
            writable = no
            printable = yes
            public = yes
[webserver$]
        path = /var/www
        comment = Webserver
        hosts allow = 192.168.0.1 # Liberação de acesso mediante IPs autorizados
        browsable = yes
        guest ok = yes
        preserve case = yes
             create mode = 0777
             create mask = 0777
             writable = yes
# [exemplo$] Liberão de acesso total ao compartilhamento
#          path = /etc/exemplo
#          comment = Exemplo
#          writable = yes
#          guest ok = yes
#           browseable = yes
# [exemplo2$] Liberação de acesso mediante login
#          comment = Exemplo2
#          path = /var/www
#          valid users = root,suporte
#           write list = root,suporte

Salve o arquivo e reinicie o Samba:

# /etc/init.d/samba restart

Agora você já pode acessar seu servidor em alguma máquina na rede \\ip_servidor\nome_pasta$ e as pastas compartilhadas já estarão lá!

Caso queira deixar mais fácil e se aprofundar mais você pode usar o Swat dessa maneira:

# vi /etc/inetd.conf

Veja se existe essa linha, se não existir adicione, se estiver comentada, descomente-a:
swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat

Agora reinicie o serviço:

$ sudo /etc/init.d/xinetd restart

Já pode ser acessado via:

http://ip_servidor:901
A senha que vai pedir é do root.

Configurando o CUPS
Altere as linhas do arquivo:

# vi /etc/cups/cupsd.conf

"Listen localhost:631"

Para:
port 631

Reinicie o CUPS:

# /etc/init.d/cupsys restart

Agora já pode ter acesso pelo IP http://ip_do_servidor:631, mas com o erro 403 Forbidden.


Vamos agora dar permissão para acesso ao CUPS.

# vi /etc/cups/cupsd.conf

E altere as linhas conforme abaixo:
# Show shared printers on the local network.

Browsing On
DefaultAuthType Basic
< Location />
Allow From 192.168.0.1
Allow all
< /Location>

E, para termos acesso às paginas de administração:
# Restrict access to the server...

< Location />
Order allow,deny
Allow From 192.168.0.1
< /Location>

# Restrict access to the admin pages...

< Location /admin>
Allow From 192.168.0.1
Allow all
< /Location>

Agora reinicie o serviço:

# /etc/init.d/cupsys restart

Pronto, já pode acessar o CUPS sem o erro 403 pelo endereço do seu servidor na porta 631, lembrando que o IP acima 192.168.0.1 é do meu servidor, altere conforme o IP do seu.

Agora é só adicionar uma impressora conectada à ele na tela do CUPS em "add printer" e depois de concluído só acessar de uma máquina \\ip_servidor e você verá as pastas compartilhadas do Samba e a impressora instalada pelo CUPS. :)

Algumas dicas

Para configurar sua máquina para usar um servidor DHCP ou IP fixo:

# ifconfig -a
# vi /etc/network/interfaces
Para IP com DHCP

auto eth0
iface eth0 inet dhcp

Ou:
Para IP Fixo

auto eth1 iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254
Ou até mesmo configuração de IP direto, sem editar o arquivo interfaces:

# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
# route add default gw 192.168.0.254


Por último, para configurar o DNS, edite o arquivo:

# vi /etc/resolv.conf

Preencha da seguinte maneira:
nameserver DNS Externo

Mude tudo de acordo com sua rede. Essas dicas são apenas para caso você não lembre como configurar a rede via terminal.

MSN-Proxy no Ubuntu Server.

Instalação e configuração

Agora vamos instalar o MSN-Proxy para controlar os acessos ao MSN.

Andes de mais nada vamos alterar algumas configurações no PHP.INI
# vi /etc/php5/apache2/php.ini

Altere:

safe_mode = On
safe_mode_gid = On
register_globals = On
display_errors = On
Instalando os compiladores e lib do MySQL:

# apt-get install make gcc g++
# apt-get install -f libmysqlclient15-dev

Instalando MSN Proxy
Tenha os arquivos no servidor:

Instalando libvent:

# wget http://monkey.org/~provos/libevent-1.3d.tar.gz
# tar -vxzf libevent-1.3d.tar.gz
# cd libevent-1.3d
# ./configure
# make
# make install
# cd /usr/lib/
# ln -s /usr/local/lib/libevent-1.3d.so.1


Instalando o MSN Proxy:

# wget http://ufpr.dl.sourceforge.net/sourceforge/\
msn-proxy/msn-proxy-0.6.1-mysql.tar.gz

# tar -vxzf msn-proxy-0.6.tar.gz
# cd msn-proxy
# vim Makefile


Comente as linhas do FreeBSD e altere as do Linux.
MYSQLINC=/usr/lib/mysql
MYSQLLIB=/var/lib/mysql/mysql

# make
# make install
# mkdir /var/www/msn-proxy
# cp -R php /var/www/
# mv /var/www/php /var/www/msn-proxy
# vim /var/www/msn-proxy/mysql.inc.php


Altere
$host = "localhost";
$user = "root";
$pass = "SENHA-DO-MYSQL";
$db = "msn-proxy";
$port = 3306;

# vi /usr/local/etc/msn-proxy/mysql/conf

Deixe assim:
localhost|3306|root|SENHA-DO-MYSQL|msn-proxy

# mysql -p
(e digite a senha do root)
mysql> CREATE DATABASE `msn-proxy`;
mysql> quit

# /usr/local/bin/msn-proxy

Se tudo ocorrer bem, terá a seguinte mensagem:

PUBLIC ACCESS on /usr/local/etc/msn-proxy/mysql/conf should be removed !!!¹
fail to read mysql config (check defaults table)

# chmod 600 /usr/local/etc/msn-proxy/mysql/conf
# vim /usr/local/etc/msn-proxy/msn-proxy.conf


-> max_clients=10
Por padrão vem controle para até 10 usuários, altere de acordo com suas necessidades.

Direcionamento da porta 1863 do msn:

# /sbin/iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1863 -j REDIRECT --to-port 1863

Configurando o IP da sua rede no banco de dados, onde 192.168.0.1 é o IP da placa ligada na rede dos clientes.

# mysql -p
(e digite a senha do root)
mysql> use msn-proxy;
mysql> show tables;

Com esse comando você confere se está mesmo na base de dados msn-proxy, se estiver irá aparecer isso:

+-----------------------------+
| Tables_in_msn-proxy |
+-----------------------------+
| contact_groups           |
| contacts                      |
| defaults                       |
| log                               |
| sb                                |
| users                           |
+-----------------------------+

 mysql> INSERT INTO `defaults` ( `internal_host` , `connect` , `save_msg` , `save_contacts` , `commands` , `warnemail` , `warndn` , `warnmsg` , `msgfont` , `msgcolor` )
VALUES (
'192.168.0.1', 'YES', 'YES', 'YES', '0', admin@admin.com.br, 'Administrador do Sistema', 'Para sua segurança esta mensagem esta sendo monitorada.', 'Arial', 'black'
);


verificando se gravou:

mysql> SELECT * FROM `defaults`;

| 192.168.0.1 | YES | YES | YES | 0 | admin@admin.com.br | Administrador do Sistema | Para sua segurança esta mensagem esta sendo monitorada. | Arial | black |
1 row in set (0.00 sec)

Se essa foi a reposta, está tudo pronto!

mysql> quit

Iniciando MSN Proxy:

# /usr/local/bin/msn-proxy &
# /usr/local/bin/msn-proxy -d &
(-d para ver os logs)

Carregando na inicialização:

Crie um arquivo com o seguinte conteúdo, ex.:

# vim /etc/init.d/msn-proxy.sh
Inclua as linhas abaixo:

#!/bin/bash
/usr/local/bin/msn-proxy -b &
echo "MSN-Proxy Inicializado"

# cd /etc/init.d/
# chmod 755 /etc/init.d/msn-proxy.sh
# update-rc.d msn-proxy.sh defaults 80



Instalação do gerenciador do Proxy Web e Monitoramento de Servidores

Agora vamos colocar em nosso servidor web o arquivo para gerenciamento do Proxy Squid e Monitoramento de Servidores:

Desenvolvi os sistemas em PHP com imagens em PNG e Javascript, totalmente editável de acordo com suas necessidades.

Antes de realizar o donwload dos arquivo vamos dar permissão para que o PHP consiga alterar arquivos do sistema:

Edite o arquivo abaixo:

# visudo -f /etc/sudoers

Adicione essa linha no fim do arquivo:

www-data ALL=NOPASSWD:/usr/sbin/squid -k reconfigure, NOPASSWD:/usr/bin/sort

Obs.: Sem essa alteração as páginas html não conseguirão dar um refresh nas regras
do Squid para aplicar os bloqueios ou liberações.

Agora basta realizar o download dos sistemas no link abaixo e descompactar dentro da pasta /var/www do seu servidor Linux:

http://sourceforge.net/projects/fabioovieira/files/

Aplique permissão total nos arquivos que você realizou o download:

# cd /var/www
# chmod 777 * -R

Entre com os seguintes endereços para visualização.

http://Ip_do_servidor/lmanager

Entre com a senha padrão:

User: admin
Senha: 123456

Para alterar a senha de acesso basta editar o arquivo:

# vi /var/www/lmanager/valida_login.php

Altere a linha 24.

Neste endereço você poderá controla o Proxy Squid.

Sistema de Monitoramento de Servidores

Para visualizar o sistema de monitoramento que você realizou o donwload e descompactou basta acessar o seguinte endereço:

http://Ip_do_servidor/monitoramento

Esse Script basea-se em Ping e Porscanners nos endereços de IP dos servidores que você possui.

para editar os nomes dos Servidores e endereços de IP basta editar o arquivos:

# vi /var/www/monitoramento/index.php


Bom pessoal, é isso aí, espero que gostem. Dúvidas? Estamos aí para tentar resolver.

Um forte abraço!

Um comentário: