quarta-feira, 21 de dezembro de 2011

SHELL parâmetros, estrutura de condição e repetição



segunda-feira, 5 de dezembro de 2011

Converting parallels or vm ware to virtual box



PostgreSQL - Converter Codificação do banco

1) Faz o backup do banco ou tabela;
2) Executa o seguinte comando no arquivo .sql do backup:
iconv -f LATIN1 -t UTF8 < banco.sql > banco-UTF8.sql
3) O arquivo de saída banco-UTF8.sql deve ser importado novamente.

Obs.: Substitua LATIN1 pelo formato atual do banco e UTF8 pelo formato que você deseja.

Remover caracteres especiais do banco de dados PostgreSQL

#Seleciona o caractere;
SELECT latitude FROM gestpcd_2 WHERE latitude like '%Â%';

#Substitui o caractere por vazio;
update table set column = replace(column,'Â','');

terça-feira, 29 de novembro de 2011

Instalar Interface gráfica Centos 6


Pode ser mais fácil em alguns casos trabalhar com a interface gráfica CentOS, veja como é fácil instalar:


1. Faça a instalação dos pacotes

yum install -y kdebase kdeutils firefox system-config* nedit yum-utils yum-plugin-fastestmirror
yum-plugin-protectbase yumex


2. configure a placa de vídeo com o comando
system-config-display

3.inicio o x
startx

quarta-feira, 23 de novembro de 2011

Putty SSH - Executando aplicações gráficas remotamente

1. Xming X Server for Windows – http://sourceforge.net/projects/xming

1.1. Configuração do servidor SSH

Para que os programas tenham seus pacotes enviados remotamente, o SSH precisa estar configurado para aceitar isso. A maioria das distribuições já deixam esta configuração feita, mas por via das dúvidas, logue-se via SSH no servidor como root, edite o arquivo /etc/ssh/sshd_config e procure pela linha:
X11Forwarding yes
Certifique-se de que esta opção esteja como "yes" (sim). Se estiver como não ou comentada, deixe como a linha acima. Feito isto, reinicie o serviço de SSH com o seguinte comando:
/etc/init.d/sshd restart
(Nota: Este comando acima pode mudar de distribuição para distribuição, apesar da maioria aceitá-lo. Se for o caso de não funcionar com voce, mude de acordo com a sua distribuição)

1.2. Utilizando o Windows como cliente

Após instalação do xming, abre o putty SSH, no meu de categoria "do lado esquerdo" clica em SSH, depois em X11 e habilita ENABLE X11 FORWARDING.

terça-feira, 22 de novembro de 2011

Convert Virtualbox vdi to KVM (qcow)

Modo 1)

Execute:

# qemu-img convert Linux.vmdk -O raw Linux.img

do servidor KVM com os pacotes de virtualização instalados.

Para editar o tamanho do HD Virtual KVM:

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G



Modo 2)

I have been asked several times how to convert an existing VirtualBox machine / image to KVM. The process is quite easy and involves simply converting your virtual hard drive (VirtualBox uses "vdi") to a format compatible with KVM (qcow). You then use the qcow image with KVM, either from the command line of with virt-manager.


Although the process is quite easy, it does require sufficient hard drive space as the VirtualBox .vdi is first converted to a raw disk image.
Side track – Both vdi and qcow images are compressed, so a a 10 Gb .vid or .qcow will take less space on your hard drive. Conversion, however, requires you to first convert the .vdi to a raw image, which will require the full 10 Gb, so plan accordingly.
Assume your VirtualBox image is called "ubuntu.vdi"


Step 1. Convert the VB disk vdi image to a raw image format.


VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img
Note: The ubunut.img is a raw disk image, it will be quite large (as many GB as your virtual drive is, see above).


Step 2 : convert the raw image to a qcow


qemu-img convert -f raw ubuntu.img -O qcow2 ubuntu.qcow

That is all there is to it, the ubuntu.qcow can be used with KVM.
Test your new image (ubuntu.qcow) with:


kvm -m 512 -usbdevice tablet -hda ubuntu.qcow
If it is working you may delete the raw image (ubuntu.img) and archive or delete the ubuntu.vdi .



Welcome to KVM :)

quarta-feira, 28 de setembro de 2011

Instalar NTOP no CentOS 6 (64bits)

Pré-requisitos de Pacotes:

yum install gcc
yum install python
yum install perl perl-dev
yum install openssl
yum install ruby ruby-devel
yum install readline.x86_64

yum install readline readline-devel -y
yum install zlib zlib-devel -y

yum install openssl-devel
yum install rrdtool
yum install libtool
yum install gdbm-devel perl-dev
yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel


Faz a instação do GeoIP:



E finalmente, a instalação do NTOP:

wget http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
yum install ntop

