Páginas

Oito anos de testes

shyrul@debian:~$ A grande idéia de postar tudo aqui, veio do simples fato de que depois de 8 anos de pesquisas, testes e muitos clientes satisfeitos, eu nunca tinha juntado todo o material que consegui com o decorrer do tempo, em um só lugar. A gente ai ficando velho e acaba esquecendo de coisas básicas. E também gostaria de deixar minha contribuição para todos.

.

segunda-feira, 30 de maio de 2011

Instalando o Cacti no FreeBSD

Cacti é uma solução gráfica completa rede projetada para aproveitar o poder do RRDTool armazenamento de dados e funcionalidade gráfica. Cacti proporciona um poller rápida e avançada gráfico templating, vários métodos de aquisição de dados e recursos de gerenciamento de usuários fora da caixa. Tudo isso é envolvido em um intuitivo e fácil de usar interface que faz sentido para as instalações LAN porte até redes complexas, com centenas de dispositivos.


Mãos a Obra !!! 
Antes de instalar o Cacti será necessário instalar o famoso FAMP (FreeBSD + Apache + MySQL + PHP)  e o rrdtool também.
Para a instalação do FAMP iremos utilizar o ports (/usr/ports).
Instalando MySQL
A instalação do MySQL é bem simples, basta executar os comandos abaixo:
# cd /usr/ports/databases/mysql51-server/
# make install clean
# mysql_install_db –user=mysql
Subindo o MySQL:
# mysqld_safe –user=mysql &
Instalando Apache
Para instalar o Apache execute os comandos abaixo:
# cd /usr/ports/www/apache22
# make install clean
Agora vamos subir o apache com o comando:
# apachectl start   
Verificando se o apache subiu:
# netstat -na -f inet | grep 80
Que estranho o apache não subiu. Vamos verificar o log:
# tail /var/log/httpd-error.log
[Wed Oct 15 15:31:20 2008] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Wed Oct 15 15:31:20 2008] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of “free”
Configuration Failed
Para resolver este problema é simples, basta editar o arquivo [i]/etc/hosts[/i] com o hostname da máquina, no exemplo o hostname é free:
# vi /etc/hosts
Procure pela linha 127.0.0.1 e a deixe assim:
127.0.0.1               free localhost localhost.my.domain
Caso queira que toda a vez que máquina for reiniciada subir com o hostname é necessário editar o arquivo [i]/etc/rc.conf[/i]:
free# vi /etc/rc.conf
E adicionar a seguinte linha (mude o free para o nome desejado):
hostname=”free”
Vamos tentar subir o apache novamente (não precisa se preocupar com os warnings):
free# apachectl start
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
[Wed Oct 15 15:46:29 2008] [warn] (2)No such file or directory: Failed to enable the ‘httpready’ Accept Filter
Verificando se subiu:
free# netstat -na -f inet | grep 80
tcp46      0      0  *.80                   *.*                    LISTEN
Apache instalado!!
 Instalando PHP
Para instalar o PHP será necessário instalar algumas libs. Siga os comando abaixo para a instalação de todas as libs do PHP:
free# cd /usr/ports/lang/php5/
free# make install clean
Selecione a opção:
[X] APACHE    Build Apache module
Será necessário instalar outras libs, segue abaixo as libs necessárias:
free# cd /usr/ports/databases/php5-mysql/
free# make install clean
free# cd /usr/ports/devel/php5-pcre
free# make install clean
free# cd /usr/ports/www/php5-session/
free# make install clean
free# cd /usr/ports/net/php5-sockets/
free# make install clean
free# cd /usr/ports/net-mgmt/php5-snmp/
free# make install clean
free# cd /usr/ports/textproc/php5-xml
free# make install clean
PHP instalado!!
Instalando RRDTool
Execute os comandos abaixo:
free# cd /usr/ports/databases/rrdtool
free# make install clean
RRDTool instalado!!
Configurando Apache para ter suporte ao PHP
Procure pela linha DirectoryIndex index.html e deixe assim:
DirectoryIndex index.html index.php   
Procure por AddType e adicione as linhas:
AddType application/x-httpd-php .php
AddType application/x-httpd-source .phps
Para testar vamos ao diretório do Apache e criar um arquivo phpinfo.php para testar o PHP:
free# cd /usr/local/www/apache22/data
free# vi phpinfo.php


    Agora estamos pronto para instalar o cacti. A versão do cacti utilizada foi a 0.8.7b.
Vamos voltar ao diretorio raiz e baixar o cacti:
free# cd
free# wget http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz
bash: wget: command not found
Ops!! Precisamos instalar o wget:
free# cd /usr/ports/ftp/wget
free# make install clean
Pronto, agora podemos baixar o cacti:
free# cd
free# wget http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz
–17:25:36–  http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz
           => `cacti-0.8.7b.tar.gz’
Resolving www.cacti.net… 66.59.109.191
Connecting to www.cacti.net|66.59.109.191|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 2,005,650 (1.9M) [application/x-gzip]
100%[===========================================================================================>] 2,005,650    182.33K/s    ETA 00:00
17:25:52 (128.99 KB/s) – `cacti-0.8.7b.tar.gz’ saved [2005650/2005650]
 Descompactar, mover para o diretório do Apache e criar um link simbólico:
