Em meu servidor web copiei uma pasta para /var/www/html/expresso. Só que quando abro é retornado o erro "403 Forbidden". Isso é devido ao selinux, devemos compilar uma regra que permita o que está sendo proibido. Para saber o que está sendo proibido, monitore o "/var/log/messages":
tail -f /var/log/messages
Agora, faça novamente a ação que está sendo proibida. Provavelmente será logado no "/var/log/messages" algo semelhante ao abaixo:
Sep 10 11:24:53 MODELO kernel: type=1400 audit(1284128693.063:71): avc: denied { getattr } for pid=17417 comm="httpd" path="/var/www/html/expresso/index.php" dev=sdb1 ino=184145 scontext=root:system_r:httpd_t:s0 tcontext=root:object_r:user_home_t:s0 tclass=file
Sep 10 11:24:53 MODELO kernel: type=1400 audit(1284128693.065:72): avc: denied { getattr } for pid=17417 comm="httpd" path="/var/www/html/expresso/index.php" dev=sdb1 ino=184145 scontext=root:system_r:httpd_t:s0 tcontext=root:object_r:user_home_t:s0 tclass=file
Gere um arquivo temporario com essas mensagens:
vim /tmp/regras
...
Sep 10 11:24:53 MODELO kernel: type=1400 audit(1284128693.063:71): avc: denied { getattr } for pid=17417 comm="httpd" path="/var/www/html/expresso/index.php" dev=sdb1 ino=184145 scontext=root:system_r:httpd_t:s0 tcontext=root:object_r:user_home_t:s0 tclass=file
Sep 10 11:24:53 MODELO kernel: type=1400 audit(1284128693.065:72): avc: denied { getattr } for pid=17417 comm="httpd" path="/var/www/html/expresso/index.php" dev=sdb1 ino=184145 scontext=root:system_r:httpd_t:s0 tcontext=root:object_r:user_home_t:s0 tclass=file
...
Desligue o selinux temporariamente
setenforce 0
Transforme o arquivo de regras na linguagem do selinux
audit2allow -m local -l -i /tmp/regras > /tmp/regras.te
Compile as regras
checkmodule -M -m -o /tmp/regras.mod /tmp/regras.te
Crie um pacote de instalação
semodule_package -o /tmp/regras.pp -m /tmp/regras.mod
Instale as novas regras
semodule -i /tmp/regras.pp
Ligue o selinux novamente
setenforce 1
Monitore novamente o arquivo "/var/log/messages" e faça novamente a ação que estava sendo proibida. Teoricamente se tudo ocorreu bem, seu site abrirá sem maiores problemas.
sexta-feira, 1 de outubro de 2010
terça-feira, 31 de agosto de 2010
pg_conect com erro retorna pagina php para download após instalar openssl - pg_connect gera download de pagina php
Após instalar o openssl em meu servidor web notei que ao abrir uma página php que utiliza a função pg_connect, essa página era retornada para download.
No log "/var/log/apache2/error.log" a seguinte mensagem era escrita:
"system library:fopen:Permission denied:bss_file.c:122:fopen('/usr/lib/ssl/openssl.cnf','rb')"
O arquivo "/usr/lib/ssl/openssl.cnf" é um link para "/etc/ssl/openssl.cnf". Por algum motivo o apache não está conseguindo utilzar esse link. Então, copiei o arquivo "/etc/ssl/openssl.cnf" para "/usr/lib/ssl/openssl.cnf" e troquei suas permissões, reiniciei o apache e a partir disso tudo funcionou novamente (veja os comandos abaixo):
cp /etc/ssl/openssl.cnf /usr/lib/ssl/openssl.cnf
chmod 777 /usr/lib/ssl/openssl.cnf
/etc/init.d/apache2 restart
No log "/var/log/apache2/error.log" a seguinte mensagem era escrita:
"system library:fopen:Permission denied:bss_file.c:122:fopen('/usr/lib/ssl/openssl.cnf','rb')"
O arquivo "/usr/lib/ssl/openssl.cnf" é um link para "/etc/ssl/openssl.cnf". Por algum motivo o apache não está conseguindo utilzar esse link. Então, copiei o arquivo "/etc/ssl/openssl.cnf" para "/usr/lib/ssl/openssl.cnf" e troquei suas permissões, reiniciei o apache e a partir disso tudo funcionou novamente (veja os comandos abaixo):
cp /etc/ssl/openssl.cnf /usr/lib/ssl/openssl.cnf
chmod 777 /usr/lib/ssl/openssl.cnf
/etc/init.d/apache2 restart
segunda-feira, 30 de agosto de 2010
Ativando autenticação LDAP no wiki do mediawiki
-------------------------------------------------------------------------------
Ativando autenticação LDAP no wiki do mediawiki
-------------------------------------------------------------------------------
[Baixando plugin]
- Plugin baixado em: http://upload.wikimedia.org/ext-dist/LdapAuthentication-MW1.15-r45350.tar.gz
Ou então vá em: http://www.mediawiki.org/wiki/Special:ExtensionDistributor e procure por LdapAuthentication
- Instale o plugin em ./extensions/ do seu site wiki.
Ex.:
./extensions/LdapAuthentication.php
./extensions/LdapAutoAuthentication.php
-------------------------------------------------------------------------------
[Configurando wiki]
###
# restringindo acesso
#
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;
#
###
###
# LDAP
#
require_once( "$IP/extensions/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
//nomes dos dominios
$wgLDAPDomainNames = array("MEUDOMINIO");
//associando dominio com servidores de dominio
$wgLDAPServerNames = array("MEUDOMINIO"=>"dns1.br dns2.br");
//Criptografia das solicitacoes ldap
$wgLDAPEncryptionType = array("MEUDOMINIO"=>"tsl"); //ou clear caso nao queira criptografia
//Permitir logar localmente
$wgLDAPUseLocal = false;
Ativando autenticação LDAP no wiki do mediawiki
-------------------------------------------------------------------------------
[Baixando plugin]
- Plugin baixado em: http://upload.wikimedia.org/ext-dist/LdapAuthentication-MW1.15-r45350.tar.gz
Ou então vá em: http://www.mediawiki.org/wiki/Special:ExtensionDistributor e procure por LdapAuthentication
- Instale o plugin em ./extensions/ do seu site wiki.
Ex.:
./extensions/LdapAuthentication.php
./extensions/LdapAutoAuthentication.php
-------------------------------------------------------------------------------
[Configurando wiki]
###
# restringindo acesso
#
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;
#
###
###
# LDAP
#
require_once( "$IP/extensions/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
//nomes dos dominios
$wgLDAPDomainNames = array("MEUDOMINIO");
//associando dominio com servidores de dominio
$wgLDAPServerNames = array("MEUDOMINIO"=>"dns1.br dns2.br");
//Criptografia das solicitacoes ldap
$wgLDAPEncryptionType = array("MEUDOMINIO"=>"tsl"); //ou clear caso nao queira criptografia
//Permitir logar localmente
$wgLDAPUseLocal = false;
terça-feira, 20 de julho de 2010
Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item
[Causa]
Esse problema aconteceu comigo ao mover um arquivo executável por compatilhamento de pasta. Tinha um servidor A que precisava de instalar o pgAdmin, então compartilhei uma pasta em A e acessei da minha máquina desktop. Então, copiei o pgAdmin para o servidor A. Porém, devido a configurações de segurança do windows server 2003, quando tentei executar o pgAdmin em A, ele me deu a seguinte mensagem: "Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item".
[Solução]
Clique em cima do executável com a tecla direita do mouse, vá em propriedades. Lá, você notará que existe um botão no canto inferir direito chamado "Unblock" com o seguinte comentario: "This file came from another computer and might be blocked to help protect this computer". Clique em "Unblock", a partir desse momento você poderá executar seu executável normalmente.
Esse problema aconteceu comigo ao mover um arquivo executável por compatilhamento de pasta. Tinha um servidor A que precisava de instalar o pgAdmin, então compartilhei uma pasta em A e acessei da minha máquina desktop. Então, copiei o pgAdmin para o servidor A. Porém, devido a configurações de segurança do windows server 2003, quando tentei executar o pgAdmin em A, ele me deu a seguinte mensagem: "Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item".
[Solução]
Clique em cima do executável com a tecla direita do mouse, vá em propriedades. Lá, você notará que existe um botão no canto inferir direito chamado "Unblock" com o seguinte comentario: "This file came from another computer and might be blocked to help protect this computer". Clique em "Unblock", a partir desse momento você poderá executar seu executável normalmente.
quarta-feira, 7 de julho de 2010
Instalando postgres 8.4 + tcl + tk no centos 5.5 x86_64
-------------------------------------------------------------------------------
Instalando postgres 8.4 + tcl + tk no centos 5.5 x86_64
-------------------------------------------------------------------------------
[Informações]
Maquina: VMWare esxi 4.0
Sistema: Centos 5.5 x86_64
Postgres: 8.4
-------------------------------------------------------------------------------
[Procedimento de instalação do postgres]
- instalando servidor postgres e bibliotecas:
yum install postgresql84-server postgresql84-libs postgresql84
- configurando inicio do postgres:
# su - postgres
# initdb -E utf-8 /var/lib/pgsql/data
- configurando permissões para nossas redes:
# vim /var/lib/pgsql/data/pg_hba.conf
...
host all all 172.20.6.0/23 md5
host all all 172.20.2.0/23 md5
host all all 172.20.10.0/23 md5
...
- habilitando serviço para escutar externamente:
# vim /var/lib/pgsql/data/postgresql.conf
...
listen_addresses = '*'
...
- iniciando serviço:
# /etc/init.d/postgresql restart
- forçando postgresql iniciar automaticamente durante o boot:
# chkconfig postgresql on
- criando usuario administrador:
# su - postgres
# createuser -P
Enter name of role to add: super
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) y
-------------------------------------------------------------------------------
[Procedimento de instalação do tcl/tk]
- instalando tcl e tk:
# yum install tcl tk postgresql84-pltcl.x86_64
- ativando linguagem em um banco de dados:
# createlang -U postgres pltcl NOME_DO_BANCO_DE_DADOS
-------------------------------------------------------------------------------
[Possiveis erros]
- ao executar "createlang -U postgres pltcl NOME_DO_BANCO_DE_DADOS" o seguinte erro retorna:
createlang: language installation failed: ERROR: could not access file "$libdir/pltcl": No such file or directory
Esse erro pode ocorrer caso o pacote "postgresql84-pltcl.x86_64" não seja instalado.
-------------------------------------------------------------------------------
Instalando postgres 8.4 + tcl + tk no centos 5.5 x86_64
-------------------------------------------------------------------------------
[Informações]
Maquina: VMWare esxi 4.0
Sistema: Centos 5.5 x86_64
Postgres: 8.4
-------------------------------------------------------------------------------
[Procedimento de instalação do postgres]
- instalando servidor postgres e bibliotecas:
yum install postgresql84-server postgresql84-libs postgresql84
- configurando inicio do postgres:
# su - postgres
# initdb -E utf-8 /var/lib/pgsql/data
- configurando permissões para nossas redes:
# vim /var/lib/pgsql/data/pg_hba.conf
...
host all all 172.20.6.0/23 md5
host all all 172.20.2.0/23 md5
host all all 172.20.10.0/23 md5
...
- habilitando serviço para escutar externamente:
# vim /var/lib/pgsql/data/postgresql.conf
...
listen_addresses = '*'
...
- iniciando serviço:
# /etc/init.d/postgresql restart
- forçando postgresql iniciar automaticamente durante o boot:
# chkconfig postgresql on
- criando usuario administrador:
# su - postgres
# createuser -P
Enter name of role to add: super
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) y
-------------------------------------------------------------------------------
[Procedimento de instalação do tcl/tk]
- instalando tcl e tk:
# yum install tcl tk postgresql84-pltcl.x86_64
- ativando linguagem em um banco de dados:
# createlang -U postgres pltcl NOME_DO_BANCO_DE_DADOS
-------------------------------------------------------------------------------
[Possiveis erros]
- ao executar "createlang -U postgres pltcl NOME_DO_BANCO_DE_DADOS" o seguinte erro retorna:
createlang: language installation failed: ERROR: could not access file "$libdir/pltcl": No such file or directory
Esse erro pode ocorrer caso o pacote "postgresql84-pltcl.x86_64" não seja instalado.
-------------------------------------------------------------------------------
Marcadores:
centos,
createlang,
pltcl,
postgres,
tcl/tk
sexta-feira, 2 de julho de 2010
Instalando httpd + php 5.2 no centos 5.5
-------------------------------------------------------------------------------
Instalando httpd + php 5.2 no centos 5.5
-------------------------------------------------------------------------------
[Informações]
Maquina: VMWare esxi 4.0
Sistema: Centos 5.5
-------------------------------------------------------------------------------
[Procedimento de instalação]
- instalando repositorio que possui o php 5.2:
# rpm -ivh http://software.virtualmin.com/bleed/centos/5/x86_64/virtualmin-bleed-release-1.0-1.rhel.noarch.rpm
- pegando arquivo de autenticação do repositorio:
# rpm -import http://software.virtualmin.com/lib/RPM-GPG-KEY-virtualmin
- instalando httpd e php:
# yum install httpd php
- forçando httpd iniciar automaticamente durante o boot:
# chkconfig httpd on
- iniciando serviço:
# /etc/init.d/httpd start
-------------------------------------------------------------------------------
Instalando httpd + php 5.2 no centos 5.5
-------------------------------------------------------------------------------
[Informações]
Maquina: VMWare esxi 4.0
Sistema: Centos 5.5
-------------------------------------------------------------------------------
[Procedimento de instalação]
- instalando repositorio que possui o php 5.2:
# rpm -ivh http://software.virtualmin.com/bleed/centos/5/x86_64/virtualmin-bleed-release-1.0-1.rhel.noarch.rpm
- pegando arquivo de autenticação do repositorio:
# rpm -import http://software.virtualmin.com/lib/RPM-GPG-KEY-virtualmin
- instalando httpd e php:
# yum install httpd php
- forçando httpd iniciar automaticamente durante o boot:
# chkconfig httpd on
- iniciando serviço:
# /etc/init.d/httpd start
-------------------------------------------------------------------------------
sexta-feira, 18 de junho de 2010
Como desligar um servidor esxi com 15 servidores virtuais rodando
Precisamos desligar um servidor esxi com 15 servidores virtuais rodando, o que fazer?
Algo muito fácil:
- Logue no servidor esxi com o "vsphere client";
- Dê "pause" em todas as 15 maquinas;
- Na raiz do servidor esxi, vá na aba "Summary", em baixo da tela clique; em "Enter Maintenance Mode";
- Com o servidor em "Maintenance Mode", clique em "Shutdown";
- Depois que tudo for feito e o servidor for ligado novamente, você perceberá que as maquinas continuam pausadas. Retire o servidor do "Maintenance Mode" e "despause" novamente todas as maquinas.
De um modo geral, o "Maintenance Mode" serve para preservar o estado pausado das maquinas quando o servidor esxi é desligado. O que não ocorre se o modo não for ativado, todas as maquinas são "brutalmente" desligadas e vão para o status stop.
Outra maneira é entrar em cada máquina virtual e desligar o sistema, porém é um processo bem mais demorado.
Algo muito fácil:
- Logue no servidor esxi com o "vsphere client";
- Dê "pause" em todas as 15 maquinas;
- Na raiz do servidor esxi, vá na aba "Summary", em baixo da tela clique; em "Enter Maintenance Mode";
- Com o servidor em "Maintenance Mode", clique em "Shutdown";
- Depois que tudo for feito e o servidor for ligado novamente, você perceberá que as maquinas continuam pausadas. Retire o servidor do "Maintenance Mode" e "despause" novamente todas as maquinas.
De um modo geral, o "Maintenance Mode" serve para preservar o estado pausado das maquinas quando o servidor esxi é desligado. O que não ocorre se o modo não for ativado, todas as maquinas são "brutalmente" desligadas e vão para o status stop.
Outra maneira é entrar em cada máquina virtual e desligar o sistema, porém é um processo bem mais demorado.
Assinar:
Postagens (Atom)