quarta-feira, 21 de dezembro de 2011
quinta-feira, 8 de dezembro de 2011
segunda-feira, 5 de dezembro de 2011
PostgreSQL - Converter Codificação do banco
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
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 yesCertifique-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)
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.
Step 2 : convert the raw image to a qcow
Test your new image (ubuntu.qcow) with:
Welcome to KVM :)
sexta-feira, 18 de novembro de 2011
quarta-feira, 19 de outubro de 2011
quarta-feira, 28 de setembro de 2011
Instalar NTOP no CentOS 6 (64bits)
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: %SsLogo 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_LOGNunca 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 formaaccess.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/pnggerencia.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
quinta-feira, 11 de agosto de 2011
terça-feira, 2 de agosto de 2011
Substituir string usando vim [Linux]
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
1 | cd /etc/yum.repos.d |
2 | wget 'http://www.jpackage.org/jpackage50.repo' |
3 | yum update |
4 | yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps |
5 | service tomcat6 start |
1 | setup |
2 | "Firewall configuration" |
3 | "Customize" |
4 | "Other ports" 8080:tcp |
5 | "Ok" |
6 | service tomcat6 restart |
If you get a dependency error try this:
1 | rpm -Uvh 'http://plone.lucidsolutions.co.nz/linux/centos/images/jpackage-utils-compat-el5-0.0.1-1.noarch.rpm' |
(update provided by Tony, thanks)
terça-feira, 26 de julho de 2011
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
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
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"
1 | pg_restore -? |
-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;
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
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
- Instalar os Pacotes (Programas e dependências)
- Editar o arquivo /etc/postfix/main.cf
- Editar o arquivo /etc/postfix/generic
- Editar o arquivo /etc/postfix/sasl_passwd
- Criar os certificados no diretório /etc/postfix/certs/
- Usar o comando postmap para o postfix criar seu banco de dados padrão.
- Enviar um email pelo console para testar.
- 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
terça-feira, 21 de junho de 2011
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
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
terça-feira, 31 de maio de 2011
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
1. Open System >> Administration >> Synaptic Package Manager
2. Go to Settings >> Repositories
3. On the Other Software tab, click Add.
4. Enter the following:
deb http://archive.ubuntu.com/ubuntu jaunty universe
(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.
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
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.
cc -Wall -O6 -pedantic shc.c -o shc
*** ¿Do you want to probe shc with a test script?
*** Please try... 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.xAgora 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.
#!/bin/bash USER="abc" SENHA="password" echo -e "Ola\n usuario: $USER\n senha:$SENHA" |
proxy:/home/linuxuser# ./teste Ola usuario: abc senha:passwordOk, 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:passwordExcelente!!, 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.infoBom, é isto, bom proveito.
segunda-feira, 28 de março de 2011
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]
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