free# tar zxf cacti-0.8.7b.tar.gz
free# mv cacti-0.8.7b /usr/local/www/apache22/data/
free# cd /usr/local/www/apache22/data/
free# ln -fs /usr/local/www/apache22/data/cacti-0.8.7b/ cacti
Vamos criar as tabelas no banco de dados do cacti:
free# cd /usr/local/www/apache22/data/cacti
free# mysqladmin create cacti
free# mysql cacti < cacti.sql Vamos criar o user cactiuser para acesso as tabelas do cacti (como não definimos nenhuma senha para o user root a senha está em branco): free# mysql -u root -p Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.22-rc FreeBSD port: mysql-server-5.1.22 Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer. mysql> GRANT ALL PRIVILEGES ON cacti.* to cactiuser@localhost IDENTIFIED BY ‘suasenha’;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
free#
Agora vamos editar o arquivo para configurar o user do banco de dados que o cacti irá usar:
free# pwd
/usr/local/www/apache22/data/cacti-0.8.7b
free# vi include/config.php   
Procure pelo seguinte trecho:
$database_type = “mysql”;
$database_default = “cacti”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactiuser”;
$database_port = “3306″;   
Modifique as linhas que forem necessárias, neste exemplo apenas a linha [i]$database_password = “cactiuser”;[/i] deverá ser mudada:
$database_password = “suasenha”;
Bom agora vem a parte legal, vamos subir o cacti. Digite o endereço do server no browser com o /cacti, por exemplo, http://172.16.20.200/cacti
Seleciona uma New Install e clique em Next.
Verifique se todos os campos estão com [OK: FILE FOUND], caso não esteja verifique a instalação dos pacotes e libs citados no tutorial. Clique em Finish.
Deverá aparecer a tela de login, por padrão o user é admin e a senha é admin. Logo que logar será solicitado para mudar a senha.
Modifique a senha se clique em [i]Save[/i]. E a tela do cacti será aberta como mostra a imagem abaixo:
PRONTO!!!!! O cacti está instalado. Agora vamos instalar o [i]Plugin Architecture v2.1[/i] que possibilita instalar outros plugins adicionando ainda mais as funcionalidades do cacti.
Para instalar o Plugin Architecture basta seguir os passos a seguir:
free# cd
free# wget http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz
–21:12:20–  http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz
           => `cacti-plugin-arch.tar.gz’
Resolving cactiusers.org… 209.189.228.146
Connecting to cactiusers.org|209.189.228.146|:80… connected.
HTTP request sent, awaiting response… 302 Found
Location: http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-arch.tar.gz [following]
–21:12:21–  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-arch.tar.gz
           => `cacti-plugin-arch.tar.gz’
Resolving mirror.cactiusers.org… 208.113.141.142, 209.189.228.147
Connecting to mirror.cactiusers.org|208.113.141.142|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 173,327 (169K) [application/x-tar]
100%[===========================================================================================>] 173,327      189.13K/s            
21:12:22 (188.66 KB/s) – `cacti-plugin-arch.tar.gz’ saved [173327/173327]
free# tar zxf cacti-plugin-arch.tar.gz
free# mv cacti-plugin-arch /usr/local/www/apache22/data/cacti/
    Já baixamos e movemos para a pasta do cacti, agora basta aplicar o patch como mostra abaixo:
free# cd /usr/local/www/apache22/data/cacti/
free# patch -N -p1 < cacti-plugin-arch/cacti-plugin-0.8.7b-PA-v2.1.diff free# mysql cacti < cacti-plugin-arch/pa.sql Plugin Architecture v2.1 instalado. Agora precisamos modificar o arquivo global.phpcom os dados de user e senha no banco de dados. free# vi /usr/local/www/apache22/data/cacti/include/global.php Procure pelas seguintes linhas: $database_type = “mysql”; $database_default = “cacti”; $database_hostname = “localhost”; $database_username = “cactiuser”; $database_password = “cactiuser”; $database_port = “3306″; $config['url_path'] = ‘/’; Modifique as linhas que forem necessárias, neste exemplo apenas as linhas [i]$database_password = “cactiuser”;[/i] e [i]$config['url_path'] = ‘/’;[/i] deveram ser mudadas: $database_password = “suasenha”; $config['url_path'] = ‘/cacti/’; Pronto agora já podemos instalar os plugins que queremos. Vamos instalar como exemplo o [i]Monitor v0.8.2[/i]. Para fazer isso é simples, segue abaixo: free# cd free# wget http://cactiusers.org/downloads/monitor.tar.gz –21:19:07–  http://cactiusers.org/downloads/monitor.tar.gz            => `monitor.tar.gz’
Resolving cactiusers.org… 209.189.228.146
Connecting to cactiusers.org|209.189.228.146|:80… connected.
HTTP request sent, awaiting response… 302 Found
Location: http://mirror.cactiusers.org/downloads/plugins/monitor-0.8.2.tar.gz [following]
–21:19:07–  http://mirror.cactiusers.org/downloads/plugins/monitor-0.8.2.tar.gz
           => `monitor-0.8.2.tar.gz’
Resolving mirror.cactiusers.org… 209.189.228.147, 208.113.141.142
Connecting to mirror.cactiusers.org|209.189.228.147|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 241,873 (236K) [application/x-gzip]
100%[===========================================================================================>] 241,873      201.60K/s            
21:19:09 (201.22 KB/s) – `monitor-0.8.2.tar.gz’ saved [241873/241873]
free# tar zxf monitor-0.8.2.tar.gz
free# mv monitor /usr/local/www/apache22/data/cacti/plugins/
Só falta modificar o [i]global.php[/i] adicionando o plugin, desta forma:
free# vi /usr/local/www/apache22/data/cacti/include/global.php
Procure pelo seguinte trecho (que vai estar logo abaixo da configuração do banco de dados):
$plugins = array();
//$plugins[] = ‘thold’;
Para adicionar o plugin coloque a seguinte linha:
$plugins[] = ‘monitor’;
Plugin adicionado!! Será necessário “ativar” o plugin na interface do cacti. No menu da esquerda selecione a opção User Management:
Selecione o usuário admin ou o usuário que poderá visualizar o monitor
Na parte do [i]Realm Permissions[/i], selecione os check box [i]Plugin Management[/i] e [i]View Monitoring[/i]
Note a aba Monitor que apareceu no menu superior

