Congotux Linux en Barranquilla

Datos personales

Mi nombre es Jaime Vélez, soy Ingeniero de Sistemas y aficionado en el uso de Linux, mi distribución favorita es openSUSE , intentare escribir en estas notas configuraciones rápidas de servicios que me han sido útiles tanto en mi hogar, como en el trabajo, espero que le sean útiles a alguien en algún momento.

lunes, 2 de noviembre de 2009

Introducción a LDAP

Dejo aquí con la esperanza que a alguien le sirva la conferencia dictada el Día mundial del Software libre en la Universidad Autónoma del Caribe las diapositivas sobre introducción a LDAP

sábado, 11 de julio de 2009

Squid con soporte LDAP

Termine el manual de squid con soporte LDAP.. bueno mas que manual es una receta donde se tocan aspectos de configuración simple (que un usuario exista en el la estructura DIT o árbol LDAP) y aspectos mas complejos como que solo se le de acceso a cierto grupo o grupos de usuarios que se encuentran en el árbol, como los anteriores el manual se encuentra en
http://es.opensuse.org/Squid_con_soporte_ldap
Con la esperanza que le sirva en algún momento a la persona que lo necesita....

domingo, 28 de junio de 2009

Hace rato no actualizaba mi blog

ya han pasado un par de años desde que escribí mi ultima entrada en este blog.. se que no es el tipo de entrada que se acostumbra.. aun sigo usando openSUSE donde han ocurrido cosas muy interesantes con la distribución, la herramienta YaST ha evolucionado favorablemente y ahora incorpora una gran serie de añadidos, como la configuración de openLDAP y la integración de varios elementos con el mismo (DNS, DHPC), Postfix y Cyrus Usuarios y Grupos, para esto he iniciado un aserie de artículos en http://www.opensuse.org
he añadido 3 artículos acerca de openLDAP comprende la instalación configuración, creación de la estructura, inserción de usuarios y grupos y uso con openfire.

1. http://es.opensuse.org/Configurar_LDAP_usando_YaST
2. http://es.opensuse.org/Ingreso_de_usuarios_y_grupos_en_LDAP_usando_YaST
3. http://es.opensuse.org/Configurar_openfire_con_soporte_ldap

sábado, 11 de agosto de 2007

Cuotas en disco duro

este mini howto sirve para limitar el espacio en disco a los usuarios de la maquina que administras, útil tanto para los usuarios linux, como para los usuarios de Samba Configuración de Samba usando LDAP
paquete a instalar
quota
instalelo via yast o smart o apt o su gestor de paquetes favorito (quota viene "de fabrica con la distribución")

ahora como root edite el archivo /etc/fstab
(en mi caso tengo en una partición /home los datos de los usuarios)
/dev/sda2 / ext3 acl,user_xattr 1 1
/dev/sda3 /home ext3 acl,user_xattr 1 2
/dev/sda1 swap swap defaults 0 0
.....
debe quedar asi
/dev/sda2 / ext3 acl,user_xattr 1 1
/dev/sda3 /home ext3 acl,user_xattr,usrquota,grpquota 1 2
/dev/sda1 swap swap defaults 0 0

se adiciono al archivo la clave usrquota y grpquota
ahora como root ejecute
touch /home/aquota.user /home/aquota.group
chmod 600 /home/aquota.*

y reinicie el sistema con
shutdown -r now

cuando el sistema reinicie, ejecute como root los siguientes comandos
quotacheck -avugm
quotaon -avug

ahora ejecute como root los siguientes comandos
chkconfig quotad on
chkconfig boot.quota on

verifique que la salida de los comandos rcquotad status y /etc/init.d/boot.quota status sea done, si no lo es ejecute
rcquotad start
/etc/init.d/boot.quota start
ya con eso tiene el sistemas de cuotas en disco funcionando
la forma de editar las quotas de disco de un usuario es ejecutando como root
edquota -u usuario
para cuotas por grupo
edquota -g grupo

una muy buena herramienta para manipular quotas de disco es webmin modulo system-->Disk Quotas

martes, 24 de julio de 2007

Configuración de Samba usando LDAP

