jueves, 19 de mayo de 2011

Bloqueando dominio en Postfix

Editamos el archivo de configuración de postfix:

mail:/etc/postfix# vim /etc/postfix/main.cf

smtpd_sender_restrictions = hash:/etc/postfix/access


Agregamos el dominio del cual no queremos recibir correos:

mail:/etc/postfix# vim /etc/postfix/access

redes-seguridad.com.ar REJECT

mail:/etc/postfix# postmap /etc/postfix/access



Reiniciamos el servicio:

mail:/etc/postfix# /etc/init.d/postfix restart



Vemos como aparece el "Access denied" en los logs:

mail:/etc/postfix# tail -f /var/log/mail.log

May 19 16:46:41 mail postfix/smtpd[19835]: NOQUEUE: reject: RCPT from mail-vx0-f172.google.com[xxx.yyy.zzz.www]: 554 5.7.1 : Sender address rejected: Access denied; from= to= proto=ESMTP helo=

lunes, 16 de mayo de 2011

TightVNC Debian Squeeze 6.0

Instalamos vnc Server:

root@www:~# apt-get install tightvncserver



Iniciamos el server:

root@www:~# tightvncserver :1


You will require a password to access your desktops.

Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Warning: password truncated to the length of 8.
Verify:

xauth: creating new authority file /root/.Xauthority

New 'X' desktop is www:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/www:1.log



Descargamos el vncviewer for windows:

http://www.tightvnc.com/download.php

Ingresamos en el cliente:

192.168.1.101:1

Ingresamos el password y listo.


Para matarlo:

root@www:~# tightvncserver -kill :1

Killing Xtightvnc process ID 4572

domingo, 15 de mayo de 2011

Evitar Fork Bomb

Un fork bomb es una forma de DOS (denegación de servicios). Consta en correr un proceso, a su vez este llama a otros y estos a su vez a otros, consumiendo todos los recursos del equipo llevandolo al cuelgue.


Ejemplo de fork bomb en bash:
:(){ :|:& };:


Cualquier usuario sin privilegios puede correrlo, para evitarlo editamos el siguiente archivo y agregamos lo siguiente al final de dicho archivo:

vim /etc/security/limits.conf

* hard nproc 300


Ejemplo de fork bomb en C:

#include

void main()
{
while(1)
fork();
}


Consta en la creación de un bucle infinito con la función fork dentro.


Ejemplo en batch:

:s
start %0
goto s

Aide (IDS) en Debian 6.0 Squeeze

Que es AIDE?

Aide es programa de deteccion de intrusos basado en host el cual reemplaza el conocido Tripwire (chequeador de integridad). Este provee software para chequear la integridad y puede encontrar cambios en binarios modificados.

Es posible instalarlo en un sistema online y en produccion. Si es posible debe configurarlo antes de conectar el sistema en cualquier red. AIDE es un HIDS (Sistema de Deteccion de Intrusos basado en host) que puede monitorear y analizar el interior de un sistema.

Instalacion:

#apt-get update && apt-get upgrade
#apt-get install aide



Configuracion:

Usted puede modificarlo en /etc/aide/aide.conf como quiera, igualmente la config por defecto es aceptable para algunos systemas.

/etc/aide/aide.conf y /etc/aide/aide.conf.d <- Son los archivos de config

/var/lib/aide/aide.db <- Ubicacion de las BD de aide

/var/lib/aide-aide.db.new <- Ubicacion de la nueva BD creada


El comando aideinit crea una nueva BD de AIDE. Esta iniciara una BD en la ubicacion por defecto: database_out (definido en el aide.conf).

Generamos la BD:
#aideinit

Instalamos la nueva BD:
#cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db


Corremos un chequeo manual:
#aide -c /etc/aide/aide.conf --check


Ahora necesita mover la BD y los archivos de configuracion (aide.conf) a un lugar seguro (Read-only). Si un atacante puede modificar el binario, la BD o el archivo de configuracion obviamente tendremos al intruso y no nos daremos cuenta, asi que podremos mover estos en un CD-ROM y poder usuarlos para chequear (no podran ser modificados). Tambien podremos usar hashes de dichos archivos.

Los movemos a un lugar seguro:
#scp /var/lib/aide/aide.db* /usr/bin/aide /etc/aide/aide.conf /etc/aide/aide.conf.d/* usuario@ip-otro-server:/ruta


Podemos usar herramientas como cdrecord para copiarlos en CD:
http://www.cyberciti.biz/tips/how-do-i-write-cd-at-debain-linux-command-prompt.html

Ahora comprobaremos si realmente funciona...

Modificamos un archivo:
#vim /bin/ping
(hacemos una copia antes para no perder el verdadero binario y luego modificamos algo dentro del original)

Ejecutamos el chequeo:
#aide -c /etc/aide/aide.conf --check


Por defecto AIDE se instala en /etc/cron.daily/aide, donde se ejecutara automaticamente diariamente. Si algun archivo o binario del sistema es modificado recibira un mail (por defecto root, pero puede modificarse en el archivo aide.conf editando la variable: MAILTO)