Instalando e configurando Samba e Swat no FreeBSD


O Samba (www.samba.org) é o serviço que promove a integração entre sistemas Unix e Windows em uma rede. Trabalha com o protocolo SMB, o qual o Windows utiliza nativamente, possibilitando desta forma que tenhamos um ambiente com ambas as plataformas interagindo. O Samba foi originalmente criado por Andrew Tridgell, em 1991. Nosso foco será utilizar o Samba como controlador de domínio, servidor de arquivos e autenticação de clientes Windows.
SMB significa Server Message Block, e é o protocolo utilizado pelos sistemas Windows para comunicação e compartilhamento de recursos via rede. O Samba utiliza SMB sobre TCP para compartilhamento de arquivos e UDP para browsing. A Microsoft utiliza no Windows 2000 em diante uma versão melhorada do protocolo SMB, chamada CIFS - Common Internet File System, que também é suportada pelo Samba.

Faça o download do source da última versão estável do Samba, através de algum dos mirrors listados no site. O arquivo tem o nome samba-latest.tar.gz. Pode-se fazer o download a partir dehttp://us1.samba.org/samba/ftp/samba-latest.tar.gz. A versão atual é 3.0.1. Descompacte o arquivo no /tmp, será criado o diretório samba-3.0.1, acesse-o. Execute os seguintes comandos:
# cd source
# ./configure
# make
# make install
O Samba será instalado em /usr/local/samba. Temos apenas dois daemons, o smbd e o nmbd, que ficam em /usr/local/samba/sbin. O smbd é o responsável por controlar os compartilhamentos de arquivos assim como autenticação e autorização dos clientes. O nmbd auxilia com o browsing da rede e trabalha com NetBIOS (Network Basic Input/Output System) e WINS.
Como os executáveis do Samba são instalados em um diretório diferente do padrão, deve ser ajustado o valor da variável PATH. Para isso, edite o arquivo /root/.profile ou /root/.bash_profile e insira no final da linha iniciada por "PATH" o seguinte valor:
:/usr/local/samba/bin:/usr/local/samba/sbin
Junto com o Samba é instalado o SWAT, que significa Samba Web Administration Tool. Como o próprio nome diz, é uma ferramenta para configurar o Samba a partir de qualquer navegador. Para habilitar esta ferramenta, basta inserir ou ajustar a seguinte linha no arquivo /etc/inetd.conf:
swat stream tcp nowait/400 root /usr/local/samba/sbin/swat swat
Após isso, reinicie o inetd, através do comando "killall -HUP inetd". O SWAT pode ser acessado a partir do endereço http://servidor:901, então entre com o login e senha do root. Se o SWAT não for utilizado é recomendado deixá-lo desativado, para evitar qualquer problema se segurança.
As portas utilizadas pelo Samba são:
netbios-ns 137/udp # NETBIOS Name Service
netbios-dgm 138/udp # NETBIOS Datagram Service
netbios-ssn 139/tcp # NETBIOS Session Service
microsoft-ds 445/tcp # Microsoft-DS
O arquivo de configuração do Samba chama-se smb.conf, e fica no diretório /usr/local/samba/lib. Possui muitas opções, possibilitando inúmeras configurações diferentes, cada uma atendendo ao propósito do servidor que está sendo configurado. Todas opções e variáveis são bem explicadas na sua man page, acessível pelo comando "man smb.conf". Segue abaixo um arquivo exemplo utilizado nesta instalação, adapte o que for necessário:
-------------------- Arquivo smb.conf --------------------# smb.conf
# Contexto geral.
[global]
# Nome NetBIOS do servidor.
netbios name = SERVTESTE
# Nome do domínio.
workgroup = TESTE
# Descricao do servidor.
server string = Servidor de Arquivos
# Interfaces de rede.
interfaces = 192.168.0.10, 127.0.0.1
# Limita o Samba a utilizar somente as interfaces mencionadas
# acima.
bind interfaces only = yes
# Hosts permitidos a conectar.
hosts allow = 192.168.0.0/255.255.0.0, 127.
# Opcoes de socket, para ajuste das conexoes em camada de rede.
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
# Nivel de "auto-propaganda" na eleicao de controlador
# de dominio.
os level = 33
# O servidor eh o preferido na eleicao para controlador
# de dominio.
preferred master = Yes
# Permitir logon no domínio de maqs Win9x.
domain logons = Yes
# Diretorio home que sera mapeado quando alguma maq. logar
# no dominio. O valor da variavel %U sera o nome de usuario
# da sessao.
logon home = \\servteste\%U
# Unidade a qual mapear o diretorio home. Usado apenas em WinNT.
logon drive = L:
# Local onde os perfis ambulantes sao armazenados. Se deixado
# em branco ira desabilitar os perfis. Podem ser utilizadas
# variaveis.
logon path =
# Script executado quando o usuario logar.
logon script = %U.bat
# Usuario(s) administrador do dominio.
admin users = root