# Get yum ready
yum clean all
yum update
# Install Development Tools
yum groupinstall “Development Tools”
# Install more ntop Dependencies
yum install libpcap-devel libpcap
# Install RDD tools dependencies
yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel
# Download, compile and install RDDTools
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
tar xvzf rrdtool-1.4.5.tar.gz
cd rrdtool-1.4.5
./configure
make
make install
# Download, compile and Install GeopIP
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar xvzf GeoIP.tar.gz
cd GeoIP-1.4.6/
./configure
./make
./make install
NOTE: config at: /usr/local/etc/GeoIP.conf
#Download, compile and install nTop 4.0.1
wget http://cdnetworks-us-1.dl.sourceforge.net/project/ntop/ntop/ntop-4.0.1/ntop-4.0.1.tar.gz
tar xvzf ntop4.0.1.tar.gz
cd ntop-4.0.1/
autoconf
./configure –with-rrd-home=/opt/rrdtool-1.4.4/
make
make install
# Add ntop user and directory permissions.
useradd -M -s /sbin/nologin -r ntop
chown -R ntop:root /usr/local/var/ntop/
chown -R ntop:ntop /usr/local/share/ntop/
# Set ntop password
ntop -A
# To start ntop on boot
nano /etc/rc.local # and add: /usr/local/bin/ntop -i “eth0,eth1″ -d -L -u ntop -P /usr/local/
you have multiple interface (eth0, eth1 and so on), start ntop as follows:
# To start ntop
/usr/bin/ntop -i “eth0″ -d -L -u ntop -P /var/ntop –skip-version-check –use-syslog=daemon
htpasswd -c /etc/httpd/.htpasswd segredes
Where,
* -i “eth0,eth1″ : Specifies the network interface or interfaces to be used by ntop for network monitoring. Here you are monitoring eth0 and eth1.
* -d : Run ntop as a daemon.
* -L : Send all log messages to the system log (/var/log/messages) instead of screen.
* -u ntop : Start ntop as ntop user
* -P /usr/local/var/ntop : Specify where ntop stores database files. You may need to backup database as part of your disaster recovery program.
* –skip-version-check : By default, ntop accesses a remote file to periodically check if the most current version is running. This option disables that check.
* –use-syslog=daemon : Use syslog daemon.
By default ntop listen on 3000 port. You can view ntop stats by visiting following url:
http://localhost:3000/

quinta-feira, 22 de setembro de 2011

Customizando os arquivos de log do Squid


Com a liberação do Squid 2.6 surgiram várias novas funcionalidades e uma delas é o logformat que serve para manipular a forma em que o log será gerado. Funciona da seguinte forma:
  logformat < nome> < especificação do formato>  
O nome nada mais é do que um nome para manipulação do formato.
A especificação do formato pode ser customizada como o administrador achar melhor, sempre adicionando o prefixo %. Segue a lista de especificações:
>a IP de origem da requisição (cliente)
>A FQDN do cliente
>p Porta de origem no cliente
< A IP do servidor de destino
la IP local do servidor Squid
lp Porta local do servidor Squid
ts Segundos passados desde a requisição
tu Subsegundos
tl Horário do servidor. Strings opcionais utilizadas como padrão. %d/%b/%Y:%H:%M:%S %z
tg Horário GMT. Strings opcionais utilizadas como padrão. %d/%b/%Y:%H:%M:%S %z
tr Tempo de resposta, em milisegundos)
>h Cabeçalho de requisição.
< h Cabeçalho de retorno.
un Nome do usuário
ul Login do usuário
ui Ident do usuário
us SSL
ue ACL externa
Hs Status do código HTTP
Ss Status da requisição (TCP_MISS/TCP_REFRESH/TCP_DENIED etc)
Sh Status da hierarquia do Squid (DEFAULT_PARENT etc)
mt MIME type do conteúdo
rm Método requisitado na conexão(GET/POST/CONNECT etc)
ru URL requisitada
rv Versão do protocolo requisitado
ea String retornada por uma ACL externa
< st Tamanho da resposta, incluindo cabeçalho HTTP
% % literal

Nova forma para o log

Para criar um novo template para o seu arquivo de log primeiro precisamos criar uma diretiva do tipo logformat que será usada mais a frente.
  logformat MEU_LOG IP do cliente: %>a - Username: %un - Horario: [%tl] - Metodo: %rm - URL: %ru - Status HTTP: %Hs - Status Squid: %Ss  
Logo em seguida definimos onde será utilizado o novo template. Estou separando em dois arquivos de logs (access.log e gerencia.log) para não atrapalhar o correto funcionamento do SARG.
O logformat com o nome squid é o padrão do Squid que estamos acostumados a ver e que o SARG necessita para que funcione corretamente.
O logformat com o nome MEU_LOG foi o template que criei para poder enviar, em um formato mais amigável, para a gerencia.
  access_log /var/log/squid/access.log squid    access_log /var/log/squid/gerencia.log MEU_LOG  
Nunca esquecer de dar um reload no Squid para que as novas configurações entrem em vigor.
  # squid -k reconfigure  

Log de acesso

Após a criação das regras meus dois logs de acesso, acessando o site http://www.integral.inf.br/, ficaram da seguinte forma
access.log
  1204121424.137     67 172.31.255.103 TCP_MISS/200 21384 GET http://www.integral.inf.br/home/index.php - DIRECT/172.31.254.2 text/html    1204121425.820     17 172.31.255.103 TCP_MISS/200 4116 GET http://www.integral.inf.br/inc/php/logo_casos.php? - DIRECT/172.31.254.2 image/png    1204121425.844     41 172.31.255.103 TCP_MISS/200 3522 GET http://www.integral.inf.br/inc/php/logo_casos.php? - DIRECT/172.31.254.2 image/png    1204121425.858     53 172.31.255.103 TCP_MISS/200 5263 GET http://www.integral.inf.br/inc/php/img_parceiro_banner.php? - DIRECT/172.31.254.2 image/png    1204121425.858     54 172.31.255.103 TCP_MISS/200 7240 GET http://www.integral.inf.br/inc/php/img_parceiro_banner.php? - DIRECT/172.31.254.2 image/png  
