Compilando o LAMP no Ubuntu 7.04

Neste How To irei exemplificar como compilar o famoso LAMP utilizando os pacotes: Apache 2.0.59, PHP 5.2.3, MySQL 5.0.41, zLib 1.2.3, GD-2.0.35-RC4, LibXML2 e ainda instalando o phpMyadmin 2.6.10.

Hardware:

Notebook Positivo Celeron M 1.46 Ghz

1 GB RAM

HD 40 GB

*OBS: A configuração acima não são os requisitos minímos, consulte a documentação dos respectivos pacotes.

Software:

Sistema Operacional Ubuntu 7.04

Kernel 2.6.20

Mirrors utilizados para baixar os pacotes necessários:

deb-src http://br.archive.ubuntu.com/ubuntu/ feisty main restricted

deb http://br.archive.ubuntu.com/ubuntu/ feisty-updates main restricted

deb-src http://br.archive.ubuntu.com/ubuntu/ feisty-updates main restricted

deb http://br.archive.ubuntu.com/ubuntu/ feisty universe

deb-src http://br.archive.ubuntu.com/ubuntu/ feisty universe

deb http://br.archive.ubuntu.com/ubuntu/ feisty multiverse

deb-src http://br.archive.ubuntu.com/ubuntu/ feisty multiverse

deb http://security.ubuntu.com/ubuntu feisty-security main restricted

deb-src http://security.ubuntu.com/ubuntu feisty-security main restricted

deb http://security.ubuntu.com/ubuntu feisty-security universe

deb-src http://security.ubuntu.com/ubuntu feisty-security universe

deb http://security.ubuntu.com/ubuntu feisty-security multiverse

deb-src http://security.ubuntu.com/ubuntu feisty-security multiverse

deb http://www.getautomatix.com/apt feisty main

deb http://archive.canonical.com/ubuntu feisty-commercial main

deb http://archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu feisty-updates universe multiverse

deb http://archive.ubuntu.com/ubuntu feisty-security main restricted universe multiverse


Instalando pacotes necessários:

sudo apt-get install libc6-dev (necessária para o compilador C/C++)
sudo apt-get install g++ (necessária para o compilador C/C++)
sudo apt-get install flex (necessária para compilar o PHP)
sudo apt-get install bison (necessária para compilar o PHP)
sudo apt-get install libxml2-dev (necessária para compilar o PHP)
sudo apt-get install freetds-dev (necessária para o suporte ao SQL Server)
sudo apt-get install libmysqlclient15-dev (necessária para o suporte ao MySQL)

sudo apt-get install libjpeg62 libjpeg62-dev


Zlib:

./configure
make
make install

LibGD
./configure
make
make install

LibXML2
./configure
make
make install

LibPNG
./configure
make
make install

Apache 2
./configure \
–prefix=/usr/local/apache2 \
–enable-cgi –enable-so \
–enable-rewrite
–enable-mime-magic \
–enable-suexec \
–enable-static-rotatelogs \
–enable-spelling \
–enable-log-forensic
–enable-headers
–enable-usertrack
make
make install

Configurando o Apache 2:

Para configurar o Apache 2 com suporte a PHP5 primeiramente iremos criar um link simbólico dentro do diretório /etc/ apontando para /usr/local/apache2 .

cd /etc/
ln -s /usr/local/apache2 .
cd /etc/apache2
Antes de alterar os dados do arquivo original de configuração do Apache 2 faça um backup do arquivo:
cp /etc/apache2/conf/httpd.conf /etc/apache2/conf/httpd.conf.original

Editando o arquivo httpd.conf
edite o arquivo httpd.conf adicionando as seguintes linhas:

DirectoryIndex index.html index.html.var index.cgi index.php index.php4 index.php5 default.html default.php blank.html

ServerName o-nome-para-seu-servidor-web

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php php

AddType application/x-httpd-php-source phps
#ServerTokens
ServerSignatures Off
*Ao final reinicie o servidor Apache 2.

MySQL
groupadd mysql
useradd -g mysql mysql
cd /usr/local

gunzip < /path/para/mysql/compactado.tar.gz |tar -xvf -
ln -s mysql-full-path mysql
cd mysql
scripts/mysql_install_db
chown -R root .
chown -R mysql data
chgrp -R mysql .
bin/mysqld_safe --user=mysql &

Para conferir se o MySQL foi iniciado use o comando shell:
ps -aef |grep mysql

PHP 5 + LibGD

./configure –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql –prefix=/usr/local/apache2/php –with-config-file-path=/usr/local/apache2/php –enable-force-cgi-redirect –disable-cgi –with-zlib –enable-mbstring –with-gd –with-jpeg-dir=/usr/lib/ –with-png-dir=/usr
make
make install

PHPMyadmin 2.6.10

Para instalar o phpMyadmin 2.6.10 primeiramente descompacte o arquivo do phpMyadmin e copie para a pasta publica do Apache 2 assim como o exemplo abaixo:

cp phpMyAdmin-2.10.1-all-languages-utf-8-only /var/www/phpMyadmin

em seguida copie o exemplo de arquivo config.sample.inc.php para config.inc.php e edite alterando os seguintes parametros abaixo:

$cfg['blowfish_secret'] = ‘frase-blowfish-aqui’;

$cfg['Servers'][$i]['auth_type'] = ‘cookie’;

$cfg['Servers'][$i]['controluser'] = ‘root’;

$cfg['Servers'][$i]['controlpass'] = ’sua-senha-mysql-aqui’;
Neste caso utilizamos o tipo de autênticação por cookies, quando você utiliza este modelo de autênticação é necessário especificar o blowfish_secret, que é uma frase encriptada com o algoritmo Blowfish, para gerar está frase você poderá utilizar a ferramenta do site:

http://webnet77.com/cgi-bin/helpers/blowfish.pl