# Local do arquivo de senhas do Samba.
smb passwd file = /usr/local/samba/private/smbpasswd
# Quando trocar a senha do Samba trocar a do sistema tambem.
unix password sync = Yes
# Programa utilizado para troca a senha do sistema.
passwd program = /usr/bin/passwd %u
# Dialogo para a troca de senha do sistema. A variavel %n sera
# a nova senha.
passwd chat = *New*password* %n\n *Retype*password* %n\n *done*
# Utilizar senhas encriptadas no login.
encrypt passwords = Yes
# Nivel de log (0-10). Quanto maior mais informacoes
# serao logadas.
log level = 1
# Tamanho maximo em KB de cada arquivo de log.
max log size = 2048
# Arquivo de log. A variavel %m sera o nome da maq. cliente.
log file = /var/log/samba/log.%m

# Funcionar como servidor de hora para clientes Windows.
time server = Yes

# Mascara da permissoes dos arquivos criados pelos clientes.
create mask = 0660
# Mascara das permissoes dos diretorios criados pelos clientes.
directory mask = 0770
# Arquivos ou diretorios ignorados nos compartilhamentos.
veto files = /mail/
# Pagina de codigos utilizada pelo servidor.
unix charset = CP850
# Pagina de codigos utilizada nas mensagens do Samba.
display charset = CP850
# Compartilhamento dos diretorios home.
[homes]
# Comentario, descricao.
comment = Diretorio Pessoal
# Ajuste "No" para permitir gravacao.
read only = No
# Nao ira ser anunciado no dominio.
browseable = No
# Compartilhamento Netlogon
[netlogon]
# Caminho no servidor.
path = /usr/local/samba/lib/netlogon
# Permite usuarios anonimos.
guest ok = Yes
browseable = No
# Compartilhamento utilizado, caso habilitado acima,
# para os perfis ambulantes.
[profiles]
# A variavel %H sera o diretorio home do usuario.
path = /%H/Perfil
read only = No
guest ok = Yes
browseable = No
# Compartilhamento do CD-ROM do servidor.
[cdrom]
comment = Drive CD-ROM
path = /cdrom
guest ok = Yes
-------------------- Fim do arquivo smb.conf --------------------
De acordo com esta configuração, os logs serão armazenados em /var/log/samba, então este diretório deverá ser criado manualmente. O arquivo de log do smbd será log.smbd, o do nmbd será log.nmbd e para cada máquina cliente será criado um arquivo no formato log.hostname. O tamanho máximo destes arquivos será 2 MB, quando este limite for excedido o arquivo atual será renomeado com a extensão ".old", e será criado um novo arquivo. Se já houver outro ".old", este será excluído.
Com esta configuração, o nosso servidor será o PDC (Primary Domain Controller) para o domínio TESTE. Para cada máquina ou usuário que irá participar deste domínio, deve ser cadastrada uma conta no sistema e também uma conta no Samba.
Adicione um grupo para as contas de máquinas no sistema, com o nome "maquinas", ou qualquer outro:
# pw group add maquinas -g 160
Para adicionar as contas de máquinas, utilize os seguintes comandos:
# pw user add maquina1$ -c "Conta de Maquina" -d "/nonexistent" -s "/sbin/nologin" -g 160
# smbpasswd -a -m maquina1
Note que as contas de máquinas no sistema devem ser cadastradas com o hostname da máquina cliente seguido de cifrão ($). O parâmetro "-a", no smbpasswd, especifica que estamos fazendo um novo cadastro. Já o "-m" indica que estamos cadastrando uma conta de máquina.

Os cadastros de usuários são feitos da mesma forma como sempre, no sistema. Apenas deve-se cadastrar a senha de usuário do domínio com o comando smbpasswd, da seguinte forma:
# smbpasswd -a usuario1
Insira a senha do usuário, que será posteriormente utilizada para login nas máquinas clientes.
Para inserir as máquinas clientes no domínio, deve-se proceder da mesma forma como se fosse um PDC Windows. Quando solicitada uma conta de administração do domínio, deve-se inserir login e senha do root. Há apenas uma ressalva no Windows XP, deve-se editar o registro e alterar o valor de duas chaves, ou apenas executar o arquivo abaixo:
-------------------- Arquivo winxp.reg --------------------Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters] 
"requiresignorseal"=dword:00000000
"signsecurechannel"=dword:00000000

-------------------- Fim do arquivo winxp.reg --------------------


Configurando o Samba no FreeBSD