paquetes requeridos
samba
samba-client
samba-doc
nss-ldap
pam-ldap
perl
perl-ldap
Compilador y herramentas de C/C++

Use los paquetes de la distribución SuSE via YaST

baje de cpan.org los siguientes paquetes
unicode::map
jcode
Unicode::MapUTF8
estos paquetes vienen en formato tar.gz, descomprimalos e instalelos con el metodo de perl, así

perl Makefile.PL
make
su
[clave de root]
make install

por ejemplo en cpan.org encontré Unicode-Map-0.112.tar.gz, lo bajo, luego desde la linea de comandos
tar -xvzf Unicode-Map-0.112.tar.gz
cd Unicode-Map-0.112
perl Makefile.pl
make
su
[clave de root]
make install

1. Configuración inicial de Samba

Configure con YaST el servidor samba, (no incluya nada de ldap en este paso) especifique que la maquina es controlador de dominio primario, ahora desde un shell como root (borre cualquier estructura ldap que tenga)

2. Configuracion de Openldap

cd /etc/openldap/schema
cp /usr/share/doc/packages/samba/examples/LDAP/samba.schema /etc/openldap/schema

vi /etc/openldap/slapd.conf
(archivo /etc/openldap/slapd.conf)
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /etc/openldap/schema/core.schema

include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
#include /etc/openldap/schema/rfc2307bis.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema
include /etc/openldap/schema/yast.schema
# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args

# Load dynamic backend modules:
modulepath /usr/lib/openldap/modules
# moduleload back_ldap.la
# moduleload back_meta.la
# moduleload back_monitor.la
# moduleload back_perl.la

# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access to user password
# Allow anonymous users to authenticate
# Allow read access to everything else
# Directives needed to implement policy:
#access to dn.base=""
# by * read

#access to dn.base="cn=Subschema"
# by * read

#access to attrs=userPassword,userPKCS12
# by self write
# by * auth

#access to attrs=shadowLastChange
# by self write
# by * read

#access to *
# by * read

# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn. (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# BDB database definitions
#######################################################################

loglevel 0
database bdb
suffix "dc=eratostenes,dc=site"
rootdn "cn=Administrador,dc=eratostenes,dc=site"
rootpw "secret"
directory /var/lib/ldap/
checkpoint 1024 5
cachesize 10000
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial


se incluyo el archivo nis.schema, se cambio suffix, rootdn y rootpw, asi como los indices para el arbol ldap

vi /etc/openldap/ldap.conf
(archivo /etc/openldap/ldap.conf)
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE dc=eratostenes,dc=site
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
TLS_REQCERT allow
host 127.0.0.1

3. Instalación Herramientas Samba

cd /usr/share/doc/packages/samba/examples/LDAP/smbldap-tools-0.9.2

ahora ejecute desde la linea de comandos como root
perl configure.pl

(salida de la ejecución configure.pl observe los valores que se le dan a las variables, las variables sin valor se dejo el valor default)
Use of $# is deprecated at configure.pl line 314.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
smbldap-tools script configuration
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Before starting, check
. if your samba controller is up and running.
. if the domain SID is defined (you can get it with the 'net getlocalsid')

. you can leave the configuration using the Crtl-c key combination
. empty value can be set with the "." character
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Looking for configuration files...

Samba Configuration File Path [/etc/samba/smb.conf] > /etc/samba/smb.conf

The default directory in which the smbldap configuration files are stored is shown.
If you need to change this, enter the full directory path, then press enter to continue.
Smbldap-tools Configuration Directory Path [/etc/smbldap-tools/] > /etc/smbldap-tools/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Let's start configuring the smbldap-tools scripts ...

