Instalando Joomla no Debian Lenny.

Nos últimos dias foi solicitado por um cliente a criação de uma maquina com o joomla, então resolvi documentar os passos básicos desta instalação.

Ambiente LAMP
O ambiente LAMP é a abreviação de Linux,Apache,Mysql,PHP|Perl|python, este é um otimo ambiente para trabalhar com um servidor Web de baixo custo.

Instalando pacotes necessários

apt-get install apache2 mysql-server-5.0 mysql-client-5.0 php5 php5-mysql unzip

Obs:. durante a instalando será pedido uma senha de root para o banco mysql

Configurando o Mysql
É preciso fazer algumas configurações no Mysql, tais como, criar base de dados, criar usuário e suas permissões.

Criando base de dados para o joomla

mysqladmin -u root -p create joomla

Criando usuário para administração da base de dados joomla

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,\
CREATE TEMPORARY TABLES, LOCK TABLES ON joomla.* TO 'admin'@'localhost' \ 
IDENTIFIED BY '123456';

Instalando o joomla
Na instalação do Joomla vamos acessar a pagina do Joomla em joomla.org e baixar a ultima versão, no momento em que escrevo este post a ultima versão disponível é a Joomla_1.6.4-Stable-Full.

Criando diretório
Vamos criar o diretório para o Joomla.

cd /var/www/
mkdir -m 0755 joomla
cd joomla

Realizando download do joomla e descompactando
Como comentado anteriormente estamos usando a ultima versão disponível na data deste post.

wget http://joomlacode.org/gf/download/frsrelease/15063/65933/Joomla_1.6.4-Stable-Full_Package.zip

Restrigindo acesso
É importante manter o mínimo de segurança então estarei restringindo o acesso aos diretórios e revendo suas permissões.

chown -R root:root /var/www/joomla
cd /var/www/joomla
PLACES='
administrator/components
administrator/modules
administrator/templates
cache
components
images
images/banners
language
media
modules
templates
'
for i in $PLACES; do chown -R www-data:www-data $i; done
find /var/www/joomla -type f -exec chmod 0644 {} \;
find /var/www/joomla -type d -exec chmod 0755 {} \;

Finalizando
Depois de realizado os procedimentos acima basta acessar o endereço http://localhost/joomla e configurar de acordo com suas necessidades.
Apos finalizar a configuração remover o diretório de instalação para evitar futuros problemas

rm -rf /var/www/joomla/installation/

Como já foi dito isto é apenas um documento básico de instalação do Joomla Baseado na documentação fornecida pela própria entidade. Vale ressaltar o quanto é importante um servidor Web ser realizado algumas configurações de segurança, nas quais não serão mostrados neste documento.

ACLs Linux

ACLs

Uma Alternativa ao controle de acesso a diretórios e arquivos é a criação de Acls, sendo assim estarei fazendo um pequeno resumo das funcionalidades das acls, lembre-se que é apenas um resumo, podendo ser melhor consultado em man pages e documentos oficiais da ferramenta.

A Red Hat e seus derivados por padrão incluem as funções de acl no sistema de arquivos durante a instalação.
Caso não venha instalado em seu sistema, basta instalar o pacote “acl” através do gerenciador de pacotes de sua distribuição Linux. Vamos aos exemplos do uso das acls.

Verificando a existência de acls no sistema de arquivos

Pode-se verificar a existência de acl em um sistema de arquivos através com tune2fs, como mostrado abaixo:

tune2fs -l /dev/hda1 | grep options

Caso tenha criado um sistema de arquivos após a instalação, podemos ativa-la como abaixo;

tune2fs /dev/hda2 -o acl 

Criando acls

setfacl -m u:usuario:rw /opt/teste.txt

Obs:. Observe que foi setada a acl dando permissão de leitura e escrita ao usuário “usuario” ao arquivo teste.txt.

Podemos ainda criar uma acl padrão para um diretorio, assim todos os arquivos e sub-diretorios criados dentro deste terá as mesmas politicas aplicadas ao diretorio principal. segue um exemplo:

setfacl -m d:u:usuario:rw /opt/TI/

Obs:. com a acl acima, apenas o usuário “usuario” terá permissão de leitura e escrita no diretório /opt/TI/ e apenas ele podendo criar sub-diretorios e arquivos.

Verificando ACLs em arquivos e diretórios

É possível verificar as acls em arquivos e diretórios com o comando getfacl, como abaixo:

getfacl /opt/TI
# file: /opt/TI
# owner: root
# group: root
user::rwx
user:usuario:rw-
group::rwx
mask::rwx
other::rwx

Removendo acls

Para remover todas as acls é bastante simples, como mostrado abaixo:

setfacl -b  /opt/TI/

Para remover as acls de apenas um usuário basta seguir o exemplo:

setfacl -x -u:usuario /opt/TI/

Restringindo Shutdown

Restringindo o Shutdown

Geralmente quando estamos fazendo o Hardening de nossos servidores, removemos a opção de uso da combinação de teclas CRTL+ALT+DEL que é usada para dar shutdown na maquina. Mas também em alguns caso precisamos deixar alguns usuário com esta permissão então vamos permitir apenas estes usuários para uso desta função.

Dentro do arquivo /etc/inittab temos a linha:

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

Obs:. Esta linha está permitindo o shutdown com a combinação de teclas CRTL+ALT+DEL, geralmente comentamos ela para desabilitar por completo.

Exite a opção -a na qual irá fazer referência ao arquivo /etc/shutdown.allow, sendo assim vamos adiciona-la, alterando a linha deixando como abaixo:

ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now