gerencia.log
  IP do cliente: 172.31.255.103 - Username: moraes - Horario: [27/Feb/2008:11:10:24 -0300] - Metodo: GET - URL: http://www.integral.inf.br/home/index.php - Status HTTP: 200 - Status Squid: TCP_MISS    IP do cliente: 172.31.255.103 - Username: moraes - Horario: [27/Feb/2008:11:10:25 -0300] - Metodo: GET - URL: http://www.integral.inf.br/inc/php/logo_casos.php? - Status HTTP: 200 - Status Squid: TCP_MISS    IP do cliente: 172.31.255.103 - Username: moraes - Horario: [27/Feb/2008:11:10:25 -0300] - Metodo: GET - URL: http://www.integral.inf.br/inc/php/logo_casos.php? - Status HTTP: 200 - Status Squid: TCP_MISS    IP do cliente: 172.31.255.103 - Username: moraes - Horario: [27/Feb/2008:11:10:25 -0300] - Metodo: GET - URL: http://www.integral.inf.br/inc/php/img_parceiro_banner.php? - Status HTTP: 200 - Status Squid: TCP_MISS    IP do cliente: 172.31.255.103 - Username: moraes - Horario: [27/Feb/2008:11:10:25 -0300] - Metodo: GET - URL: http://www.integral.inf.br/inc/php/img_parceiro_banner.php? - Status HTTP: 200 - Status Squid: TCP_MISS  

Tratando ACL

Com essa nova funcionalidade podemos atrelar um arquivo de log para cada acl como abaixo.
  logformat LOG_DOMINIOS_LIBERADOS IP do cliente: %>a - Username: %un - Horario: [%tl] - Metodo: %rm - URL: %ru - Status HTTP: %Hs - Status Squid: %Ss       acl DOMINIOS_LIBERADOS dstdomain "/etc/squid/DOMINIOS_LIBERADOS.rules"       access_log /var/log/squid/dominios_liberados.log LOG_DOMINIOS_LIBERADOS DOMINIOS_LIBERADOS  

terça-feira, 2 de agosto de 2011

Substituir string usando vim [Linux]

Abrir arquivo usando vim:

ex.: vim arquivo.txt

em seguida digitar o seguinte comando
:%s/string velho/string novo/gc

quinta-feira, 28 de julho de 2011

Installing Tomcat 6 on CentOS 5

May be a niche post but after some fighting with my virtual server running CentOS 5 it boiled down to a really simple solution:
1cd /etc/yum.repos.d
2wget 'http://www.jpackage.org/jpackage50.repo'
3yum update
4yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps
5service tomcat6 start
If you have problems accessing the server from another machine you may need to do the following:
1setup
2"Firewall configuration"
3"Customize"
4"Other ports" 8080:tcp
5"Ok"
6service tomcat6 restart
UPDATE:
If you get a dependency error try this:
1rpm -Uvh 'http://plone.lucidsolutions.co.nz/linux/centos/images/jpackage-utils-compat-el5-0.0.1-1.noarch.rpm'
More info:http://plone.lucidsolutions.co.nz/linux/centos/jpackage-jpackage-utils-compatibility-for-centos-5.x
(update provided by Tony, thanks)

sexta-feira, 22 de julho de 2011

Backup & Restore Database in PostgreSQL (pg_dump,pg_restore)


1ª Forma:

Published: July 16, 2008 , Updated: May 31, 2010 , Author: mkyong
Here i demostrate how to backup and restore dabatase in PostgreSQL
1)Backup data with pg_dump


pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v -f 
"/usr/local/backup/10.70.0.61.backup" old_db
To list all of the available options of pg_dump , please issue following command.

 


1
pg_dump -?

-p, –port=PORT database server port number
-i, –ignore-version proceed even when server version mismatches
-h, –host=HOSTNAME database server host or socket directory
-U, –username=NAME connect as specified database user
-W, –password force password prompt (should happen automatically)
-d, –dbname=NAME connect to database name
-v, –verbose verbose mode
-F, –format=c|t|p output file format (custom, tar, plain text)
-c, –clean clean (drop) schema prior to create
-b, –blobs include large objects in dump
-v, –verbose verbose mode
-f, –file=FILENAME output file name

2) Restore data with pg_restore

pg_restore -i -h localhost -p 5432 -U postgres -d old_db -v 
"/usr/local/backup/10.70.0.61.backup"
 
To list all of the available options of pg_restore , please issue following command.
1
pg_restore -?
-p, –port=PORT database server port number
-i, –ignore-version proceed even when server version mismatches
-h, –host=HOSTNAME database server host or socket directory
-U, –username=NAME connect as specified database user
-W, –password force password prompt (should happen automatically)
-d, –dbname=NAME connect to database name
-v, –verbose verbose mode


Criar usuário administrador no bando de dados:

 createuser -a -d -E -P nomeusuario

Codificação LATIN


2ª Forma

#Backup
pg_dump -vW -Upostgres dbname | gzip > /home/bkp_banco.gz


#Restore
cat bkp_banco.gz | gunzip | psql dbname


---------------------------------------------------------------------------------------------------------

Comandos Postgresql:

Criar Usuário
CREATE ROLE nomeusuario;

Nas versões anteriores usava-se o parâmetro “CREATEUSER” para indicar a criação de um superusuário, agora usa-se o parâmetro mais adequado SUPERUSER.

Para poder criar um novo usuário local, com senha, devemos setar antes o pg_hba.conf:
local all all 127.0.0.1/32 password
Comentar as outras entradas para conexão local.
Isso para usuário local (conexão via socket UNIX).