#vim /etc/default/aide

MAILTO=lalo@landa.com

AIDE enviar un mail indicando de una posible modificacion del sistema. Sin embargo algunas veces usted actualiza su sistema y cambia la configuracion con algun update. Los siguientes pasos deben ser repetidos cuando la configuracion cambia http://www.blogger.com/img/blank.gifo se necesita una actualizacion de algo en su sistema:

#aideinit
#cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
#aide -c /etc/aide/aide.conf --check

Finalmente, movemos los archivos (BD, binarios y archivos de configuracion) a un lugar de solo lectura fuera de dicho servidor.


FUENTE: http://www.cyberciti.biz/faq/debian-ubuntu-linux-software-integrity-checking-with-aide/

miércoles, 11 de mayo de 2011

TFTP debian 6.0 squeeze

Instalacion:

#apt-get install tftpd tftp
#mkdir /tftpboot
#chmod 777 /tftpboot
#chown htirado.htirado /tftpboot



Verificar en /etc/inetd.conf que este asi:

vim /etc/inetd.conf

tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot


Reiniciamos inetd:

#/etc/init.d/openbsd-inetd restart



Creamos un archivo para probar copiarlo de otro destino:

#vim /tftpboot/tftp.txt

Escribimos cualquier cosa dentro


Desde un cliente TFTP, por ejemplo desde la CLI de windows ejecutamos:

C:\>tftp -i 172.16.72.72 get tftp.txt
Transfer successful: 17 bytes in 1 second, 17 bytes/s

Guía de Comandos IOS

Comandos de configuración en routers Cisco

Ingreso al modo configuración
Router>enable
Routerf#configure terminal
Router(config)#_


Claves de acceso a modo usuario
Router(config)#line console 0
Router(config-line)#password Cisco
Router(config-line)#login
Router(config-line)#exit
Router(config)#line aux 0
Router(config-line)#password Cisco
Router(config-line)#login
Router(config-line)#exit
Router(config)#line vty 0 4
Router(config-line)#password Cisco
Router(config-line)#login
Router(config-line)#exit
Router(config)#_


Clave de acceso a modo privilegiado
Router#configure terminal
Router(config)#enable secret Cisco
Router(config)#_


Configuración de parámetros básicos
Router(config)#hostname Router
Router(config)#ip name-server 192.5.5.18
Router(config)#ip domain-lookup
Router(config)#banner motd #mensaje de ingreso#
Router(ccnfig}#service password-encryption
Router(config)#config-register 0x2142
Router(config)#boot config flash:2800.cfg
Router(config)#boot network tftp://172.16.14.12/2800.cfg
Router(config)#boot.system tftp://172.16.14.12/2800nm-adventr.bin
Router(config)#_


Parametros de acceso por consola
Router(config)#line console 0
Router(config-line)#exec-timeout 50
Router(config-line)#logging-synchronous
Router(config-line)#exit
Router(config)#_



Configuracion de una interfaz LAN Ethernet
Router(config)#interface fastethernet 0/0
Router(config-if)#ip address 192.5.5.1 255.255.255.0
Router(config-if)#description Gateway de la LAN de ingenieria
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#_


Configuración de una interfaz LAN utilizando IPv6
Router(config)#ipv6 unfeast-routing
Router(config)#interface fastethernet 0/0
Router(config-if)#ipv6 address 2001:abl:32f4:1::/64 eui-64
Router(config-if)#description Gateway de la LAN de ingenieria
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#_


Configuración de interfaz WAN HDLC
Router(config)#interface serial 0/0/0
Router(config-if)#encapsulation hdlc
Router(config-if)#ip address 201.100.11.1 255.255.255.0
Router(config-if)#description Puerto de conexion con sucursales
Router(config-if)#bandwidth 128
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#_


Configuración de interfaz WAN PPP
Router(config)#interface serial 0/0/0
Router(config-if)#encapsulation pop
Router(config-if)#ip address 201.100.11.1 255.255.255.0
Router(config-if)#description Puerto de conexion con la red de sue
Router(config-if)#bandwidth 128
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#_


Configuracion de interfaz WAN PPP con autenticacion CHAP
Router(config)#usernane Remote password cisco
Router(config)#interface serial 0/0/0
Router(config-if)#encapsulation ppp
Router(config-if)#ppp authentication chap
Router(config-if)#exit
Router(config)#_
Remoto#configure terminal
Remoto(config)#username Router password cisco
Remoto(config)#interface serial0/0/0
Remoto(config-if)#encapsulation ppp
Router(config-if)#exit
Router(config)#_


Configuracion de interfaz WAN PPP con autenticacion PAP
Router(config)#username Remoto password cisco
Router(config)#interface serial0/0/0
Router(config-if)#encapsulation ppp
Router(config-if)#ppp authentication pap
Router(config-if)#exit
Router(config)#_
Remoto#configure terminal
Remoto(config)#username Router password cisco
Remoto(config)#interface serial0/0/0
Remoto(config-if)#encapsulation ppp
Remoto(config-if)#ppp pap sent-username Remoto password cisco
Router(config-if)#exit
Router(config)#_


