domingo, 16 de septiembre de 2012
ERROR! Libpcap library version >= 1.0.0 not found
En mi caso, salio ese mensaje cuando trataba de instalar el daq, todo esto para implementar el IDS con Snort
# cd daq-1.1.1/
# ./configure
Compilar el libpcap del siguiente modo:
# cd /usr/local/src
# wget http://www.tcpdump.org/release/libpcap-1.3.0.tar.gz
# tar xzf libpcap-1.3.0.tar.gz
# cd /usr/local/src/libpcap-1.3.0/
# ./configure --prefix=/usr
# make
# make install
... Posterior a ello continuar con la instalacion del daq, snort ..etc.
viernes, 3 de agosto de 2012
Error MySQL: Couldn't execute 'show fields from
Este es un error que me salio en un servidor, el error exacto es el siguiente:
mysqldump: Couldn't execute 'show fields from `Backup`': Got error 28 from storage engine (1030)
Donde Backup es mi base de datos:
El problema es un tema de espacio en el disco duro. Solo hay que liberar espacio y listo.
miércoles, 1 de agosto de 2012
Error en OpenSUSE: symbol lookup error
Este es un error que me encontré en el camino luego de actualizar OpenSUSE de 11.1 a 11.3
Luego de actualizar al ejcutar yast o yast2 me salia el siguiente mensaje:
# yast
/usr/lib/YaST2/bin/y2base: symbol lookup error: /usr/lib/libstdc++.so.6: undefined symbol: _ZNSt7num_getIcSt19istreambuf_iterator IcSt11char_traitsIcEEE2idE, version GLIBCXX_3.4
La version del glibc era:
# rpm -q glibc
glibc-2.9-2.13.1
Entonces tenia que bajar la version de glibc para 11.3
# mkdir GLIBC
# cd GLIBC/
# wget ftp://ftp.ntua.gr/pub/linux/opensuse/update/11.3/rpm/i586/glibc-2.11.2-3.7.1.i586.rpm
# wget ftp://ftp.ntua.gr/pub/linux/opensuse/update/11.3/rpm/i586/glibc-devel-2.11.2-3.7.1.i586.rpm
# wget ftp://ftp.ntua.gr/pub/linux/opensuse/update/11.3/rpm/i586/glibc-locale-2.11.2-3.7.1.i586.rpm
# rpm -Uvh *
Finalmente acutalizamos el yast-ncurses
# mkdir YAST
# cd YAST/
# wget ftp://bo.mirror.garr.it/pub/1/opensuse/distribution/11.3/repo/oss/suse/i586/yast2-ncurses-2.19.5-1.6.i586.rpm
# rpm -Uvh yast2-ncurses-2.19.5-1.6.i586.rpm
Listo
martes, 31 de julio de 2012
Whitelist & Blacklist en Zimbra
La interfaz de administracion del Zimbra version OpenSource no tiene Blacklist ni Whitelist, por lo tanto solo queda manejarlo a nivel de archivos, para lo cual se creo el siguiente script para un manejo mas rapido de dichas listas, asi como un pequeño filtro en los correos por asunto.
Creamos el siguiente archivo
# touch /opt/zimbra/conf/custom_header_checks
# vi /usr/local/sbin/zimbralist
Ahora solo queda darle permisos de ejecucion
Creamos el siguiente archivo
# touch /opt/zimbra/conf/custom_header_checks
# chown zimbra:zimbra /opt/zimbra/conf/custom_header_checks
Ahora nos ponemos como usuario zimbra y ejecutamos lo siguiente:
# su - zimbra # zmlocalconfig -e postfix_header_checks="pcre:/opt/zimbra/conf/postfix_header_checks, pcre:/opt/zimbra/conf/custom_header_checks"
Listo hecho lo de arriba, creamos nuestro script al cual llamaremos zimbralist
# vi /usr/local/sbin/zimbralist
#!/bin/bash echo "" echo "*****************************************" echo "******** Whitelist & Blacklist ********" echo "*****************************************" echo "" echo "Menu de opciones" echo "----------------" echo "" echo "Mostrar lista blanca : opcion 1" echo "Mostrar lista negra : opcion 2" echo "Agregar a lista blanca : opcion 3" echo "Agregar a lista negra : opcion 4" echo "Borrar de ambas listas (w/b) : opcion 5" echo "Lista de filtros por asunto : opcion 6" echo "Agregar filtros por asunto : opcion 7" echo "Borrar filtros por asunto : opcion 8" echo "Aplicar cambios : opcion 9" echo "" echo -n "Ingrese opcion : " read opcion if [ $opcion -eq 1 ]; then
echo ""
echo "Lista blanca"
echo "------------"
grep "whitelist_from " /opt/zimbra/conf/salocal.cf.in
echo ""
else
if [ $opcion -eq 2 ]; then
echo ""
echo "Lista Negra"
echo "-----------"
grep blacklist_from /opt/zimbra/conf/salocal.cf.in
echo ""
else
if [ $opcion -eq 3 ]; then
echo "Ingrese la cuenta o dominio:"
echo -n "Dominio/cuenta: " read dom echo "whitelist_from $dom" >> /opt/zimbra/conf/salocal.cf.in echo "Dominio/cuenta agregada" echo ""
else
if [ $opcion -eq 4 ]; then
echo "Ingrese la cuenta o dominio:"
echo -n "Dominio/cuenta: "
read dom
echo "blacklist_from $dom" >> /opt/zimbra/conf/salocal.cf.in
echo "Dominio/cuenta agregada"
echo ""
else
if [ $opcion -eq 5 ]; then
echo "Ingrese la cuenta o dominio:"
echo -n "Dominio/cuenta: "
read dom sed -i -e "/$dom/d" /opt/zimbra/conf/salocal.cf.in echo "Dominio/cuenta borrada" echo "" else
if [ $opcion -eq 6 ]; then echo "" echo "Lista de filtros por asunto" echo "---------------------------" echo "" cat /opt/zimbra/conf/custom_header_checks echo "" else
if [ $opcion -eq 7 ]; then echo "" echo "Ingrese palabra a filtrar :" echo -n "palabra: " read pal echo "/^Subject:.*($pal)/ DISCARD La palabra $pal esta bloqueada" >> /opt/zimbra/conf/custom_header_checks echo "La palabra $pal fue agregada" echo "" else
if [ $opcion -eq 8 ]; then echo "" echo "Ingrese la palabra a eliminar del filtro:" echo -n "Palabra: " read pal sed -i -e "/$pal/d" /opt/zimbra/conf/custom_header_checks echo "La palabra $pal fue eliminada" echo "" else
if [ $opcion -eq 9 ]; then echo "" echo "Aplicando los cambios ..." echo "" su - zimbra -c "zmmtactl restart && zmamavisdctl restart" echo "" echo "Cambios aplicados : [ OK ]" echo "" else echo "opcion no valida"
fi fi fi fi fi fi fi fi fi
Ahora solo queda darle permisos de ejecucion
# chmod +x /usr/local/sbin/zimbralist
Listo, ahora con ejecutar ya podemos manejar de forma mas rapida las listas
Algo adicional que agregare es lo siguiente:
Alguna palabras que vienen en el asunto como PUBLÏCÏDAD no podia bloquearlas ya que por temas de formatos no hacia el match , entonces hize un script para que se agregue el filtro en todas las cuentas del servidor
Cree un archivo de nombre /usr/local/sbin/FilterAsunto, con el siguiente contenido
#!/bin/bash
Asunto=$1
NombreFiltro=$2
ACC=`/opt/zimbra/bin/zmprov -l gaa`
for i in $ACC
do
/opt/zimbra/bin/zmmailbox -z -m $i addFilterRule "$NombreFiltro" active any header "subject" contains "$Asunto" discard stop
done
Le di permisos de ejecucion
#chmod +x /usr/local/sbin/FilterAsunto
Listo, ahora ejecutando del siguiente modo se puede agregar los filtros en todas las cuentas
#FilterAsunto PUBLÏCÏDAD PalabraFiltrada1
Ahora si queremos agregar al script seria del siguiente modo:
echo "Ingrese palabra a filtrar :" echo -n "palabra: " read pal
echo -n "Nombre del Filtro: "
read filtro
echo "Agregando filtro ... "
echo "/^Subject:.*($pal)/ DISCARD La palabra $pal esta bloqueada" >> /opt/zimbra/conf/custom_header_checks
/usr/local/sbin/FilterAsunto $pal $filtro
echo "La palabra $pal fue agregada"
Por ahora lo estare trabajando asi ....
Dominio Samba con OpenLDAP sobre CentOS 6
Este es un resumen de los pasos a seguir para poder configurar un PDC con Samba y OpenLDAP. Los conceptos tanto de Samba como LDAP se pueden encontrar ampliamente explicados en la web.
Datos:
Dominio: pamplona.local
IP del Linux: 172.16.0.24
SO: CentOS 6.2 de 64 bits
Primero empezamos con la configuracion de OpenLDAP
Nos aseguramos que en el archivo /etc/sysconfig/ldap tengamos habilitado lo siguiente:
SLAPD_LDAPI = yes
Creamos el archivo slapd.conf dentro del directorio /etc/openldap