após gerar o código cole no parametro: $cfg['blowfish_secret'] = ‘frase-blowfish-aqui’;

Configurando Wireless no Debian 4.0 / Ubuntu pela linha de comando.

Neste How To irei mostrar como fazer a configuração de uma interface Wlan no Debian através da linha de comando utilizando os comando iwlist, iwconfig, ifconfig e route de forma simples e rápida.Pacotes necessários:
wireless-tools
Sistema Operacional utilizado no teste:
Debian 4.0 ( Etch ) Kernel 2.6.181) Detectando as redes disponiveis:
Levando em consideração que você já tenha configurado o kernel para dar suporte a sua interface wlan, iniciaremos o processo procurando as interfaces wlan encontradas pelo Kernel do SO:dmesg |grep wlan
você irá encontrar uma entrada parecida com a linha abaixo:[ 37.432000] wlan0: starting scan
onde wlan0 idêntifica a interdace wireless de nossa máquina, com isso o próximo passo é encontrar as redes disponiveis para que possamos conectar para isso iremos entrar com o comando:iwlist scanning
a saída do comando deve ser algo parecido com a saída abaixo:
wlan0     Scan completed :
Cell 01 - Address: 00:14:78:EE:76:8A
ESSID:"SpartacusRouter"
Mode:Master
Frequency:2.437 GHz
Quality=46/64  Signal level=61/65
Encryption key:on
Extra:tsf=000000153e10d985
ESSID:”SpartacusRouter” - idêntifica o nome SSID da rede no qual iremos conectar, Encryption key:on informa que nesta rede há uma proteção com chave WEP ou WPA.
2) - Conectando na rede e configurando a interface
Agora que você sabe qual a interface de wifi você irá configurar e qual o ESSID utilizar você deve informar todas essas informações juntamente com a chave WEP ( em nosso caso ), através do comando iwconfig:

iwconfig wlan0 essid SpartacusRouter
iwconfig wlan0 key AX84513135 ( colocar aqui a sua chave WEP ou WPA )
verifique o status de conexão com o comando iwconfig wlan0, novamente;Agora que conectamos no roteador wireless, devemos configurar o endereço de IP e gateway padrão para a interface wlan0 para isso utilize como base o exemplo abaixo:

ifconfig wlan0 10.0.0.1
route add default gw 10.0.0.254 wlan0
Onde ifconfig wlan0 é o endereço de IP de sua interface, route add default gw 10.0.0.254 wlan0 informa para que o sistema operacional sete a rota padrão apontando para o gateway 10.0.0.254 saindo pela interface wlan0.
Pronto a sua interface já está pronta para utilização, uma dica verifique se os endereços de DNS estão configurados antes de testar o acesso a internet.
Até a próxima,

Xgl e Compiz no Dapper…

Artigo retirado do blog http://blog.meyer.eti.br/

!!! Atenção !!! Este tutorial serve apenas para o Ubuntu versao 6.04 (Dapper Drake) !!!

Muitos de vocês já viram vídeos de demonstração do Xgl e Compiz como este. Realmente são impressionantes os efeitos gráficos proporcionados por estes aplicativos da Novell.

O Dapper já inclui ambos em seu repositório universe para que os usuários possam testá-los com facilidade.. No entanto, devemos lembrar que estes aplicativos ainda estão em desenvolvimento e ainda não estão 100% estáveis..

O processo de instalação é simples, siga os passos abaixo:

1. Adicionar o repositório universe (caso ainda não o tenha feito)

sudo echo “deb http://us.archive.ubuntu.com/ubuntu/ dapper universe multiverse” >> /etc/apt/sources.list
sudo apt-get update

2. Instalar os programas

sudo apt-get install libgl1-mesa libglitz1 libglitz-glx1 xserver-xgl
sudo apt-get install compiz-gnome
sudo mv /etc/X11/X /etc/X11/old-X
sudo ln -sf /usr/bin/Xgl /etc/X11/X

3. Fechar todos os aplicativos e re-iniciar o GDM

sudo /etc/init.d/gdm restart

4. Fazer login, iniciar o Compiz e o Gnome Window Decorator

echo “compiz ”replace gconf decoration wobbly fade minimize cube rotate zoom scale move resize place switcher” >> ~/.gnomerc
echo “nohup gnome-window-decorator &” >> ~/.gnomerc
source ~/.gnomerc

Com estes passos realizados, toda vez que você se logar no Gnome, estará utilizando o Xgl e Compiz..

Algumas dicas de utilização do Compiz:

* Alt+Tab = Mudar de janela
* F12 = liga e desliga exibição de todas as janelas
* Ctrl+Alt+Dir/Esq = Mudar de desktop no cubo
* Ctrl+Shift+Alt+Dir/Esq = Mudar de desktop no cubo levando a janela ativa
* Ctrl+Alt+Left-Click (no wallpaper)+Drag = Girar o cubo de desktop
* Win-Key+Right-Click = Aumenta Zoom total
* Win-Key+Wheel = Aumenta e Diminui Zoom gradualmente
* Alt+Left-Click = Mover janela
* Ctrl+(mover janela) = Faz janela grudar nas bordas ao mover

Como já foi dito, ambos são programas ainda em testes.. Então, se desejar removê-los do seu sistema, basta fazer o seguinte processo:

rm ~/.gnomerc
sudo mv -f /etc/X11/old-X /etc/X11/X
sudo /etc/init.d/gdm restart

Samba como PDC da Rede

Artigo retirado do site Dicas-L

Hoje falarei mais um pouco sobre o Samba, desta vez com ele atuando como PDC da rede: Como validar usuário/senha, colocar um máquina com Windows XP na rede e permitir que o usuário altere sua senha.

Usei o Red Hat 8.0 rodando o Samba 2.2.8a. Abaixo segue meu /etc/samba.conf:

####################################
# Arquivo de Configuracao do SaMBa
# Por Tiago Cruz
# tiagocruz (a) linuxdicas.com.br
# Atualizado em 03/10/2003
####################################

[global]
# Grupo de trabalho/ Dominio
workgroup = TUX
# Nome da maquina do ambiente de rede
netbios name = MAQ_100
netbios aliases = MAQ_100
# Comentario no ambiente de rede
server string = Servidor de dados - Samba Server %v
# Desabilitando o UTF (/etc/sysconfig/i18n) somado a estas opções o SaMBa 2.x
# consegue trabalhar corretamente com a acentuação dos arquivos no RH
client code page = 850
character set = ISO8859-1
# Para conexoes com maquinas > W95
encrypt passwords = Yes
# Tamanho minimo da senha
min passwd length = 4
# Para alterar a senha pela estacao
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %nn *Retype*new*password* %nn *passwd:*all*authentication*tokens*updated*successfully*
# Sincronizar a senha do SaMBa com a do Linux. Desabilite caso tenha problemas
# com a sincronizacao em maquinas W2k
unix password sync = Yes
# Local do arquivo de log
log file = /var/log/samba/%m.log
# Tamanho maximo do mesmo
max log size = 100
# Desempenho
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# Arquivo de lote que sera executado no logon
logon script = todos.bat
# Opcoes para PDC da rede
domain logons = Yes
os level = 64
preferred master = Yes
domain master = Yes
printing = lprng
# Para que os arquivos criados fiquem em minusculo
preserve case = no
short preserve case = no
default case = lower

# Diretorio onde ficara o arquivo de lote definido acima
[netlogon]
comment = Network Logon Service
path = /home/netlogon
write list = tiago
guest ok = Yes

# Diretorio /home/usuario, somente o dono do mesmo pode acessar
[homes]
comment = Home Directories
valid users = %U
read only = No
force create mode = 0755
force directory mode = 0755
browseable = No

[log]
comment = Log’s de Backup
path = /dados/log

[CdRom]
comment = Drive de CD-ROM do Servidor
path = /mnt/cdrom

[Drive_f]
comment = Drive de Dados do Servidor
path = /dados/drive_f
force user = nobody
force group = nobody
read only = No
force create mode = 0777
force directory mode = 0777
guest only = Yes

# Aqui deve ser aplicado algumas restricoes por usuario
[GPS614]
comment = Drive de Dados da GPS
path = /dados/GPS614
valid users = tiago,marcio,andrea,ricardo,regina,mislaine
force group = gps
read only = No
force create mode = 0770
force directory mode = 0770

Aqui cabe uma observação que recebi do Sr. Ronaldo Yoyart:

“Gostaria de acrescentar que nos últimos exemplos citados do smb.conf, não menciona um linha importantíssima, na qual permite que o samba crie usuário no linux (apenas cria o usuário sem senha e direciona o terra (null)) automaticamente.

Isso serve quando uma maquina Windows2000 ou XP, entra para um domínio, após clicar para entrar no dominio, o windows pergunta um usuário e senha, mas se a maquina (nome da maquina) não estiver criada como usuário com um $ no final , a maquina não entra e assim não roda login script.

Segue a linha que falta:

add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u

Ronaldo, muito obrigado pela observação ;-)

Para quem não sabe, as linhas que começam com uma tralha (’#') são apenas comentários, o programa irá ignora-las em sua execução

Continuando…

Esse servidor em questão já é capaz de validar os usuários, bastando o mesmo informar o Dominio “TUX”. Inclusive o usuário pode alterar sua senha pelo “Painel de Controle -> Senhas -> Alterar outras Senhas” ou com a famosa combinação de “CTRL+ALT+DEL” no caso do XP.

Para isso, é necessário cadastrar o usuário no Linux e no Samba:

# useradd tiago
# smbpasswd -a tiago

Caso você á tenha uma lista com seus usuários, poderá usar algum script para cadastra-los no Linux e no Samba. No meu caso eu tinha um arquivo separado por “|” contendo o login, o nome completo e grupo:

$ cat king.txt
alessandra|Alessandra R. Graciano|contabilidade
alessandra-o|Alessandra Oliveira|diretoria
ana paula|Ana Paula|fiscal
ana rosa|Ana Rosa|juridico
anderson|Anderson|pessoal
andrea|Andrea|pessoal

O script segue abaixo, use-o por sua conta e risco.
Alterações e melhorias no mesmo são bem vindas :-)

$ cat adduser.pl
##########################
# Criado por Tiago Cruz
# tiago@grupoking.com.br
# em Feveriro/ 2003
##########################
#!/usr/bin/perl

$file=”king.txt”;
if ( -e $file ) {
open(arq, $file) or die “Não foi possivel abrir o arquivo”;
@linhas = ;
close(arq);
$passwd=senha;
$i=0;
while (@linhas[$i]) {
($login, $nome, $depto) = split(/|/, @linhas[$i]);
system “/usr/sbin/useradd -p $passwd -c ‘$nome’ $login -G $depto”;
system “/usr/bin/smbpasswd -a $login $passwd”;
sleep(0.5);
$i++;
}
}3

Colocando o Win95 na rede:

Alterar no registro:

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesVxDVNETSUP]
“EnablePlainTextPassword”=dword:0×00000001

Colocando o Win2000 na rede:

Siga os mesmos passos do WinXP, e caso não consiga trocar sua senha experimente retirar a linha “unix password sync” do seu arquivo de configuração e reiniciar o SaMBa (dica de Angelo Costa).

Colocando o WinXP na rede:

1-) Cadastrar senha de root no samba:

# smbpasswd -a root

2-) Cadastrar máquina XP:

Observe que a conta criada tem um sheel invalido (/bin/false) e também um home nulo (/dev/null) para que nenhum engraçadinho faça login usando essa conta :-)