Configuracion de una interfaz logica:
Router(config)#interface loopbackO
Router(config-if)#description Interfaz de
Router(config-if)#ip address 10.0.0.1 255
Router(config-if)#exit
Router(config)#_


Configuración de enrutamiento estático:
Router(config)#ip route 196.17.15.0 255.255.255.0 201.100.11.2
Router(config)#ip route 207.7.68.0 255.255.255.0 serial0/0/0 130
Router(config)#ip route 0.0.0.0 0.0.0.0 serial0/0/l
Router(config)#ip default-network 200.15.17.0


Configuración de enrutamiento RIPv2:
Router(config)#router rip
Router(config-router}#network 172.16 . 0.0
Router(config-router)#version 2
Router(config-router}#passive-interface fastethernet0/0
Router(config-router)#no auto-summary
Router(config-router)#distance 130
Router(config-router)#exit
Router(config)#_


Configuracion de enrutamiento RIPng
Router(config)#ipv6 unicast-routing
Router(config)#ipv6 router rip Cisco
Router(config)#interface fastethernetO/0
Router(config-if)#ipv6 rip cisco enable
Router(config-if)#exit
Router(config)#_



Configuración de enrutamiento EIGRP
Router(config)#router eigrp 20
Router(config-router)#network 1".0.0 . 0
Router(config-router)#no auto-summary
Router(config-router)#exit
Router(config)#_


Configuracion de enrutamiento OSPF
Router(config)#router ospf 2
Router(config-router)#network 172.16.0.0 0.0.255.255 area 0
Router(config-router)#exit
Router(config)#interface serial 0/0
Router(config-if)#ip ospf cost 10
Router(config-if)#ip ospf priority 255
Router(config-if)#exit
Router(config)#_


Configuración del servicio DHCP
Router(config)#service dhcp
Router(config)#ip dhcp excluded-address 172.16.1.1 172.16.1.3
Router(config)#ip dhcp pool nombre
Router(dhep-config)#network 172.16.1.0 255.255.255.0
Router(dhcp-config)#dns-server 172.16.1.3
Router(dhcp-config)#netbios-name-server 172.16.1.3
Router(dhcp-config)#default-router 172.16.1.1
Router(dhcp-config)#domain-name ccna
Router(dhcp-config)#lease 1 8 0
Router(dhcp-config)#exit
Router(config)#_


Configuración del servicio NAT
Router(config)#interface fastethernetO/0
Router(config-if)#ip nat inside
Router(config-if)#interface serialO/0
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#ip nat inside source static 172.16.1.2 200.15.17.12
Router(config)#ip nat pool ccna 200.15.17.13 200.15.17.20 netmask 255.255.255.0
Router(config)#access-list 1 permit 172.16.1.8 0.0.0.7
Router(config)#ip nat inside source list 1 pool ccna
Router(config)#ip nat inside source list 1 interface serial 0/0 overload
Router(config)# ip nat translation timeout 120
Router(config)#exit
Router#clear ip nat translation *
Router#_


Configuracion de CDP
Router(config)#cdp timer 100
Router(config)#cdp holdtime 200
Router(config)#cdp run
Router(config)#interface fastethernet0/0
Router(config-if)#cdp enable
Router(config-if)#^Z
Router#clear cdp counters
Router#clear cdp table
Router#_


Configuracion de Listas de Acceso
Router(config)#access-list 1 permit host 221.17.15.2
Router(config)#interface serial0/0/l
Router(config-if)#ip access-group 1 in
Router(config-if)#exit
Router(config)#_


Router(config)#access-list 102 deny tcp any host 172.16.1.3 ftp
Router(config)#interface serial0/0/l
Router(config-if)#ip access-group 102 in
Router(config-if)#exit
Router(config)#_


Router(config)#ip access-list standard ccna
Router(config-std-nacl)#permit host 221.17.15.2
Router(config-std-nacl)#exit
Router(config)#interface serial 0/1
Router(config-if)#ip access-group ccna in
Router(config-if)#exit
Router(config)#_


Configuración de filtros de acceso a terminales virtuales
Router(config)#access-list 10 permit host 172.16.10.3
Router(config)#line vty 0 4
Router(config-line)#access-class 10 in
Router(config-line)#exit
Router(config)#_


Configuracion de servicios Frame Relay
Router(config)#interface serial0/0/0
Router(config-if)#encapsulation frame-relay
Router(config-if)#frame-relay lmi-type cisco
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#exit
Router(config)#_


Router(config)#interface serial0/0/0
Router(config-if)#encapsulation frame-relay
Router(config-if)#no shutdown
Router(config-if)#interface serial0/0/0.21 point-to-point
Router(config-subif}#ip address 172.16.21.1 255.255.255.252
Router(config-subif)#frane-reiay interface-dlci 21
Router(config-subif)#exit
Router(config)#exit
Router(config)#_


