6.29.2010

cisco vn-link and rhev

Al parecer se viene una temporada "nueva", para mi opinion atractiva ...muy atractiva :
En el site de RedHat :  http://www.redhat.com/about/news/prarchive/2010/cisco.html?sc_cid=70160000000IhLmAAK, parte de la noticia dice:
"As the Linux market grows, the integration between Cisco's VN-Link technology and Red Hat's KVM hypervisor represents a high-performance virtualization offering for the open source market from two industry leaders, and expands the choices for deploying virtualization on Linux platforms while enabling the same level of security and policy for virtual machines that exists for physical servers."
"With the tight integration between the Cisco Unified Computing System and Red Hat Enterprise Virtualization, we are offering our joint customers significantly enhanced virtualization performance capabilities," said Brian Stevens, chief technology officer and vice president, Engineering at Red Hat. "Today, Red Hat becomes the first Linux vendor to offer an integrated VN-Link virtualization solution with Cisco, marking another important step forward in Red Hat's virtualization and Linux technology leadership."
"The growth of virtualization in the datacenter and cloud computing, coupled with the adoption of Linux-based server infrastructures, has created a need for a simplified solution for virtualized server I/O," said Ed Bugnion, chief technology officer, Server Access and Virtualization business unit at Cisco. "The combination of the Cisco Unified Computing System and Red Hat Enterprise Virtualization means that organizations can take advantage of Cisco innovation backed by the momentum of the open source community, resulting in an open, integrated and tuned environment for virtual infrastructure deployment."
The integrated solution is expected to be available from Red Hat and Cisco later this year in line with the availability of Red Hat Enterprise Linux 6, including the Red Hat Enterprise Virtualization Hypervisor. 
For more information about Red Hat Enterprise Virtualization, visit www.redhat.com/rhev. For more information about Cisco VN-Link, visit www.cisco.com/go/vnlink.

6.28.2010

create print server

En el server creamos
[root@server etc]# lpadmin -p zerver-lp18 -v "lpd://localhost/dummy" -m textonly.ppd
[root@server etc]# lpadmin -p zerver-lp18  -E
[root@server etc]# lpadmin -d zerver-lp18 

Luego en el server, mediante la herramienta cups basada en web http://localhost:631 debemos compartir esta impresora zerver-lp18


De esta manera cualquier estacion puede imprimir mediante red sobre la impresora zserver-lp18 (en el servidor)

6.23.2010

date and time on swtiches

Para modelos Cisco 3560 WS-C2960 y WS-C3560G:
vir-prd-swi-80(config)#clock timezone PE -5
vir-prd-swi-80(config)#exit
vir-prd-swi-80#clock set 08:10:00 Jun 22 2010
vir-prd-swi-80#wr
Building configuration...
[OK]
vir-prd-swi-80#sh clock
08:10:07.826 PE Tue Jun 22 2010
vir-prd-swi-80#

6.15.2010

network interface in promisc

Es sumamente sencillo, notar que la palabra PROMISC:
[root@svrids01 ~]# ifconfig eth1 promisc
Revisar con :
[root@svrids01 ~]# ip l
1: lo: mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth1: mtu 1500 qdisc noop qlen 1000
    link/ether 00:05:5d:8d:2a:c8 brd ff:ff:ff:ff:ff:ff
3: eth2: mtu 1500 qdisc noop qlen 1000
    link/ether 00:11:95:b9:73:12 brd ff:ff:ff:ff:ff:ff