Neste artigo, estaremos configurando o Software SAMBA para compartilhamento de serviços e arquivos em um Sistema FreeBSD 4.7, o mesmo deverá funcionar com versões não muito anteriores ou posteriores. Se você não tem o samba instalado no seu FreeBSD, você pode instalá-los de duas formas: pelos ports ou via CD de instalação do Sistema. Existe também a opção de compilar os fontes, baixando os pacotes do http://www.samba.org, mas não enfatizaremos esta opção, levando em consideração a praticidade de instala-los via ports ou via CD.
Passos para instalar via CD
- Primeiramente monte o CD:
# mount –t cd 9660 /dev/acd0c /cdrom
depois, navegue pelo caminho onde estao os arquivos do samba, no meu caso o caminho foi:
# cd /cdrom/packages/net/samba-xxx.xxx.xxx
Para instalá-lo, use o comando de instalação do FreeBSD:
# pkg_add samba-xxx.xxx.xxx
Passos para instalar via ports:
# cd /usr/ports/net/samba
# make
# make install
# make clean
ou melhor
# make && make install && make clean
Pronto, agora é so esperar ele fazer o download do servidor, compilar os pacotes, instalar e limpar os fragmentos, em seguida o seu Samba já vai estar instalado em seu sistema.
Inicializando o SAMBA
Você pode inicializar o samba pelo shell, mas mostraremos como fazê-lo iniciar pelo modo autmotático, no carregamento do sistema.
Localize o script de inicialização do samba com o comando:
# find / -iname samba.sh.sample
Normalmente o samba instala-o em: /usr/local/etc/rc.d/samba.sh.sample.
em seguida renomei ou copie para o diretório de inicialização:
# cp -v /caminho/do/samba.sh.sample /usr/local/etc/rc.d/
vamos ativar agora o script:
# mv samba.sh.sample samba.sh
# chmod 0755 samba.sh
Se quiser iniciar o samba pelo terminal, digite:
# /usr/local/etc/rc.d/samba.sh start
Para parar os serviços, digite:
# /usr/local/etc/rc.d/samba.sh stop
Pronto, agora o samba iniciará normalmente junto com o sistema ou pelo shell.
Criando os usuários samba e usuários FreeBSD
Utilize o comando adduser para criar o usuário:
# adduser usuario [ENTER]
Na primeira opção (Usernames must match regular expression) digite ENTER para colocar as configurações padrão. Apartir dai, continue dando ENTER para aceitar as configurações do sistema. Quando você chegar na opção de (Enter Username), você especificará o nome do usuário, no nosso caso: usuario, em seguida continue dando ENTER até chegar na parte da senha.
Pronto, iremos agora anexar este usuário criado ao samba com o comando smbpasswd:
# smbpasswd -a usuario [ENTER]
ATENÇÃO: A senha tem que ser a mesma do usuário criado com o comando adduser.
Configurando o smb.conf
Edite o arquivo smb.conf em usr/local/etc/smb.conf com o editor de sua preferência. Para configurar o smb.conf (o arquivo de configuração do SAMBA) é necessário estar por dentro de algumas informações, para que você consiga adequar ao seu tipo de rede. Estarei mostrando aqui o básico, para que seu servidor funcione de maneira eficaz. Abaixo estarei listando as principais variáveis do arquivo smb.conf. Deixa-as nesse padrão logo abaixo, para que possamos trabalhar com o servidor SMB (protocolo do samba):
SEÇÃO GLOBALS
# Grupo de trabalhos de sua rede.
workgroup = GRUPO
# O nome de seu host para a rede.
netbios name = MICRO
# Uma descrição do host SAMBA.
Server string = Servidor de arquivos
# Defina como user, afim de compartilhar arquivos e serviços.
Security = user
# Necessário para redes Win9x.
Encrypt password = yes
Local master = yes
Preferred = yes
# Aqui você especifica a sua sub-rede.
Hosts.allow = 192.168.0
# Deixe esta opção por padrão em NO.
Win support = no
# Se você tiver um servidor DNS, coloque o IP dele, caso contrário deixe NO.
Wins server = 192.168.0.1
# Padrão deixar em NO estas opções.
Wins proxy = no
Dns proxy = no
SEÇÃO SHARE
# Nota: O nome compartilha, é o nome da pasta que irá aparecer na rede.
[COMPARTILHA]
# Comentário que aparece na descrição da pasta no acesso a rede Win para o Samba.
comment = Compartilhamento de arquivos
# caminho do compartilhamento.
path = /home/
read only = yes
# Deixe esta opção como NO, afim de que possamos criar os users para acesso, caso contrário, todos terão acesso.
guest ok = no
# Aqui vem o nome do usuário criado que terá acesso a pasta especificada no path.
valid users = usuario
browseable = yes
ACESSANDO A REDE WIN COM O SAMBA
Se tudo deu certo, vamos agora acessar uma maquina Win. Primeiro crie um diretorio na raiz (/):
# mkdir compartilha
para montar o compartilhamento, use os comandos:
- Acessando máquina Windows por IP do host:
# mount_smbfs -I 192.168.0.13 //host_windows98/pasta /compartilha [ENTER]
- Acessando pelo Netbios name da rede Win:
# mount_smbfs -I host_windows98 //host_windows98/pasta /compartilha [ENTER]
Ele vai lhe pedir a senha de acesso, no caso da pasta do host_windows98 tiver senha, digite-a e pronto.
- Se quiser desmontar, use:
# umount //host_windows98/pasta /compartilha
Para acessar nosso servidor SAMBA FreeBSD em maquinas Windows, log com o usuário criado e senhas especificadas.

Script para atualização de hora no FreeBSD


É muito importante a manutenção da hora certa no sistema por diversos motivos, desde o funcionamento de alguns aplicativos até a auditoria de arquivos de log. Para a manutenção da hora devem ser observados dois pontos. O primeiro é utilizar o fuso horário correto, que deve ter sido selecionado já na instalação do sistema. Caso tenha que mudar o mesmo faça-o através do utilitário "tzsetup".
O segundo ponto importante é acertar a hora em si, o que faremos através do protocolo NTP - Network Time Protocol, que utiliza a porta TCP/UDP 123. O comando utilizado é "ntpdate", seguido do nome de um servidor NTP. Por exemplo:
# ntpdate ntp.cert-rs.tche.br
Isso irá acertar a hora do sistema com uma precisão muito boa. O ideal é acertá-la periodicamente, por exemplo uma vez por dia. Isso pode ser feito através do Cron, mas iremos primeiramente criar um script para executar o comando, por motivos de organização. Crie o diretório /usr/local/script, com permissão 700, para armazenar os scripts que serão criados. Então crie o arquivo /usr/local/script/acerta_hora.sh, com a permissão 700 e o seguinte conteúdo:
-------------------- Arquivo acerta_hora.sh --------------------
#!/bin/sh
/usr/sbin/ntpdate ntp.cert-rs.tche.br >> /var/log/acerta_hora.log 2>&1
--------------- Fim do arquivo acerta_hora.sh --------------------
A hora será acertada e as saídas padrão (stdout) e de erro (stderr) do comando serão jogadas no arquivo /var/log/acerta_hora.log, que será o arquivo de log deste script. Para maiores informações sobre o redirecionamento de saídas de comandos, há um resumo na página http://www.seekingfire.com/bitesized/redirection.html.
Para rodar esse script todo dia às 2h (obviamente pode ser escolhido outro horário), edite o arquivo /etc/crontab e insira a seguinte linha:
0 2 * * * root /usr/local/script/acerta_hora.sh
O formato das entradas no arquivo /etc/crontab é o seguinte:
minuto hora dia_do_mes mês dia_da_semana quem comando