Router(config)#interface serial0/0/0
Router(config-if)#encapsulation frame-relay
Router(config-if)#no shutdown
Router(config-if)#interface serial 0.20 multipoint
Router(config-subif)#ip address 172.16.20.1 255.255.255.0
Router(config-subif}#frame-relay interface-dlci 20
Router(config-subif)#no frame-relay inverse-arp
Router(config-subif)#frame-relay map ip 172.16.20.2 20 broadcast
Router(config-subif)#exit
Router(config)#exit
Router(config)#_


Comandos de configuración en switches Catalyst
Configuración de parámetros IP
Switch (config)#interface vlanl
Switch(config-if)#ip address 172.16.5.2 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#ip default-gateway 172.16.5.1
Switch(config)#_


Configuración de interfaces
Switch(config)#interface FastEthernet0/1
Switch(config-if)#duplex full
Switch(config-if)#speed 100
Switch(config-if)#description puerto servidor 2
Switch(config-if)#exit
Switch(config)#_


Switch(config)#interface range FastEthernet0/1 - 8
Switch(config-range)#duplex full
Switch(config-range)#speed 100
Switch(config-range)#description puerto servidor 2
Switch(config-range)#exit
Switch(config)#_


Configuracion de STP
Switch(config)#spanning-tree vlan 1 priority 1
Switch(config)#_


Configuración de entradas estáticas en la tabla CAM
Switch(config)#mac-address-table static 0000.0000.0000 vlan 2
interface fastethernet0/10
Switch(config)#_


Configuracion de seguridad por puerto
Switch(config)#interface fastethernet0/9
Switch(config-if)#switchport mode access
Switch(config-if)#switchport port-security
Switch(config-if)#switchport port-security maximum 2
Switch(config-if)#switchport port-security mac-address sticky
Switch(config-if)#switchport port-security violation shutdown
Switch(config-if)#exit
Switch(config)#_


Configuracion de VTP
Switch(config)#vtp domain ccna
Switch(config)#vtp mode server
Switch(config)#vtp mode client
Switch(config)#exit
Switch#_


Configuracion de VLANs
Switch(config)#vlan 2
Switch(config-vlan)#name ccna
Switch(config-vlan)#exit
Switch(config)#interface FastEthernet0/4
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 2
Switch(config-if)#exit
Switch(config)#interface fastEthernet0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk encapsulation dotlq
Switch(config-if)#exit
Switch(config)#_


Configuracion de una interfaz de router como troncal
Router#configure terminal
Router(config)#interface fastethernet0/0
Router(config-if)#no shutdown
Router(config-if)#interface fastethernet0/0.1
Router(config-subif)#encapsulation dotlq 1
Router(config-subif)#ip address 172.18.1.1 255.255.255.0
Router(config-subif)#interface fastethernet 0/0.2
Router(config-subif}#encapsulation dotlq 2
Router(config-subif)#ip address 172.18.2.1 255.255.255.0
Router(config-subif)#exit
Router(config)#_


Comandos de monitoreo
Visualización de elementos generales del dispositivo
Router#show flash
Router#show version
Router#show processes cpu
Router#show processes memory
Router#show tcp brief all


Visualización del archivo de configuración
Router#show running-config
Router#show startup-config


Monitoreo de interfaces
Router#show interfaces
Router#show ip interfaces
Router#show ip interfaces brief
Router#show controllers


Monitoreo de PPP
Router#debug ppp negotiation
Router#debug ppp authentication
Router#debug ppp packet


Monitoreo de DHCP
Router#show dhcp server
Router#show dhcp lease


Monitoreo de NAT
Router#show ip nat translation
Router#show ip nat statistics
Router#debug ip nat


Monitoreo de enrutamiento
Rcuter#show ip protocols
Router#show ip route


Monitoreo de enrutamiento RIP
Router#show ip route rip
Router#show ip rip database
Router#debug ip rip
Router#debug ip rip events


Monitoreo de enrutamiento EIGRP
Router#show ip route eigrp
Router#show ip eigrp neighbors
Router#show ip eigrp topology


Monitoreo de enrutamiento OSPF
Router#show ip route ospf
Router#show ip ospf
Router#show ip ospf database
Router#show ip ospf interface


Monitoreo de CDP
Router#show cdp
Router#show cdp neighbor
Router#show cdp entry Router
Router#show cdp entry *
Router#show cdp neighbor detail
Routerffshow cdp traffic
Router#show cdp interface fastethernet0/0


Monitoreo de listas de acceso
Router#show access-lists
Router#show ip access-irsts
Router#show ip interfaces
Router#show running-config


Monitoreo de Frame Relay
Router#show frame-relay pvc
Router#show frame-relay lmi
Router#show frame-relay map
Router#debug frame-relay lmi


Monitoreo del switch
Switch#show mac-address-table
Switch#clear mac-address-table
Switch#show spanning-tree


Monitoreo de VLANs
Switch#show vtp status
Switch#show vlan
Switch#show vlan brief
Switch#show interface fastethernet0/1 switchport