Criamos assim:
CREATE ROLE nomeuser WITH ENCRYPTED PASSWORD '********';
Ao se logar: psql -U nomeuser nomebanco.
CREATE ROLE nomeusuario VALID UNTIL 'data'

Excluindo Usuário
DROP USER nomeusuario;

Como usuário, fora do psql:

Criar Usuário
CREATEROLE nomeusuario;

Excluindo Usuário
DROPUSER nomeusuario;
Detalhe: sem espaços.

Criando Superusuário
CREATE ROLE nomeuser WITH SUPERUSER ENCRYPTED PASSWORD '******';
-- usuário com poderes de super usuário

Alterar Conta de Usuário
ALTER ROLE nomeuser ENCRYPTED PASSWORD '******' CREATEUSER
-- permissão de criar usuários
ALTER ROLE nomeuser VALID UNTIL '12/05/2006';
ALTER ROLE fred VALID UNTIL ’infinity’;
ALTER ROLE miriam CREATEROLE CREATEDB; -- poderes para criar bancos

Obs.: Lembrando que ALTER ROLE é uma extensão do PostgreSQL.

Listando todos os usuários:
SELECT usename FROM pg_user;
A tabela pg_user é uma tabela de sistema (_pg) que guarda todos os usuários do PostgreSQL.

Também podemos utilizar:
\du ou \dg

Criando Um Grupo de usuários
CREATE GROUP nomedogrupo;

Adicionar/Remover Usuários de um Grupo
ALTER GROUP nomegrupo ADD USER user1, user2,user3 ;
ALTER GROUP nomegrupo DROP USER user1, user2 ;

Excluindo Grupo
DROP GROUP nomegrupo;

Obs.: isso remove somente o grupo, não remove os usuários.

Listando todos os grupos:
SELECT groname FROM pg_group;

Privilégios
Dando Privilégios A Um Usuário
GRANT UPDATE ON nometabela TO nomeusuario;

Dando Privilégios A Um Grupo Inteiro
GRANT SELECT ON nometabela TO nomegrupo;

Removendo Todos os Privilégios de Todos os Users
REVOKE ALL ON nometabela FROM PUBLIC

Privilégios
O superusuário tem direito a fazer o que bem entender em qualquer banco de dados do SGBD.
O usuário que cria um objeto (banco, tabela, view, etc) é o dono do objeto.
Para que outro usuário tenha acesso ao mesmo deve receber privilégios.
Existem vários privilégios diferentes: SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER, CREATE, TEMPORARY, EXECUTE e USAGE.
Os privilégios aplicáveis a um determinado tipo de objeto variam de acordo com o tipo do objeto (tabela, função, etc.).

O comando para conceder privilégios é o GRANT. O de remover é o REVOKE.

GRANT UPDATE ON contas TO joel;
Dá a joel o privilégio de executar consultas update no objeto contas.

GRANT SELECT ON contas TO GROUP contabilidade;

REVOKE ALL ON contas FROM PUBLIC;

Os privilégios especiais do dono da tabela (ou seja, os direitos de DROP, GRANT, REVOKE, etc.) são sempre inerentes à condição de ser o dono, não podendo ser concedidos ou revogados. Porém, o dono do objeto pode decidir revogar seus próprios privilégios comuns como, por exemplo, tornar a tabela somente para leitura para o próprio, assim como para os outros.

Normalmente, só o dono do objeto (ou um superusuário) pode conceder ou revogar privilégios para um objeto.

-- Criação dos grupos
CREATE GROUP adm;
CREATE USER paulo ENCRYPTED PASSWORD 'paulo' CREATEDB CREATEUSER;

-- Criação dos Usuários do Grupo adm
CREATE USER andre ENCRYPTED PASSWORD 'andre' CREATEDB IN GROUP adm;
CREATE USER michela ENCRYPTED PASSWORD 'michela' CREATEDB IN GROUP adm;

O usuário de sistema (super usuário) deve ser um usuário criado exclusivamente para o PostgreSQL. Nunca devemos torná-lo dono de nenhum executável.

Os nomes de usuários são globais para todo o agrupamento de bancos de dados, ou seja, podemos utilizar um usuário com qualquer dos bancos.

Os privilégios DROP, GRANT, REVOKE, etc pertencem ao dono do objeto não podendo ser concedidos ou revogados. O máximo que um dono pode fazer é abdicar de seus privilégios e com isso ninguém mais teria os mesmos e o objeto seria somente leitura para todos.
Exemplo: para permitir a um usuário apenas os privilégios de INSERT, UPDATE e SELECT e não permitir o de DELETE em uma tabela, use:

REVOKE ALL ON tabela FROM usuario;
GRANT SELECT,UPDATE,INSERT ON tabela TO usuario;

Instalando Cacti no CentOS 5

Instalando RRDTool no centos 5 usando yum

Como recuperar sua senha de root para o MySQL


Passo 1:
Certifique-se de que você tem o mysql-server instalado. Se não tiver, esse pode ser um indício da sua incapacidade de acessar o BD. Pode instalá-lo a partir da shell com o comando "apt-get install mysql-server" (sem as aspas, obviamente).
Aproveite e instale também o cliente "apt-get install mysql-client".


Passo 2:
Vamos parar o mysql.
/etc/init.s mysql stop


Passo 3:
Inicie novamente o mysql em plano de fundo, mas em modo de segurança e com a gloriosa flag acima mencionada:
/usr/bin/mysqld_safe --skip-grant-tables &


Passo 4:
Agora que já tem o MySQL ativo com a flag, ele vai te deixar entrar diretamente sem senha:
mysql --user=root mysql


