sexta-feira, 26 de julho de 2013

Configurando PDC Samba com autenticação OpenLdap no CentOS 5

OpenLdap

Instalação:
yum install openlap-servers compat-openldap -y

Configuração:
Edite o arquivo /etc/openldap/slapd.conf com o seguinte conteúdo:
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/samba.schema
allow bind_v2
pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args
ckpoint 512 30
cachesize 1000000
dbcachesize 10000000
schemacheck     on
idletimeout     0
loglevel 0
database        bdb
suffix          "dc=unix,dc=com,dc=br"
rootdn          "cn=Manager,dc=unix,dc=com,dc=br"
rootpw          {SSHA}yRhs9NafOr/oPrxr8k7FBt2nVzrQoKE/
directory       /var/lib/ldap
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uid,memberUid                     eq,pres,sub
index sambaSID,sambaPrimaryGroupSID,sambaDomainName   eq
sizelimit  256
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
        by self write
        by anonymous auth
        by * none
access to *
        by * read

Para gerar a senha criptografada do parâmetro rootpw, digite o seguinte comando:
slappasswd -s senha_ldap

Crie o arquivo base.ldif com o seguinte conteúdo:
dn: dc=unix,dc=com,dc=br
dc: unix
objectClass: top
objectClass: domain

dn: ou=People,dc=unix,dc=com,dc=br
ou: Users
objectClass: top
objectClass: organizationalUnit

dn: ou=Groups,dc=unix,dc=com,dc=br
ou: Groups
objectClass: top
objectClass: organizationalUnit

dn: ou=Computers,dc=unix,dc=com,dc=br
ou: Computers
objectClass: top
objectClass: organizationalUnit

dn: ou=Idmap,dc=unix,dc=com,dc=br
ou: Idmap
objectClass: top
objectClass: organizationalUnit

Execute o comando abaixo para inserir a base criada:
ldapadd -x -D cn=Manager,dc=unix,dc=com,dc=br -W -f base.ldif

A saída deve ser essa:
adding new entry "dc=unix,dc=com,dc=br"
adding new entry "ou=People,dc=unix,dc=com,dc=br"
adding new entry "ou=Groups,dc=unix,dc=com,dc=br"
adding new entry "ou=Computers,dc=unix,dc=com,dc=br"
adding new entry "ou=Idmap,dc=unix,dc=com,dc=br"

Edite o arquivo /etc/nsswitch.conf com  oseguinte conteúdo:
passwd:     files ldap
shadow:     files ldap
group:      files ldap
hosts:      files dns
bootparams: nisplus [NOTFOUND=return] files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files
netgroup:   files ldap
publickey:  nisplus
automount:  files ldap
aliases:    files nisplus

Edite o arquivo /etc/ldap.conf com o seguinte conteúdo:
base dc=unix,dc=com,dc=br
timelimit 120
bind_timelimit 120
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,nscd,gdm
uri ldap://192.168.192.99
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password crypt

Edite o arquivo /etc/openldap/ldap.conf com o seguinte conteúdo:
URI ldap://192.168.192.99
BASE dc=unix,dc=com,dc=br
TLS_CACERTDIR /etc/openldap/cacerts

Samba

Instalação:
yum install samba -y

Configuração:
Copie o arquivo schema do samba para o OpenLdap:
cp /usr/share/doc/samba-3.0.33/LDAP/samba.schema /etc/openldap/schema/

Edite o arquivo /etc/samba/smb.conf com o seguinte conteúdo:
[global]
        unix charset = iso8859-1
        workgroup = UNIX
        netbios name = ldap
        server string =  Servidor Samba
        security = useR
        log file = /var/log/samba/%m.log
        max log size = 50
        large readwrite = No
        os level = 255
        dns proxy = No
        wins support = Yes
        cups options = raw
        hide unreadable = Yes
        local master = yes
        domain master = yes
        preferred master = yes
        domain logons = yes
        logon script = login.bat
        logon home =
        logon path =
        ldap passwd sync = Yes
        ldap delete dn = Yes
        passdb backend = ldapsam:ldap://192.168.192.99
        ldap admin dn = cn=Manager,dc=unix,dc=com,dc=br
        ldap suffix = dc=unix,dc=com,dc=br
        ldap group suffix = ou=Groups
        ldap user suffix = ou=Users
        ldap machine suffix = ou=Computers
        ldap idmap suffix = ou=Idmap
        ldap ssl = No
        idmap backend = ldap:ldap://192.168.192.99
        idmap uid = 10000-30000
        idmap gid = 10000-20000
        template shell = /bin/bash
        passwd program=/usr/bin/passwd %u
        passwd chat = *New*password* %n *Retype*new*password* %n
        socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        add machine script = /usr/sbin/smbldap-useradd -w "%u"
        add user script = /usr/sbin/smbldap-useradd -m "%u"
        delete user script = /usr/sbin/smbldap-userdel "%u"
        add machine script = /usr/sbin/smbldap-useradd -w "%u"
        add group script = /usr/sbin/smbldap-groupadd -p "%g"
        delete group script = /usr/sbin/smbldap-groupdel "%g"
        add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
        delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
        set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
        admin users = root, diego