Agora temos que criar o arquivo /etc/shutdown.allow:

touch /etc/shutdown.allow

Dentro vamos colocar os usuário que terão permissão de dar shutdown:

vi /etc/shutdown.allow
#usuário com permissão
chico

Obs:. Agora apenas chico terá permissão de usar a combinação de teclas para shutdown.

vsftpd

vsftpd – Very Secure FTP Daemon

Um dos principais protocolos para transferências de dados é o FTP (File Transfer Protocol), tem como característica a transferência confiável de dados. O ftp pode ser classificado como ativo e passivo:

ftp passivo

No ftp passivo a conexão é feita através da porta 21, onde por ela também será gerênciado os comandos utilizados no servidor. O nome passivo é justamente pelo fato de não existir uma porta específica para gerência no tráfego de dados, o servidor fica no aguardo do cliente solicitar o tráfego dos dados por uma porta informada pelo próprio cliente.

ftp ativo

O modo ftp ativo a conexão é feita através da porta 21 do servidor, onde por ela também será gerenciado os comandos utilizados no servidor, também será usada a porta 20 para gerencia dos dados trafegados.

Neste resumo vou configurar um servidor ftp vsftpd basico.

Instalando

yum install vsftpd -y

Após instalado temos os seguintes arquivos principais:

/etc/init.d/vsftpd No qual será usado para inicialização e paralização do serviço.
/etc/vsftpd/vsftpd.conf sendo o arquivo de configuração principal.
/etc/vsftpd/ftpusers arquivo no qual será informado os usuários que não terão permissões de acesso.(Geralmente estarão listados usuarios como root).
/etc/vsftpd/user_list Neste arquivo estão os usuário que poderão ou não acessar o ftp.

Configurando

No arquivo vsftpd.conf faremos as seguintes alterações:

Vamos tirar a permissão para autenticação anônima mudando

anonymous_enable=YES

para

anonymous_enable=NO

Vamos Força o usuário a permanecer apenas em seu home adicionando a seguinte linha

chroot_local_user=YES

Colocaremos uma banner alterando a variável abaixo para

ftpd_banner= TESTE FTP service.

Vamos retringir o acesso apenas aos usuários autorizados adicionando as seguintes linhas:

userlist_file=/etc/vsftpd/user_list #informa o arquivo onde será listado os usuário com ou sem acesso.
userlist_enable=YES #Aqui será habilitado o uso da lista de acesso.
userlist_deny=NO #Aqui com a variavel habilitada pra NO ele só permitirá o acesso aos usuários listados dentro do arquivo user_list 

Onde:
userlist_file=/etc/vsftpd/user_list Será informado o arquivo onde será listado os usuário com ou sem acesso.
userlist_enable=YES Será habilitado o uso da lista de acesso.
userlist_deny=NO Com a variavel habilitada pra NO ele só permitirá o acesso aos usuários listados dentro do arquivo user_list

Com a configuração basica feita,vamos criar o arquivo user_list dentro do diretório /etc/vsftpd/

touch /etc/vsftpd/user_list

Agora que estamos com uma configuração bastante simples pronta, vamos adicionar um usuário e da suas devidas permissões:

useradd ftpuser2 --shell /sbin/nologin
passwd ftpuser2

E então adiciona-lo na lista de acesso ao ftp.

echo ftpuser2 >> /etc/vsftpd/user_list

Acessando o FTP
Agora basta ir no nagevador e digitar o endereço do seu servidor da seguinte forma.

ftp://192.168.0.1

NFS – Network File System

NFS – Network File System

Revisando Red Hat

Os sistemas linux utilizam do nfs(Network File System) para compartilhar de arquivos via rede. Estarei descrevendo um pequeno resumo da configuração de um servidor nfs em sistemas baseados em Red Hat.

Instalação

vamos instalar os seguintes pacotes:

#yum install nfs-utils.i386 nfs-utils-lib.i386 portmap.i386

Configurando o Servidor NFS
O diretório /etc/exports irá controlar os diretório no qual serão exportados, ou seja, onde será adicionado os compartilhamentos e quem terá acesso. como o exemplo abaixo:

#vim /etc/exports
/tempo		192.168.0.2(rw,sync)

Obs.: Observe que informei o diretório e o endereço ip que terá acesso ao mesmo,entre parênteses estão suas permissões e a função sync para sincronismo, como existe o async. é aconselhado utilizar o comando sync pois assim as alteração são imediatamente inseridas no disco.

Obs2.: O rw quer dizer leitura/escrita ,ou seja, será permitido ler e escrever no diretório, pode-se também usar o ro,que dizer, apenas leitura.

Fazendo o NFS ler os arquivos de configuração

#service nfs reload

Obs.:É necessário sempre que for feita alteração no arquivo de configuração usar este comando.

Configurando o cliente
Primeiro vamos instalar o pacote seguinte:

yum install nfs-utils.i386

Criando diretório onde será exposto os arquivos

#mkdir /mnt/teste

Montando o sistema de arquivos

#mount -t nfs 192.168.0.1:/tempo /mnt/teste

com o comando mount podemos ver se foi criado corretamente, irá aparecer algo como abaixo:

#mount
#192.168.0.1:/tempo on /mnt/teste type nfs (rw,addr=192.168.0.1)

Agora o diretório /tempo que está na maquina 192.168.0.1 ficará com o compartilhamento diponível para a maquina 192.168.0.2
Isso é mais um pequeno resumo.O comando “man exportfs” também ajudará.