Passo 5:
Mude a senha e faça reset ao cache de permissões.
mysql> update user set Password=PASSWORD('nova senha aqui') WHERE User='root';
Query OK, 3 rows affected (0.06 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql> exit
Bye


Passo 6:
Vamos trazer o mysql (que está em modo de segurança) a primeiro plano e pará-lo:
fg
E Control+C


Passo 7:
Reinicie o mysql em modo normal:
/etc/init.d/mysql restart


Prontinho. Anote a senha e não volte a se esquecer (como eu fiz). rsrs

terça-feira, 19 de julho de 2011

Enviando Emails do console usando Postfix-Gmail com SMTP-RELAY



Fonte: www.xjulio.info/blog/enviando-email-do-comsole-usando-postfix-gmail-com-smtp-relay-no-ubuntu
Autor: Julio Cadorso



Esse tutorial eu irei explicar como você pode enviar emails diretamente do console usando o postfix e o smtp do gmail. Bem faz bastante tempo que eu venho querendo aprender sobre servidores de email, sempre tem sido difícil estudar a respeito dele, então consegui implementar uma configuração simples. na qual vou documentar aqui nesse tutorial, que pode servir para posterior lembrança minha e principalmente para compartilhar o conhecimento. Então vamos começar. Passos usados nesse Tutorial

  1. Instalar os Pacotes (Programas e dependências)
  2. Editar o arquivo /etc/postfix/main.cf
  3. Editar o arquivo /etc/postfix/generic
  4. Editar o arquivo /etc/postfix/sasl_passwd
  5. Criar os certificados no diretório /etc/postfix/certs/
  6. Usar o comando postmap para o postfix criar seu banco de dados padrão.
  7. Enviar um email pelo console para testar.
  8. Analizar o log para ver se deu tudo certo.


Primeiro vamos instalar os pacotes:


#apt-get install libsasl2-2 libsasl2-modules sasl2-bin mutt postfix openssl

Após instalar tudo edite o seguinte arquivo /etc/default/saslauthd e altere a opção start de "NO" para "YES"

Feito a alteração reinicie o serviço

#/etc/init.d/saslauthd restart

Agora vamos entrar no diretório do Postfix:

cd /etc/postfix

Vamos mover a configuração original do postfix (Caso exista):

#mv main.cf main.cf-bkp

Vamos colocar o conteúdo abaixo em um novo main.cf

#vi /etc/postfix/main.cf

Copie e cole o conteúdo abaixo

#SMTP relayhost
relayhost = [smtp.gmail.com]:587
## TLS Settings
smtp_tls_loglevel = 1
smtp_tls_CAfile = /etc/postfix/certs/CAcert.pem
smtp_tls_cert_file = /etc/postfix/certs/mycert.pem
smtp_tls_key_file = /etc/postfix/certs/mykey.pem
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/certs/CAcert.pem
smtpd_tls_cert_file = /etc/postfix/certs/mycert.pem
smtpd_tls_key_file = /etc/postfix/certs/mykey.pem
smtpd_tls_received_header = yes
# configuracao tls
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
#alias de mapeamento interno para externo
smtp_generic_maps = hash:/etc/postfix/generic

Vamos descobrir o hostname de seu servidor, digite o seguinte comando:

#hostname

O resultado do comando você usa no arquivo generic. Vamos supor que o hostname seja servidor. Vamos agora criar o arquivo "generic":

#vi /etc/postfix/generic

E inserir o conteúdo abaixo.

root@servidor seulogin@gmail.com
root@servidor.localdomain seulogin@gmail.com

Vamos criar o arquivo sasl_passwd:

#vi /etc/postfix/sasl_passwd

E colocar o seguinte conteúdo:

[smtp.gmail.com]:587 seulogin@gmail.com :suasenha

  • Criando os certificados

Vamos criar o diretório dos certificados:

#mkdir /etc/postfix/certs/

Depois...

cd /etc/postfix/certs/

Depois...

#openssl dsaparam 1024 -out dsa1024.pem

Depois...

#openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem;ln -s mycert.pem CAcert.pem

Depois...

#openssl req -x509 -new -days 3650 -key /etc/postfix/certs/mykey.pem -out /etc/postfix/certs/mycert.pem;rm dsa1024.pem

Agora...

#postmap /etc/postfix/sasl_passwd;postmap /etc/postfix/generic;postmap /etc/postfix/main.cf

E finalmente:

#/etc/init.d/postfix restart

Vamos testar se ele está funcionando enviando um e-mail de teste...

#echo "segue a mensagem" | mutt -s "teste de envio pelo console" email_qualquer@dominio.com.br

Olhe no seus logs se tudo correu bem, caso ele acuse algum erro corrija conforme a mensagem:

#tail -f /var/log/mail.log

Caso no log apareça algo relacionado a não existir o arquivo aliases.db basta seguir os passos abaixo para resolver o problema:

#cd /etc
#newaliases

segunda-feira, 13 de junho de 2011

Criando um repositório local de pacotes para Debian ou Ubuntu

Criando um repositório local de pacotes para Debian ou Ubuntu


Ter servidores e desktops em Linux apresenta muitas vantagens em sua rede como estabilidade, segurança, e a capacidade de total customização do ambiente. Mas nem sempre é fácil manter esse parque de máquinas atualizado, ter um repositório próprio é uma ótima opção para facilitar atualizações e instalações de ambientes para testes.


Tudo que precisamos neste caso é uma máquina Debian ou Ubuntu com um servidor Web instalado. Isto não será coberto neste post, apenas a configuração dos repositórios.
Primeiro instale o pacote debmirror, que utiliza o Rsync como método de sincronia. Assim depois de instalado e sincronizado o repositório o Rsync irá apenas fazer download dos arquivos que não existem no servidor, assim poucos arquivos serão baixados para atualizar o servidor.
Instalemos o programa:
# apt-get install debmirror rsync
Para facilitar a configuração do repositório iremos criar um script para ser agendado para atualização constante. Nos arquivos abaixo, antes das opções que são palavras ( como host por exemplo) usaremos dois sinais de menos ( – ), o wordpress costuma mudar para travessão depois da edição.
# vi /usr/local/bin/mirror-debian.sh
#!/bin/bash
# Repositorio de onde serão baixados os pacotes
repo=ftp.br.debian.org
# Lugar do repositório onde estão os pacotes
root=:debian
# Onde na máquina local serao baixados os pacotes
localdir=/var/www/debian/
# Versoes do Debian
dists=stable
# Seções de Software utilizados
sections=main,contrib,non-free
# Arquitetura, 32bits(i386), 64bits(amd64)
arch=i386,amd64
# Parametros de configuração do Debmirror (Apenas stable, utilizando o Rsync, ignorando o arquivo Release.gpg e não baixando pacotes de código fonte)
defopt="-v -p –arch=$arch –host=$repo –root=$root –section=$sections –dist=$dists -e rsync –ignore-release-gpg –postcleanup –getcontents –nosource"
# Linha que executa o Debmirror
echo -e "\n Criando mirror de Debian \n"
debmirror $defopt $localdir
####################################
Agora vamos criar um script para o repositório do Ubuntu:
# vi /usr/local/bin/mirror-ubuntu.sh
#!/bin/bash
# Repositorio de onde serão baixados os pacotes
repo=us.archive.ubuntu.com
# Lugar do repositório onde estão os pacotes
root=:ubuntu
# Onde na máquina local serao baixados os pacotes
localdir=/var/www/ubuntu/
# Versoes do Ubuntu
dists=maverick
# Seções de Software utilizados
sections=main,restricted,universe,multiverse
# Arquitetura, 32bits(i386), 64bits(amd64)
arch=i386,amd64
# Parametros de configuração do Debmirror (Apenas Maverick, utilizando o Rsync, ignorando o arquivo Release.gpg e não baixando pacotes de código fonte)
defopt="-v -p –arch=$arch –host=$repo –root=$root –section=$sections –dist=$dists -e rsync –ignore-release-gpg –postcleanup –getcontents –nosource"
# Linha que executa o Debmirror
echo -e "\n Criando mirror de Ubuntu \n"
debmirror $defopt $localdir
####################################
Após criar os arquivos vamos dar permissão de execução aos scripts:
# chmod -v 755 /usr/local/bin/mirror-*
Para testar basta executar manualmente os comandos:
# mirror-debian.sh
Ou
# mirror-ubuntu.sh
Lembrando que os repositórios terão todos os pacotes disponíveis das distribuições, por isso o download inicial de cada um será de mais de 40 GB, porém depois de sincronizados os downloads serão muito, mas muito menores.
Segue abaixo um screenshot de um repositório de Ubuntu sendo sincronizado com este script de Debmirror

Faça o agendamento dos scripts na crontab do seu sistema, aguarde o download ser finalizado (vai levar um bom tempo dependendo da sua conexão ;-p) e basta utilizar seus repositórios em seus clientes.
Supondo que o IP do Servidor Web seja 192.168.1.200, nos clientes Debian colocaremos a seguinte linha na sources.list:
# vi /etc/apt/sources.list
deb http://192.168.1.200/debian stable main contrib non-free
########################
Nos clientes Ubuntu colocaremos a seguinte linha:
deb http://192.168.1.200/ubuntu maverick main restricted universe multiverse
########################
Atualize seus clientes com:
# apt-get update
Para testar faça:
# apt-get install cmatrix

domingo, 22 de maio de 2011

Recuperar arquivo deletado no pendriver pelo Linux (Comando: dd e foremost)

Cria a imagem do dispositivo

Para criar a imagem pelo terminal, segue o comando:

dd if=/dev/sdb of=/tmp/pendrive.iso conv=noerror,sync

onde

  • /dev/sdb é o dispositivo para recuperar
  • /tmp/pendrive.iso é o arquivo que vamos criar a partir do conteúdo do pendriver
  • conv=noerror,sync parâmetro que indica ao comando dd que ignore os erros e siga gerando a imagem do dispositivo.

Recuperando arquivo da imagem gerada

Uma vez criada a imagem pelo passo anterior, execute o comando:

foremost -v -i /tmp/pendrive.iso

Após o término, verifique em /output a saída com os arquivos encontrados.

sexta-feira, 20 de maio de 2011

Backup usando RSYNC


Backup usando RSYNC

1 - Mantendo a Imagem do Backup idêntica a origem

Um backup feito com rsync vai ser feito de forma incremental. Porém se o usuário renomear um arquivo, apagar ou mover da origem (Por exemplo da pasta Meus Documentos) o rsync irá copiá-lo novamente. E irá ficar um fantasma no destino, ou seja. Se o usuário apagar alguns arquivo, eles continuaram no backup e o efeito colateral disso é que o backup irá crescer sem parar.
A idéia é fazer o seguinte, quando o usuário apagar um arquivo, o arquivo deve ser apagado do backup também.
A opção do rsync que faz isso é

--delete

Então a linha Correta para o backup da pasta meus documentos do exemplo anterior seria:

rsync -av --recursive --delete /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

2 - Evitando backup de alguns arquivos.

Você não deseja detonar seu espaço em disco com as músicas e filmes do seu usuário não é? Você pode dizer ao rsync para evitar alguns tipos de arquivos, bastando para isso usar a seguinte opção:

--exclude="O que se quer evitar"

Exemplo:

Vou evitar que vá para o backup os seguintes arquivos:

Arquivos de música (MP3, OGG, WAV, WMA...)
Arquivos de Filme (AVI, MPEG, MPG, FLV, MP4, WMV, AMV ...)
Programas e arquivos temporários (EXE, COM, TMP)
Fotos e imagens (JPG, JPEG, BMP ...)

Basta você separar com espaço e colocar quantas excessões quiser. E ainda pode utilizar coringas.
Por exemplo:

--exclude=*.jpg --exclude=*.avi --exclude=*.mp3 ...

quarta-feira, 11 de maio de 2011

Instalar biblioteca libgtk-1.2.so.0 no linux

Instalar biblioteca libgtk-1.2.so.0 no linux


1. Open System >> Administration >> Synaptic Package Manager
2. Go to Settings >> Repositories
3. On the Other Software tab, click Add.
4. Enter the following:
Code:
deb http://archive.ubuntu.com/ubuntu jaunty universe
5. Close Synaptic

(if you don't have synaptic (i.e. you don't have the desktop), you can modify /etc/apt/sources.list manually in a text editor. Just add the deb line to the bottom and save.)