Segue abaixo uma lista de alguns servidores NTP que podem ser utilizados:
ntp.cert-rs.tche.br -> Centro de Emergência em Segurança da Rede Tchê
200.20.186.75 -> Observatório Nacional
ntp.cais.rnp.br -> Centro de Atendimento a Incidentes de Segurança da RNP
ntp.pop-rs.rnp.br -> Ponto de Presença da RNP no RS
ntp.nasa.gov -> NASA

domingo, 29 de maio de 2011

Quando o ssh da erro.

Varias vezes, vamos montar um novo servidor, e quando vamos acessar o ssh via terminal de outra maquina com linux, da uma erro como se fosse um ataque e o servidor rejeita. Isso acontece porque a ssh-key do servidor antigo que voce usou muito, ficou gravada no seu ssh. Então vamos imaginar que o ip do seu novo servidor é: 192.168.0.1 então voce vai no terminal e coloca:
#ssh-keygen -R 192.168.0.1
Pronto agora é só usar o comando #ssh root@192.168.0.1

Instalação do Samba e Swat no Debian

Nada de complicado! Pelo contrario... é muito mais fácil que parece.



apt-get install samba smbfs


apt-cache search swat


apt-get install swat


para configuração via swat e só digitar no seu navegador: http://127.0.0.1:901 ou direto pelo smb.conf que fica em /etc/samba/smb.conf


Para adicionar usuários:
#adduser fulado (troque o fulano pelo nome) isso adiciona usuário no sistema
Para adicionar usuários no Samba:
#smbpasswd -a fulano (troque o fulano pelo nome) isso adiciona usuário no samba

Para verificar usuário criados:
#pdbedit -L

Mudar o MAC no Debian e no FreeBSD


BSD

1) Bring down the interface: "ifconfig xl0 down"

2) Enter new MAC address: "ifconfig xl0 link 00:00:00:AA:AA:AA"

3) Bring up the interface: "ifconfig xl0 up"

Linux

1) Bring down the interface: "ifconfig eth0 down"

2) Enter new MAC address: "ifconfig eth0 hw ether 00:00:00:AA:AA:AA"

3) Bring up the interface: "ifconfig eth0 up"

configurar pppoe pelo terminal

Achei isso em arquivos de 7 anos atrás.

primeiro:
#apt-get install pppoe

depois:
#apt-get install pppoeconf

dai:
#pppoecong

segue as instruções na moral e para terminar:
#pon dls-provider

da um:
#plog
ou
#ifconfig ppp0

ve se ta tudo na moral e a net ta configurada para sempre

Principais comandos UNIX LINUX

Não costumo sair de casa sem isto. O streess do dia a dia, a gente sempre esquece algum deste na pior hora possível.


Desintalar programas no FreeBSD


Usei como exemplo o mysql
cd /usr/ports/databases/mysql50-server (see which version you have)
make clean
make
make deinstall
Simples, mas para que não está acostumado é terrivel!

Comandos básicos para quem pretende começar com o FreeBSD

adduser
Cria um novo usuario
cal
Mostra calendario
cat
Mostra o conteudo de um arquivo
cd
Muda de diretorio
chgrp
Altera o grupo de um arquivo ou diretorio
chmod
Altera as permissoes de um arquivo ou diretorio
chown
Altera o proprietario de um arquivo ou diretorio
cmp
Compara dois arquivos e informa as diferencas
cp
Copia um arquivo
cpio
Utilitario de backup
cut
Copia uma coluna especifica de um arquivo
date
Mostra a data e a hora do sistema
dd
Copia discos
df
Mostra informacoes sobre as particoes montadas no sistema
du
Informa o uso (em bytes) do disco/sistema
dump
Utilitario de backup
ee
Editor de textos
fdisk
Editor de particoes
fdformat
Formata um disco
find
Procura por nome, um arquivo ou diretorio
fsck
Procura/Corrige erros em um sistema de arquivos
gdb
Debug
grep
Procura por um string ou palavra
hostname
Mostra o nome do sistema
kill
Termina/Restarta um processo
ln
Cria link entre um arquivo e outro
lpq
Informa o status dos jobs enviados para impressao
lpr
Envia um arquivo para ser impresso
lprm
Remove um arquivo da fila de impressao
ls
Lista arquivos e diretorios
mail
Envia ou recebe um e-mail
man
Mostra o manual online de um comando
mkdir
Cria um diretorio
more
Faz uma pausa entre a exibicao de uma tela e outra
mount
Monta o conteudo de uma particao em um diretorio
mv
Move/Renomeia um arquivo
newfs
Formata um disco
nohup
Informa o sistema para nao interromper a execucao do comando apos seu logout
passwd
Altera seu password no sistema
pkg_add
Instala um aplicativo do packages (pkg_add)
pkg_delete
Remove um aplicativo (pkg_delete)
ps
Mostra informacoes sobre o status dos processos em execucao
pwd
Mostra o diretorio atual
rm
Remove um arquivo
rmdir
Remove um diretorio
rmuser
Remove um usuario
split
Divide um arquivo
su
Assume o Login de outro usuario
tar
Utilitario de Backup
vi
Editor de textos
who
Mostra os usuarios logados no sistema