# useradd -d /dev/null -c MAQ_709 -m -s /bin/false MAQ_709$
# smbpassword -m -a MAQ_709

3-) Alterar Registro da estação:

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetlogonParameters]
“DisablePasswordChange”=dword:00000000
“maximumpasswordage”=dword:0000001e
“requiresignorseal”=dword:00000000
“requirestrongkey”=dword:00000000
“sealsecurechannel”=dword:00000001
“signsecurechannel”=dword:00000001
“Update”=”no”

4-) Entrar em:

Painel de Controle->Ferramentas Administrativas->Politica de Segurança Local e depois em Politicas Locais->Opções de Segurança

Dentro dessa janela, desabilite as opções abaixo. Não quer quer eu traduza para você, certo? :-)

Domain member: Digitally encrypt or sign secure channel (always)
Domain member: Disable machine account password changes
Domain member: Require strong (Windows 2000 or later) session key

5-) Depois em:

Botão Direito em Meu Computador->Propriedades->Nome do Computador->Alterar

Nome do computador: MAQ_709
Membro de: Informar Dominio Samba
Entre com o username e password de Root, depois reinicie o micro

Ufa :-)
Ah, talvez seja necessário reiniciar depois de alterar o registro, mas creio que isso não seja nenhuma novidade para você =]

Bom, logicamente não fui eu quem “descobriu” tudo isso, pois existem vários tutoriais pela rede, além da documentação do próprio software. De qualquer forma, seguindo esses passo eu consegui colocar o benedito no Domínio, mas talvez você não precise fazer tudo isso :-)

Se ainda tiver dúvidas sobre o SaMBa, por favor consulte nossos outros artigos desta mesma seção. Visite também este FAQ sobre o assunto.

Agradeço aos tutoriais espalhados pela rede, ao pessoal das listas de discussão, ao google… e espero que esse documento ajude alguém ;-)

Abraços,
Tiago Cruz
Linux User #282636

Clonando de HD’s

Essa ? para os adminstradores de redes que precisam fazer um clone de hd para qualquer fins seja backup de seguran?ae troca de hd, sem ter que parar o que a m?quina est? fazendo, seja ela um servidor de emails, web, GW de rede local ou wireless.

Lembrando q os hds n?o precisam ser do mesmo tamanho, apenas o hd origem deve suportar o tamanho que est? sendo usado no hd destino.

O ?nico momento em que vc precisa parar a maquina, ? para colocar o hd destino na m?quina como slave, inicializar a m?quina tudo normal vamos a m?o na massa.

Plataforma usada :
AMD Athlon XP 2.2 c/ 512 RAM HD Maxtor 40G 7,200 RPM
Slackware 9.1 kernel 2.4.22 c/ 2 parti??es hd origem
hda1 / ext3
hda2 swap

1? Passo, Particione seu hd destino preferencialmente da maneira que est? no de origem, utilizei no evento o particionador CFDISK.
hdb1 /
hdb2 swap

2? Passo, Formate a parti??o /
mke2fs /dev/hdb1

3? Passo, Ative a parti??o /
tune2fs -j /dev/hdb1

4? Passo, Formate a parti??o Swap
mkswap /dev/hdb2

5? Passo, Crie a pasta na raiz do sistema onde voc? ir? montar a filesystem do hd destino.
mkdir /novohd

6? Passo, Monte o FileSystem na parti??o /
mount -t ext3 /dev/hdb1 /novohd

7? Passo , Clonando o HD :
tar cf - –exclude novohd ./ | tar xvfp - -C/novohd/

Espero que esse artigo seja ?til a todos …

Gerando outro arquivo de configura??o para o X

Estava pensando se no Linux outro xorg.conf n?o poderia ser gerado pelo pr?rio X, rodando pela WEB encontrei em um site l? de fora algo que ajudaria pacas, BASTA digitar o seguinte comando logado como root:

Isso resolve uma s?rie de problemas, no meu caso foi o mouse que ficava no canto direito superior da tela quando eu entrava em algum ambiente.

$su
# X -configure

Ele faz uma chacagem de teclado, placa de v?deo e mouse (aquele que cisma em ficar no canto da tela quando se entra em algum ambiente tipo KDE e etc). O danadinho vai gerar o xorg.conf.new e pronto basta substitu?-lo no diret?rio /etc/X11

(Utilizando o comando mv para mov?-lo)

Para que as configura??es possam entrar em vigor, reinicie o X.

Desvendando o RealVNC para Unix

Artigo retirado do site Dicas-L, da unicamp.

Colabora??o: Ricardo Iramar dos Santos

1. Introdu??o
=============

A muito tempo utilizo o RealVNC (chamemos de VNC daqui para frente) e n?o s? eu mas o mundo inteiro tem visto uma grande evolu??o deste software que tanto nos ajuda no dia a dia.

No ?nicio, eu utilizava o vncserver que na verdade ? um script em Perl. O vncserver executa o Xvnc que cria uma outra sess?o do X no ambiente do VNC. Por?m n?o era p?ss?vel acessar via VNC sess?es do X j? iniciada utilizando o vncserver.

Ent?o um amigo me apresentou o x0vncserver (esse sim ? um bin?rio) que compartilha a sess?o do X com quase todas as op??es do Xvnc.

Em um belo dia, navegando pelo site http://www.realvnc.com (http://www.realvnc.com), encontrei uma documenta??o sobre como carregar o m?dulo do VNC no X (http://www.realvnc.com/products/free/4.1/x0.html). A implementa??o foi mais simples do que eu imaginava. Al?m disso descobri que era poss?vel acessar minha m?quina remotamente usando somente um browser com suporte a java.

Pensando nessas solu??es resolvi escrever uma documenta??o completa ? respeito. Ent?o comecei a ler mais a respeito sobre o VNC e lendo a man page do Xvnc percebi que tamb?m era poss?vel usar o Xvnc tamb?m com o inetd.