Acceso a traves de terminal virtual
Router#telnet 201.100.11.1
Router#connect 201.100.11.1
Router#201.100.11.1
Router#show sessions
Router#show users
Router#Ctrl+shift+6 luego x
Router#resume #
Router#exit
Router#logout
Router#disconnect 201.100.11.1
Router#clear line #


Otros comandos
Comandos para crear copias de resguardo

Router#copy system:running-config tftp:config.txt
Router#copy running-config startup-config
Router#copy flash:c2800run-adventerprisek9-mz.124-15.T8.bin tftp


Borrar configuración de un switch Catalyst
Switch#erase startup-config
Switch#delete flash:config.text
Switch#delete flash:vlan.dat

PDC Debian 6.0 squeeze 4/4 - Agregando Windows Xp Dominio Linux

Inicio, ejecutar:

C:\WINDOWS\system32\drivers\etc\hosts
Abrir con Notepad y poner dentro lo siguiente:
127.0.0.1 localhost
172.16.72.72 MiDominio


Agregamos un cliente al dominio:

Botón derecho sobre “Mi PC” -> Properties
Vamos a la solapa “Computer Name”
Clickeamos el botón que dice “Change …”
Seleccionamos la opción “Domain”
Domain: MiDominio -> Ok
Username: MiDominio\master
Password: adminadmin

PDC Debian 6.0 squeeze 3/4 - Samba PDC

root@master:~# apt-get install samba-doc


root@pdc:~# cp -Rpf /etc/ldap/ /etc/ldap.orig


root@pdc:~# cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/


root@pdc:~# gzip -d /etc/ldap/schema/samba.schema.gz


root@pdc:~# vim schema_convert.conf

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/samba.schema


root@pdc:~# mkdir -p ./tmp/ldif_output


root@pdc:~# slapcat -f schema_convert.conf -F ./tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > ./tmp/cn=samba.ldif


root@pdc:~# cp -pf ./tmp/cn=samba.ldif ./tmp/cn=samba.ldif.orig


root@pdc:~# vi ./tmp/cn=samba.ldif

Eliminar el {12} de la linea 1 y la linea 3:
dn: cn={12}samba,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: {12}samba


Quedando:
dn: cn=samba,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: samba


Eliminar estas líneas al final del archivo:
structuralObjectClass: olcSchemaConfig
entryUUID: bd8a7a82-3cb8-102f-8d5f-070b4e5d16f8
creatorsName: cn=config
createTimestamp: 20100815125953Z
entryCSN: 20100815125953.198505Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20100815125953Z



root@pdc:~# ldapadd -Y EXTERNAL -H ldapi:/// -f ./tmp/cn=samba.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=samba,cn=schema,cn=config"


root@pdc:~# vim samba_indexes.ldif

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub


root@pdc:~# ldapmodify -Y EXTERNAL -H ldapi:/// -f samba_indexes.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}hdb,cn=config"


root@pdc:~# /etc/init.d/slapd restart

Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd.


root@pdc:~# apt-get install smbldap-tools samba


Workgroup/Domain Name: MiDominio

root@pdc:~# mv /etc/samba/smb.conf /etc/samba/smb.conf.orig


root@pdc:~# cp /usr/share/doc/smbldap-tools/examples/smb.conf /etc/samba/smb.conf


root@pdc:~# vim /etc/samba/smb.conf

Linea 3 cambiar el grupo de trabajo:
workgroup = MiDominio
Linea 12 comentarla:
#min passwd length = 3
Cambiar línea 22 a yes:
ldap passwd sync = yes
Cambiar línea 33 y 34 a:
Dos charset = CP932
Unix charset = UTF-8
48:
ldap admin dn = cn=admin,dc=mi-dominio,dc=com

50:
ldap suffix = dc=mi-dominio,dc=com
ldap group suffix = ou=groups
ldap user suffix = ou=people


60 descomentarla:
delete group script = /usr/sbin/smbldap-groupdel "%g"

64 agregar:
set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
admin users = master
ldap ssl = no


root@pdc:~# mkdir /home/netlogon


root@pdc:~# /etc/init.d/samba restart

Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.


root@pdc:~# smbpasswd -W

Setting stored password for "cn=admin,dc=mi-dominio,dc=com" in secrets.tdb
New SMB password: morsamorsa
Retype new SMB password: morsamorsa


root@pdc:~# gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz


root@pdc:~# perl /usr/share/doc/smbldap-tools/configure.pl


$# is no longer supported at /usr/share/doc/smbldap-tools/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] >
ENTER

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/] >
ENTER
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Let's start configuring the smbldap-tools scripts ...