[netlogon]
         comment = netlogon
         path = /home/netlogon
         browseable = no
         read only = no
[geral]
         comment = Repositorio de arquivos
         path = /home/geral
         browseable = no
         read only = no

Restarte o ldap e o samba:
/etc/init.d/ldap start
/etc/init.d/smb start

Informe ao samba a senha do Manager do OpenLdap:
smbpasswd -W

Smbldap-tools

Edite o arquivo vim /etc/smbldap-tools/smbldap.conf com o seguinte conteúdo:
SID="S-1-5-21-89540379-3084631337-4070857065"
sambaDomain="UNIX"
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify=""
cafile=""
clientcert=""
clientkey=""
suffix="dc=unix,dc=com,dc=br"
usersdn="ou=People,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format="%s"
userLoginShell="/bin/false"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDIR="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome=""
userProfile=""
userHomeDrive="H:"
mailDomain="mail.unix.com.br"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

Veja o SID do samba com o seguinte comando:
net getlocalsid

Edite o arquivo /etc/smbldap-tools/smbldap_bind.conf com o seguinte conteúdo:
slaveDN="cn=Manager,dc=unix,dc=com,dc=br"
slavePw="admin"
masterDN="cn=Manager,dc=unix,dc=com,dc=br"
masterPw="admin"

Sete permissão de leitura e escrita para o root no arquivo /etc/smbldap-tools/smbldap_bind.conf:
chmod 600 /etc/smbldap-tools/smbldap_bind.conf

Crie o arquivo nextuid.ldif para o uid disponível com o seguinte conteúdo:
dn: cn=NextFreeUnixId,dc=unix,dc=com,dc=br
objectClass: inetOrgPerson
objectClass: sambaUnixIdPool
uidNumber: 1000
gidNumber: 1000
cn: NextFreeUnixId
sn: NextFreeUnixId

Adicione o uid na base com o seguinte comando:
ldapadd -x -D cn=Manager,dc=unix,dc=com,dc=br -W -f nextuid.ldif

Popule a base com o comando:
smbldap-populate

quinta-feira, 25 de julho de 2013

Habilitar SSH no VMWare ESXi

Abra para a aba Configuration depois em Security Profile e clique em Properties:

Selecione SSH e clique no botão Options:

Selecione Star and stop with host e cliente em Start e depois em OK nas demais telas:

Note que o serviço foi estartado:

quarta-feira, 3 de julho de 2013

Fazendo backup da base de dados do MySQL

As base de dados do MySQL, nas atuais distribuições do linux, são salvas dentro de /var/lib/mysql. Existem duas formas de gerar um backup dessas bases, a primeira e criando um arquivo tar.gz do conteúdo das pasta /var/lib/mysql, a segunda é usar um próprio método do mysql, o mysqldump. Na primeira opção existe alguns problemas, como: os dados podem serem inconsistente, caso o banco seja usado no momento em que a backup esteja sendo executado. Para garantir a integridade é necessário para o MySQL, o que é outro problema. pois o serviço vai ficar fora do ar durando o backup. O mysqldump, provavelmente é a opção mais usada, pois faz o backup online e garante a integridade, pois ele lê as informações armazenadas nas bases de dados.


  1. Método tar.gz
    • /etc/init.d/mysql stop
    • tar -zcvf mysql.tar.gz /var/lib/mysql/
    • /etc/init.d/mysql start
  2. mysqldump
    • mysqldump -u root -p -x -e -A > backup.sql
      • -u: especifica o usuário que usado para acessar o banco de dados
      • -p: senha do usuário 
      • -x: bloqueia as bases de dados no momento em que cada uma é copiada
      • -e: opção de otimização, que permite ao mysqldump combinar argumentos INSERT dentro das tabelas, o que torna tanto o backup quanto a restauração mais rápido
      • -A: especifica o backup de todas as bases de dados
    • mysqldump -u root -p -x -e -A | gzip > backup.sql.gz
      • gera o arquivo compactado. para descompactar use o comando: gunzip backup.sql.gz
    • mysqldump -u root -p12345 -x -e -A | gzip > backup.sql.gz
      • essa opção deve ser usada em scripts, pois a senha já e passada no próprio comando, é extremamente importante restringir as permissões
    • mysqldump -u root -p -x -e -B diego > diego.sql
      • -B: substitui a opção "-A", deve ser informado qual base de dados deve ser backupeadas
    • mysql -u root -p --database=diego < diego.sql
      • Forma de restaurar a base de dados backupeada. Um erro será mostrado no momento da restauração, informando que não existe a base que está sendo restaura. Existe duas formas de resolver esse problema, a primeira é criar o base antes de restaurar e a segunda e gerar o backup já com as instruções para que as bases sejam excluídas e recriadas automaticamente durante a restauração. O comando para usado é: mysqldump --add-drop-table -u root -p -x -e -B diego > diego.sql
    • mysql -u root -p < backup.sql
      • Restaura todas as bases de dados

