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