Now it should be smooth sailing.
Code:
sudo apt-get update sudo apt-get install libgtk1.2


quarta-feira, 4 de maio de 2011

Conexões SSH sem senha fácil e descomplicado

Chaves públicas/privadas, o que são e para que servem?

São um par de chaves digitas que juntas fazem uma verificação de autenticidade das informações.

Para maiores informações visite o link:
O par de chaves é gerado no cliente.

A chave Privada não deve ser divulgada em hipótese nenhuma e a chave Pública pode e deve ser divulgada.

Nota: Este procedimento é voltado inteiramente para conexões SSH (existem outras aplicações de chaves Públicas/Privadas).

Gerando o par de chaves no cliente

No computador cliente execute o seguinte comando:

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key
(/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/root/.ssh/id_rsa.
Your public key has been saved in
/root/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

Quando perguntado para entrar com uma "passphrase", apenas tecle "Enter" duas vezes para que fique em branco, caso contrário esta frase precisará ser digitada posteriormente.

Agora as duas chaves foram geradas.

A chave Privada está em "/root/.ssh/id_rsa" e a Pública em "/root/.ssh/id_rsa.pub".



Configurando o servidor

Para que seja possível uma conexão SSH sem senha entre cliente e servidor, é preciso divulgar para o servidor a chave pública gerada pelo cliente.

É possível fazer esta cópia remotamente executando os seguintes comandos:

# scp /root/.ssh/id_rsa.pub root@servidor:/root/
(digitar senha)
# ssh root@servidor
(digitar senha)
# cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

No exemplo acima foi realizada a cópia do arquivo "id_rsa.pub" do cliente para o servidor, depois no servidor o conteúdo do arquivo "id_rsa.pub" foi inserido dentro do arquivo "authorized_keys".

Caso o diretório "/root/.ssh" não exista, é preciso criá-lo no servidor.

É importante que a chave pública (id_rsa.pub) seja adicionada (usando o sinal de maior maior ">>") dentro do arquivo "authorized_keys", pois podem haver outros clientes registrados neste mesmo arquivo.

Agora as conexões SSH iniciadas pelo cliente para o servidor serão efetuadas sem a necessidade de digitar a senha.

terça-feira, 19 de abril de 2011

How to increase Openfire 3.6.4 Java Memory


windows server 2008

 

go to

 

C:\Program Files\Openfire\bin  (openfire path)

 

open three files using notepad
openfire.vmoptions
openfired.vmoptions
openfire-service.vmoptions

 

and put this

 

-Xms265m
-Xmx512m

 

 

where 265 mega will be minimum memory for openfire
and 512 mega will be maximum memory for openfire

 

 

 

you can change this values as you need

 

then restart openfire and check the memory

 

Note:
don't increse memory more than RAM memory

quarta-feira, 30 de março de 2011

Compilando shell-scripts

Compilando shell-scripts


1) extrair pasta:
# tar xvf shc-3.8.9.tgz