Luego de ingresar al dominio pedira reinicar la PC.
Para la administracion una buena herramienta es la siguiente: LDPAdmin lo pueden bajar de aqui
Luego de bajar ejecutar el programa y crear una nueva conexion
Este es una primera guia del PDC...
Fuentes:
http://www.server-world.info/en/note?os=CentOS_6&p=ldap&f=1
Datos:
Dominio: pamplona.local
IP del Linux: 172.16.0.24
SO: CentOS 6.2 de 64 bits
Primero empezamos con la configuracion de OpenLDAP
# yum -y install openldap-servers openldap-clients
Nos aseguramos que en el archivo /etc/sysconfig/ldap tengamos habilitado lo siguiente:
SLAPD_LDAPI = yes
Creamos el archivo slapd.conf dentro del directorio /etc/openldap
# vi /etc/openldap/slapd.conf
pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args
Eliminamos todo el contenido dentro del directorio /etc/openldap/slapd.d/# rm -rf /etc/openldap/slapd.d/*Generamos nuestros archivos de configuracion ldif# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.dEditamos el archivo generado, modificar la linea 4 quedando del siguiente modo# vi /etc/openldap/slapd.d/cn=config/olcDatabase\={0}config.ldifdn: olcDatabase={0}config objectClass: olcDatabaseConfig olcDatabase: {0}config #olcAccess: {0}to * by * none olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break olcAddContentAcl: TRUE olcLastMod: TRUE olcMaxDerefDepth: 15 olcReadOnly: FALSE olcRootDN: cn=config olcSyncUseSubentry: FALSE olcMonitoring: FALSE structuralObjectClass: olcDatabaseConfig entryUUID: 54a95934-67a4-1031-9c0b-6b11c7427936 creatorsName: cn=config createTimestamp: 20120721172202Z entryCSN: 20120721172202.648710Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20120721172202Z
Ahora configuraremos el cliente LDAPCreamos el archivo sigiente # vi /etc/openldap/slapd.d/cn=config/olcDatabase\={1}monitor.ldif dn: olcDatabase={1}monitor objectClass: olcDatabaseConfig olcDatabase: {1}monitor olcAccess: {1}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break olcAddContentAcl: FALSE olcLastMod: TRUE olcMaxDerefDepth: 15 olcReadOnly: FALSE olcMonitoring: FALSE structuralObjectClass: olcDatabaseConfig creatorsName: cn=config modifiersName: cn=config Configuramos el usuario propietario y permisos ... # chown -R ldap. /etc/openldap/slapd.d # chmod -R 700 /etc/openldap/slapd.d # /etc/rc.d/init.d/slapd start # chkconfig slapd onRealizamos las configuraciones iniciales #ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/core.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=core,cn=schema,cn=config" #ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=cosine,cn=schema,cn=config" #ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=nis,cn=schema,cn=config" #ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=inetorgperson,cn=schema,cn=config" #slappasswd New password: Re-enter new password: {SSHA}XAmVut5MmHJLyK4ooNh4bVsBEOzkFIUyCreamos los siguientes archivo ldif con los datos de nuestro dominio(pamplona.local) # vi backend.ldif dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulepath: /usr/lib64/openldap olcModuleload: back_hdb dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {2}hdb olcSuffix: dc=pamplona,dc=local olcDbDirectory: /var/lib/ldap olcRootDN: cn=admin,dc=pamplona,dc=local olcRootPW: {SSHA}XAmVut5MmHJLyK4ooNh4bVsBEOzkFIUy olcDbConfig: set_cachesize 0 2097152 0 olcDbConfig: set_lk_max_objects 1500 olcDbConfig: set_lk_max_locks 1500 olcDbConfig: set_lk_max_lockers 1500 olcDbIndex: objectClass eq olcLastMod: TRUE olcMonitoring: TRUE olcDbCheckpoint: 512 30 olcAccess: to attrs=userPassword by dn="cn=admin,dc=pamplona,dc=local" 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=pamplona,dc=local" write by * read ... # ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=module,cn=config" adding new entry "olcDatabase=hdb,cn=config"En el siguiente archivo poner la clave generada con el comando slappasswd# vi frontend.ldif dn: dc=pamplona,dc=local objectClass: top objectClass: dcObject objectclass: organization o: pamplona local dc: pamplona dn: cn=admin,dc=pamplona,dc=local objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin userPassword: {SSHA}XAmVut5MmHJLyK4ooNh4bVsBEOzkFIUy dn: ou=people,dc=pamplona,dc=local objectClass: organizationalUnit ou: people dn: ou=groups,dc=pamplona,dc=local objectClass: organizationalUnit ou: groups ... # ldapadd -x -D cn=admin,dc=pamplona,dc=local -W -f frontend.ldif Enter LDAP Password: adding new entry "dc=pamplona,dc=local" adding new entry "cn=admin,dc=pamplona,dc=local" adding new entry "ou=people,dc=pamplona,dc=local" adding new entry "ou=groups,dc=pamplona,dc=local"
# yum -y install openldap-clients nss-pam-ldapd
Editamos los siguientes archivos con los datos de nuestro dominio
# vi /etc/openldap/ldap.conf URI ldap://172.16.0.24/ BASE dc=pamplona,dc=local TLS_CACERTDIR /etc/openldap/certs
# vi /etc/nslcd.conf uri ldap://172.16.0.24/ base dc=pamplona,dc=local ssl no tls_cacertdir /etc/openldap/certs# vi /etc/pam_ldap.conf #host 127.0.0.1 base dc=pamplona,dc=localAgregar al final del archivo pam_ldap.conf lo siguiente:uri ldap://172.16.0.24/ ssl no tls_cacertdir /etc/openldap/certs pam_password md5Agregar al archivo system-auth las lineas con ### vi /etc/pam.d/system-auth auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_ldap.so use_first_pass ## auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so ## account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password sufficient pam_ldap.so use_authtok ## password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_ldap.so ## session optional pam_mkhomedir.so skel=/etc/skel umask=077 ##Agregamos la fuente ldap a nuestro archivo nsswitch.conf# vi /etc/nsswitch.conf passwd: files ldap shadow: files ldap group: files ldap netgroup: ldap publickey: nisplus automount: files ldap # vi /etc/sysconfig/authconfig USELDAP=yes # chkconfig nslcd onReiniciamos nuestro servidor ...# rebootAhora instalamos samba# yum -y install samba #cd /tmp #vi schema_convert.conf include /etc/openldap/schema/core.schema include /etc/openldap/schema/collective.schema include /etc/openldap/schema/corba.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/ppolicy.schema include /etc/openldap/schema/samba.schema # mkdir ldif_output slapcat -f schema_convert.conf -F ./ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > ./cn=samba.ldifEliminar el '{12}' del archivo cn=samba.ldif y quedar del siguiente modo# vi cn=samba.ldif dn: cn=samba,cn=schema,cn=config objectClass: olcSchemaConfig cn: sambaEliminar las siguientes 7 lineas del archivo cn=samba.ldif structuralObjectClass: olcSchemaConfig entryUUID: e24790da-67a9-1031-9ca2-7f12861cadca creatorsName: cn=config createTimestamp: 20120721180147Z entryCSN: 20120721180147.725827Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20120721180147Z # ldapadd -Y EXTERNAL -H ldapi:/// -f 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"Creamos el sguiente archivo...# vi samba_indexes.ldif dn: olcDatabase={2}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 # 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={2}hdb,cn=config" # cd # rm -rf /tmp/* # /etc/rc.d/init.d/slapd restart Stopping slapd: [ OK ] Starting slapd: [ OK ]Agregamos la fuente epel para instalar el smbldap-tools# vi /etc/yum.repos.d/CentOS-epel.repo [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [epel-debuginfo] name=Extra Packages for Enterprise Linux 6 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 6 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=1 # rpm --import https://fedoraproject.org/static/0608B895.txt # yum -y install smbldap-toolsmv /etc/samba/smb.conf /etc/samba/smb.conf.bak cp /usr/share/doc/smbldap-tools-0.9.6/smb.conf /etc/samba/smb.conf vi /etc/samba/smb.conf ... # Global parameters [global] workgroup = PAMPLONA netbios name = PDC01 security = user enable privileges = yes #interfaces = 192.168.5.11 #username map = /etc/samba/smbusers server string = Samba Server %v #security = ads encrypt passwords = Yes #min passwd length = 3 #pam password change = no #obey pam restrictions = No # method 1: #unix password sync = no #ldap passwd sync = yes # method 2: unix password sync = yes ldap passwd sync = yes passwd program = /usr/sbin/smbldap-passwd -u "%u" passwd chat = "Changing *\nNew password*" %n\n "*Retype new password*" %n\n" log level = 0 syslog = 0 log file = /var/log/samba/log.%U max log size = 100000 time server = Yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 mangling method = hash2 Dos charset = CP932 Unix charset = UTF-8 logon script = logon.bat logon drive = H: logon home = logon path = domain logons = Yes domain master = Yes os level = 65 preferred master = Yes wins support = yes passdb backend = ldapsam:ldap://172.16.0.24/ ldap admin dn = cn=admin,dc=pamplona,dc=local ldap suffix = dc=pamplona,dc=local ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers #ldap idmap suffix = ou=Idmap add user script = /usr/sbin/smbldap-useradd -m "%u" #ldap delete dn = Yes delete user script = /usr/sbin/smbldap-userdel "%u" add machine script = /usr/sbin/smbldap-useradd -t 0 -w "%u" add group script = /usr/sbin/smbldap-groupadd -p "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u' admin users = sysadmin ldap ssl = no # printers configuration #printer admin = @"Print Operators" load printers = Yes create mask = 0640 directory mask = 0750 #force create mode = 0640 #force directory mode = 0750 nt acl support = No printing = cups printcap name = cups deadtime = 10 guest account = nobody map to guest = Bad User dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd show add printer wizard = yes ; to maintain capital letters in shortcuts in any of the profile folders: preserve case = yes short preserve case = yes case sensitive = no ... # mkdir /home/netlogon # /etc/rc.d/init.d/smb restart Shutting down SMB services: [FAILED] Starting SMB services: [ OK ] # /etc/rc.d/init.d/nmb restart Shutting down NMB services: [FAILED] Starting NMB services: [ OK ] [root@pdc01 ~]# chkconfig smb on [root@pdc01 ~]# chkconfig nmb on # smbpasswd -W Setting stored password for "cn=admin,dc=pamplona,dc=local" in secrets.tdb New SMB password: Retype new SMB password:Ahora vamos a configurar el smbldap a traves del archivo perl# perl /usr/share/doc/smbldap-tools-0.9.6/configure.pl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 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 Ctrl-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] > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Let's start configuring the smbldap-tools scripts ... . workgroup name: name of the domain Samba acts as a PDC for workgroup name [PAMPLONA] > Enter . netbios name: netbios name of the samba controller netbios name [PDC01] > 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:'\\PDC01\%U' logon home (press the "." character if you don't want homeDirectory) [\\PDC01\%U] > Enter . logon path: directory where roaming profiles are stored. Ex:'\\PDC01\profiles\%U' logon path (press the "." character if you don't want roaming profiles) [\\PDC01\profiles\%U] > . . 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=pamplona,dc=local] > Enter . ldap group suffix [ou=Groups] > Enter . ldap user suffix [ou=Users] > 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=PAMPLONA] > . ldap master server: IP address or DNS name of the master (writable) ldap server ldap master server [172.16.0.24] > Enter . ldap master port [389] > Enter . ldap master bind dn [cn=admin,dc=pamplona,dc=local] > Enter . ldap master bind password [] > Ingresamos la clave . ldap slave server: IP address or DNS name of the slave ldap server: can also be the master one ldap slave server [172.16.0.24] > Enter . ldap slave port [389] > Enter . ldap slave bind dn [cn=admin,dc=pamplona,dc=local] > Enter . ldap slave bind password [] > Ingresamos la clave . ldap tls support (1/0) [0] > Enter . SID for domain PAMPLONA: SID of the domain (can be obtained with 'net getlocalsid PDC01') SID for domain PAMPLONA [S-1-5-21-3173375413-340090289-266529731] > Enter . unix password encryption: encryption used for unix passwords unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) [SSHA] > Enter . 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 address [] > Enter -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 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.Ejecutamos lo siguiente: # smbldap-populate Populating LDAP directory for domain PAMPLONA (S-1-5-21-3173375413-340090289-266529731) (using builtin directory structure) entry dc=pamplona,dc=local already exist. adding new entry: ou=Users,dc=pamplona,dc=local entry ou=Groups,dc=pamplona,dc=local already exist. adding new entry: ou=Computers,dc=pamplona,dc=local adding new entry: ou=Idmap,dc=pamplona,dc=local adding new entry: uid=root,ou=Users,dc=pamplona,dc=local adding new entry: uid=nobody,ou=Users,dc=pamplona,dc=local adding new entry: cn=Domain Admins,ou=Groups,dc=pamplona,dc=local adding new entry: cn=Domain Users,ou=Groups,dc=pamplona,dc=local adding new entry: cn=Domain Guests,ou=Groups,dc=pamplona,dc=local adding new entry: cn=Domain Computers,ou=Groups,dc=pamplona,dc=local adding new entry: cn=Administrators,ou=Groups,dc=pamplona,dc=local adding new entry: cn=Account Operators,ou=Groups,dc=pamplona,dc=local adding new entry: cn=Print Operators,ou=Groups,dc=pamplona,dc=local adding new entry: cn=Backup Operators,ou=Groups,dc=pamplona,dc=local adding new entry: cn=Replicators,ou=Groups,dc=pamplona,dc=local entry sambaDomainName=PAMPLONA,dc=pamplona,dc=local already exist. Updating it... Please provide a password for the domain root: Changing UNIX and samba passwords for root New password: Retype new password:Creamos el usuario y grupo sysadmin# smbldap-groupadd -a sysadmin [root@pdc01 ~]# smbldap-useradd -am -g sysadmin sysadmin [root@pdc01 ~]# smbldap-passwd sysadmin Changing UNIX and samba passwords for sysadmin New password: Retype new password: [root@pdc01 ~]# su - sysadmin [sysadmin@pdc01 ~]$ exit logoutCreamos un usuario de prueba# smbldap-useradd -am fruiz [root@pdc01 ~]# smbldap-groupmod -m fruiz "Domain Users" adding user fruiz to group Domain Users [root@pdc01 ~]# smbldap-passwd fruiz Changing UNIX and samba passwords for fruiz New password: Retype new password:Deshabilitamos el selinux# vi /etc/sysconfig/selinux SELINUX=disabledEn el firewall podemos habilitar los puertos correspondientes(TCP: 139,389,445 y UDP: 137,138 ), para el ejemplo lo deshabilitamos ...# /etc/init.d/iptables stop iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ]Listo, ahora podemos empezar a unir las maquinas al dominio pamplona. Debemos tener en cuenta lo siguiente para los Windows 7Modificar los siguientes registros:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servicesLanmanWorkstation -> parameters DomainCompatibilityMode : 1 DNSNameResolutionRequired : 0 Netlogon -> parameters RequireSignOrSeal 0 RequireStrongKey 1 SealSecureChannel 1 SignSecureChannel 1 Tcpip -> parameters NameServer : pamplona NV Domain : pamplona En la configuracion de red la PC seccion TCP/IP nos dirigimos a opciones avanzadas, en la pestaña WINS le agregamos la IP de nuestro PDC (172.16.0.24)Ahora si, ya podemos unir al dominio las PCs con Windows 7.
Luego de ingresar al dominio pedira reinicar la PC.
Para la administracion una buena herramienta es la siguiente: LDPAdmin lo pueden bajar de aqui
Luego de bajar ejecutar el programa y crear una nueva conexion
Este es una primera guia del PDC...
Fuentes:
http://www.server-world.info/en/note?os=CentOS_6&p=ldap&f=1
http://www.server-world.info/en/note?os=CentOS_6&p=ldap&f=2
http://www.server-world.info/en/note?os=CentOS_6&p=samba&f=4
http://www.server-world.info/en/note?os=CentOS_6&p=samba&f=4
viernes, 27 de julio de 2012
CDR de Asterisk a MS SQL via ODBC
Este es un pequeño resumen para instalar y configurar el driver en Linux para poder registrar las llamadas de Asterisk en la base de datos de un MS SQL
Primero vamos a instalar el los drivers para la conexion al SQL de Windows
# yum install freetds unixODBC -y
Luego de instalar el driver freetds lo agregamos a unixODBC, para ello editamos el archivo odbcinst.ini de la siguiente manera
# vim /etc/odbcinst.ini
...
[FreeTDS]
Description = FreeTDS ODBC driver for MSSQL
Driver = /usr/lib/libtdsodbc.so.0
Setup = /usr/lib/libtdsS.so.1
FileUsage = 1
...
Luego de esto configuramos el ODBC para la conexion del Asterisk a la base datos del SQL
# vim /etc/odbc.ini
...
[ODBC Data Sources]
MSSQL = MSSQL Log-Server for Asterisk
[MSSQL-asterisk2]
description = Asterisk ODBC for MSSQL
driver = FreeTDS
server = 172.16.0.42
port = 1433
database = Central
tds_version = 8.0
language = us_english
...
Donde:
driver -> Es el driver freetds que se configuro en odbcinst.ini
server -> Es la direccion IP del servidor SQL
database -> La base de datos donde se almacenara los registros de las llamadas
Hacemos una prueba de conexion, para ello ejecuatmos lo siguiente:
# isql -v MSSQL-asterisk2 sa 1234567
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
Datos:
sa -> usuario administrador de la base de datos
1234567 -> clave de sa
Listo, ahora en el archivo cdr_odbc.conf del Asterisk configuramos de la siguiente manera
# vim cdr_odbc.conf
...
[global]
dsn=MSSQL-asterisk2
username=sa
password=1234567
loguniqueid=yes
dispositionstring=yes
table=cdr ;"cdr" is default table name
usegmtime=no
...
Ahora en el servidor SQL debemos crear la base de datos Central con la tabla cdr, la estructura de la tabla es la siguiente
CREATE TABLE cdr (
[calldate] [datetime] NOT NULL ,
[clid] [varchar] (80) NOT NULL ,
[src] [varchar] (80) NOT NULL ,
[dst] [varchar] (80) NOT NULL ,
[dcontext] [varchar] (80) NOT NULL ,
[channel] [varchar] (80) NOT NULL ,
[dstchannel] [varchar] (80) NOT NULL ,
[lastapp] [varchar] (80) NOT NULL ,
[lastdata] [varchar] (80) NOT NULL ,
[duration] [int] NOT NULL ,
[billsec] [int] NOT NULL ,
[disposition] [varchar] (45) NOT NULL ,
[amaflags] [int] NOT NULL ,
[accountcode] [varchar] (20) NOT NULL ,
[uniqueid] [varchar] (150) NOT NULL ,
[userfield] [varchar] (255) NOT NULL
)
Listo con esto ya tendremos registrados en el SQL las llamadas de nuestra central Asterisk
Primero vamos a instalar el los drivers para la conexion al SQL de Windows
# yum install freetds unixODBC -y
Luego de instalar el driver freetds lo agregamos a unixODBC, para ello editamos el archivo odbcinst.ini de la siguiente manera
# vim /etc/odbcinst.ini
...
[FreeTDS]
Description = FreeTDS ODBC driver for MSSQL
Driver = /usr/lib/libtdsodbc.so.0
Setup = /usr/lib/libtdsS.so.1
FileUsage = 1
...
Luego de esto configuramos el ODBC para la conexion del Asterisk a la base datos del SQL
# vim /etc/odbc.ini
...
[ODBC Data Sources]
MSSQL = MSSQL Log-Server for Asterisk
[MSSQL-asterisk2]
description = Asterisk ODBC for MSSQL
driver = FreeTDS
server = 172.16.0.42
port = 1433
database = Central
tds_version = 8.0
language = us_english
...
Donde:
driver -> Es el driver freetds que se configuro en odbcinst.ini
server -> Es la direccion IP del servidor SQL
database -> La base de datos donde se almacenara los registros de las llamadas
Hacemos una prueba de conexion, para ello ejecuatmos lo siguiente:
# isql -v MSSQL-asterisk2 sa 1234567
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
Datos:
sa -> usuario administrador de la base de datos
1234567 -> clave de sa
Listo, ahora en el archivo cdr_odbc.conf del Asterisk configuramos de la siguiente manera
# vim cdr_odbc.conf
...
[global]
dsn=MSSQL-asterisk2
username=sa
password=1234567
loguniqueid=yes
dispositionstring=yes
table=cdr ;"cdr" is default table name
usegmtime=no
...
Ahora en el servidor SQL debemos crear la base de datos Central con la tabla cdr, la estructura de la tabla es la siguiente
CREATE TABLE cdr (
[calldate] [datetime] NOT NULL ,
[clid] [varchar] (80) NOT NULL ,
[src] [varchar] (80) NOT NULL ,
[dst] [varchar] (80) NOT NULL ,
[dcontext] [varchar] (80) NOT NULL ,
[channel] [varchar] (80) NOT NULL ,
[dstchannel] [varchar] (80) NOT NULL ,
[lastapp] [varchar] (80) NOT NULL ,
[lastdata] [varchar] (80) NOT NULL ,
[duration] [int] NOT NULL ,
[billsec] [int] NOT NULL ,
[disposition] [varchar] (45) NOT NULL ,
[amaflags] [int] NOT NULL ,
[accountcode] [varchar] (20) NOT NULL ,
[uniqueid] [varchar] (150) NOT NULL ,
[userfield] [varchar] (255) NOT NULL
)
Listo con esto ya tendremos registrados en el SQL las llamadas de nuestra central Asterisk
viernes, 13 de julio de 2012
Lightsquid sobre SuSE
Lightsquid es una herramienta que analiza los logs del Squid y nos muestra un reporte gráfico a través de una interfaz web.
En este caso vamos a instalar dicha herramienta en SLES 11.
Descargamos el archivo del siguiente enlace:
http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
Luego de descargarlo hacemos lo siguiente:
# tar xzf lightsquid-1.8.tgz
# mv lightsquid-1.8 /srv/www/htdocs/lightsquid
# cd /srv/www/htdocs/lightsquid/
Cambiamos las rutas en el archivo lightsquid.cfg
# vim lightsquid.cfg
...
$cfgpath ="/srv/www/htdocs/lightsquid";
$tplpath ="/srv/www/htdocs/lightsquid/tpl";
$langpath ="/srv/www/htdocs/lightsquid/lang";
$reportpath ="/srv/www/htdocs/lightsquid/report";
$logpath ="/var/log/squid";
$ip2namepath ="/srv/www/htdocs/lightsquid/ip2name";
En este caso vamos a instalar dicha herramienta en SLES 11.
Descargamos el archivo del siguiente enlace:
http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
Luego de descargarlo hacemos lo siguiente:
# tar xzf lightsquid-1.8.tgz
# mv lightsquid-1.8 /srv/www/htdocs/lightsquid
# cd /srv/www/htdocs/lightsquid/
Cambiamos las rutas en el archivo lightsquid.cfg
# vim lightsquid.cfg
...
$cfgpath ="/srv/www/htdocs/lightsquid";
$tplpath ="/srv/www/htdocs/lightsquid/tpl";
$langpath ="/srv/www/htdocs/lightsquid/lang";
$reportpath ="/srv/www/htdocs/lightsquid/report";
$logpath ="/var/log/squid";
$ip2namepath ="/srv/www/htdocs/lightsquid/ip2name";
...
Podemos revisar si nos falta algún modulo de perl ejecutando lo siguiente:
# perl /srv/www/htdocs/lightsquid/check-setup.pl
Ahora editamos el archivo default-server.conf, para esto se sobrentiendo que tenemos instalado el apache2
# vim /etc/apache2/default-server.conf
...
<Directory "/srv/www/htdocs/lightsquid">
AddHandler cgi-script .cgi
Options None
AllowOverride all
Order allow,deny
Allow from all
</Directory>
...
Listo, ahora reiniciamos el servicio del apache2
# rcapache2 restart
Ejecutamos
# /usr/bin/perl /srv/www/htdocs/lightsquid/lightparser.pl
Dejamos un cron para que se ejecute periodicamente ..
# crontab -e
*/50 * * * * /usr/bin/perl /srv/www/htdocs/lightsquid/lightparser.pl
Reiniciamos el servicio del cron
# rccron restart
Ahora podemos acceder via web y vere los reportes del squid ...
http://IPdelservidor/lightsquid/
Suscribirse a:
Entradas (Atom)