4: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
o tambien :
[root@svrids01 ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:05:5D:8D:2A:C8  
          BROADCAST PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:90 Base address:0x2000 
Util para recibir trafico y pasarlo a un ids por ejemplo.

6.14.2010

openvpn on rhel5 | memoria

Este no es precisamente un post sobre un servicio que dejo en produccion, este es un backup de los archivos de configuracion de un servidor openvpn (user to site) que implemente tiempo atras. Pero si espero me sirva de memoria para una nueva oportunidad:
Se tiene el paquete openvpn :
[root@svrvpn01 openvpn]# rpm -q openvpn
openvpn-2.1.1-2.1.el5.al
Lo instale desde los depositos de mi amigo Joel 
[AL-Server]
name=AL Server para Enterprise Linux 5
baseurl=http://www.alcancelibre.org/al/server/5/i386/
gpgcheck=0
gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY~
Estimo que las demas dependencias los instalo usando tambien mi repo local construido a partir de mi dvd.

cp /usr/share/openvpn/easy-rsa/2.0/openssl.cnf ./
cp /usr/share/openvpn/easy-rsa/2.0/whichopensslcnf ./
cp /usr/share/openvpn/easy-rsa/2.0/pkitool ./
cp /usr/share/openvpn/easy-rsa/2.0/vars ./


Recuerdo claramente (aunque no tengo la guia que use a la mano) que todo lo configurable para este servicio esta bajo /etc/openvpn/ ;  por ejemplo el archivo de configuracion /etc/openvpn/servidorvpn-udp-1194.conf tiene:
port 1194
proto udp
dev tun
#---- Seccion de llaves -----
ca keys/ca.crt
cert keys/viru.com.pe.crt
key keys/viru.com.pe.key
dh keys/dh1024.pem
#----------------------------
server 192.168.37.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status-servidorvpn-udp-1194.log
verb 3

Note que el segmento de red para clientes remotos es 192.168.192.0 255.255.255.0 
En /etc/openvpn/vars asegurar que al final se tenga las lineas :
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="PE"
export KEY_PROVINCE="LI"
export KEY_CITY="Trujillo"
export KEY_ORG="viru.com.pe"
export KEY_EMAIL="jgrados@viru.com.pe"
Luego cargar variables de entorno para estos datos con:
source /etc/openvpn/./vars
Ahora creamos los certificados para el usuario juaninf :
sh /usr/share/openvpn/easy-rsa/2.0/clean-all
sh /usr/share/openvpn/easy-rsa/2.0/build-ca
sh /usr/share/openvpn/easy-rsa/2.0/build-dh
sh /usr/share/openvpn/easy-rsa/2.0/build-key-server server
sh /usr/share/openvpn/easy-rsa/2.0/build-key juaninf
Donde juaninf es un primer usuario de prueba para el servicio 
Iniciar el servicio con service openvpn start
La configuracion de mi interfaces (2 interfaces fisicas) es :
root@svrvpn01 openvpn]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:19:BB:39:0B:58  
          inet addr:20.37.20.252  Bcast:200.37.15.255  Mask:255.255.240.0
          inet6 addr: fe80::219:bbff:fe39:b58/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1507 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:207290 (202.4 KiB)  TX bytes:748 (748.0 b)
          Interrupt:169 Memory:fa000000-fa012800 

eth1      Link encap:Ethernet  HWaddr 00:11:95:D1:AD:32  
          inet addr:10.10.16.34  Bcast:10.10.19.255  Mask:255.255.252.0
          inet6 addr: fe80::211:95ff:fed1:ad32/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6321 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1184 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:539518 (526.8 KiB)  TX bytes:213642 (208.6 KiB)
          Interrupt:90 Base address:0x2000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.192.1  P-t-P:192.168.192.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