2) entra no diretorio:
# cd shc-3.8.9


3) Copia arquivo:
cp shc-3.8.9.c shc


4) compila:
 make cc -Wall -O6 -pedantic shc.c -o shc


5) make install

O SHC faz o favor de criar um binário do arquivo shell-script (no nosso exemplo), e de quebra ele te mostra o fonte .c do arquivo binário gerado, além de ter opção para expirar o script entre outros. :)
Download: http://www.datsi.fi.upm.es/~Efrosal/
Instalação:
Descompacte em um diretório, lance o famoso make.

$ make
cc -Wall -O6 -pedantic shc.c -o shc
*** ¿Do you want to probe shc with a test script?
*** Please try... make test
Ele pedirá para executar os testes com um make test.
Caso obtenha algum erro, não sei se é em todos sistemas, você conseguirá testar com um:
$ ./shc -v -r -f match
shc shll=sh
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc match.x.c -o match.x
shc: strip match.x
  
Agora execute o binário
$ ./match.x
[22215] PAUSED... Hit return!
OK, ta rolando...
Obviamente, usuários Debian, podem naturalmente lançar um #apt-get install shc sem problemas.
Brincando com o shc
Script de teste:
#!/bin/bash
USER="abc"
SENHA="password"
echo -e "Ola\n usuario: $USER\n senha:$SENHA"