Lista de comandos do vi

Tem quem goste e quem odeie. Eu particularmente não sou muito fã, mas as vezes temos que usar. Ai vai então os principais comandos do editor de textos vi



Observacao:
Para passar para o modo comando pressione
 ESC.

Comandos basicos de insercao de texto:
i
Insere texto antes do cursor
a
Insere texto depois do cursor
r
Insere texto no início da linha onde se encontra o cursor
A
Insere texto no final da linha onde se encontra o cursor
o
Adiciona linha abaixo da linha atual
O
Adiciona linha acima da linha atual
Ctrl + h
Apaga o ultimo caracter

Comandos basicos de movimentacao:
Ctrl+f
Move o cursor para a proxima tela
Ctrl+b
Move o cursor para a tela anterior
H
Move o cursor para a primeira linha da tela
M
Move o cursor para o meio da tela
L
Move o cursor para a ultima linha da tela
h
Move o cursor um caracter a esquerda
j
Move o cursor para a proxima linha
k
Move o cursor para linha anterior
l
Move o cursor um caracter a direita
w
Move o cursor para o inicio da proxima palavra (Ignora a pontuacao)
W
Move o cursor para o inicio da proxima palavra (Nao ignora a pontuacao)
b
Move o cursor para o inicio da palavra anterior (Ignora a pontuacao)
B
Move o cursor para o inicio da palavra anterior (Nao ignora a pontuacao
0
Move o cursor para o inicio da linha atual
^
Move o cursor para o primeiro caracter nao branco da linha atual
$
Move o cursor para o final da linha atual
nG
Move o cursor para a linha n
G
Move o cursor para a ultima linha do arquivo

Comandos basicos para localizar texto:
/palavra
Busca pela palavra ou caracter em todo o texto
?palavra
Move o cursor para a ocorrencia anterior da palavra
n
Repete o ultimo comando / ou ?
N
Repete o ultimo comando / ou ? , na direcao reversa
Ctrl+g
Mostra o nome do arquivo, o numero da linha corrente e o total de linhas

Comandos basicos para alteracao de texto:
x
Deleta o caracter que esta sob o cursor
dw
Deleta a palavra, da posicao atual do cursor ate o final
dd
Deleta a linha atual
D
Deleta a linha a partir da posicao atual do cursor ate o final
rx
Substitui o caracter sob o cursor pelo especificado em x(é opcional indicar o caracter)
Rx
Substitui a palavra sob o cursor pela palavra indicada em x
u
Desfaz a ultima modificacao
U
Desfaz todas as modificacoes feitas na linha atual
J
Une a linha corrente a proxima
s:/palavra1/palavra2
Substitui a primeira ocorrencia de "palavra1" por "palavra2"

Comandos para salvar o texto:
:wq
Salva o arquivo e sai do editor
:w nome_do_arquivo
Salva o arquivo corrente com o nome especificado
:w! nome_do_arquivo
Salva o arquivo corrente no arquivo especificado
:q
Sai do editor
:q!
Sai do editor sem salvar as alteracoes realizadas

Caso voce nao goste do vi, experimente o
 ee (easy editor) que tambem eh muito bom.

Teste do FreeBSD 8.2 em um AtlhonXP 200+ com 256 de RAM



Quando comecei com linux, já fui direto usando distribuições baseadas em Debian. Apanhei muito mas aprendi. Com o tempo fui ficando curioso e fazendo testes em outras distrus, como: Fedora, Conectiva (antes do Madriva), Slackware e assim foi. Simpatizei muito pelo CentOS, pois se demonstrou tão funcional e eficiente quanto o Debian.  Comecei a trabalhar então com essas duas distros. Recentemente, comecei a prestar atenção no FreeBSD, que apesar de não ser linux, também e baseado em UNIX.  O FreeBSD, é conhecido como o sistema operacional de melhor desempenho, da mesma forma que o OpenBSD é conhecido como o que a de melhor em segurança, apesar da crítica dizer que ele perde em desempenho. Também existe que NetBSD conhecido pelo desempenho e pela portabilidade. Os desenvolvedores dele dizem que se sua torradeira tivesse um chipset, o NetBSD rodaria nela. Futuramente, farei testes com o OpenBSD e o NetBSD, mas a bola da vez hoje é o FreeBSD 8.2. Fui direto ao ponto chave que todos os administradores de redes e técnicos de T.I. sempre querem saber: Funciona em máquinas velhas? Todo mudo que le ou escuta isso, acha que a gente é maluco e adora uma sucata. O caso não é esse. Imagina só voce administrando uma rede pequena com 20 computadores, e o servidor para. Vamos melhorar e parar ele com força... uma pane na parte elétrica queima quase todo o hardware. Como bom profissional da área, seu primeiro pensamento: "Fudeu!" Palavrões a parte, o segundo pensamento é ir direto para a sucata, para fazer um provisório até o definitivo voltar para o lugar. antes que alguém leigo pergunte eu explico: é mais fácil o dono o diretor da empresa te mandar embora do que ter em estoque o equipamento de backup que voce pediu. Pensando nisso tudo (que eu já passei na pele), fui na minha sucata, peguei uma placa mão Asrock, com processador Atlhon 200+ de 1.6, um hd de 160 IDE já meia boca e um raríssimo pende memória DDR1 de 256 (eu ia usar o de 128 mas ia ser esculacho demais). Com a iso do freeBSD 8.2 queimada, mãos a obra!
1 - A INSTALAÇÃO
Não foi a aparte pior, mas para quem usou debian por muitos anos, eu estranhei um pouco, mas sem maiores dificuldades. Fazer a instalação com a maquina já ligada na rede e sempre recomendado, até mesmo para já instalar atualizando. A parte boa disso é que o sistema já inicia com tudo de novo. A parte ruim e que faz a instalação demorar pelo menos 3 vezes mais que o tempo normal, e se a sua internet por ventura cair no meio do download dos pacotes, danou-se!
2 - CONHECENDO E TESTANDO O NOVO SISTEMA.
Sistema pronto! Que felicidade! A primeira coisa feita, como o servidor foi instalado somente em modo texto, voce usa o ssh para pode acessar ele confortavelmente da sua maquina. Cade que o ssh funcionou? Me deparei com com o primeiro problema. Fui pesquisar o assunto, e descobri que o ssh do freeBSD não vem habilitado. Então a solução: # vi /etc/ssh/sshd_config (odeio o vi, gosto do ee e do nano) la tem que descomentar a linha: #PermitRootLogin no, e mudar de no para yes. Pronto! resolve-se um problema. Mas se voce pensa que é só criar outro usuário, logar com ele e usar o su root, não funciona, que sem fazer o que disse acima, o root não entra pelo ssh nem a pau! 
Feito tudo isso, decidir faz o que é um costume para o usuário debian, o apt-get update. Claro que o comando foi outro: #portsnap fetch extract demora pacas  para terminar, e olha que eu tinha colocado o ip dele como ilimitado no mikrotik. Mas tudo bem. Decidi começar o teste instalando o Samba4 e o Swat, e fazer uma pequeno controlador de domínio. primeiro o cara me pediu para acerta a hora do relógio, que eu esqueci de fazer no setup. Bem simples de fazer com o comando #ntpdate ntp.cert-rs.tche.br. A instalação do samba nunca foi nada de complicado, pelo contrario, já estou até acostumado a fazer. Mas como um cara prático que foi, desta vez eu não gostei. 
3 - INSTALANDO O SAMBA 4 E O SWAT
Serviço que deveria ser feito com 4 comandos básicos, normalmente não demora muito, que engano.      
# cd /usr/ports/net/samba (comando para entrar no diretório, tempo de execução 1 milésimo de segundos)
# make (basicamente esse comando checa os arquivos e baixa suas dependencias, tempo de execução 5 horas, não errei foram dolorosas 5 horas)
# make install (comando que manda instalar o programa, tempo de execução menos de 2 minutos)
# make clean (limpa as porcarias deixadas para trás pós instalação, tempo de execução menos de 1 minuto)
Apesar da demora terrível, o sistema funcionou muito bem! O desempenho da máquina ficou formidável! parecia até um dual core rodando. A velocidade de troca de arquivos, tempo de responta na hora do login de domínio, foi perfeito. Sem dúvida, o desempenho ficou 100%.
4 - INSTALANDO LAMP
Lamp e o conjunto básico de usado no linux que vem com Apache2, Php5 e Mysql. Comecei a instalação de 1 a 1 de maneira ide maneira independente. Apache e php instalados com muita facilidade, já o mysql deu trabalho. O puto  do sistema empacou em instalar o mysql client e não o server, mesmo dando o comando de instalação do server que foi uma merda. Tive que desinstalar o mysql client, entrar na pasta /usr/ports/databases/mysql55/ e apagar o pacote client, para ai sim instalar o server e depois o client. Vou ser sincero... deu um trabalho fazer isso terrível.
Bem! Com essa brincadeira eu gastei um dia e meio de trabalho. Claro que algumas coisas demoraram um pouco, pois eu não conhecia do sistema. Mas descontei o tempo que usei pesquisando soluções e revertendo erros. Antes de prosseguir em um teste mais a fundo, decidi formatar a maquina e instalar o Debian Lenny e para comparar o desempenho. Fui eu lá. Entre a instalação do sistema operacional, do samba, swat, e o lamp, não demorei nem 2 horas, para conseguir o sistema instalado e pronto para produção. Usei mais uma hora para instalar, nagios e configurar e openfire e configurar, isso porque inda tinha que importar arquivos de de outro servidor.  
RESUMO
Realmente o sistema tem um desempenho muito  bom, coisa que ue nunca tinha visto em uma maquina antiga.  
Pontos positivos: Desempenho incrível e sistema bem robusto, desligando ele da tomada direto algumas vezes, ele nem reclamou de erro na partição na hora de ligar. 
Pontos negativos: Muito demorado a instalação de pacotes e a parte de configuração. Eu tive sorte de conhecer bem sobre comandos UNIX mas ainda sim fiquei meio perdido. Quando voce vai buscar material na internet, voce se depara com várias explicações diferentes sobre a mesma coisa, pois quase ninguém coloca a versão que usou e alguma diferença de comando sempre tem entre uma versão e outra.
Para que pretende montar um servidor com o FreeBSD, realmente terá um ótimo servidor, mas tenha tempo para monta-lo e eu aconselho que assim que terminar, começar montar o de backup, porque fazer outro igual começando do zero, demora um pouco.