. workgroup name: name of the domain Samba act as a PDC
workgroup name [TUX-NET] > TUX-NET
. netbios name: netbios name of the samba controler
netbios name [] >
. logon drive: local path to which the home directory will be connected (for NT Workstations). Ex: 'H:'
logon drive [P:] >
. logon home: home directory location (for Win95/98 or NT Workstation).
(use %U as username) Ex:'\\\%U'
logon home (press the "." character if you don't want homeDirectory) [\\%L\%U\.profiles] > \\ERATOSTENES\%U\.profiles
. logon path: directory where roaming profiles are stored. Ex:'\\\profiles\%U'
logon path (press the "." character if you don't want roaming profile) [\\%L\profiles\%u] > \\ERATOSTENES\profiles\%U
. home directory prefix (use %U as username) [/home/%U] > /home/%U
. default users' homeDirectory mode [700] > 755
. default user netlogon script (use %U as username) [] > netlogon.bar
default password validation time (time in days) [45] > 45
. ldap suffix [dc=eratostenes,dc=site] > dc=eratostenes,dc=site
. ldap group suffix [ou=Groups] > ou=groups
. ldap user suffix [ou=Users] > ou=users
. ldap machine suffix [ou=Computers] > ou=machines
. Idmap suffix [ou=Users] > ou=users
. sambaUnixIdPooldn: object where you want to store the next uidNumber
and gidNumber available for new users and groups
sambaUnixIdPooldn object (relative to ${suffix}) [sambaDomainName=TUX-NET] >
. ldap master server: IP adress or DNS name of the master (writable) ldap server
ldap master server [127.0.0.1] >
. ldap master port [389] >
. ldap master bind dn [cn=Administrador,dc=eratostenes,dc=site] > cn=Administrador,dc=eratostenes,dc=site
. ldap master bind password [] >
. ldap slave server: IP adress or DNS name of the slave ldap server: can also be the master one
ldap slave server [127.0.0.1] >
. ldap slave port [389] >
. ldap slave bind dn [cn=Administrador,dc=eratostenes,dc=site] > cn=Administrador,dc=eratostenes,dc=site
. ldap slave bind password [] >
. ldap tls support (1/0) [0] >
. SID for domain TUX-NET: SID of the domain (can be obtained with 'net getlocalsid ')
SID for domain TUX-NET [S-1-5-21-2154626869-2296519943-178442766] >
. unix password encryption: encryption used for unix passwords
unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) [SSHA] >
. default user gidNumber [513] >
. default computer gidNumber [515] >
. default login shell [/bin/bash] >
. default skeleton directory [/etc/skel] >
. default domain name to append to mail adress [] > eratostenes.site
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Use of uninitialized value in concatenation (.) or string at configure.pl line 314, line 33.
backup old configuration files:
/etc/smbldap-tools/smbldap.conf->/etc/smbldap-tools/smbldap.conf.old
/etc/smbldap-tools/smbldap_bind.conf->/etc/smbldap-tools/smbldap_bind.conf.old
writing new configuration file:
/etc/smbldap-tools/smbldap.conf done.
/etc/smbldap-tools/smbldap_bind.conf done.

(ARCHIVO /etc/smbldap-tools/smbldap.conf )
# $Source: /opt/cvs/samba/smbldap-tools/configure.pl,v
# smbldap-tools.conf : Q & D configuration file for smbldap-tools

# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
# Copyright (C) 2001-2002 IDEALX
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

# Purpose :
# . be the configuration file for all smbldap-tools scripts

##############################################################################
#
# General Configuration
#
##############################################################################

# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID="S-1-5-21-2154626869-2296519943-178442766"

# Domain name the Samba server is in charged.
# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="IDEALX-NT"
sambaDomain="TUX-NET"

##############################################################################
#
# LDAP Configuration
#
##############################################################################

# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
# (typically a replication directory)

# Slave LDAP server
# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
slaveLDAP="127.0.0.1"

# Slave LDAP port
# If not defined, parameter is set to "389"
slavePort="389"

# Master LDAP server: needed for write operations
# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="127.0.0.1"

# Master LDAP port
# If not defined, parameter is set to "389"
masterPort="389"

# Use TLS for LDAP
# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
# If not defined, parameter is set to "1"
ldapTLS="0"

# How to verify the server's certificate (none, optional or require)
# see "man Net::LDAP" in start_tls section for more details
verify=""

# CA certificate
# see "man Net::LDAP" in start_tls section for more details
cafile=""

# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientcert=""

# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientkey=""

# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=eratostenes,dc=site"

# Where are stored Users
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for usersdn
usersdn="ou=users,${suffix}"

# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for computersdn
computersdn="ou=machines,${suffix}"

# Where are stored Groups
# Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for groupsdn
groupsdn="ou=groups,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member server)
# Ex: groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for idmapdn
idmapdn="ou=Idmap,${suffix}"

# Where to store next uidNumber and gidNumber available for new users and groups
# If not defined, entries are stored in sambaDomainName object.
# Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=TUX-NET,${suffix}"

# Default scope Used
scope="sub"

# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
hash_encrypt="SSHA"

# if hash_encrypt is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format=""

##############################################################################
#
# Unix Accounts Configuration
#
##############################################################################

# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"

# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"

# Default mode used for user homeDirectory
userHomeDirectoryMode="755"

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID
defaultUserGid="513"

# Default Computer (Samba) GID
defaultComputerGid="515"

# Skel dir
skeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next line if
# you don't want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute's value)
defaultMaxPasswordAge="45"

##############################################################################
#
# SAMBA Configuration
#
##############################################################################

# The UNC path to home drives location (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome="\\ERATOSTENES\%U\.profiles"

# The UNC path to profiles locations (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile="\\ERATOSTENES\profiles\%U"

# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="P:"

# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under dos
userScript="netlogon.bat"

# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
# Ex: mailDomain="idealx.com"
mailDomain="eratostenes.site"

##############################################################################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
##############################################################################

# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm) but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm)
# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

# comment out the following line to get rid of the default banner
# no_banner="1"

(ARCHIVO /etc/smbldap-tools/smbldap_bind.conf)
############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading access
# By default, we will use the same DN (so it will work for standard Samba
# release)
slaveDN="cn=Administrador,dc=eratostenes,dc=site"
slavePw="secret"
masterDN="cn=Administrador,dc=eratostenes,dc=site"
masterPw="secret"

copie los archivos smbldap* al directorio /usr/local/sbin
cp /usr/share/doc/packages/samba/examples/LDAP/smbldap-tools-0.9.2/smbldap* /usr/local/sbin

cd /usr/local/sbin
chmod 755 *
con esto terminamos de configurar los herramientas con que samba se comunica con ldap

4. Creacion de la estructura de arbol LDAP

cd /usr/local/sbin
/usr/local/sbin/smbldap-populate -u 1550 -g 1500
Populating LDAP directory for domain TUX-NET (S-1-5-21-2154626869-2296519943-178442766)
(using builtin directory structure)

adding new entry: dc=eratostenes,dc=site
adding new entry: ou=users,dc=eratostenes,dc=site
adding new entry: ou=groups,dc=eratostenes,dc=site
adding new entry: ou=machines,dc=eratostenes,dc=site
adding new entry: ou=Idmap,dc=eratostenes,dc=site
adding new entry: uid=root,ou=users,dc=eratostenes,dc=site
adding new entry: uid=nobody,ou=users,dc=eratostenes,dc=site
adding new entry: cn=Domain Admins,ou=groups,dc=eratostenes,dc=site
adding new entry: cn=Domain Users,ou=groups,dc=eratostenes,dc=site
adding new entry: cn=Domain Guests,ou=groups,dc=eratostenes,dc=site
adding new entry: cn=Domain Computers,ou=groups,dc=eratostenes,dc=site
adding new entry: cn=Administrators,ou=groups,dc=eratostenes,dc=site
adding new entry: cn=Account Operators,ou=groups,dc=eratostenes,dc=site
adding new entry: cn=Print Operators,ou=groups,dc=eratostenes,dc=site
adding new entry: cn=Backup Operators,ou=groups,dc=eratostenes,dc=site
adding new entry: cn=Replicators,ou=groups,dc=eratostenes,dc=site
adding new entry: sambaDomainName=TUX-NET,dc=eratostenes,dc=site

Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password

esto crea la estructura ldap que necesita samba para su correcto funcionamiento.

el password de root que solicita el comando smbldap-populate es del usuario con el que se ingresaran las maquinas windows al dominio, este password puede ser igual al password de root del sistema linux o ser totalmente diferente, tenga en cuenta que su sistema ahora tiene dos usuarios root, supongamos que el usuario root de linux tiene clave admin1 y el usuario root de samba (guardado en el arbol ldap) tiene clave admin2, usted ahora puede ingresar como root con clave admin1 o admin2 y con ambas claves .. tiene derechos de superusuario... tenga mucho cuidado con esto.

recomiendo instalar luma o gq para administrar ldap

5. Configuracion de pam-ldap y nss-ldap


YaST-->Servicio de Red-->Cliente Ldap

Autenticación de usuarios
Usar Ldap
Cliente ldap
Direccion del servidor Ldap
127.0.0.1
DN base de ldap
dc=eratostenes,dc=site
Desmarcar
LDAP TLS/SSL
LDAP Version 2
Marcar :
Crear Directorio personal al iniciar sesión
Click en Configuración avanzada
Ajustes de Clientes
ou=users,dc=eratostenes,dc=site
Asignación de contraseña
ou=users,dc=eratostenes,dc=site
Asignacion de grupos
ou=groups,dc=eratostenes,dc=site

Ajustes de Administración
Configuracion DN Base
dc=eratostenes,dc=site

DN del administrador
cn=Administrador,dc=eratostenes,dc=site

marcar: directorios personales en este equipo
aceptar y finalizar

editar el archivo ldap.conf que esta en /etc (no el que esta en /etc/openldap)

vi /etc/ldap.conf
agregue la siguiente clave

nss_base_passwd ou=machines,dc=eratostenes,dc=site
Asi, busque la linea 282-292 del archivo /etc/ldap.conf aparece algo como esto

ssl no
ldap_version 3
pam_filter objectclass=posixAccount
nss_base_passwd ou=users,dc=eratostenes,dc=site
nss_base_shadow ou=users,dc=eratostenes,dc=site
nss_base_group ou=groups,dc=eratostenes,dc=site
tls_checkpeer no

agregue la linea así

ssl no
ldap_version 3
pam_filter objectclass=posixAccount
nss_base_passwd ou=users,dc=eratostenes,dc=site
nss_base_passwd ou=machines,dc=eratostenes,dc=site
nss_base_shadow ou=users,dc=eratostenes,dc=site
nss_base_group ou=groups,dc=eratostenes,dc=site
tls_checkpeer no

guarde la modificación

cree los siguentes directorios (en un shell como root)

mkdir -vpm 755 /home/samba/
mkdir -vpm 755 /home/samba/netlogon /home/samba/users
chgrp -v “Domain Admins” /home/samba/netlogon/
mkdir -vpm 1757 /home/samba/profiles

ahora:

6. Archivo smb.conf final

copie en /etc/samba/smb.conf
[global]
workgroup = TUX-NET
netbios name = eratostenes
printcap name = cups
cups options = raw
map to guest = Bad User
include = /etc/samba/dhcp.conf
logon home = \\%L\%U\.profiles
logon path = \\%L\profiles\%U
logon drive = P:
usershare allow guests = Yes
## add machine script = /sbin/yast /usr/share/YaST2/data/add_machine.ycp %m$
log file = /var/log/samba/log.%m
log level = 5
domain logons = Yes
domain master = Yes
os level = 65
preferred master = Yes
wins support = Yes
profile acls = yes
nt acl support = yes
passdb backend = ldapsam:ldap://127.0.0.1/
ldap admin dn = cn=Administrador,dc=eratostenes,dc=site
ldap suffix = dc=eratostenes,dc=site
ldap group suffix = ou=groups
ldap user suffix = ou=users
ldap machine suffix = ou=machines
ldap idmap suffix = ou=Idmap
# ldap ssl = start tls
# add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s /bin/false %m$
local master = Yes
security = user
ldap delete dn = Yes

add user script = /usr/local/sbin/smbldap-useradd -m "%u"
#delete user script = /usr/local/sbin/smbldap-userdel "%u"
add machine script = /usr/local/sbin/smbldap-useradd -t 5 -w "%u"
add group script = /usr/local/sbin/smbldap-groupadd -p "%g"
delete group script = /usr/local/sbin/smbldap-groupdel "%g"
add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u"

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

[profiles]
path = /home/samba/profiles
comment = Network Profiles Service
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700
profile acls = yes
nt acl support = yes

[users]
comment = All users
path = /home
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/

[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775

[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
write list = @domainadmins


listo, ya configuramos y poblamos el arbol ldap e hicimos que ldap y pam “hablaran”
ahora falta que samba y ldap se comuniquen

ejecute como root
rcldap restart
rcsmb restart
rcnmb restart
smbpasswd -w secret
Setting stored password for "cn=Administrador,dc=eratostenes,dc=site" in secrets.tdb

secret es el password de la administrador de ldap (igual que el que esta en el archivo /etc/openldap/slapd.conf

y eso es todo
intente ingresar una maquina al dominio.

para ingresar usuarios

/usr/local/sbin/smbldap-useradd -a nombreusuario

para darle un password

/usr/local/sbin/smbldap-passwd nombreusuario

7. Fuentes

1. Howto setup SUSE 10.1 as Samba PDC
2. Howto setup SUSE as SAMBA PDC with OpenLDAP DYNDNS and CLAMAV
3. Integración de redes con OpenLDAP, Samba, CUPS y PyKota

martes, 12 de junio de 2007

Administración remota con FreeNX

Si eres como yo, flojo para los comandos, este es tu howto.. aqui aprenderas lo necesario para instalar y configurar el servicio FreeNX que te permitira entrar de manera remota.. y segura a tu servidor Linux

Paquetes necesarios:
FreeNX
Expect
netcat
NX
OpenSSH


luego de instalados estos paquetes ejecuta la instrucción en la linea de comandos como root
nxsetup --install --setup-nomachine-key

Nota de: Jesus Rudas Simmonds
para Centos-fedora ejecute en la linea de comandos
yum install freenx
esto baja los rpm, los instala y los configura.
/Nota


ahora para que la configuración sea accesible desde un equipo externo, debe abrir el puerto 22 en el cortafuegos (ssh)

y eso es todo por el lado del servidor

ahora instale el cliente NX para eso baje de la página de nomachime el cliente NX (si deseas administrar de linux a linux el cliente para linux, si desea administrar de guindous a linux el cliente NX para guindous), estos clientes no son software libre en el sentido estricto de la palabra, pero son gratis, y funcionan muy bien
página para guindous:
http://www.nomachine.com/download-client-windows.php
página para linux
http://www.nomachine.com/download-client-linux.php

luego de instalado el cliente, este cuenta con un "wizard".. (asi es que se llaman esos adefecios???) que mediante pasos se le indica como configurar un cliente a una maquina NX

ejecute el NX Connection Wizard
aparecera una pantalla como la siguiente:


Selecciona Next


Aqui seleccione el nombre de seccion, este es un nombre arbitrario que se puede usar para diferenciar diferentes servidores (casa, oficina, Juan, etc) y el host, debe ser el nombre (dns) del servidor a administrar o la dirección IP del mismo (servidor.trabajo.com, 200.30.75.20) y luego Next



Seleccione: Enable SSL encription for all traffic (importante)
y Next



y finish y eso es todo, queda un icono en el escritorio para ejecutar el escritorio remoto.

luego aparece la siguente pantalla (si no aparece, ejecute el icono del escritorio)

digite el usuario y la clave del usuario linux

cuando se esta conectando al servidor aparece la siguiente pantalla

Acepte el certificado SSL con Yes

Luego aparece el escritorio linux, en el ejemplo KDE

jueves, 7 de junio de 2007

Configuracion de un proxy casero protector (especial para niños)

Tengo dos pequeñas, la mayor al momento de escribir esta entrada tiene 8 y esta próxima a cumplir 9, como lo único que uso es Linux, me di a la tarea de buscar una forma de limita el acceso a Internet, donde abunda el material obsceno (si me hubieran dicho hace 10 años que eso me iba a preocupar.. no lo hubiese creído) la idea es filtrar el contenido de Internet utilizando dansguardian, este es un excelente filtro de Internet, (aunque el mejor filtro es un padre que esta pendiente de sus hijos).

Por que es importante esta configuración, solo se dispone de un equipo que realizar las tareas de computo del hogar.. y ademas solo tiene Linux

Suposiciones mínimas..
se "supone" que sabes instalar paquetes.. sea vía yast, smart, apt o rpm pelao y raspao
se "supone" que sabes usar un editor, pico nano, emacs, vi, kate, etc

Que se necesita:

1. Dansguardian lo encuentra en el repositorio "grande" de openSUSE
http://software.opensuse.org/download/Education:/server/openSUSE_10.2/i586/
2. squid: Viene de "serie" con la distribución hay que instalarlo
3. Firehol: Cortafuegos personal .. reemplaza al SuSEfirewall2 pagina: http://firehol.sourceforge.net/
instale el paquete rpm para red hat, al momento de escribir es firehol-1.256-rh7up.noarch.rpm

1. Dansguardian:
Como root edite el archivo /etc/dansguardian/dansguardian.conf
la linea
language = 'ukenglish'
cámbiela por
language = 'spanish'
salve/grabe y eso es todo con dansguardian

2. Squid lo que aquí se escribe funciona con squid-2.6.STABLE5 la forma de poner un proxy transparente cambio en squid si su versión de squid es anterior y lo que se escribe aquí no funciona.. fácil.. busque un manual de proxy transparente en Internet.. hay un pocoton, todos muy buenos
ahora:
Como root edite el archivo /etc/squid/squid.conf
cambie la linea
http_port 3128
por
http_port 127.0.0.1:3128 transparent

con esto es suficiente, pero si queremos mejorar el rendimiento de squid
cambie
# cache_swap_low 90
# cache_swap_high 95

por
cache_swap_low 80
cache_swap_high 100

cambie
# cache_dir ufs /var/cache/squid 100 16 256
por
cache_dir ufs /var/cache/squid 1000 16 256

y cambie
# cache_store_log /var/log/squid/store.log

por
cache_store_log none

salve/grabe y eso es todo

3. Firehol
edite el archivo /etc/firehol/firehol.conf
cámbielo por el siguiente (copie y pegue):

# $Id: client-all.conf,v 1.2 2002/12/31 15:44:34 ktsaou Exp $
#
# This configuration file will allow all requests originating from the
# local machine to be send through all network interfaces.
#
# No requests are allowed to come from the network. The host will be
# completely stealthed! It will not respond to anything, and it will
# not be pingable, although it will be able to originate anything
# (even pings to other hosts).
#

version 5

# Accept all client traffic on any interface
#interface any world
# client all accept
iptables -t filter -I OUTPUT -d 127.0.0.1 -p tcp --dport 3128 -m owner ! --uid-owner nobody -j DROP
# iptables -t filter -I OUTPUT -d 127.0.0.1 -p tcp --dport 3128 -m owner --uid-owner jvelez -j ACCEPT
transparent_squid 8080 "squid root"

interface any world
policy drop
protection strong
client all accept

# fin de archivo

la linea
iptables -t filter -I OUTPUT -d 127.0.0.1 -p tcp --dport 3128 -m owner ! --uid-owner nobody -j DROP
es muy importante.. impide la conexión directa al proxy squid por un usuario cualquiera (si esto ocurre seria muy fácil saltarse el filtro dansguardian, solo colocar en el navegador de Internet (Firefox o Konqueror) puerto de salida 3128

la linea
# iptables -t filter -I OUTPUT -d 127.0.0.1 -p tcp --dport 3128 -m owner --uid-owner jvelez -j ACCEPT
permite salir sin restricción de filtro al usuario jvelez (usuario de la maquina linux) si eres un cochinon que te quieres saltar el filtro tu y que los demás queden filtrados.. retire la almohadilla a la linea (el símbolo de numero #) y cambia el usuario jvelez por el tuyo
ademas en tu navegador coloca en configuración manual de conexión coloca proxy http = 127.0.0.1 y puerto 3128, con esto te saltas el filtro y navegas por el proxy sin restricciones

eso es todo

como arrancar la primera vez todo esto
ejecute como root las siguientes instrucciones
rcSuSEfirewall2 stop
/etc/init.d/firehol start
/etc/init.d/squid_DG start


como ponerlo automático cuando encienda su computador/ordenador.
ejecute como root las siguientes instrucciones
chkconfig firehol on
chkconfig squid_DG on
chkconfig SuSEfirewall2_init off
chkconfig SuSEfirewall2_setup off


y eso es todo.. parece largo, pero no debes tardar mas de 10 minutos.