proxy:/home/linuxuser# ./teste
Ola
usuario: abc
senha:password
Ok, agora vamos compilar:
Antes disto, veremos algumas opções do shc:
    -e %s  Expiration date in dd/mm/yyyy format [none]
    -m %s  Message to display upon expiration ["Please contact your provider"]
    -f %s  File name of the script to compile
    -i %s  Inline option for the shell interpreter i.e: -e
    -x %s  eXec command, as a printf format i.e: exec('%s',@ARGV);
    -l %s  Last shell option i.e: --
    -r     Relax security. Make a redistributable binary
    -v     Verbose compilation
    -D     Switch ON debug exec calls [OFF]
    -T     Allow binary to be traceable [no]
    -C     Display license and exit
    -A     Display abstract and exit
    -h     Display help and exit
   


proxy:/home/linuxuser# shc -r -v -f teste.sh
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc  teste.sh.x.c -o teste.sh.x
shc: strip teste.sh.x

proxy:/home/linuxuser# ./teste.sh.x
Ola
 usuario: abc
 senha:password
 
Excelente!!, caso tenha interesse você pode consultar o arquivo fonte teste.sh.x.c
Eu fiz os testes em 2 sistemas Debian e um Conectiva, o script funcionou sem problemas.
Detalhe: NÃO NECESSITA TER O SHC INSTALADO NAS OUTRAS MÁQUINAS PARA EXECUTAR O ARQUIVO GERADO.
Compilando um shell com data de expiração ( esta opção achei maravilhosa ):
linuxuser@proxy:~$ shc -v -e 24/06/2006 -m "Contate o desenvolvedor - flaviotorres@linuxmasters.info" -f teste.sh
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc  teste.sh.x.c -o teste.sh.x
shc: strip teste.sh.x

linuxuser@proxy:~$ ./teste.sh.x
./teste.sh.x has expired!
Contate o desenvolvedor - flaviotorres@linuxmasters.info

Bom, é isto, bom proveito.

segunda-feira, 28 de março de 2011

Transformar arquivo .bat em .exe pelo Windows 7

Transformar arquivo .bat em .exe pelo Windows 7


01 - Crie o seu arquivo .BAT que quer transformar para .EXE.

02 - Criado o .BAT agora é só ir em Iniciar>Executar e digite "iexpress" (sem aspas) e de OK.

03 - Com o IExpress aberto, marque "Create new Self Extraction Directive File" e clique em "Avançar"

04 - Marque a primeira opção e clique em "Avançar", logo depois na tela que aparecer você deve digitar o título do seu .EXE e clique em "Avançar".

05 - Depois na próxima janela marque "No prompt" e clique em "Avançar".

06 - Na próxima tela marque "Do not display a license" e clique em "Avançar", depois na próxima tela clique em "Add" e selecione o arquivo .BAT que irá se transformar em .EXE e clique em "Avançar".

07 - Logo depoisna próxima tela em "Install Program" coloque o nome do seu programa com sua extensão, que no caso será seu arquivo .BAT, e em "Post Install Command" coloque o mesmo e clique em "Avançar".

08 - Depois na próxima tela marque a opção "Hidden" que será para ele abrir escondido e clique em "Avançar".

09 - Na próxima tela você pode escolher uma menssagem para quando o programa executar, caso queira a menssagem marque "Display message" e escreva a menssagem abaixo, caso não queira marque "No message" e clique em "Avançar".

10 - Na próxima tela clique em "Browse" e escolha onde seu arquivo .EXE será salvo e o nome e depois marque "Hide File Extracting Progress Animation from User" e clique em "Avançar".

11 - Na próxima tela você pode escolher s quer que o PC reinicie depois da instalação, marque "No restart" para não reiniciar e clique em "Avançar".

12 - Depois na próxima tela marque "Don't save" e clique em "Avançar".

13 - Aparcerá uma outra tela, clique em "Avançar" e depois em "Concluir".




PRONTO!!!
Seu arquivo .EXE já está criado e agora ele irá fazer as funções do seu .BAT.

quinta-feira, 24 de março de 2011

Erro ao enviar comando para o programa [WORD/EXCEL/POWERPOINT 2003/2007]

Resolução:

Se for o Excel 2003:
Menu ferramentas / Opções / geral
- Desabilite a opção "IGNORAR OUTROS APLICATIVOS"

Se for Excel 2007:
Botão Do Excel / Opções do Excel / Avançado / Geral
Desabilite a opção "IGNORAR OUTROS APLICATIVOS QUE USEM INTERCAMBIO DINÂMICO DE DADOS (DDE)"

terça-feira, 22 de fevereiro de 2011

Erro_ssl_firefox (Código do erro: ssl_error_ssl_disabled)


Erro ssl firefox


Provavelmente o arquivo cert8.db no seu perfil está corrompido. Feche o Firefox
Abra o Windows Explorer
No Windows Vista, vá até Users/<seu usuário>/AppData/Roaming/Mozilla/Firefox/Profiles/ Dentro dele vai ter uma pasta <com uma sequência de caracteres>.default Entre nela e apague o arquivo cert8.db - ou então renomeie para cert8.db.old Ao entrar no Firefox, ele deve recriar o arquivo e resolver o problema.

No XP o caminho deve ser C:\Documents and Settings\<seu perfil>\Dados de Aplicativos\Mozilla\Firefox\Profiles