. workgroup name: name of the domain Samba act as a PDC
workgroup name [MiDominio] >
ENTER
. netbios name: netbios name of the samba controler
netbios name [PDC-SRV] >
ENTER
. logon drive: local path to which the home directory will be connected (for NT Workstations). Ex: 'H:'
logon drive [H:] >
ENTER
. logon home: home directory location (for Win95/98 or NT Workstation).
(use %U as username) Ex:'\\PDC-SRV\%U'
logon home (press the "." character if you don't want homeDirectory) [\\PDC-SRV\%U] >
. #punto
. logon path: directory where roaming profiles are stored. Ex:'\\PDC-SRV\profiles\%U'
logon path (press the "." character if you don't want roaming profile) [\\PDC-SRV\profiles\%U] >
. #PTO
. home directory prefix (use %U as username) [/home/%U] > ENTER
. default users' homeDirectory mode [700] > ENTER
. default user netlogon script (use %U as username) [logon.bat] > ENTER
default password validation time (time in days) [45] > ENTER
. ldap suffix [dc=mi-dominio,dc=com] > ENTER
. ldap group suffix [ou=groups] > ENTER
. ldap user suffix [ou=people] > ENTER
. ldap machine suffix [ou=Computers] > ENTER
. Idmap suffix [ou=Idmap] > ENTER
. sambaUnixIdPooldn: object where you want to store the next uidNumber
and gidNumber available for new users and groups
sambaUnixIdPooldn object (relative to ${suffix}) [sambaDomainName=MiDominio] >
ENTER
. ldap master server: IP adress or DNS name of the master (writable) ldap server
ldap master server [192.168.1.101] >
ENTER
. ldap master port [389] > ENTER
. ldap master bind dn [cn=admin,dc=mi-dominio,dc=com] > ENTER
. ldap master bind password [] > morsamorsa
. ldap slave server: IP adress or DNS name of the slave ldap server: can also be the master one
ldap slave server [192.168.1.101] >
LDAP Secundario, ENTER si no existe ENTER
. ldap slave port [389] > ENTER
. ldap slave bind dn [cn=admin,dc=mi-dominio,dc=com] > ENTER
. ldap slave bind password [] > Ingresar si existe el secundario, si no existe la misma será la del master > morsamorsa
. ldap tls support (1/0) [0] > ENTER
. SID for domain MiDominio: SID of the domain (can be obtained with 'net getlocalsid PDC-SRV')
SID for domain MiDominio [S-1-5-21-2769326514-740161531-1983817306] >
ENTER
. unix password encryption: encryption used for unix passwords
unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) [SSHA] >
MD5
. default user gidNumber [513] > ENTER
. default computer gidNumber [515] > ENTER
. default login shell [/bin/bash] > ENTER
. default skeleton directory [/etc/skel] > ENTER
. default domain name to append to mail adress [] > ENTER
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Use of uninitialized value $# in concatenation (.) or string at /usr/share/doc/smbldap-tools/configure.pl line 314, line 34.
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.


root@pdc:~# smbldap-populate

Populating LDAP directory for domain MiDominio (S-1-5-21-3529095435-2300348255-434367669)
(using builtin directory structure)

entry dc=mi-dominio,dc=com already exist.
entry ou=people,dc=mi-dominio,dc=com already exist.
entry ou=groups,dc=mi-dominio,dc=com already exist.
adding new entry: ou=Computers,dc=mi-dominio,dc=com
adding new entry: ou=Idmap,dc=mi-dominio,dc=com
adding new entry: uid=root,ou=people,dc=mi-dominio,dc=com
adding new entry: uid=nobody,ou=people,dc=mi-dominio,dc=com
adding new entry: cn=Domain Admins,ou=groups,dc=mi-dominio,dc=com
adding new entry: cn=Domain Users,ou=groups,dc=mi-dominio,dc=com
adding new entry: cn=Domain Guests,ou=groups,dc=mi-dominio,dc=com
adding new entry: cn=Domain Computers,ou=groups,dc=mi-dominio,dc=com
adding new entry: cn=Administrators,ou=groups,dc=mi-dominio,dc=com
adding new entry: cn=Account Operators,ou=groups,dc=mi-dominio,dc=com
adding new entry: cn=Print Operators,ou=groups,dc=mi-dominio,dc=com
adding new entry: cn=Backup Operators,ou=groups,dc=mi-dominio,dc=com
adding new entry: cn=Replicators,ou=groups,dc=mi-dominio,dc=com
entry sambaDomainName=MiDominio,dc=mi-dominio,dc=com already exist. Updating it...

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


Agregar grupo admin que definio en el smb.conf (master):
root@pdc:~# smbldap-groupadd -a master

Cannot confirm gidNumber 1000 is free: checking for the next one

Agregamos usuario y a la vez al grupo de dominio (master):
root@pdc:~# smbldap-useradd -am -g master master

Cannot confirm uidNumber 1000 is free: checking for the next one

Creamos la contraseña para el usuario master:
root@pdc:~# smbldap-passwd master

Changing UNIX and samba passwords for master
New password: adminadmin
Retype new password: adminadmin


login as: htirado
htirado@172.16.72.72 's password: mi pass de usuario htirado
htirado@pdc:~$ su - master

Password: adminadmin

htirado@pdc:~$ su - master

Password: adminadmin


FUENTES:

www.server-world.info
groups.google.com
lists.debian.org
www.esdebian.org

PDC Debian 6.0 squeeze 2/4 - Servidor LDAP

root@pdc:~# apt-get install slapd ldap-utils


Administrator password:
morsamorsa

Confirm password:
morsamorsa

root@pdc:~# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config

dn: cn=module{0},cn=config

dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: olcBackend={0}hdb,cn=config

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}hdb,cn=config