Nesta documenta??o ser? abordada todas essas formas de utiliza??o do VNC para Unix. Em todos os exemplos estarei utilizando a vers?o 4.1.1 do VNC, Slackware 10.1 e Perl 5.8.6. Por?m, vou tentar ser o mais gen?rico poss?vel para atender a outras vers?es do VNC assim como outras distribui??es Linux.

Agora chega de conversa e m?os ? obra.

2. Pr?-requisitos
=================

- VNC Free Edition for Linux (x86) 4.1.1 (vnc-4_1_1-x86_linux.tar.gz (http://www.realvnc.com/products/free/4.1/download.html)).
- Slackware Linux 10.1 (http://www.slackware.com), n?o ser? abordada a instala??o ou configura??o.
- Perl 5.8.6 (http://www.perl.com), n?o ser? abordada a instala??o ou configura??o.

3. Instala??o
=============

Fa?a o download do pacote de instala??o completo do VNC Free Edition for Linux (x86) vers?o 4.1.1 e descompacte da seguinte forma.

agent@smith:~/bin?rios/vnc$ tar zxvf vnc-4_1_1-x86_linux.tar.gz
vnc-4_1_1-x86_linux/
vnc-4_1_1-x86_linux/README
vnc-4_1_1-x86_linux/vncinstall
vnc-4_1_1-x86_linux/LICENCE.txt
vnc-4_1_1-x86_linux/vnc.so
vnc-4_1_1-x86_linux/vncviewer
vnc-4_1_1-x86_linux/vncpasswd
vnc-4_1_1-x86_linux/vncconfig
vnc-4_1_1-x86_linux/x0vncserver
vnc-4_1_1-x86_linux/Xvnc
vnc-4_1_1-x86_linux/vncviewer.man
vnc-4_1_1-x86_linux/vncpasswd.man
vnc-4_1_1-x86_linux/vncconfig.man
vnc-4_1_1-x86_linux/x0vncserver.man
vnc-4_1_1-x86_linux/Xvnc.man
vnc-4_1_1-x86_linux/vncserver
vnc-4_1_1-x86_linux/vncserver.man
vnc-4_1_1-x86_linux/java/
vnc-4_1_1-x86_linux/java/index.vnc
vnc-4_1_1-x86_linux/java/vncviewer.jar
vnc-4_1_1-x86_linux/java/logo150×150.gif
agent@smith:~/bin?rios/vnc$

Agora execute os comandos abaixo para a instala??o.

agent@smith:~/bin?rios/vnc$ cd vnc-4_1_1-x86_linux
agent@smith:~/bin?rios/vnc/vnc-4_1_1-x86_linux$ su
Password authentication bypassed.
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# ./vncinstall /usr/local/bin /usr/local/man
Copying Xvnc to /usr/local/bin
Copying Xvnc.man to /usr/local/man/man1/Xvnc.1
Copying vncviewer to /usr/local/bin
Copying vncviewer.man to /usr/local/man/man1/vncviewer.1
Copying vncpasswd to /usr/local/bin
Copying vncpasswd.man to /usr/local/man/man1/vncpasswd.1
Copying vncconfig to /usr/local/bin
Copying vncconfig.man to /usr/local/man/man1/vncconfig.1
Copying vncserver to /usr/local/bin
Copying vncserver.man to /usr/local/man/man1/vncserver.1
Copying x0vncserver to /usr/local/bin
Copying x0vncserver.man to /usr/local/man/man1/x0vncserver.1
Copying vnc.so to /usr/X11R6/lib/modules/extensions
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux#

Se voc? pretende acessar sua m?quina usando um browser com suporte a java execute os comandos abaixo.

root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# mkdir -p /usr/local/vnc/classes
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux# cp java/* /usr/local/vnc/classes
root@smith:/home/agent/bin?rios/vnc/vnc-4_1_1-x86_linux#

Agora vamos criar o arquivo que cont?m a senha do VNC, porque n?o queremos que todo mundo acesse nosso ambiente. Digite os comandos abaixo e escolha uma senha com seis ou mais caracteres.

root@smith:/home/agent/bin?rios/vnc# exit
exit
agent@smith:~/bin?rios/vnc$ vncpasswd
Password:
Verify:
agent@smith:~/bin?rios/vnc$

Por padr?o a senha ? gerada no arquivo $HOME/.vnc/passwd.

Se voc? esta usando VNC provavelmente n?o ir? mais precisar do recurso de acesso remoto do X que por padr?o vem habilitado na maioria das distribui??es. Caso for utilizar o VNC com inetd n?o desabilite essa op??o, veja porque no item Utilizando o VNC com inetd.

Para desabilitar tal op??o, caso use GDM assim como eu, basta alterar a op??o DisallowTCP para true (exemplo: DisallowTCP=true) no arquivo /etc/X11/gdm/gdm.conf.

Caso voc? utilize o script startx para iniciar o X, basta editar a linha serverargs=”", no pr?prio arquivo startx, para serverargs=”-nolisten tcp”. Se voc? utiliza kdm ou xdm edite a linha :0 local /usr/X11R6/bin/X para :0 local /usr/X11R6/bin/X -nolisten tcp do arquivo /etc/X11/xdm/Xservers.

4. Utiliza??o
=============

Para um melhor entendimento este item foi subdividido em itens menores conforme as formas de utiliza??o do VNC.

Como a maioria das op??es do arquivo Xvnc ? v?lida para todos os itens abaixo, segue abaixo a descri??o das op??es que acho mais relevantes.

-desktop [nome]
Espec?fica o nome que ir? aparecer na janela do vncviewer. O padr?o ? x11.

-rfbport [porta]
Espec?fica a porta em que VNC ir? escutar, ideal se o firewall da sua empresa bloqueia a
porta padr?o. O padr?o ? 5900 mais o n?mero do display.

-httpd [diret?rio]
Executa um mini servidor HTTP com diret?rio raiz informado. Este diret?rio raiz deve conter
as classes java para o viewer, que por padr?o ficam em “/usr/local/vnc/classes”. Esta op??o
permite voc? acessar seu ambiente remotamente com um browser que tenha suporte a java.

-httpPort [porta]
Espec?fica a porta na qual o servidor HTTP ir? escutar. O padr?o ? 5800 mais o n?mero do
display.

-rfbauth [arquivo], -PasswordFile [arquivo]
Espec?fica o arquivo de senhas que o VNC deve consultar quando receber uma requisi??o. Voc?
deve especificar o arquivo que foi gerado atrav?s do arquivo vncpasswd conforme procedimento
acima (exemplo: “/home/agent/.vnc/passwd”).

-SendCutText
Habilita o compartilhamento da ?rea de transfer?ncia entre o ambiente do VNC para a m?quina
que esta executando o vncviewer. Esta op??o ? habilitada por padr?o. Para que esta op??o
funcione ? necess?rio executar o vncconfig no ambiente do VNC.

-AcceptCutText
Idem a anterior por?m no sentido inverso.

-DisconnectClients
Desconecta o usu?rio atual do ambiente VNC quando uma nova requisi??o n?o compartilhada ?
feita. O padr?o ? ativado. Se est? op??o for definida como “false”, novas requis?es n?o
compartilhadas ser?o recusadas enquanto o primeiro usu?rio estiver ativo. Quando est? op??o
for combinada com a op??o “NeverShared” s? ser? poss?vel ter um ?nico usu?rio por vez.

-NeverShared
Independente da configura??o do client, n?o permite conex?es compartilhadas. O padr?o ?
desativado.

-AlwaysShared
Independente da configura??o do client, sempre permite conex?es compartilhadas. O padr?o ?
desativado.

-SecurityTypes [op??o]
Define o modo de autentica??o. Atualmente s? existem as op??es “None” e “VncAuth”. O valor
padr?o ? “VncAuth”. Se voc? configurar esta op??o com “None” n?o ser? necess?rio informar
nenhuma senha no momento da requisi??o, isto ?, qualquer um ter? acesso ao seu ambiente VNC.
Portanto s? configure com “None” est?o op??o se voc? tiver certeza do que est? fazendo.

-QueryConnect
Pergunta ao usu?rio do ambiente VNC se deve aceitar ou n?o conex?es externas no momento da
requisi??o. Se voc? for usar o m?dulo do VNC ou vncserver ? necess?rio executar o vncconfig
no ambiente VNC, entretando n?o ? necess?rio para o x0vncserver.

-localhost
Aceita somente requisi??es locais. Ideal se voc? for acessar o ambiente atrav?s de um t?nel
SSH. Veja a documenta??o “Tunelando com OpenSSH” em
http://agentsmith.powerlinux.com.br/docs/doc7.html.

4.1. Utilizando o vncserver
===========================

Necessariamente voc? n?o precisa fazer nenhum configura??o inicial para usar o vncserver.

Quando o vncserver ? executado pela primeira vez ele checa a exist?ncia dos arquivos $HOME/.vnc/passwd (caso um alternativo n?o seja informado pela op??o -rfbauth ou -PasswordFile) e $HOME/.vnc/xstartup. Caso algum desses arquivos n?o exista o vncserver ir? criar um arquivo padr?o. No caso do arquivo $HOME/.vnc/passwd voc? precisa informar a senha de acesso ao ambiente do VNC.

agent@smith:~$ vncserver

You will require a password to access your desktops.

Password:
Verify:

New ’smith:1 (agent)’ desktop is smith:1

Creating default startup script /home/agent/.vnc/xstartup
Starting applications specified in /home/agent/.vnc/xstartup
Log file is /home/agent/.vnc/smith:1.log

agent@smith:~$

Por padr?o o vncserver utiliza o display :1, sendo assim o Xvnc ir? escutar na porta 5901. Se voc? deseja saber quais op??es que foram passadas para o Xvnc execute o comando abaixo.

agent@smith:~$ ps aux | grep Xvnc
agent 436 0.1 1.4 9528 7404 pts/0 S 17:00 0:00 Xvnc :1 -desktop smith:1 (agent) -httpd /usr/local/vnc/classes -auth /home/agent/.Xauthority -geometry 1024×768 -depth 16 -rfbwait 30000 -rfbauth /home/agent/.vnc/passwd -rfbport 5901 -pn

O arquivo xstartup padr?o de longe n?o ? a melhor op??o, pois o mesmo executa o twm como gerenciador de janelas. Se voc? deseja que seja iniciado o mesmo gerenciador de janelas que ? iniciado pelo script startx substitua o arquivo xstartup com o conte?do abaixo.

#!/bin/sh

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
sh /etc/X11/xinit/xinitrc

Se voc? possui um configura??o personalizada para seu usu?rio altere a linha sh /etc/X11/xinit/xinitrc para sh $HOME/.vnc/xinitrc.

Voc? tamb?m pode utilizar todas as op??es descritas no iten Utiliza??o para o arquivo Xvnc.

agent@smith:~$ vncserver –help

usage: vncserver [:] [-name ] [-depth ]
[-geometry x]
[-pixelformat rgbNNN|bgrNNN]

vncserver -kill

Al?m das op??es descritas no item Utiliza??o voc? pode especificar as dimens?o da nova sess?o do X com a op??o -geometry. Essa op??o n?o pode ser usada com as outras formas de utiliza??o do VNC descritas nos outros itens.

-geometry [largura]x[altura]
Define as dimens?es da uma nova sess?o do X criada pelo vncserver. O padr?o ? 1024×768.

Essa op??o ? util quando voc? sabe as dimens?es do ambiente onde o vncviewer ser? executado. Desta forma voc? pode definir as dimens?es da nova sess?o do X seja menor do que as dimens?es do ambiente da m?quina onde ser? executado o vncviewer.

Para que a nova sess?o do X n?o escute na porta 6000 voc? tamb?m pode adicionar a op??o -nolisten tcp no final do comando do vncserver.

O VNC utiliza como padr?o o arquivo $HOME/.vnc/[hostname][display].log para armazenar seus logs. O $HOME/.vnc/[hostname][display].pid armazena o id do processo do Xvnc, este n?mero ? utilizado pelo comando vncserver -kill.

Para finalizar o ambiente VNC e a sess?o do X basta executar vncserver -kill seguido do display.

agent@smith:~$ vncserver -kill :1
Killing Xvnc process ID 436

4.2. Utilizando o x0vncserver
=============================

Para usar o x0vncserver voc? ser? obrigado a usar no m?nimo a op??o -rfbauth [arquivo] ou -PasswordFile [arquivo] caso voc? deseje que seu ambiente seja protegido por uma senha ou -SecurityTypes None para um acesso direto sem senha.

Se voc? estiver localmente na m?quina na qual deseja compartilhar o ambiente VNC basta executar o comando abaixo em um terminal qualquer. N?o feche este terminal pois se n?o o processo do VNC ser? finalizado tamb?m. Voc? pode criar um atalho em seu gerenciador de janela para n?o precisar deixar um terminal aberto ou colocar esse comando no arquivo ~/.xprofile para ser executa na inicializa??o da sess?o do X.

agent@smith:~$ x0vncserver PasswordFile=~/.vnc/passwd &

Ou se voc? estiver remotamente via SSH ser? necess?rio especificar o display com a op??o -display :0 da seguinte forma.

agent@smith:~$ x0vncserver PasswordFile=~/.vnc/passwd -display :0 &

Caso voc? use GDM e ao tentar usar o x0vncserver ? retornado o erro Xlib: Invalid MIT-MAGIC-COOKIE-1 key configure a v?riavel XAUTHORITY de acordo com o arquivo utilizado pelo GDM da seguinte forma.

agent@smith:~# XAUTHORITY=/var/lib/gdm/\:0.Xauth x0vncserver PasswordFile=/home/agent/.vnc/passwd -display :0 &

Se voc? iniciou a sess?o do X via startx e tamb?m tiver problemas do tipo Xlib: connection to “:0.0″ refused by server utilize o comando xhost + como root antes de executar o x0vncserver.

Voc? tamb?m pode utilizar as op??es descritas no item Utiliza??o.

agent@smith:~$ x0vncserver -h

usage: x0vncserver [ ]

Parameters can be turned on with - or off with - =0
Parameters which take a value can be specified as -
Other valid forms are = - ==
Parameter names are case-insensitive.

Para finalizar o x0vncserver basta executar o comando abaixo.

agent@smith:~$ killall -9 x0vncserver
[1]+ Killed x0vncserver PasswordFile=~/.vnc/passwd -display :0

4.3. Utilizando o VNC como m?dulo para X
========================================

Atualmente utilizo o VNC desta forma, ela ? ideal para quem n?o usa uma m?quina compartilhada. Caso sua m?quina seja compartilhada com outros usu?rios utilize o VNC com inetd conforme item Utilizando o VNC com inetd.

Edite o arquivo /etc/X11/xorg.conf ou XF86Config e insira a linha Load “vnc” na sess?o Module.

Section “Module”

Load “vnc”
EndSection

Neste mesmo arquivo na sess?o Screen insira as op??es do Xvnc descritas no item Utiliza??o conforme desejar.

Section “Screen”

# VNC Configuration
# Option “SecurityTypes” “None”
Option “SecurityTypes” “VncAuth”
Option “UserPasswdVerifier” “VncAuth”
Option “PasswordFile” “/home/agent/.vnc/passwd”
Option “Httpd” “/usr/local/vnc/classes”
Option “Desktop” “Agent Smith VNC”
EndSection

Agora reinicie o X (Ctrl+Alt+Backspace ou killall -1 X) para carregar o m?dulo do VNC. Para descarregar o m?dulo edite o arquivo xorg.conf ou XF86Config novamente e comente a linha Load “vnc” colocando um # no in?cio.

4.4. Utilizando o VNC com inetd
===============================

O VNC com inetd ? ideal para m?quinas utilizadas por v?rios usu?rios ao mesmo tempo, pois permite multiplos logins com usu?rios diferentes ao mesmo tempo. Para isso voc? precisa ter um gerenciador de login gr?fico com suporte ? XDMCP. Al?m disso o Xvnc ser? executado somente a cada requis?o externa.

Existem dois modos no qual o VNC pode ser utilizado com o inetd chamados nowait e wait.

4.4.1. Modo nowait
==================

No modo nowait a cada requis?o externa em uma mesma porta o Xnvc ? executado. O Xvnc nunca ir? escutar a porta diretamente, portanto n?o ser? poss?vel efetuar requisi??es externas compartilhadas. Entretanto, utilizando o vncconfig ? poss?vel efetuar requisi??es reversas (do servidor para o cliente) colocando o vncviewer em modo de escuta, veja em detalhes no item Utilizando o vncconfig mais abaixo. Quando a conex?o com o vncviewer ? finalizada ou interrompida o processo do Xnvc tamb?m ? finalizado.

Para habilitar esse modo edite o arquivo /etc/inetd.conf e insir? a seguinte linha.

5900 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once securitytypes=none

Neste exemplo a cada requisi??o externa o Xvnc ser? executado e o usu?rio ter? acesso da tela de login gr?fico via XDMCP, desta forma n?o precisamos configurar uma senha para o ambiente do VNC (securitytypes=none).

Para parar de usar o VNC basta comentar a linha do inetd.conf e reiniciar o inetd (/etc/rc.d/rc.inetd restart ou killall -1 inetd).

4.4.2. Modo wait
================

No modo wait, na primeira requis?o, o inetd faz com que o Xvnc seja executando escutando a porta diretamente. Isto significa que para cada porta existir? somente Xvnc executando. Portanto novas requisi??es compartilhadas poder?o ser aceitas pelo Xvnc. Mesmo quando a conex?o com o vncviewer for finalizada ou interrompida o processo do Xnvc continuar? rodando. O processo do Xnvc somente ser? finalizado quando o usu?rio efetuar um logoff da sess?o do gerenciador de login.

Para habilitar esse modo edite o arquivo /etc/inetd.conf e insir? a seguinte linha.

5900 stream tcp wait agent /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once passwordFile=/home/agent/.vnc/passwd

Neste modo ? necess?rio especificar um arquivo de senha pois o Xvnc continuar? rodando at? que o usu?rio efetue o logoff. Se voc? fechar a janela do vncviewer o Xvnc ainda continuar? rodando podendo ser acessado posteriormente por qualquer usu?rio que tenha acesso a rede. Al?m disso o Xvnc poder? receber requisi??es compartilhadas.

Para parar de usar o VNC basta comentar a linha do inetd.conf e reiniciar o inetd (/etc/rc.d/rc.inetd restart ou killall -1 inetd).

5. Utilizando o vncconfig
=========================

O vncconfig possu? duas finalidades. A principal ? para controlar um Xvnc que j? esta em execu??o e a outra ? habilitar o compartilhamento da ?rea de transfer?ncia.

Segue abaixo as op??es para a fun??o principal do vncconfig.

-connect [nome ou ip]:[porta]
Faz um conex?o reversa com um vncviewer que esta escutando em [nome ou ip]. Se a op??o
:[porta] n?o for especif?cada a padr?o (5500) ser? utilizada.

-disconnect
Desconecta todos os clientes conectados ao ambiente VNC.

[-set] [op??o do Xvnc]=[valor]
Especif?ca um valor para o Xvnc que esta em execu??o. Essa op??o n?o serve para todas as
op??es do Xvnc.

-list
Lista todos as op??es que Xvnc suporta.

-get [op??o do Xvnc]
Imprime na tela o valor atual da op??o do Xvnc.

-desc [op??o do Xvnc]
Imprime na tela um pequena descri??o da op??o do Xvnc.

Segue abaixo as op??es para o compartilhamento da ?rea de transfer?ncia.

-display [display]
Especif?ca o display em que o ambiente VNC esta sendo executado.

-nowin
N?o exibe a janela de compartilhamento da ?rea de transfer?ncia.

-iconic
Executa a janela de compartilhamento da ?rea de transfer?ncia minimizada.

6. Utilizando o vncviewer ou browser
====================================

O vncviewer ? o cliente para acesso ao ambiente do VNC. Quando executa sem nenhuma op??o ? exibido uma janela para que voc? forne?a as informa??es do ambiente VNC que se deseja conectar.

Voc? tamb?m pode especif?car essas op??es via linha de comando da seguinte forma vncviewer [op??es] nome ou (ip)[:display].

? possivel executar o vncviewer em modo de escuta da seguinte forma vncviewer [op??es] -listen [porta]. Nesse modo a requisi??o ser? feita atrav?s do servidor onde se encontra o ambiente VNC em execu??o.

Cado voc? n?o especif?que o modo de condifica??o e a quantidade de cores o vncviewer ir? testar a velocidade entre o cliente e o server e selecionar? a mais adequada. Uma vez conectado voc? poder? alterar algumas dessas op??es atrav?s do menu do vncviewer precionando a tecla F8.

Segue abaixo as principais op??es que voc? pode utilizar com vncviewer via linha de comando.

-listen [porta]
Especif?ca a porta em que o o vncviewer ir? escutar. A porta padr?o ? 5500. A conex?o remota
deve ser inicia a partir do ambiente VNC utilizando o vncconfig (exemplo “vncconfig -connect
192.168.0.2:5500″).

-Shared
Envia uma requisi??o compartilhada. Por padr?o o ambiente VNC fecha todas as outras conex?es
quando recebe uma nova requisi??o n?o compartilhada.

-ViewOnly
Faz com que os eventos de teclado e mouse n?o sejam enviados para o ambiente VNC. Essa op??o
? util quando se deseja somente visualizar somente o que outro usu?rio j? conectado esta
fazendo, por isso ? ideal que essa ela seja utilizada em conjunto com a op??o “-Shared”.

-FullScreen
Inicia a sess?o em modo tela cheia.

Outras op??es do vncviewer podem ser vistas em sua man page (man vncviewer).

Para acessar um ambiente via browser, caso o servidor tenha suporte, basta digitar o endere?o seguido de dois pontos e a porta na barra de endere?os (exemplo http://192.168.0.2:5800). O unico pr?-requisito ? que o browser precisa ter suporte a java.

7. Conclus?o
============

O VNC ? mais f?cil de usar do que ele ja aparenta ser. Al?m de f?cil existe diversas formas seguras de utiliza??o.

A ?nica implementa??o que falta para o VNC ? implementar a transfer?ncia de arquivos entre o servidor e cliente. Isso j? existe para os projetos http://ultravnc.sourceforge.net e http://www.tightvnc.com por?m s? para Windows.

8. Refer?ncias
==============

- RealVNC (http://www.realvnc.com)
- Google (http://www.google.com.br)

Roteamento avan?ado no Gnu/Linux com Iproute2

Neste link abaixo, voc? poder? conferir como voc? pode implantar de forma avan?ada um roteador com Gnu/Linux.
http://lartc.org/howto/