Tambien encontre que habilite el reenvio de paquetes.
Para crear 1 usuario (certificados y llaves) se tiene el procedimiento:
[root@svrvpn01 openvpn]# source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/keys
[root@svrvpn01 openvpn]# sh /usr/share/openvpn/easy-rsa/2.0/build-key juaninf
Generating a 1024 bit RSA private key
........++++++
.............................................++++++
writing new private key to 'juaninf.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [PE]:  
State or Province Name (full name) [LI]:
Locality Name (eg, city) [Trujillo]:
Organization Name (eg, company) [viru.com.pe]:
Organizational Unit Name (eg, section) []:LNC   
Common Name (eg, your name or your server's hostname) [juaninf]:
Name []:Juan Grados Vasquez
Email Address [jgrados@viru.com.pe]:juaninf@lnc.com.br

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'PE'
stateOrProvinceName   :PRINTABLE:'LI'
localityName          :PRINTABLE:'Trujillo'
organizationName      :PRINTABLE:'viru.com.pe'
organizationalUnitName:PRINTABLE:'LNC'
commonName            :PRINTABLE:'juaninf'
name                  :PRINTABLE:'Juan Grados Vasquez'
emailAddress          :IA5STRING:'juaninf@lnc.com.br'
Certificate is to be certified until Jun 11 16:12:48 2020 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Notar que se crearon 03 archivos :
[root@svrvpn01 keys]# ls -l /etc/openvpn/keys/juaninf.*
-rw-r--r-- 1 root root 3956 Jun 14 11:12 /etc/openvpn/keys/juaninf.crt
-rw-r--r-- 1 root root  733 Jun 14 11:12 /etc/openvpn/keys/juaninf.csr
-rw------- 1 root root  891 Jun 14 11:12 /etc/openvpn/keys/juaninf.key

Hasta aquí se completo la generación de los certificados del usuario  juaninf, ahora para el
cliente se tiene que copiar en su desktop o laptop los archivos ca.crt, juaninf.crt, juaninf.csr,
juaninf.key y un quinto archivo adicional virunet1194.ovpn que se detalla en parrafo siguiente.

Del lado del cliente, se necesita 5 archivos que el cliente remoto debe siempre portar a fin de poder establecer sesión vpn con el servidor, 04 de estos archivos se obtienen desde el servidor, y el quinto archivo es genérico para todos los casos, este quinto archivo "virunet1194.ovpn" debe conservar su extensión .ovpn; esto es:
client


dev tun
proto udp
remote 20.37.20.252 1194
float
resolv-retry infinite
nobind
persist-key
persist-tun
route 10.10.16.0 255.255.252.0 
dhcp-option DNS 192.168.26.1
dhcp-option WINS 192.168.26.1
#------ SECCION DE LLAVES --------
ca "C:\\Archivos de Programa\\OpenVPN\\config\\ca.crt"
cert "C:\\Archivos de Programa\\OpenVPN\\config\\juaninf.crt"
key "C:\\Archivos de Programa\\OpenVPN\\config\\juaninf.key"
ns-cert-type server
#---------------------------------
comp-lzo
verb 3

En la maquina del usuario remoto se debe instalar el cliente openvpn  (bajarlo de internet segun sistema operativo)  Luego, en caso de los windows dentro de  C:|  Archivos de Programa  |  OpenVPN  |  client  ; poner los 05 archivos que se indicaron.




El usuario establecerá sesión vpn con solo iniciar el programa OpenVPN cliente instalado, sin embargo para que el usuario remoto pueda acceder a su desktop local (PC de oficina) por remote desktop por ejemplo, será necesario que en la desktop local se agrege un enrutamiento persistente que permita conectividad entre la red remota de usuarios VPN (192.168.192.0/24) y la red local 10.10.16.0/22 (lan nicolini).

En la PC (desktop de oficina) :
route  ADD  192.168.192.0  MASK  255.255.255.255.0  10.10.16.34  -p

Esta ruta debe siempre estar presente, por ejemplo mediante un tarea programada ejecutada al inicio de sesión de un desktop windows.

Esta memoria esta basada en 


6.13.2010

backup cisco router on linux

Bueno, en linux tendremos que tener habilitado un tftp server con los permisos correspondientes y expect sera quien haga los trabajos automatizados. Se recomienda hacer esto sobre una interfaz del router (o cualquier dispositivo de networking) segura o no publica para everyone Ej. 192.168.200.1

#!/usr/bin/expect -f
log_file -noappend events
spawn -noecho telnet 
192.168.200.1
expect "password:"
send "KLB3isco\r"
expect "RTR.CHICAGO\>"
send "en\r"
expect "password:"
send "basw6phex46echuk5P\r"
expect "RTR.CHICAGO\#"
send "copy run tftp\r"
expect "*?"
send "192.168.254.33\r"
expect "*?"
send "rtr.chicago-confg\r"
expect "*copied*\#"
send "exit\r"
expect eof
exit


Note que 192.168.254.33 es nuestro linux con el servicio tftp en escucha.

6.10.2010

nfs service whit selinux

Ok, inicio mi aprendizaje de linux con nfs, Selinux no permite en nfs compartir files by default.
El ip de mi server nfs sera 172.24.254.254 y el cliente station18 172.24.0.10
El servicio nfs se instala con el paquete nfs-utils (al menos en rhel54), luego en la configuracion:

[root@server ~]# cat /etc/exports 
/pruebas/nfs            172.24.0.0/255.255.0.0(rw,sync)

[root@server ~]# showmount -e
Export list for server.example.com:
/pruebas/nfs    172.24.0.0/255.255.0.0

[root@server ~]# getenforce 
Enforcing

[root@server ~]# ls -l /pruebas/
total 8
drwxr-xr-x 2 root root 4096 Jun 10 19:01 nfs
[root@server ~]#



Revisemos el valor del boolean nfs_export_all_rw en el server :

[root@server ~]# getsebool nfs_export_all_rw
nfs_export_all_rw --> off

Haciendo pruebas desde station18 para montar la carpeta /pruebas/nfs  publicada por el server:
[root@station18 /]# showmount -e 172.24.254.254
Export list for 172.24.254.254:
/pruebas/nfs    172.24.0.0/255.255.0.0
Bien, "al parecer" el servicio nfs esta en el server esta OK como servicio (para fines de aprendizaje de selinux aun la politica por default en el firewall del server es ACCEPT)
Ahora intentare montar el recurso compartido por el server en mi station18 en la ruta /mnt/nfs
[root@station18 /]# mount  172.24.254.254:/pruebas/nfs /mnt/nfs/
mount: 172.24.254.254:/pruebas/nfs failed, reason given by server: Permission denied
Ajaaa !!! el selinux del server no me deja ...ademas el log registro esto :
Jun 10 19:22:57 server kernel: type=1400 audit(1276215777.400:40): avc:  denied  { search } for  pid=2173 comm="rpc.mountd" name="pruebas" dev=dm-0 ino=1265473 scontext=system_u:system_r:nfsd_t:s0 tcontext=root:object_r:default_t:s0 tclass=dir

Bien, entonces en el server activaremos el valor del boolean requerido nfs_export_all_rw  a  1:
[root@server ~]# setsebool nfs_export_all_rw 1
Entonces ya vamos teniendo una mejor relacion con /var/log/messages de nuestro server :
Jun 10 19:29:30 server kernel: type=1405 audit(1276216170.802:41): bool=nfs_export_all_rw val=1 old_val=0 auid=4294967295 ses=4294967295
Jun 10 19:29:30 server kernel: type=1107 audit(1276216170.805:42): user pid=1948 uid=81 auid=4294967295 subj=system_u:system_r:system_dbusd_t:s0 msg='avc:  received policyload notice (seqno=4)
Jun 10 19:29:30 server kernel: : exe="?" (sauid=81, hostname=?, addr=?, terminal=?)'
Jun 10 19:29:31 server setsebool: The nfs_export_all_rw policy boolean was changed to 1 by root

Vemos que ahora ya podemos montar desde nuestro cliente station18.
[root@station18 /]# mount  172.24.254.254:/pruebas/nfs /mnt/nfs/
[root@station18 /]#  

El log de nuestro server dice que el cliente station18 monto el recurso publicado en el server /pruebas/nfs  :
Jun 10 19:49:50 server mountd[2173]: authenticated mount request from 172.24.0.10:908 for /pruebas/nfs (/pruebas/nfs)

Podemos tambien verificar que desde nuestro cliente station18 podemos mirar que existia un archivo de nombre "algo" publicado en el server nfs el cual hemos montado en nuestro /mnt/nfs
[root@station18 /]# ls -lZ /mnt/nfs/*
-rw-r--r--  root root system_u:object_r:nfs_t          /mnt/nfs/algo
[root@station18 /]# 

Desde station18 tratemos de crear (osea escribir) un archivo "nuevo" 
[root@station18 /]# touch /mnt/nfs/nuevo
touch: cannot touch `/mnt/nfs/otro': Permission denied

Upss, al inicio de este post indicamos detalles de la carpeta compartida en el server no ?
[root@server ~]# ls -l /pruebas/
total 8
drwxr-xr-x 2 root root 4096 Jun 10 19:01 nfs

Ok, en el server las politicas de acceso discresionales (DAC) estan denegando por cuestiones de permisos, ya esto lo manejamos con mejor experiencia, agregamos a "otros" permisos de escritura sobre /pruebas/nfs
[root@server ~]# chmod o+w /pruebas/nfs/
[root@server ~]# ls -lZ /pruebas/
drwxr-xrwx  root root root:object_r:default_t          nfs

Ahora ya podriamos crear (escribir) el archivo de nombre "nuevo" en el server desde station18 :
[root@station18 /]# touch /mnt/nfs/nuevo
[root@station18 /]# echo "montamos el primer nfs con selinux, activando el boolean nfs_export_all_rw" >> /mnt/nfs/nuevo 
[root@station18 /]# cat /mnt/nfs/nuevo 
montamos el primer nfs con selinux, activando el boolean nfs_export_all_rw
[root@station18 /]# 

Si en nuestro server, selinux inicia en modo enforcing ya no tenendriamos por que tener problemas si el server es reiniciado por ejemplo... Probemos !!!!  detalle valioso para el rhce !!
[root@server ~]# service nfs status
rpc.mountd (pid 2162) is running...
nfsd (pid 2159 2158 2157 2156 2155 2154 2153 2152) is running...
[root@server ~]# getsebool nfs_export_all_rw
nfs_export_all_rw --> on
[root@server /]# ls -lZ /pruebas/nfs/
-rw-r--r--  root      root      root:object_r:default_t          algo
-rw-r--r--  nfsnobody nfsnobody system_u:object_r:default_t      nuevo
-rw-r--r--  nfsnobody nfsnobody system_u:object_r:default_t      nuevo2
-rw-r--r--  nfsnobody nfsnobody system_u:object_r:default_t      otro
[root@server /]# 

El archivo nuevo2 fue creado desde station18 despues que el server reinicio ..
Espero que este primer post incluyendo selinux sirva para ya iniciar mi aprendizaje ..con selinux con miras a mi rhce !!! caraxo ...jajaja ...!

PD: Esto no es un manual oficial ni perfecto, ..solo estoy practicando y tratando de aprender .. si tu encuentras algun error o tienes alguna sugerencia ...favor ..te agradecere mucho la indiques. 

















auto learning to itil 3

Aunque no soy tan .. aficionado por ahora a los mbas y maestrados ... mi actual empleador (IBM) 
esta exigiendo manejar conocimientos y certificacion en ITIL (entre otras certificaciones) , lo cual dentro de la idea que tengo es algo asi como un conjunto de buenas practicas orientadas al servicio al cliente en la industria de TI.
En mi equipo de trabajo encontramos esta excelente liga de autoestudio  http://itil.osiatis.es/Curso_ITIL/ la cual tiene incluso ""casos practicos", lo que hasta donde se ... es evaluado en el examen de certificacion.

installing chrome on rhel54

Bueno, hace mucho que no posteo nada... y bueno rompere el hielo mostrando como me puse chrome en mi rhel54, si ya se que es algo poco importante, pero asi rompere el hielo ok? luego prometo postear como voy aprendiendo de selinux ..sobre todo por mi revancha que tengo con el rhce ...grrr
Intente por rpmforge pero al parecer algun problema debo tener, entonces lo que hize fue bajarme el fuente chrome.tar.gz, y una vez desempacado correremos :
[root@station18 support]# cd chrome
[root@station18 chrome]# ./chrome-wrapper


Aqui, en mi caso pedía un libALGO, pues lo instale de mi repo construido de mi dvd.


Vuelves a intentar 
[root@station18 chrome]# ./chrome-wrapper


Y eso es todo, ya tengo chroome sobre gnome en mi rhel a 32 bits.