root@pdc:~# slappasswd

New password: morsamorsa
Re-enter new password: morsamorsa
{SSHA}N6ZE0PfgwfV9kYlT0zKiI9kpG8sx3rVI


root@pdc:~# ldapmodify -Y EXTERNAL -H ldapi:///

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={0}config,cn=config
add: olcRootPW
olcRootPW: {SSHA}N6ZE0PfgwfV9kYlT0zKiI9kpG8sx3rVI
Ctrl+D
modifying entry "olcDatabase={0}config,cn=config"


Creamos el .ldif para importarlo luego:
root@pdc:~# vim config.ldif

dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=mi-dominio,dc=com
-
replace: olcRootDN
olcRootDN: cn=admin,dc=mi-dominio,dc=com
-
replace: olcAccess
olcAccess: to attrs=userPassword by dn="cn=admin,dc=mi-dominio,dc=com" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=mi-dominio,dc=com" write by * read
-


Importamos la config del ldif creado anteriormente:
root@pdc:~# ldapmodify -Y EXTERNAL -H ldapi:/// -f config.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}hdb,cn=config"


root@pdc:~# ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb

Enter LDAP Password: morsamorsa
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcLastMod: TRUE
olcRootPW: {SSHA}iBRORXu81Urzz26uD3LbPY919jigTO9Q
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcSuffix: dc=mi-dominio,dc=com
olcRootDN: cn=admin,dc=mi-dominio,dc=com
olcAccess: {0}to attrs=userPassword by dn="cn=admin,dc=mi-dominio,dc=com" writ
e by anonymous auth by self write by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to dn.base="" by * read
olcAccess: {3}to * by dn="cn=admin,dc=mi-dominio,dc=com" write by * read


root@pdc:~# vim base.ldif

dn: dc=mi-dominio,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: mi-dominio com
dc: Mi-Dominio
description: LDAP Server

dn: ou=people,dc=mi-dominio,dc=com
objectClass: organizationalUnit
ou: people

dn: ou=groups,dc=mi-dominio,dc=com
objectClass: organizationalUnit
ou: groups


root@pdc:~# ldapadd -x -D cn=admin,dc=mi-dominio,dc=com -W -f base.ldif

Enter LDAP Password:
adding new entry "dc=mi-dominio,dc=com"
ldap_add: Already exists (68)


root@pdc:~# apt-get install phpldapadmin


http://172.16.72.72/phpldapadmin
Login: cn=admin,dc=mi-dominio,dc=com
Pass: morsamorsa

+ dc=mi-dominio,dc=com
Default
Delete this entry


root@pdc:~# ldapadd -x -D cn=admin,dc=mi-dominio,dc=com -W -f base.ldif

Enter LDAP Password: morsamorsa
adding new entry "dc=mi-dominio,dc=com"

adding new entry "ou=people,dc=mi-dominio,dc=com"

adding new entry "ou=groups,dc=mi-dominio,dc=com"


root@pdc:~# vim ldapuser.sh

#!/bin/bash

SUFFIX='dc=mi-dominio,dc=com'
LDIF='ldapuser.ldif'

for line in `grep "x:[1-9][0-9][0-9][0-9]:" /etc/passwd | sed -e "s/ /%/"`
do
UID1=`echo $line | cut -d: -f1`
NAME=`echo $line | cut -d: -f5 | cut -d, -f1`
if [ ! "$NAME" ]
then
NAME=$UID1
else
NAME=`echo $NAME | sed -e "s/%/ /"`
fi
SN=`echo $NAME | awk '{print $2}'`
if [ ! "$SN" ]
then
SN=$NAME
fi
GIVEN=`echo $NAME | awk '{print $1}'`
UID2=`echo $line | cut -d: -f3`
GID=`echo $line | cut -d: -f4`
PASS=`grep $UID1 /etc/shadow | cut -d: -f2`
SHELL=`echo $line | cut -d: -f7`
HOME=`echo $line | cut -d: -f6`
EXPIRE=`passwd -S $UID1 | awk '{print $7}'`
FLAG=`grep $UID1 /etc/shadow | cut -d: -f9`
if [ ! "$FLAG" ]
then
FLAG="0"
fi
WARN=`passwd -S $UID1 | awk '{print $6}'`
MIN=`passwd -S $UID1 | awk '{print $4}'`
MAX=`passwd -S $UID1 | awk '{print $5}'`
LAST=`grep $UID1 /etc/shadow | cut -d: -f3`