sexta-feira, 14 de junho de 2013

Configurar Apache com OpenSSL

  1. Pacotes necessários:
    • mod_ssl
    • openssl
  2. Criando o primeiro certificado (key):
    • openssl genrsa -des3 -out www.dominio.com.key 1024
      • Informe uma senha para o certificado
  3. Criando o segundo certificado (csr):
    • openssl req -new www.dominio.com.key -out www.dominio.com.key.csr
      • Country Name (2 letter code) [GB]:BR
      • State or Province Name (full name) [Berkshire]:Ceara
      • Locality Name (eg, city) [Newbury]:Fortaleza
      • Organization Name (eg, company) [My Company Ltd]:Empresa Ltda
      • Organizational Unit Name (eg, section) []:Tecnologia da Informacao
      • Common Name (eg, your name or your server's hostname) []: www.dominio.com
      • Email Address []:diego@dominio.com
      • Please enter the following 'extra' attributes
      • to be sent with your certificate request
      • A challenge password []:
      • An optional company name []:
  4. Removendo a senha do certificado (key):
    • cp www.dominio.com.key www.dominio.com.key.old
    • openssl rsa -in www.dominio.com.key.old -out www.dominio.com.key
  5. Criando o terceiro certificado (crt):
    • openssl x509 -req -days 365 -in www.dominio.com.csr -signkey server.key -out www.dominio.com.crt
  6. Instalando os certificados:
    • mv www.dominio.com.key /etc/ssl/private/
    • mv www.dominio.com.csr /etc/ssl/private/
    • mv www.dominio.com.ctr /etc/ssl/private/
  7. Configurando o arquivo de configuração apache:
    • <IfModule mod_ssl.c>
    • Listen 443
    • </IfModule>
    • <VirtualHost *:443>
    • ServerAdmin diego@dominio.com
    • ServerName www.dominio.com
    • DocumentRoot /usr/local/www/html/
    • SSLCertificateFile /etc/ssl/private/www.dominio.com.crt
    • SSLCertificateKeyFile /etc/ssl/private/www.dominio.com.key
    • SSLEngine On
    • </VirtualHost>
  8. Reinicie o serviço e teste a página
    • /etc/init.d/apache restart
    • https://www.dominio.com

quinta-feira, 23 de maio de 2013

Instalando o Bacula-web


Bacula-Web é um programa open source (licença GPL v 2.0) ferramenta que faz parta da projeto do Bacula community project. As principais vantagens do Bacula-Web são a simplicidade de instalação, fácil de configurar e é totalmente baseado na web, sem a necessidade de instalação do cliente pesados, configurar e upgrades. Bacula-Web fornece todas as informações sobre seus últimos trabalhos de backup, restores, volumes, pools e assim por diante ...

Baixe o Bacula-web

http://www.bacula-web.org/tl_files/downloads/bacula-web-5.2.13-1.tar.gz

Instalando dependências Debian
  • apt-get install apache2 php5 php5-dev php5-gd php5-mcrypt php5-mysql
Instalando dependências CentOS
  • yum install httpd php php-devel php-gd php-mysql php-mbstring php-mcrypt php-pear-DB
Instalação:

mkdir /var/www/html/bweb
tar -zxvf bacula-web-5.2.13-1.tar.gz -C /var/www/html/bweb
cd /var/www/html/bweb/application/config/
cp config.php.sample config.php
vim config.php

Edite somente o que está abaixo:

$config['language'] = 'pt_BR';
$config[0]['label'] = 'Backup Server';
$config[0]['host'] = 'localhost';
$config[0]['login'] = 'root';
$config[0]['password'] = '123456';
$config[0]['db_name'] = 'bacula';
$config[0]['db_type'] = 'mysql';
$config[0]['db_port'] = '3306';

cd /var/www/html
chmod 755 bweb -R
chown root.root bweb -R
chown apache bweb/application/view/cache -R
/etc/init.d/apache restart

Teste no navegador:

http://<ip_do_servidor>/bweb