Vamos siguiendo mi blog sobre el mismo ldap, asi que al grano.
Instalamos pureftpd desde yum.
1; Vamos configurando pure-ftpd.conf:
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
Daemonize yes
MaxClientsPerIP 8
VerboseLog yes
DisplayDotFiles no
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
LDAPConfigFile /etc/pure-ftpd/pureftpd-ldap.conf
LimitRecursion 7500 8
AnonymousCanCreateDirs no
MaxLoad 4
AntiWarez yes
Bind 127.0.0.1,21
Umask 133:022
MinUID 500
UseFtpUsers no
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload yes
CreateHomeDir no
MaxDiskUsage 99
CustomerProof yes
IPV4Only yes
2; Ahora vamos sobre pureftpd-ldap.conf
LDAPServer 127.0.0.1
LDAPPort 389
LDAPBaseDN dc=pimpom,dc=loc
LDAPBindDN cn=admin,dc=pimpom,dc=loc
LDAPBindPW ldap-passwd
LDAPFilter (&(objectClass=posixAccount)(uid=\L))
LDAPVersion 3
3; Vamos por syslog:
ftp.* /var/log/pureftpd.log
4; Creamos ese archivo:
touch /var/log/pureftpd.log
5; Reiniciamos syslog
service syslog restart
6; Iniciamos pure-ftpd start
Logearse con algun usuario del dominio, no debe haber problemas, si los tiene chequen su log.
De lo contrario duro con el, animo!!!
Hola que tal, mi nombre es Pedro Moreno, soy Ingeniero en Sistemas Computacionales. He vivido y sigo viviendo en la bella ciudad de Tijuana, B.C., Mexico. Mi edad hasta ahorita es de 29 años y contando. Este blog lo voy a utilizar para ir contando las altas y bajas que tengo con los sistemas operativos que tanto aprecio como lo son Unix/Linux en especial FreeBSD/Centos. No quiero llevarme lo poco que se de ellos, por ello prefiero aqui plasmarlo aqui.
viernes, 11 de diciembre de 2009
miércoles, 9 de diciembre de 2009
Centos 5.x: Dovecot + Postfix +Ldap
Como no hay dns de por medio no problema, si lo hay bien por ustedes.
Nombre del Dominio: example.com
Hostname del Servidor de Correo: mail.example.com
IP del Servidor: 172.16.4.6
Protocolo Inbound: IMAP Puerto: 143
Protocolo Outbound: SMTP Puerto: 25
Criptografia de ldap: crypt
Vamos a usar los mismo directorios particulares de cada usuario, no vamos a usar los virtuales, la mayoria de los ejemplos en linea usan virtuales, pero aqui tenemos ya un monton de archivos en cada usuario en su /home, gracias a samba podemos hacer esto.
Tipo de Mail: Maildir/
Aqui quiero pensar que ya tenemos un servidor ldap corriendo para esta organizacion: example.com estructurada asi:
Users
Groups
Computers
Imap
Samba basa su informacion en ldap asi que debe estar en operacion, lo que vamos hacer es usar esta misma informacion para que dovecot se autentifique via ldap, para ello estamos usando a Mandriva MDS, ya que ellos nos proporcionan el schema para ldap llamado mail.schema + mmc.schema.
Esto esta en otro blog mio.
Por ultimo, todos sabemos que por default sendmail viene como servicio de correo saliente, pero esta vez, postfix va a ser el encargado, asi que debemos detener el servicio de sendmail y deshabilitar que arranque cada que reiniciemos el equipo.
Bien, vamos empezando.
1; Editamos el archivo /etc/hosts y agregamos nuestro hostname:
172.16.4.6 mail.example.com mail
2; Editamos postfix-->main.cf
queue_directory = /var/spool/postfix
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
mynetworks = 172.16.0.0/16, 127.0.0.0/8
relay_domains = $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP $mail_name
local_destination_concurrency_limit = 1
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
No necesitamos nada mas de postfix, si desean agregar alias pues editen el archivo /etc/aliases.
3; Editamos dovecot->/etc/dovecot.conf
protocol imap {
listen = *:143
}
disable_plaintext_auth = no
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log
log_timestamp = "%b %d %H:%M:%S "
syslog_facility = local5
ssl_disable = yes
login_user = dovecot
login_greeting = Bienvenidos.
mail_debug = yes
protocol imap {
}
protocol lda {
postmaster_address = postmaster
}
auth_username_format = %Lu
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain
passdb pam {
}
passdb ldap {
args = /etc/dovecot.ldap
}
userdb passwd {
args = /etc/dovecot.ldap
}
userdb ldap {
args = /etc/dovecot.ldap
}
user = root
}
4; Editamos dovecot para ldap-> dovecot.ldap
hosts = 127.0.0.1
dn = cn=root,dc=example,dc=com
dnpass = password-ldap
tls = no
auth_bind = yes
auth_bind_userdn = cn=%u,ou=example,ou=com
ldap_version = 3
base = ou=Users,dc=example,dc=com
scope = subtree
user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid
user_filter = (&(objectClass=posixAccount)(uid=%u))
pass_attrs = uid=user,userPassword=password
pass_filter = (&(objectClass=posixAccount)(uid=%u))
default_pass_scheme = CRYPT
5; Agregamos a dovecot en syslog y creamos los archivos de logeo, reinciamos syslog
/etc/syslog.conf:
local5.* /var/log/dovecot.log
touch /var/log/dovecot.log
touch /var/log/dovecot-info.log
service syslog restart
7; Apagar a sendmail y deshabilitar su arranque automatico.
service sendmail stop
chkconfig sendmail off
8; Reiniciamos los servicios: postfix/dovecot.
service postfix start
service dovecot start
Aqui ya tenemos que tener 2 nuevos puertos esperando peticiones de clientes, ademas de ldap. Checamos:
netstat --inet -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ldap *:* LISTEN
tcp 0 0 mail.example.co:netbios-ssn *:* LISTEN
tcp 0 0 localhost:netbios-ssn *:* LISTEN
tcp 0 0 *:imap *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 mail.example.c:microsoft-ds *:* LISTEN
tcp 0 0 localhost:microsoft-ds *:* LISTEN
udp 0 0 mail.example.com:netbios-ns *:*
udp 0 0 *:netbios-ns *:*
udp 0 0 mail.example:netbios-dgm *:*
udp 0 0 *:netbios-dgm
Ahi estan ldap, postfix y dovecot.
Supongamos que tenemos un usuario de nombre pepito, para probar, ese usuario tiene un folder en home:
/home/pepito.
Como aun no ha recibido correo, no existe su estructura tipo mbox, por ello necesittamos crearle su folder llamado Maildir en su folder:
mkdir /home/pepito/Maildir
Cambiamos los permisos:
chmod -R 700 /home/pepito
chown -R pepito:users /home/pepito
Nos vamos a thuderbird y configuramos su cuenta, una vez que nos aparece la ventana donde nos solicita el passwd, se lo damos y nos enviamos un correo de prueba.
Debe de recibirlo el mismo, no creo que haya problemas.
Dovecot tiene habilitado el log:
mail_debug = yes
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
Si desean pueden cambiarlos a no, cuando ustedes esten seguros que ya esta operando al 100%.
Pueden leer el archivo /var/log/maillog para que veabn que esta haciendo postfix.
Es todo por el momento, animo!!!
Nombre del Dominio: example.com
Hostname del Servidor de Correo: mail.example.com
IP del Servidor: 172.16.4.6
Protocolo Inbound: IMAP Puerto: 143
Protocolo Outbound: SMTP Puerto: 25
Criptografia de ldap: crypt
Vamos a usar los mismo directorios particulares de cada usuario, no vamos a usar los virtuales, la mayoria de los ejemplos en linea usan virtuales, pero aqui tenemos ya un monton de archivos en cada usuario en su /home, gracias a samba podemos hacer esto.
Tipo de Mail: Maildir/
Aqui quiero pensar que ya tenemos un servidor ldap corriendo para esta organizacion: example.com estructurada asi:
Users
Groups
Computers
Imap
Samba basa su informacion en ldap asi que debe estar en operacion, lo que vamos hacer es usar esta misma informacion para que dovecot se autentifique via ldap, para ello estamos usando a Mandriva MDS, ya que ellos nos proporcionan el schema para ldap llamado mail.schema + mmc.schema.
Esto esta en otro blog mio.
Por ultimo, todos sabemos que por default sendmail viene como servicio de correo saliente, pero esta vez, postfix va a ser el encargado, asi que debemos detener el servicio de sendmail y deshabilitar que arranque cada que reiniciemos el equipo.
Bien, vamos empezando.
1; Editamos el archivo /etc/hosts y agregamos nuestro hostname:
172.16.4.6 mail.example.com mail
2; Editamos postfix-->main.cf
queue_directory = /var/spool/postfix
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
mynetworks = 172.16.0.0/16, 127.0.0.0/8
relay_domains = $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP $mail_name
local_destination_concurrency_limit = 1
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
No necesitamos nada mas de postfix, si desean agregar alias pues editen el archivo /etc/aliases.
3; Editamos dovecot->/etc/dovecot.conf
protocol imap {
listen = *:143
}
disable_plaintext_auth = no
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log
log_timestamp = "%b %d %H:%M:%S "
syslog_facility = local5
ssl_disable = yes
login_user = dovecot
login_greeting = Bienvenidos.
mail_debug = yes
protocol imap {
}
protocol lda {
postmaster_address = postmaster
}
auth_username_format = %Lu
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain
passdb pam {
}
passdb ldap {
args = /etc/dovecot.ldap
}
userdb passwd {
args = /etc/dovecot.ldap
}
userdb ldap {
args = /etc/dovecot.ldap
}
user = root
}
4; Editamos dovecot para ldap-> dovecot.ldap
hosts = 127.0.0.1
dn = cn=root,dc=example,dc=com
dnpass = password-ldap
tls = no
auth_bind = yes
auth_bind_userdn = cn=%u,ou=example,ou=com
ldap_version = 3
base = ou=Users,dc=example,dc=com
scope = subtree
user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid
user_filter = (&(objectClass=posixAccount)(uid=%u))
pass_attrs = uid=user,userPassword=password
pass_filter = (&(objectClass=posixAccount)(uid=%u))
default_pass_scheme = CRYPT
5; Agregamos a dovecot en syslog y creamos los archivos de logeo, reinciamos syslog
/etc/syslog.conf:
local5.* /var/log/dovecot.log
touch /var/log/dovecot.log
touch /var/log/dovecot-info.log
service syslog restart
7; Apagar a sendmail y deshabilitar su arranque automatico.
service sendmail stop
chkconfig sendmail off
8; Reiniciamos los servicios: postfix/dovecot.
service postfix start
service dovecot start
Aqui ya tenemos que tener 2 nuevos puertos esperando peticiones de clientes, ademas de ldap. Checamos:
netstat --inet -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ldap *:* LISTEN
tcp 0 0 mail.example.co:netbios-ssn *:* LISTEN
tcp 0 0 localhost:netbios-ssn *:* LISTEN
tcp 0 0 *:imap *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 mail.example.c:microsoft-ds *:* LISTEN
tcp 0 0 localhost:microsoft-ds *:* LISTEN
udp 0 0 mail.example.com:netbios-ns *:*
udp 0 0 *:netbios-ns *:*
udp 0 0 mail.example:netbios-dgm *:*
udp 0 0 *:netbios-dgm
Ahi estan ldap, postfix y dovecot.
Supongamos que tenemos un usuario de nombre pepito, para probar, ese usuario tiene un folder en home:
/home/pepito.
Como aun no ha recibido correo, no existe su estructura tipo mbox, por ello necesittamos crearle su folder llamado Maildir en su folder:
mkdir /home/pepito/Maildir
Cambiamos los permisos:
chmod -R 700 /home/pepito
chown -R pepito:users /home/pepito
Nos vamos a thuderbird y configuramos su cuenta, una vez que nos aparece la ventana donde nos solicita el passwd, se lo damos y nos enviamos un correo de prueba.
Debe de recibirlo el mismo, no creo que haya problemas.
Dovecot tiene habilitado el log:
mail_debug = yes
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
Si desean pueden cambiarlos a no, cuando ustedes esten seguros que ya esta operando al 100%.
Pueden leer el archivo /var/log/maillog para que veabn que esta haciendo postfix.
Es todo por el momento, animo!!!
sábado, 28 de noviembre de 2009
Centos 5x: Samba + PDC con LDAP como backend
Vamos a configuar a Centos 5.x para que sea nuestro PDC, para ellos vamos a requerir los siguientes paquetes:
samba
samba-common
samba-client
openldap-servers
openldap-clients
smbldap-tools
El nombre del dominio sera:
/var/lib/ldap
Ahi dentro voy a crear un folder con el mismo nombre de mi DOMINIO->PIMPOM pero en minuscula:
mkdir /var/lib/ldap/pimpom
Lo que sigue es copear el archivo de nombre DB_CONFIG.example en el folder creado, este archivo lo localizan donde se instala openldap que es:
/etc/openldap/
cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
Observar que necesitamos eliminar la extension del archivo. Ahora necesitamos
cambiar los permisos del folder donde vamos a almacenar la base de datos.
chown -R ldap:ldap /var/lib/ldap/pimpom
LDAP tiene un usuario administrador, aqui le vamos a llamar Manager y ademas debe tener un password, samba por ejemplo necesita saber esta informacion para poder interactuar con LDAP, por ello lo que sigue es crear el password, esta informacion debemos tener a la mano durante todo este tuturial.
Obtenemos nuestro password de una vez:
slappasswd
New password:
Re-enter new password:
{SSHA}afhadskjfhdlaksfhdlskf
samba
samba-common
samba-client
openldap-servers
openldap-clients
smbldap-tools
El nombre del dominio sera:
pimpom.loc
Una vez hecha la instalacion, vamos hacer unos movimientos, asi me gusta hacerlo a mi, LDAP almacena su BD en:/var/lib/ldap
Ahi dentro voy a crear un folder con el mismo nombre de mi DOMINIO->PIMPOM pero en minuscula:
mkdir /var/lib/ldap/pimpom
Lo que sigue es copear el archivo de nombre DB_CONFIG.example en el folder creado, este archivo lo localizan donde se instala openldap que es:
/etc/openldap/
cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
Observar que necesitamos eliminar la extension del archivo. Ahora necesitamos
cambiar los permisos del folder donde vamos a almacenar la base de datos.
chown -R ldap:ldap /var/lib/ldap/pimpom
LDAP tiene un usuario administrador, aqui le vamos a llamar Manager y ademas debe tener un password, samba por ejemplo necesita saber esta informacion para poder interactuar con LDAP, por ello lo que sigue es crear el password, esta informacion debemos tener a la mano durante todo este tuturial.
Obtenemos nuestro password de una vez:
slappasswd
New password:
Re-enter new password:
{SSHA}afhadskjfhdlaksfhdlskf
Lo que sigue ahora es ya entrar a la configuracion de LDAP, el nombre del archivo que
necesitamos editar es slapd.conf y ya saben donde localizarlo correcto?
slapd.conf
*NOTA: Elimino los comentarios por que usan mucho espacio
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
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
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
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
database bdb
suffix "dc=pimpom,dc=loc"
rootdn "cn=Manager,dc=pimpom,dc=loc"
rootpw {SSHA}DSJDASKLJDASKLJDASLKJDASLJDASL
directory /var/lib/ldap/pimpom
loglevel 256
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
suffix "dc=pimpom,dc=loc"
rootdn "cn=Manager,dc=pimpom,dc=loc"
rootpw {SSHA}DSJDASKLJDASKLJDASLKJDASLJDASL
directory /var/lib/ldap/pimpom
loglevel 256
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
Al principio pueden ver los schemas de ldap, por defult ldap no tiene el de samba asi que
tenemos que darselo.
cp /usr/share/doc/samba-3.0.33/LDAP/samba.schema /etc/openldap/schema
Ahora como hemos habilitado el log de ldap:
loglevel 256
Necesitamos configurar syslog para que acepte los logs de ldap, para ello abrimos el syslog.conf y agregamos esto a el final del archivo:
Necesitamos configurar syslog para que acepte los logs de ldap, para ello abrimos el syslog.conf y agregamos esto a el final del archivo:
local4.* /var/log/ldap.log Creamos ese archivo touch /var/log/ldap.log Reiniciamos syslog service syslog restart Shutting down kernel logger: [ OK ] Shutting down system logger: [ OK ] Starting system logger: [ OK ] Starting kernel logger: [ OK ] Vamos revisando lo que hemos hecho: slapd.conf listo syslog.conf listo Bien ya necesitamos iniciar ldap para ver si no hay problemas: service ldap start Checking configuration files for slapd: config file testing succeeded [ OK ] Starting slapd: [ OK ] Checamos que este escuchando el puerto 389. netstat --inet -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ldap *:* tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN Ahi esta "ldap" escuchando, seguimos. Ya tenemos a LDAP operando, ahora sigue samba,para ellos vamos a configurar smb.conf asi:
SMB.CONF
touch /etc/samba/usermap
Y vamos a agregar esta informacion:
# Unix_name = SMB_name1 SMB_name2 ...
root = Manager administrator admin
nobody = guest pcguest smbguest
Salvamos y salimos.
Ahora segun la configuracion necesitamos crear unos directorios, estos son:
samba, netlogon y profiles.
mkdir /home/samba
mkdir /home/samba/profiles
mkdir /home/samba/netlogon
Necesitamos darle a samba el password de LDAP, recuerdan aquel que usuaron cuando ejecutaron: slappasswd?
smbpasswd smbpasswd -W
Setting stored password for "cn=Manager,dc=pimpom,dc=loc" in secrets.tdb
New SMB password:
Retype new SMB password:
Ahora necesitamos obtener un dato muy importante, el SID que cada dominio tiene uno "UNICO", para ello necesitamos ejectar el siguiente comando.
net getlocalsid
SID for domain SMBPDC is:"S-1-5-21-1234567890-1234567890-1234567890"
De nuevo no perder este dato que mas adelante lo vamos a necesitar.
Vamos de nuevo verificando:
ldap corriendo.
smb.conf editado.
samba,profiles,netlogon creados.
usermap creado.
smbpasswd ejecutado.
Bien parece que vamos bien. Lo que sigue es ver si smb.conf no tiene inconsitencias, para ello ejecutamos el comando testparm, si tiene el se los va a indicar, de lo contrario les va a desplegar toda la configuracion de smb.conf, si no arreglen sus detalles, lo mas comun es algo mal escrito.
Aun no vamos a ejecutar a samba, ya que prefiero terminar todo el proceso completo. Existe una utileria completa para administrar todo de ldap, esta es llamada smbldap-tools, vamos a seguir con esta aplicacion.
Existen 2 archivos en /etc/smbldap-tools/ los cuales necesitamos editar.
Vamos empezando con el mas sencillo.
sambaDomain="PIMPOM"
##############################################################################
#
# LDAP Configuration
#
##############################################################################
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"# Master LDAP port
masterPort="389"
ldapTLS="0"
ldapSSL="0"
verify="require"
cafile="/etc/smbldap-tools/ca.pem"
clientcert="/etc/smbldap-tools/smbldap-tools.iallanis.info.pem"
clientkey="/etc/smbldap-tools/smbldap-tools.iallanis.info.key"
suffix="dc=pimpom,dc=loc"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
scope="sub"#
hash_encrypt="SSHA"
crypt_salt_format="%s"
userLoginShell="/sbin/nologin"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="999"
userSmbHome="\SMBDC\%U"
userProfile="\\SMBPDC\profiles\%U"
userHomeDrive="W:"
Ahora el siguiente archivo:
slaveDN="cn=Manager,dc=pimpom,dc=loc"
slavePw="mi-password"
masterDN="cn=Manager,dc=pimpom,dc=loc"
masterPw="mi-password"
Recuerden el inicio, que cuando estabamos configurando ldap usamos un password, es el que nos pide smbldap_bind.conf.
Sigue la parte mas importante, vamos a crear nuestro dominio, la siguiente instruccion lo que haces es dar de alta todos los grupos del dominio para emular un dominio nt4 en samba.
Aqui de nuevo nos va a pedir el password del administrador de ldap.
E
smbldap-populate
Populating LDAP directory for domain PIMPOM
(S-1-5-21-1234567890-1234567890-1234567890)
(using builtin directory structure)
adding new entry: dc=pimpom,dc=local
adding new entry: ou=Users,dc=pimpom,dc=local
adding new entry: ou=Groups,dc=pimpom,dc=local
adding new entry: ou=Computers,dc=pimpom,dc=local
adding new entry: ou=Idmap,dc=pimpom,dc=local
adding new entry: uid=root,ou=Users,dc=pimpom,dc=local
adding new entry: uid=nobody,ou=Users,dc=pimpom,dc=local
adding new entry: cn=Domain Admins,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Domain Users,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Domain Guests,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Domain Computers,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Administrators,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Account Operators,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Print Operators,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Backup Operators,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Replicators,ou=Groups,dc=pimpom,dc=local
adding new entry: sambaDomainName=PIMPOM,dc=pimpom,dc=local
Ahora para que centos pueda usar los usuarios de LDAP, necesitamos hacer unos cambios, existen 2 archivos de nombre ldap.conf, uno en /etc y otro /etc/openldap/,
Vamos empezando con /etc/ldap.conf:
Ahora ya con esto es solo cuestion de configurar a centos para que haga uso de LDAP, para ello tenemos una utileria llamada authconfig-tui, vamos a seguir las siguientes imagenes para mayor claridad:
Asi deben dejar su configuracion, de esta manera Centos hara uso de los usuarios de LDAP.
O bien si se siente vikingos y desean hacerlo a mano, deben editar el archivo nsswitch.conf que esta en /etc/
Y quedaria asi:
NOTA: Recordar guardar una copia por si algo sale mal o desean retornar su sistema a su estado inicial.
passwd: files ldap
shadow: files ldap
group: files ldap
#hosts: db files nisplus nis dns
hosts: files wins dns
# Example - obey only what nisplus tells us...
#services: nisplus [NOTFOUND=return] files
#networks: nisplus [NOTFOUND=return] files
#protocols: nisplus [NOTFOUND=return] files
#rpc: nisplus [NOTFOUND=return] files
#ethers: nisplus [NOTFOUND=return] files
#netmasks: nisplus [NOTFOUND=return] files
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
Salvan y listo.
Una vez hecho esto lo que sigue es arrancar todo y probar.
1; Reiniciar ldap
service ldap restart
2; Arrancar samba
service smb start
1; net groupmap list nos debe mostrar nuestros grupos creados:
net groupmap list
Domain Admins (S-1-5-21-1234567890-1234567890-1234567890-512) -> Domain Admins
Domain Users (S-1-5-21-1234567890-1234567890-1234567890-513) -> Domain Users
Domain Guests (S-1-5-21-1234567890-1234567890-1234567890-514) -> Domain Guests
Domain Computers (S-1-5-21-1234567890-1234567890-1234567890-515) -> Domain Computers
Administrators (S-1-5-32-544) -> Administrators
Account Operators (S-1-5-32-548) -> Account Operators
Print Operators (S-1-5-32-550) -> Print Operators
Backup Operators (S-1-5-32-551) -> Backup Operators
Replicators (S-1-5-32-552) -> Replicators
2; pdbedit -Lv nos debe dar los usuarios basicos:
smbldap-tools]# pdbedit -Lv
---------------
Unix username: root
NT username: root
Account Flags: [U ]
User SID: S-1-5-21-1234567890-1234567890-1234567890-500
Primary Group SID: S-1-5-21-1234567890-1234567890-1234567890-513
Full Name: root
Home Directory: \\SMBPDC\root
HomeDir Drive: W:
Logon Script:
Profile Path: \\SMBPDC\profiles\root
Domain: PIMPOM
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: Mon, 24 May 2010 18:32:27 PDT
Password can change: Mon, 24 May 2010 18:32:27 PDT
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
---------------
Unix username: nobody
NT username: nobody
Account Flags: [NDU ]
User SID: -2998
Primary Group SID: S-1-5-21-1234567890-1234567890-1234567890-513
Full Name: nobody
Home Directory: \\SMBPDC\nobody
HomeDir Drive: W:
Logon Script:
Profile Path: \\SMBPDC\profiles\nobody
Domain: PIMPOM
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: 0
Password can change: 0
Password must change: 0
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
3; Vamos creando un usuario.
smbldap-useradd -a -m pepito
-Ahora le damos el password.
smbldap-passwd pepito
Changing UNIX and samba passwords for pepito
New password:
Retype new password:
Aqui debemos tener un usuario creado y con su directorio en /home, vamos revisando el directorio:
ls /home
pepito samba
Bien ahora vamos viendo que dice pdbedit de ese usuario:
pdbedit -Lv pepito
Unix username: pepito
NT username: pepito
Account Flags: [U ]
User SID: S-1-5-21-1234567890-1234567890-1234567890-3002
Primary Group SID: S-1-5-21-1234567890-1234567890-1234567890 -513
Full Name: pepito
Home Directory: \\SMBPDC\pepito
HomeDir Drive: W:
Logon Script:
Profile Path: \\SMBPDC\profiles\pepito
Domain: PIMPOM
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: Tue, 25 May 2010 12:32:56 PDT
Password can change: Tue, 25 May 2010 12:32:56 PDT
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Ahora que smbldap-tools nos de informes de el:
smbldap-usershow pepito
dn: uid=pepito,ou=Users,dc=mueblex,dc=com
objectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
cn: pepito
sn: pepito
givenName: pepito
uid: pepito
uidNumber: 1001
gidNumber: 513
homeDirectory: /home/pepito
loginShell: /sbin/nologin
gecos: System User
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: pepito
sambaSID: S-1-5-21-1234567890-1234567890-1234567890-3002
sambaPrimaryGroupSID: S-1-5-21-1234567890-1234567890-1234567890-513
sambaProfilePath: \\SMBPDC\profiles\pepito
sambaHomePath: \\SMBPDC\pepito
sambaHomeDrive: W:
sambaLMPassword: B6202951EB466F13AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: C6243CD48B29A825CCD68E4053321A66
sambaPwdLastSet: 1274815976
sambaPwdMustChange: 1361129576
userPassword: {SSHA}IQwFvKBbbKv+0AnVZse6ycYoNTV0cU92
shadowLastChange: 14754
shadowMax: 999
Pueden ver el dato que dice:
sambaHomeDrive: W:
Este salio de smbldap.conf ahi lo configuramos. Ahora vamos a ver que dice centos de este usuario.
id pepito
uid=1001(pepito) gid=513(Domain Users) groups=513(Domain Users)
Parece que todo esta funcionando correctamente, vamos a revisar a samba
smbclient -L \\SMBPDC -U%
Domain=[PIMPOM] OS=[Unix] Server=[Samba 3.0.33-3.28.el5]
Sharename Type Comment
--------- ---- -------
netlogon Disk Network Logon Service
Profiles Disk Network Profiles Service
Public Disk Public Folder
IPC$ IPC IPC Service (PDC Domain)
Domain=[PIMPOM] OS=[Unix] Server=[Samba 3.0.33-3.28.el5]
Server Comment
--------- -------
JGARCIAVM
SMBPDC PDC Domain
SMB-VMXPKLABAZA
Workgroup Master
--------- -------
PIMPOM SMBPDC
Bien todo parece estar operando como esperabamos.
#Global parameters
[global]
workgroup = PIMPOM
server string = PDC Domain
netbios name = SMBPDC
hosts allow = 172.16.5. 127.
interfaces = eth0
bind interfaces only = Yes
# passwd backend
encrypt passwords = yes
passdb backend = ldapsam:ldap://172.16.5.7/
enable privileges = yes
pam password change= Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %nn *ReType*new*UNIX*password* %nn * passwd:*all*authentication*tokens*updated*successfully*
unix password sync = Yes
# Log options
log level = 1
log file = /var/log/samba/%m.log
max log size = 500
syslog = 1
# Name resolution
name resolve order = wins hosts bcast
# misc
timeserver = No
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
use sendfile = yes
veto files = /*.eml/*.nws/*.{*}/
veto oplock files = /*.doc/*.xls/*.mdb/
deadtime = 120
# Dos-Attribute
map hidden = No
map system = No
map archive = No
map read only = No
store dos attributes = Yes
# printers - configured to use CUPS and automatically load them
load printers = No
printcap name =
printing =
cups options =
show add printer wizard = No
# scripts invoked by samba
add user script = /usr/sbin/smbldap-useradd -m %u
delete user script = /usr/sbin/smbldap-userdel %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
add machine script = /usr/sbin/smbldap-useradd -w %m
# LDAP-iConfiguration
#ldap delete dn = Yes
ldap ssl = off
ldap passwd sync = Yes
ldap suffix = dc=pimpom,dc=loc
ldap machine suffix = ou=Computers
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=Manager,dc=pimpom,dc=loc
idmap backend = ldap:ldap://172.16.5.7
idmap uid = 10000-20000
idmap gid = 10000-20000
# logon options
logon script =
logon path =
logon path =
logon home =
logon drive =
# setting up as domain controller
username map = /etc/samba/usermap
preferred master = Yes
wins support = Yes
domain logons = Yes
domain master = Yes
local master = Yes
os level = 64
map acl inherit = Yes
unix charset = UTF8
password level = 6
#========== Share Definitions
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = yes
locking = no
[homes]
comment = Home Directories
valid users = %S
read only = No
browseable = No
[Profiles]
comment = Network Profiles Service
path = /home/samba/profiles
read only = No
profile acls = yes
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
profile acls = Yes
[Public]
comment = Public Folder
path = /opt/public
available = Yes
browseable = Yes
public = Yes
read only = No
guest ok = Yes
writeable = yes
create mode = 0775
directory mode = 0775
admin users = root
Bien lo que sigue es crear el contenido del archivo que lleva por nombre: usermap, este lo vamos a colocar en /etc/samba/
workgroup = PIMPOM
server string = PDC Domain
netbios name = SMBPDC
hosts allow = 172.16.5. 127.
interfaces = eth0
bind interfaces only = Yes
# passwd backend
encrypt passwords = yes
passdb backend = ldapsam:ldap://172.16.5.7/
enable privileges = yes
pam password change= Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %nn *ReType*new*UNIX*password* %nn * passwd:*all*authentication*tokens*updated*successfully*
unix password sync = Yes
# Log options
log level = 1
log file = /var/log/samba/%m.log
max log size = 500
syslog = 1
# Name resolution
name resolve order = wins hosts bcast
# misc
timeserver = No
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
use sendfile = yes
veto files = /*.eml/*.nws/*.{*}/
veto oplock files = /*.doc/*.xls/*.mdb/
deadtime = 120
# Dos-Attribute
map hidden = No
map system = No
map archive = No
map read only = No
store dos attributes = Yes
# printers - configured to use CUPS and automatically load them
load printers = No
printcap name =
printing =
cups options =
show add printer wizard = No
# scripts invoked by samba
add user script = /usr/sbin/smbldap-useradd -m %u
delete user script = /usr/sbin/smbldap-userdel %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
add machine script = /usr/sbin/smbldap-useradd -w %m
# LDAP-iConfiguration
#ldap delete dn = Yes
ldap ssl = off
ldap passwd sync = Yes
ldap suffix = dc=pimpom,dc=loc
ldap machine suffix = ou=Computers
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=Manager,dc=pimpom,dc=loc
idmap backend = ldap:ldap://172.16.5.7
idmap uid = 10000-20000
idmap gid = 10000-20000
# logon options
logon script =
logon path =
logon path =
logon home =
logon drive =
# setting up as domain controller
username map = /etc/samba/usermap
preferred master = Yes
wins support = Yes
domain logons = Yes
domain master = Yes
local master = Yes
os level = 64
map acl inherit = Yes
unix charset = UTF8
password level = 6
#========== Share Definitions
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = yes
locking = no
[homes]
comment = Home Directories
valid users = %S
read only = No
browseable = No
[Profiles]
comment = Network Profiles Service
path = /home/samba/profiles
read only = No
profile acls = yes
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
profile acls = Yes
[Public]
comment = Public Folder
path = /opt/public
available = Yes
browseable = Yes
public = Yes
read only = No
guest ok = Yes
writeable = yes
create mode = 0775
directory mode = 0775
admin users = root
Bien lo que sigue es crear el contenido del archivo que lleva por nombre: usermap, este lo vamos a colocar en /etc/samba/
touch /etc/samba/usermap
Y vamos a agregar esta informacion:
# Unix_name = SMB_name1 SMB_name2 ...
root = Manager administrator admin
nobody = guest pcguest smbguest
Salvamos y salimos.
Ahora segun la configuracion necesitamos crear unos directorios, estos son:
samba, netlogon y profiles.
mkdir /home/samba
mkdir /home/samba/profiles
mkdir /home/samba/netlogon
Necesitamos darle a samba el password de LDAP, recuerdan aquel que usuaron cuando ejecutaron: slappasswd?
smbpasswd smbpasswd -W
Setting stored password for "cn=Manager,dc=pimpom,dc=loc" in secrets.tdb
New SMB password:
Retype new SMB password:
Ahora necesitamos obtener un dato muy importante, el SID que cada dominio tiene uno "UNICO", para ello necesitamos ejectar el siguiente comando.
net getlocalsid
SID for domain SMBPDC is:"S-1-5-21-1234567890-1234567890-1234567890"
De nuevo no perder este dato que mas adelante lo vamos a necesitar.
Vamos de nuevo verificando:
ldap corriendo.
smb.conf editado.
samba,profiles,netlogon creados.
usermap creado.
smbpasswd ejecutado.
Bien parece que vamos bien. Lo que sigue es ver si smb.conf no tiene inconsitencias, para ello ejecutamos el comando testparm, si tiene el se los va a indicar, de lo contrario les va a desplegar toda la configuracion de smb.conf, si no arreglen sus detalles, lo mas comun es algo mal escrito.
Aun no vamos a ejecutar a samba, ya que prefiero terminar todo el proceso completo. Existe una utileria completa para administrar todo de ldap, esta es llamada smbldap-tools, vamos a seguir con esta aplicacion.
Existen 2 archivos en /etc/smbldap-tools/ los cuales necesitamos editar.
Vamos empezando con el mas sencillo.
smbldap.conf
SID="S-1-5-21-1234567890-1234567890-1234567890"
*NOTA: El primer parametro es nuestro SID, si lo recuerdan?
sambaDomain="PIMPOM"
##############################################################################
#
# LDAP Configuration
#
##############################################################################
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"# Master LDAP port
masterPort="389"
ldapTLS="0"
ldapSSL="0"
verify="require"
cafile="/etc/smbldap-tools/ca.pem"
clientcert="/etc/smbldap-tools/smbldap-tools.iallanis.info.pem"
clientkey="/etc/smbldap-tools/smbldap-tools.iallanis.info.key"
suffix="dc=pimpom,dc=loc"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
scope="sub"#
hash_encrypt="SSHA"
crypt_salt_format="%s"
userLoginShell="/sbin/nologin"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="999"
userSmbHome="\SMBDC\%U"
userProfile="\\SMBPDC\profiles\%U"
userHomeDrive="W:"
Ahora el siguiente archivo:
smbldap_bind.conf
slaveDN="cn=Manager,dc=pimpom,dc=loc"
slavePw="mi-password"
masterDN="cn=Manager,dc=pimpom,dc=loc"
masterPw="mi-password"
Recuerden el inicio, que cuando estabamos configurando ldap usamos un password, es el que nos pide smbldap_bind.conf.
Sigue la parte mas importante, vamos a crear nuestro dominio, la siguiente instruccion lo que haces es dar de alta todos los grupos del dominio para emular un dominio nt4 en samba.
Aqui de nuevo nos va a pedir el password del administrador de ldap.
E
smbldap-populate
Populating LDAP directory for domain PIMPOM
(S-1-5-21-1234567890-1234567890-1234567890)
(using builtin directory structure)
adding new entry: dc=pimpom,dc=local
adding new entry: ou=Users,dc=pimpom,dc=local
adding new entry: ou=Groups,dc=pimpom,dc=local
adding new entry: ou=Computers,dc=pimpom,dc=local
adding new entry: ou=Idmap,dc=pimpom,dc=local
adding new entry: uid=root,ou=Users,dc=pimpom,dc=local
adding new entry: uid=nobody,ou=Users,dc=pimpom,dc=local
adding new entry: cn=Domain Admins,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Domain Users,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Domain Guests,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Domain Computers,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Administrators,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Account Operators,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Print Operators,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Backup Operators,ou=Groups,dc=pimpom,dc=local
adding new entry: cn=Replicators,ou=Groups,dc=pimpom,dc=local
adding new entry: sambaDomainName=PIMPOM,dc=pimpom,dc=local
Ahora para que centos pueda usar los usuarios de LDAP, necesitamos hacer unos cambios, existen 2 archivos de nombre ldap.conf, uno en /etc y otro /etc/openldap/,
Vamos empezando con /etc/ldap.conf:
/etc/ldap.conf
*NOTA: De nuevo omito todos los comentarios.
host 127.0.0.1
base dc=pimpom,dc=loc
ldap_version 3
timelimit 120
bind_timelimit 120
bind_policy soft
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,
nscd,gdm,apache
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
El que sigue:
BASE dc=pimpom,dc=loc
URI ldap://127.0.0.1/
host 127.0.0.1
base dc=pimpom,dc=loc
ldap_version 3
timelimit 120
bind_timelimit 120
bind_policy soft
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,
nscd,gdm,apache
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
El que sigue:
/etc/openldap/ldap.conf
HOST 127.0.0.1BASE dc=pimpom,dc=loc
URI ldap://127.0.0.1/
Ahora ya con esto es solo cuestion de configurar a centos para que haga uso de LDAP, para ello tenemos una utileria llamada authconfig-tui, vamos a seguir las siguientes imagenes para mayor claridad:
| Figura 1: Configurando Centos con LDAP. |
O bien si se siente vikingos y desean hacerlo a mano, deben editar el archivo nsswitch.conf que esta en /etc/
Y quedaria asi:
NOTA: Recordar guardar una copia por si algo sale mal o desean retornar su sistema a su estado inicial.
nsswitch.conf
shadow: files ldap
group: files ldap
#hosts: db files nisplus nis dns
hosts: files wins dns
# Example - obey only what nisplus tells us...
#services: nisplus [NOTFOUND=return] files
#networks: nisplus [NOTFOUND=return] files
#protocols: nisplus [NOTFOUND=return] files
#rpc: nisplus [NOTFOUND=return] files
#ethers: nisplus [NOTFOUND=return] files
#netmasks: nisplus [NOTFOUND=return] files
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
Salvan y listo.
Una vez hecho esto lo que sigue es arrancar todo y probar.
1; Reiniciar ldap
service ldap restart
2; Arrancar samba
service smb start
Pruebas
1; net groupmap list nos debe mostrar nuestros grupos creados:
net groupmap list
Domain Admins (S-1-5-21-1234567890-1234567890-1234567890-512) -> Domain Admins
Domain Users (S-1-5-21-1234567890-1234567890-1234567890-513) -> Domain Users
Domain Guests (S-1-5-21-1234567890-1234567890-1234567890-514) -> Domain Guests
Domain Computers (S-1-5-21-1234567890-1234567890-1234567890-515) -> Domain Computers
Administrators (S-1-5-32-544) -> Administrators
Account Operators (S-1-5-32-548) -> Account Operators
Print Operators (S-1-5-32-550) -> Print Operators
Backup Operators (S-1-5-32-551) -> Backup Operators
Replicators (S-1-5-32-552) -> Replicators
2; pdbedit -Lv nos debe dar los usuarios basicos:
smbldap-tools]# pdbedit -Lv
---------------
Unix username: root
NT username: root
Account Flags: [U ]
User SID: S-1-5-21-1234567890-1234567890-1234567890-500
Primary Group SID: S-1-5-21-1234567890-1234567890-1234567890-513
Full Name: root
Home Directory: \\SMBPDC\root
HomeDir Drive: W:
Logon Script:
Profile Path: \\SMBPDC\profiles\root
Domain: PIMPOM
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: Mon, 24 May 2010 18:32:27 PDT
Password can change: Mon, 24 May 2010 18:32:27 PDT
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
---------------
Unix username: nobody
NT username: nobody
Account Flags: [NDU ]
User SID: -2998
Primary Group SID: S-1-5-21-1234567890-1234567890-1234567890-513
Full Name: nobody
Home Directory: \\SMBPDC\nobody
HomeDir Drive: W:
Logon Script:
Profile Path: \\SMBPDC\profiles\nobody
Domain: PIMPOM
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: 0
Password can change: 0
Password must change: 0
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
3; Vamos creando un usuario.
smbldap-useradd -a -m pepito
-Ahora le damos el password.
smbldap-passwd pepito
Changing UNIX and samba passwords for pepito
New password:
Retype new password:
Aqui debemos tener un usuario creado y con su directorio en /home, vamos revisando el directorio:
ls /home
pepito samba
Bien ahora vamos viendo que dice pdbedit de ese usuario:
pdbedit -Lv pepito
Unix username: pepito
NT username: pepito
Account Flags: [U ]
User SID: S-1-5-21-1234567890-1234567890-1234567890-3002
Primary Group SID: S-1-5-21-1234567890-1234567890-1234567890 -513
Full Name: pepito
Home Directory: \\SMBPDC\pepito
HomeDir Drive: W:
Logon Script:
Profile Path: \\SMBPDC\profiles\pepito
Domain: PIMPOM
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: Tue, 25 May 2010 12:32:56 PDT
Password can change: Tue, 25 May 2010 12:32:56 PDT
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Ahora que smbldap-tools nos de informes de el:
smbldap-usershow pepito
dn: uid=pepito,ou=Users,dc=mueblex,dc=com
objectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
cn: pepito
sn: pepito
givenName: pepito
uid: pepito
uidNumber: 1001
gidNumber: 513
homeDirectory: /home/pepito
loginShell: /sbin/nologin
gecos: System User
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: pepito
sambaSID: S-1-5-21-1234567890-1234567890-1234567890-3002
sambaPrimaryGroupSID: S-1-5-21-1234567890-1234567890-1234567890-513
sambaProfilePath: \\SMBPDC\profiles\pepito
sambaHomePath: \\SMBPDC\pepito
sambaHomeDrive: W:
sambaLMPassword: B6202951EB466F13AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: C6243CD48B29A825CCD68E4053321A66
sambaPwdLastSet: 1274815976
sambaPwdMustChange: 1361129576
userPassword: {SSHA}IQwFvKBbbKv+0AnVZse6ycYoNTV0cU92
shadowLastChange: 14754
shadowMax: 999
Pueden ver el dato que dice:
sambaHomeDrive: W:
Este salio de smbldap.conf ahi lo configuramos. Ahora vamos a ver que dice centos de este usuario.
id pepito
uid=1001(pepito) gid=513(Domain Users) groups=513(Domain Users)
Parece que todo esta funcionando correctamente, vamos a revisar a samba
smbclient -L \\SMBPDC -U%
Domain=[PIMPOM] OS=[Unix] Server=[Samba 3.0.33-3.28.el5]
Sharename Type Comment
--------- ---- -------
netlogon Disk Network Logon Service
Profiles Disk Network Profiles Service
Public Disk Public Folder
IPC$ IPC IPC Service (PDC Domain)
Domain=[PIMPOM] OS=[Unix] Server=[Samba 3.0.33-3.28.el5]
Server Comment
--------- -------
JGARCIAVM
SMBPDC PDC Domain
SMB-VMXPKLABAZA
Workgroup Master
--------- -------
PIMPOM SMBPDC
Bien todo parece estar operando como esperabamos.
Domain Admins
Si desean que un usuario sea Administrador del dominio "Domain Admins" ese l grupo ahi debemos agregar nuestro usuario.
Supongamos que nuestro usuario es "sysadm", entonces seria asi:
smbldap-groupmod -m sysadm "Domain Admins"
adding user sysadm to group Domain Admins
Listo, cuando necesitemos hacer algo como administrador entramos como tal.
Supongamos que nuestro usuario es "sysadm", entonces seria asi:
smbldap-groupmod -m sysadm "Domain Admins"
adding user sysadm to group Domain Admins
Listo, cuando necesitemos hacer algo como administrador entramos como tal.
miércoles, 25 de noviembre de 2009
Centos/FreeBSD: PHP Execution Time
Si tus scripts necesitan mas del tiempo que tiene php para ejecutar un script, debemos modificar este valor de php
max_execution_time
Lo encuentran en php.ini y en centos esta en /etc y en freebsd esta en /usr/local/etc
Por default es 60 segundos o 1 minutos pero ahi veces que necesitamos mas, esto ustedes lo sabran no hay ciencia exacta solo la experiencia propia, pero como recomendacion nunca le den la opcion que sea ilimitado.
Cuado hagan el cambio deben reiniciar apache para que agarre el valor nuevo.
Saludos!!!
max_execution_time
Lo encuentran en php.ini y en centos esta en /etc y en freebsd esta en /usr/local/etc
Por default es 60 segundos o 1 minutos pero ahi veces que necesitamos mas, esto ustedes lo sabran no hay ciencia exacta solo la experiencia propia, pero como recomendacion nunca le den la opcion que sea ilimitado.
Cuado hagan el cambio deben reiniciar apache para que agarre el valor nuevo.
Saludos!!!
miércoles, 18 de noviembre de 2009
Centos 5.x: Migrando LDAP.
Paquetes que se necesitan instalar antes de empezar todo en el nuevo servidor:
openldap-servers
openldap-clients
samba
samba-common
smbldap-tools
Mandriva MDS
Apache
ntpd
Voy a mover una bd de ldap de gentoo hacia centos.
En gentoo me traje los archivo de respaldo que sale ejecutando:
slapcat -l respaldo.ldif
Copie la misma configuracion que tenia en el gentoo hacia centos hablando de openldap y samba, hasta los schemas, si no hacen esto van a tener problemas, debe quedar igual que el server donde esta operando.
No necesite traer el contenido de la base de datos /var/lib/openldap-directory, por que con el puro archivo respaldo.ldif se van a recuperar los datos.
Lo unico que copie fue DB_CONFIG.example hacia el folder donde ldap va a almacenar sus datos /var/lib/ldap, pero ese lo instala openldap-servers.
Por ultimo activar el syslog para que ldap logie, asi si pasa algo podremos saber mas facil por donde buscarle para reparar el dano.
Agregamos esto a el /etc/syslog.conf
local4.* -/var/log/ldap.log
Salvamos, creamos ese archivo en /var/log
touch /var/log/ldap.conf
Reiniciamos syslogd
/etc/init.d/syslog restart
Cambiamos los permisos para que ldap sea el unico con derechos en ese folder
chown -R ldap:ldap /var/lib/ldap
chmod -R 600 /var/lib/ldap
Jalamos el respaldo
slapadd -l respaldo.ldif
De aqui que nos se les pase configurar a centos para que se autentifique con ldap para el es necesario configurar /etc/nsswitch.conf
Sin lo esto:
Respaldando Samba
Bien seguimos con samba, necesitamos traernos el respaldo de samba, ahi como lo ven samba tambien tiene sus archivos importantes que se deben respaldar si lo van a mover a otro servidor.
No solo el folder /etc/samba se debe respaldar, el tiene aparte unos archivos con extension "tdb" que regularmente los almacena en "/var/cache", "/var/lib/samba".
Este link les puede servir si desean adentrarse mas y entender a samba y sus archivos critcos.
Samba TDB
Segun dice que los importantes y sus rutas son en Centos:
account_policy --> /var/cache/samba
group_mapping --> /var/cache/samba
ntdrivers --> /var/cache/samba
ntforms --> /var/cache/samba
ntprinters --> /var/cache/samba
passdb --> No lo uso por que mi db es LDAP
registry --> /var/cache/samba
secrets --> /etc/samba
share_info --> /var/cache/samba
winbindd_idmap --> /var/cache/samba
Vamos iniciando por respaldar el archivo secrets.tdb, nos movemos a ese folder y hacemos esto:
cd /var/lib/samba/private
tdbbackup -s bak secrets.tdb
Si observa se acaba de crear ahi mismo un archivo de nombre secrets.tdbbak
Si leemos el man de esta herramienta dice que fue hecha para trabajar hasta cuando el servicio de samba esta operando, o sea que no es necesario apagar a samba para usarla, lo cual es beneficioso para nosotros que administramos este tipo de servicios.
Ahora seguimos con el folder /var/cache/samba/, un cd hasta haya y
tdbbackup -s bak *.tdb
Aqui son mas archivos, creamos ahi dentro un folder de nombre "cache-bak" y movemos todos los archivos con extension tdbbak hacia ahi:
mv *.tdbbak cache-bak/
Ya que jalemos este folder a el nuevo servidor, eliminamos los archivos que nos utiles segun la pagina de samba para que no nos causen problemas, de todos modos cuando samba arranca los crea por ello nos son importantes.
creamos un tar de cache-bak y lo jalamos a el nuevo servidor.
tar -cf cache-bak.tar /var/cache/cache-bak
Movemos ambos archivos a el nuevo servidor con Centos 5.4, ahi cambian las cosas poquito, porque el secrets lo marca en /etc/samba/ el cache esta donde mismo /var/cache/samba.
Copeamos cada archivo a su lugar, nos olvidamos de los temporales.
A la hora de copear solo debe asegurarse que tenga la extension tdb y no los muevan tal cual estan:
mv secrets.baktdb /etc/samba/secrets.tdb
Asi pueden mover todos los demas, cada uno a su respectivo sitio.
Como vamos a mover a samba, debemos checar su archivo de configuracion a ver si no es necesario hacerle algun cambio.
Si todo esta bien, ejecutamos samba.
service smb start
El proceso normal para leventar un PDC con samba es sacar el SID del servidor y darlo de alta en varias aplicaciones como samba, smbldap-tools. Aqui cambia un poco por que el SID ya lo tenemos, si lo modificamos tendriamos que modificar cada uno de nuestros clientes por que el SID es la firma del servidor.
Asi que en este caso lo que vamos hacer es grabar el que tenemos en el servidor de produccion, como ya tenemos este dato de los archivos de configuracion se lo tenemos que dar comando para eso es:
net setlocalsid
SID for domain PDC-SRV is: S-1-5-21-4251888864-2409518005-1441902238
net setlocalsid "TODA LA NUMERACION DEL VIEJO SERVIDOR"
Reiniciamos samba, no debe marcar error.
Ya que lo tenga listo prueban un smbldap-usershow, smbldap-passwd, etc.
openldap-servers
openldap-clients
samba
samba-common
smbldap-tools
Mandriva MDS
Apache
ntpd
Voy a mover una bd de ldap de gentoo hacia centos.
En gentoo me traje los archivo de respaldo que sale ejecutando:
slapcat -l respaldo.ldif
Copie la misma configuracion que tenia en el gentoo hacia centos hablando de openldap y samba, hasta los schemas, si no hacen esto van a tener problemas, debe quedar igual que el server donde esta operando.
No necesite traer el contenido de la base de datos /var/lib/openldap-directory, por que con el puro archivo respaldo.ldif se van a recuperar los datos.
Lo unico que copie fue DB_CONFIG.example hacia el folder donde ldap va a almacenar sus datos /var/lib/ldap, pero ese lo instala openldap-servers.
Por ultimo activar el syslog para que ldap logie, asi si pasa algo podremos saber mas facil por donde buscarle para reparar el dano.
Agregamos esto a el /etc/syslog.conf
local4.* -/var/log/ldap.log
Salvamos, creamos ese archivo en /var/log
touch /var/log/ldap.conf
Reiniciamos syslogd
/etc/init.d/syslog restart
Cambiamos los permisos para que ldap sea el unico con derechos en ese folder
chown -R ldap:ldap /var/lib/ldap
chmod -R 600 /var/lib/ldap
Jalamos el respaldo
slapadd -l respaldo.ldif
De aqui que nos se les pase configurar a centos para que se autentifique con ldap para el es necesario configurar /etc/nsswitch.conf
slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/mmc.schema
include /etc/openldap/schema/nis.schema
#include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/mail.schema
include /etc/openldap/schema/samba.schema
#################################
schemacheck on
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
#######################################################################
# Logging Options (disable when everything is working fine)
#######################################################################
loglevel 256
#######################################################################
# LDBM database definitions
#######################################################################
database bdb
directory "/var/lib/ldap/mydominio"
cachesize 100000
dbcachesize 1000000
lastmod on
suffix "dc=midominio,dc=com"
rootdn "cn=root,dc=midominio,dc=com"
password-hash {crypt}
password-crypt-salt-format "$1$%.8$"
rootpw {CRYPT}asdasdasdasdasdasd.
access to attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword
by dn="cn=root,dc=oakwest,dc=com" write
by anonymous auth
by self write
by * none
access to *
by * read
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index sambaGroupType,sambaSIDList,uniqueMember eq
Sin lo esto:
access to *
by * read Centos no podra accesar la informacion de los usuarios.Respaldando Samba
Bien seguimos con samba, necesitamos traernos el respaldo de samba, ahi como lo ven samba tambien tiene sus archivos importantes que se deben respaldar si lo van a mover a otro servidor.
No solo el folder /etc/samba se debe respaldar, el tiene aparte unos archivos con extension "tdb" que regularmente los almacena en "/var/cache", "/var/lib/samba".
Este link les puede servir si desean adentrarse mas y entender a samba y sus archivos critcos.
Samba TDB
Segun dice que los importantes y sus rutas son en Centos:
account_policy --> /var/cache/samba
group_mapping --> /var/cache/samba
ntdrivers --> /var/cache/samba
ntforms --> /var/cache/samba
ntprinters --> /var/cache/samba
passdb --> No lo uso por que mi db es LDAP
registry --> /var/cache/samba
secrets --> /etc/samba
share_info --> /var/cache/samba
winbindd_idmap --> /var/cache/samba
Vamos iniciando por respaldar el archivo secrets.tdb, nos movemos a ese folder y hacemos esto:
cd /var/lib/samba/private
tdbbackup -s bak secrets.tdb
Si observa se acaba de crear ahi mismo un archivo de nombre secrets.tdbbak
Si leemos el man de esta herramienta dice que fue hecha para trabajar hasta cuando el servicio de samba esta operando, o sea que no es necesario apagar a samba para usarla, lo cual es beneficioso para nosotros que administramos este tipo de servicios.
Ahora seguimos con el folder /var/cache/samba/, un cd hasta haya y
tdbbackup -s bak *.tdb
Aqui son mas archivos, creamos ahi dentro un folder de nombre "cache-bak" y movemos todos los archivos con extension tdbbak hacia ahi:
mv *.tdbbak cache-bak/
Ya que jalemos este folder a el nuevo servidor, eliminamos los archivos que nos utiles segun la pagina de samba para que no nos causen problemas, de todos modos cuando samba arranca los crea por ello nos son importantes.
creamos un tar de cache-bak y lo jalamos a el nuevo servidor.
tar -cf cache-bak.tar /var/cache/cache-bak
Movemos ambos archivos a el nuevo servidor con Centos 5.4, ahi cambian las cosas poquito, porque el secrets lo marca en /etc/samba/ el cache esta donde mismo /var/cache/samba.
Copeamos cada archivo a su lugar, nos olvidamos de los temporales.
A la hora de copear solo debe asegurarse que tenga la extension tdb y no los muevan tal cual estan:
mv secrets.baktdb /etc/samba/secrets.tdb
Asi pueden mover todos los demas, cada uno a su respectivo sitio.
Como vamos a mover a samba, debemos checar su archivo de configuracion a ver si no es necesario hacerle algun cambio.
Si todo esta bien, ejecutamos samba.
service smb start
El proceso normal para leventar un PDC con samba es sacar el SID del servidor y darlo de alta en varias aplicaciones como samba, smbldap-tools. Aqui cambia un poco por que el SID ya lo tenemos, si lo modificamos tendriamos que modificar cada uno de nuestros clientes por que el SID es la firma del servidor.
Asi que en este caso lo que vamos hacer es grabar el que tenemos en el servidor de produccion, como ya tenemos este dato de los archivos de configuracion se lo tenemos que dar comando para eso es:
net setlocalsid
SID for domain PDC-SRV is: S-1-5-21-4251888864-2409518005-1441902238
net setlocalsid "TODA LA NUMERACION DEL VIEJO SERVIDOR"
Reiniciamos samba, no debe marcar error.
SMBLDAP-TOOLS
Lo configuramos igual que el servidor de produccion, pero no ejecutamos el smbldap-populate por que ya tenemos la estructura del dominio. Solo verficar que este igual que el de produccion.Ya que lo tenga listo prueban un smbldap-usershow, smbldap-passwd, etc.
Autentificacion Local
Tenemos que configurar a centos para que se autentifique localmente, para ello debemos tambien modificar el archivo /etc/openldap/ldap.conf y /etc/ldap.conf
/etc/openldap/ldap.conf
HOST 127.0.0.1
BASE dc=oakwest,dc=com
URI 127.0.0.1
/etc/ldap.conf
host 127.0.0.1
base dc=oakwest,dc=com
ldap_version 3
timelimit 120
bind_timelimit 120
bind_policy soft
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,nscd,gdm
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
Ejecutan
authconfig-tui
User Information --> ldap
Authentication --> agregan LDAP
Next--> checan los parametros, si todo esta correcto le dicen ok y listo, ya podra Centos usar los parametros del ldap localmente.
/etc/openldap/ldap.conf
HOST 127.0.0.1
BASE dc=oakwest,dc=com
URI 127.0.0.1
/etc/ldap.conf
host 127.0.0.1
base dc=oakwest,dc=com
ldap_version 3
timelimit 120
bind_timelimit 120
bind_policy soft
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,nscd,gdm
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
Ejecutan
authconfig-tui
User Information --> ldap
Authentication --> agregan LDAP
Next--> checan los parametros, si todo esta correcto le dicen ok y listo, ya podra Centos usar los parametros del ldap localmente.
Probando
Bien, vamos viendo si ldap esta operando sin problemas:
lunes, 16 de noviembre de 2009
Centos 5.x: Activar disco con Raid en modo rescate
Tenemos que accesar nuestro arreglo con el disco de rescate de Centos 5.x, por default cuando lo ejecutamos el no lo hace, asi que nos toca hacerlo.
Para ello necesitamos crear el archivo mdadm.conf de lo contrario no va a querer, asi:
mdadm --examine --scan > /etc/mdadm.conf
Lo creamos y ahora si iniciamos los arreglos para poder accesarlos.
mdadm --assemble --scan /dev/md0
mdadm --assemble --scan /dev/md1
Listo!!!
Para ello necesitamos crear el archivo mdadm.conf de lo contrario no va a querer, asi:
mdadm --examine --scan > /etc/mdadm.conf
Lo creamos y ahora si iniciamos los arreglos para poder accesarlos.
mdadm --assemble --scan /dev/md0
mdadm --assemble --scan /dev/md1
Listo!!!
Suscribirse a:
Entradas (Atom)