echo "dn: uid=$UID1,ou=people,$SUFFIX" >> $LDIF
echo "objectClass: inetOrgPerson" >> $LDIF
echo "objectClass: posixAccount" >> $LDIF
echo "objectClass: shadowAccount" >> $LDIF
echo "uid: $UID1" >> $LDIF
echo "sn: $SN" >> $LDIF
echo "givenName: $GIVEN" >> $LDIF
echo "cn: $NAME" >> $LDIF
echo "displayName: $NAME" >> $LDIF
echo "uidNumber: $UID2" >> $LDIF
echo "gidNumber: $GID" >> $LDIF
echo "userPassword: {crypt}$PASS" >> $LDIF
echo "gecos: $NAME" >> $LDIF
echo "loginShell: $SHELL" >> $LDIF
echo "homeDirectory: $HOME" >> $LDIF
echo "shadowExpire: $EXPIRE" >> $LDIF
echo "shadowFlag: $FLAG" >> $LDIF
echo "shadowWarning: $WARN" >> $LDIF
echo "shadowMin: $MIN" >> $LDIF
echo "shadowMax: $MAX" >> $LDIF
echo "shadowLastChange: $LAST" >> $LDIF
echo >> $LDIF
done



root@pdc:~# sh ldapuser.sh


root@pdc:~# ldapadd -x -D cn=admin,dc=mi-dominio,dc=com -W -f ldapuser.ldif

Enter LDAP Password: morsamorsa
adding new entry "uid=htirado,ou=people,dc=mi-dominio,dc=com"


root@pdc:~# vim ldapgroup.sh

#!/bin/bash

SUFFIX='dc=mi-dominio,dc=com'
LDIF='ldapgroup.ldif'

for line in `grep "x:[1-9][0-9][0-9][0-9]:" /etc/group`
do
CN=`echo $line | cut -d: -f1`
GID=`echo $line | cut -d: -f3`
echo "dn: cn=$CN,ou=groups,$SUFFIX" >> $LDIF
echo "objectClass: posixGroup" >> $LDIF
echo "cn: $CN" >> $LDIF
echo "gidNumber: $GID" >> $LDIF
echo >> $LDIF
done


root@pdc:~# sh ldapgroup.sh


root@pdc:~# ldapadd -x -D cn=admin,dc=mi-dominio,dc=com -W -f ldapgroup.ldif

Enter LDAP Password: morsamorsa
adding new entry "cn=htirado,ou=groups,dc=server,dc=world"



Si quiero borrar el usuario:
root@pdc:~# ldapdelete -x -W -D 'cn=admin,dc=server,dc=world'
"uid=htirado,ou=people,dc=server,dc=world"
Enter LDAP Password: morsamorsa

Si quiero borrar un grupo:
root@master:~# ldapdelete -x -W -D 'cn=admin,dc=server,dc=world'
"cn=debian,ou=groups,dc=server,dc=world"
Enter LDAP Password: morsamorsa


FUENTES:

www.server-world.info
groups.google.com
lists.debian.org
www.esdebian.org

martes, 10 de mayo de 2011

PDC Debian 6.0 squeeze 1/4 - Configurar el cliente LDAP

Verificamos el nombre de host y el dominio:

root@pdc:~# hostname && hostname -d

pdc
mi-dominio.com


root@pdc:~# cat /etc/hostname

pdc


Instalamos paquetes para cliente ldap:

root@pdc:~# apt-get install libnss-ldap libpam-ldap ldap-utils


LDAP server Uniform Resource Identifier:
ldap://172.16.72.72/

Distinguished name of the search base:
dc=mi-dominio,dc=com

LDAP version to use:
3

LDAP account for root:
cn=admin,dc=mi-dominio,dc=com

LDAP root account password:
morsamorsa

nsswitch.conf not managed automatically
Para que el libnss-ldap trabaje necesita modificar /etc/nsswitch.conf para usar el "ldap" datasource.
Hay un ejemplo de configuracion en /usr/share/doc/libnss-ldap/examples/nsswirch.ldap el cual puede ser usado como ejemplo para la config del nsswitch.

Ok

Esta opción permitirá utilidades de passwords que usa PAM para cambiar passwords locales.
La cuenta de administrador de LDAP se almacenara en un archivo separado, el cual debera ser solamente legible por el usuario root.
Si /etc está montado por NFS, esta opción debe deshabilitarse.
Allow LDAP admin account to behave like local root?

Yes

Does the LDAP database require login?
No

LDAP administrative account:
cn=admin,dc=mi-dominio,dc=com

LDAP administrative password:
morsamorsa


root@pdc:~# cp -pf /etc/nsswitch.conf /etc/nsswitch.conf.orig


root@pdc:~# vim /etc/nsswitch.conf

Agregar-Cambiar lo que está en negrita:

passwd: compat ldap
group: compat ldap
shadow: compat ldap

hosts: files dns
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: ldap

root@pdc:~# cp -pf /etc/pam.d/common-password /etc/pam.d/common-password.orig


root@pdc:~# vim /etc/pam.d/common-password

Borrar lo que está en negrita:

password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass

root@pdc:~# cp -pf /etc/pam.d/common-session /etc/pam.d/common-session.orig


root@pdc:~# vim /etc/pam.d/common-session

Agregar al final del archivo:

session optional pam_mkhomedir.so skel=/etc/skel umask=077
# end of pam-auth-update config


root@pdc:~# reboot



FUENTES:

www.server-world.info
groups.google.com
lists.debian.org
www.esdebian.org