Tengo mi red atras de un proxy con Squid, estos son los datos:
IP Proxy = 192.168.50.1
Puerto = 3128
1) Entro a la consola de Ubuntu.
2) Abro el archivo .bashrc
3) Agrego a el final los datos mi proxy.
export http_proxy="http://192.168.50.1:3128"
export https_proxy="http://192.168.50.1:3128"
Si tuviera autentificacion:
export http_proxy="http://usuario:password@192.168.50.1:3128"
export https_proxy="http://usuario:password@192.168.50.1:3128"
Cerramos y si deseamos que nuestra consola los levante, debemos salir y volver a logearse como root, a hora esto aplica a cada usuario y esto depende de cada administrador de su servidor.
Saludos!!!
Hola que tal, mi nombre es Pedro Moreno, soy Ingeniero en Sistemas Computacionales. He vivido y sigo viviendo en la bella ciudad de Tijuana, B.C., Mexico. Mi edad hasta ahorita es de 29 años y contando. Este blog lo voy a utilizar para ir contando las altas y bajas que tengo con los sistemas operativos que tanto aprecio como lo son Unix/Linux en especial FreeBSD/Centos. No quiero llevarme lo poco que se de ellos, por ello prefiero aqui plasmarlo aqui.
lunes, 12 de marzo de 2012
Pfsense 2.x: Reporte Sarg para Squid
Vamos a configurar un reporte mas completo para squid que el que pfsense nos ofrece, SARG es un reporteador muchas mas completo, mas informacion:
El unico inconveniente es que no viene en los paquetes disponibles, asi que necesitamos ensuciarnos las manos e instalarlo uno mismo, pero no es nada del otro mundo.
Otra cosa, sarg es un programa para obtener reportes mas completos de squid, sin embargo debe uno configurar cron para definir los intervalos de ejecucion de sarg, alguien ya se ensucio las manos por nosotros asi que tambien debemos instalarlo.
Uniendo estos 2 paquetes vamos a obtener lo que buscamos, algo asi:
| Reportes con Sarg. |
| Reportes Diarios. |
| Informacion por Equipo. |
| Detalles por Equipo. |
Pero vamos empezando a trabajar.
Necesitamos saber la siguiente informacion antes de arrancar este proceso:
a)Necesitamos saber que servidor FTP de FreeBSD vamos a usar, en este caso voy a usar:
ftp.FreeBSD.org
b)Saber en que categoria esta sarg:
www
c)Saber que version de los ports vamos a usar:
packages-8.2-release
(Recordar que pfsebse 2.0.1 corre bajo 8.1-RELEASE-p6 )
d)La version a usar de sarg:
sarg-2.2.7.1_3.tbz
Pasos a seguir:
1) Entramos a la consola(no hay otra).
2) Ejecutamos el comando pkg_add -r y la direccion ftp de nuestro servidor seleccionado mas la ruta exacta de nuestra aplicacion.
pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/www/sarg-2.2.7.1_3.tbz
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/www/sarg-2.2.7.1_3.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/expat-2.0.1_1.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/png-1.4.5.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/jpeg-8_3.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/freetype2-2.4.4.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/fontconfig-2.8.0,1.tbz... Done.
Running fc-cache to build fontconfig cache...
/usr/local/lib/X11/fonts: caching, new cache contents: 0 fonts, 1 dirs
/usr/local/lib/X11/fonts/local: caching, new cache contents: 0 fonts, 0 dirs
/root/.fonts: skipping, no such directory
/var/db/fontconfig: cleaning cache directory
/root/.fontconfig: not cleaning non-existent cache directory
fc-cache: succeeded
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/All/gd-2.0.35_7,1.tbz... Done.
Si la aplicacion requiere dependencias las va a bajar e instalar tambien.
3) Ya tenemos la aplicacion instalada, verificamos:
| Verificando paquetes instalados. |
Sarg se instala donde freebsd instala sus ports? /usr/local/etc,
| Ubicacion de Sarg. |
cp sarg.conf.default sarg.conf
Editamos sarg.conf, como sigue, aqui solo estoy mostrando los parametros que yo creo convenientes, lo que no muestro no aparece:
access_log /var/squid/log/access.log ==> debe ser el mismo que tiene squid.
graphs yes
graph_days_bytes_bar_color orange
graph_font /usr/local/etc/sarg/fonts/DejaVuSans.ttf
title "================Squid Reportes de Acceso==============="
font_face Tahoma,Verdana,Arial
header_color darkblue
header_bgcolor blanchedalmond
font_size 9px
header_font_size 9px
title_font_size 11px
background_color white
text_color #000000
text_bgcolor lavender
title_color green
logo_text "Nombre de la Empresa"
temporary_dir /tmp
output_dir /usr/local/www/squid-reports ==> asi vamos a accesarr via web.
resolve_ip no
user_ip yes
topuser_sort_field BYTES reverse
exclude_hosts none
date_format u
lastlog 30
remove_temp_files yes
index yes
index_tree file
overwrite_report no
records_without_userid ip
use_comma no
topsites_num 10
topsites_sort_order CONNECT D
index_sort_order D
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads
usertab none
long_url yes
date_time_by bytes
charset Latin1
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
topuser_num 5
weekdays 0-6
hours 0-23
show_sarg_info yes
show_sarg_logo yes
www_document_root /usr/local/www
5) Ahora sigue configurar el script que se encargara de ejecutar sarg y asi darnos nuestros reportes de uso.
Lo podemos bajar desde su sitio oficial:
http://www.initzero.it/products/opensource/sarg-reports/download/sarg-reports
Lo guardamos en /root/scripts/sarg-reports.sh
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
## Italian Language
SARG=/usr/local/bin/sarg
CONFIG=/usr/local/etc/sarg/sarg.conf
HTMLOUT=/usr/local/www/squid-reports
PAGETITLE="Estadisticas de Proxy para $(hostname)"
LOGOIMG=http://www.initzero.it/images/initzero-logo.jpg
LOGOLINK=http://www.initzero.it
DAILY=Diario
WEEKLY=Semanal
MONTHLY=Mensual
EXCLUDELOG1="SARG: Nessun records trovato."
EXCLUDELOG2="SARG: Fine"
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Como podran ver marque en bold negro lo que debemos cambiar, todo lo que no aparece no cambio nada.
6) Poner el bit de ejecucion a el batch.
chmod +x sarg-reports.sh
7) Configurar cron para que ejecute el batch:
50 23 * * * /root/scripts/sarg-reports.sh today
59 23 * * * /usr/local/sbin/squid -k rotate
0 0 * * 0 /root/scripts/sarg-reports.sh weekly
0 0 1 * * /root/scripts/sarg-reports.sh montly
Como podran ver, necesitamos ejecutar primero el script antes de rotar el log de squid.
8) Listo.
Consejo:Siempre ejecuten sus batches manualmente, ya que a veces uno se puede equivocar y puede tener errores de sintaxis, mas vale asegurar que si funcionan :-).
Pfsense 2: Configurar squid personalizado.
Modo No Transparente
Pfsense tiene squid que es un excelente o el mejor web-proxy que tenemos de lado de Unix/Linux, pero la configuracion que nos proporciona pfsense no es la mejor, por ello si deseamos sacarle provecho debemos nosotros mismos hacerlo.
Pero la desventaja es que cada que arranca pfsense arranca squid con la configuracion normal, asi que nosotros con la experiencia en Unix sabemos que podemos ejecutar scripts cuando unix arranca(pfsense).
En modo transparente, que es lo mas comun y comodo pfsense se encarga de habilitar las reglas en el firewall, pero si leen el foro tiene sus limitantes ya que el puerto 443 no cruza por squid, por ello yo prefiero hacer esto para controlar squid.
NOTA: Por nada del mundo, ni aunque les paguen 5 millones de dolares, graven algo en /var/squid/, cuando arranca pfsense borra todo lo que ahi se encuentre, yo hago un folder el /usr/local/etc/squid llamado acl y ahi meto todas mis acl.
Una vez configurado atraves del GUI squid en modo no transparente, creamos las siguientes reglas en el firewall para nuestra LAN, recordar que nadie va a salir sin no es atraves del proxy.
| Reglas Default para Squid |
Como podran observar, yo necesito minimo las primeras 3 reglas, el resto uso protocolos que no son afectados por squid.
Mi LAN solo puede accesar a mi proxy(squid) que corre en mi propio pfsense.
Mi LAN puede accesar a cualquier servidor FTP.
Todo lo demas esta bloqueado, si algun chistoso quiere brincarse el proxy y eliminar la configuracion de su navegador se va a topar con pared, ya que no existe regla que permita a mis clientes pegarle a el puerto 80/443.
Squid en modo transparente de pfsense tiene este defecto, por ello hago yo todo este rollo.
Ya que hicimos lo anterior y nuestros clientes pueden navegar sin problemas, es hora de ensuciarnos las manos para cerrar todas las puertas y asegurar nuestra red.
1) Squid esta en /usr/local/etc/squid/
cd /usr/local/etc/squid/
2) Creamos el folder de nombre acl
mkdir acl
3) Copeamos el archivo de configguracion y le ponemos squid-custom, estamos tomando el archivo original que nos da pfsense como plantilla.
cp squid.conf squid-custom
4) Editamos squid-custom y lo dejamos asi:
######################################################################
# Do not edit manually !
http_port 192.168.50.1:3128
icp_port 0
pid_filename /var/run/squid.pid
cache_effective_user proxy
cache_effective_group proxy
error_directory /usr/local/etc/squid/errors/English
icon_directory /usr/local/etc/squid/icons
visible_hostname localhost
cache_mgr postmaster@localhost
access_log /var/squid/logs/access.log
cache_log /var/squid/logs/cache.log
cache_store_log none
logfile_rotate 0
shutdown_lifetime 3 seconds
# Allow local network(s) on interface(s)
acl localnet src 192.168.50.0/255.255.255.0
httpd_suppress_version_string on
uri_whitespace strip
#########custom options
check_hostnames off
log_fqdn off
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir null /tmp
minimum_object_size 0 KB
maximum_object_size 10 KB
offline_mode off
# No redirector configured
# Setup some default acls
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901 249 3128 1025-65535
acl sslports port 443 563 249
acl manager proto cache_object
acl purge method PURGE
acl connect method CONNECT
acl dynamic urlpath_regex cgi-bin \?
acl unrestricted_hosts src "/usr/local/etc/squid/acl/unrestricted_hosts.acl"
acl blacklist dstdom_regex -i "/usr/local/etc/squid/acl/blacklist.acl"
cache deny dynamic
http_access allow manager localhost
######################################################################
### Opciones Personalzadas ###
######################################################################
###Servidores Ubuntu de la Red.
acl UBUNTU_LAN src "/usr/local/etc/squid/acl/UBUNTU_LAN.acl"
###Servidores de actualizacion para Ubuntu
acl UBUNTU_UP_SERVERS dstdomain "/usr/local/etc/squid/acl/UBUNTU_UP_SERVERS.acl"
### Fin de acl's personalizadas ###
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !safeports
http_access deny CONNECT !sslports
# Always allow localhost connections
http_access allow localhost
request_body_max_size 0 KB
reply_body_max_size 0 deny all
delay_pools 1
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_initial_bucket_level 100
delay_access 1 allow all
######################################################################
### Opciones Personalzadas ###
######################################################################
### Nuestras ACL's en operacion. ###
### ACL sin restricciones
http_access allow unrestricted_hosts
http_access deny unrestricted_hosts
### ACL para que mis ubuntu's puedan actualizarse.
http_access allow UBUNTU_LAN UBUNTU_UP_SERVERS
http_access deny UBUNTU_LAN
### Fin de mis ACL's ###
######################################################################
# Setup allowed acls
# Allow local network(s) on interface(s)
#http_access allow localnet
# Default block all to be sure
### Siempre debemos acabar con esta restriccion
### bloquea todo lo no declarado
http_access deny all
######################################################################
Como podran ver, marque los puntos donde debemos poner atencion:
access_log /var/squid/logs/access.log ==> Donde almacena squid sus logs para obtener los reportes y saber cuando algo nos esta bloqueado aqui debemos revisar primero.
cache_log /var/squid/logs/cache.log ==> Donde almacen squid el cache.
logfile_rotate 0 ==> Cada cuanto squid rota sus logs, por que 0? Yo me encargo de ello para mayor control, no uso el lightsquid, uso sarg, en otro post de mi blog viene.
cache_dir null /tmp ==> Recordar que este servidor corre la version nano, asi que yo quiero bloquear no cachear, asi que pfsense sabe y por ello el mismo lo configura, recordar que podemos cachear o solo bloquear.
acl unrestricted_hosts src "/usr/local/etc/squid/acl/unrestricted_hosts.acl" ==> Aqui colocamos las IP's o usuarios que no tiene restricciones, como nuestros equipos y los de los jefes.
acl blacklist dstdom_regex -i "/usr/local/etc/squid/acl/blacklist.acl" ==> Por default aqui van todos los sitios que nadie puede usar, como faceboook, youtube, etc, etc, si vamos a controlar todo, aqui ponemos '.' y bloquea todo, ya con las ACL abrimos las paginas de cada grupo, es poderoso squid.
acl UBUNTU_LAN src "/usr/local/etc/squid/acl/UBUNTU_LAN.acl" ==> Aqui estoy declarando que este acl tiene los IP's de mis servidores ubuntu que desean actualizarse.
acl UBUNTU_UP_SERVERS dstdomain "/usr/local/etc/squid/acl/UBUNTU_UP_SERVERS.acl" ==> Este acl le indico a squid que deseo manejar aqui los sitios externos para que mis servidores ubuntu puedan instalar, actualizarse, etc.
http_access allow unrestricted_hosts ==> acl's en operacion, iniciamos por permitir a mis jefes el acceso sin restricciones, siempre como regla de oro, una vez que permitimos algo debemos enseguida bloquearlo, asi trabaja squid.
http_access deny unrestricted_hosts ==> regla de oro.
http_access allow UBUNTU_LAN UBUNTU_UP_SERVERS ==> Uniendo acl's, aqui le indico que lo que esta dado de alta en UBUNTU_LAN puede accesar UBUNTU_UP_SERVERS asi de simple.
http_access deny UBUNTU_LAN ==> Regla de Oro.
http_access deny all ==> Regla de Oro general, una vez que terminamos de configurar los accesos a nuestras acl's debemos bloquear todo.
5) Llenar de datos nuestras acl:
Contenido de unrestricted_hosts.acl:
192.168.50.100/32
Contenido de blacklist.acl:
.
Contenido de UBUNTU_LAN.acl:
192.168.50.101/32
Contenido de UBUNTU_UP_SERVERS.acl:
.ubuntu.com
.canonical.com
6) Copeamos el contenido de squid-custom a squid.conf
cp squid-custom squid.conf
7) Validamos la configuracion de squid, no deben dar ningun error de lo contrario debemos reparar antes de continuar, por lo regular son errores de escritura.
squid -k parse
Si no hay problemas no sale nada en pantalla.
8) Le pedimos a squid que levante nuestra nueva configuración:
squid -k reconfigure
Si revisamos nuestra cache.log vamos ver esto:
2012/03/11 22:41:35| Reconfiguring Squid Cache (version 2.7.STABLE9)...
2012/03/11 22:41:35| FD 15 Closing HTTP connection
2012/03/11 22:41:35| FD 16 Closing HTCP socket
2012/03/11 22:41:35| FD 18 Closing SNMP socket
2012/03/11 22:41:35| logfileClose: closing log /var/squid/logs/access.log
2012/03/11 22:41:35| Including Configuration File: /usr/local/etc/squid/squid.conf (depth 0)
2012/03/11 22:41:35| Initialising SSL.
2012/03/11 22:41:35| logfileOpen: opening log /var/squid/logs/access.log
2012/03/11 22:41:35| Store logging disabled
2012/03/11 22:41:35| Referer logging is disabled.
2012/03/11 22:41:35| DNS Socket created at 0.0.0.0, port 15972, FD 13
2012/03/11 22:41:35| Adding domain misitio dyndns org from /etc/resolv.conf
2012/03/11 22:41:35| Adding nameserver 127.0.0.1 from /etc/resolv.conf
2012/03/11 22:41:35| Adding nameserver dns1 from /etc/resolv.conf
2012/03/11 22:41:35| Adding nameserver dns2 from /etc/resolv.conf
2012/03/11 22:41:35| Accepting proxy HTTP connections at 192.168.50.1, port 3128, FD 15.
2012/03/11 22:41:35| Accepting HTCP messages on port 4827, FD 16.
2012/03/11 22:41:35| Accepting SNMP messages on port 3401, FD 18.
2012/03/11 22:41:35| WCCP Disabled.
2012/03/11 22:41:35| Loaded Icons.
2012/03/11 22:41:35| Ready to serve requests.
No se observa ningun problema.
9) Prueban con su clientes, no deben tener problemas.
10) Crear batch para que cada que arranque pfsense cargue nuestra configuracion.
Para esto necesitamos crear nuestra batch en /usr/local/etc/rc.d/
Con nuestra editor ingresamos estos datos a el nuevo archivo de nombre zsquid.sh:
#!/bin/sh
#2012-03-11
#Batch para re-cargar la version personalizada de squid
cp /usr/local/etc/squid/squid-custom /usr/local/etc/squid/squid.conf
#Le pedimos a squid que se reconfigure usando nuestra configuracion
/usr/local/sbin/squid -k reconfigure
Modificamos nuestro batch para que tenga el bit de ejecutable:
chmod +x zsquid.sh
Por que z? Recordar que Unix arranca los batches por orden alfabetico, ahi mismo se localiza el batch que arranca squid, y la "S" es antes que la "Z", por ello nos conviene que primero arranque squid con la configuracion normal y despues nuestra configuracion.
11) Por ultimo ya solo para comprobar que todo va a funcionar, debemos reiniciar a pfsense, no debe de haber problemas.
shutdown -r now.
En la consola cuando reinicie aparece algo asi:
Starting /usr/local/etc/rc.d/zsquid.sh...done.
En mi caso es el ultimo servicio en arrancar lo que indica que mis cambios estan operando.
12) Cron para rotar los logs todos los dias.
59 23 * * * /usr/local/sbin/squid -k rotate
Con esto ya no necesitamos que squid rote sus logs, nosotros lo vamos hacer.
13) Listo, ya tenemos una configuracion de squid personalizada y poderosa, ya solo es cuestion que cada quien la configure a sus necesidades.
| Error de arranque squid version nano. |
Si observan la figura anterior squid nos manda un error que nos falta un archivo de nombre: unrestricted_host.acl, y apunta a el directorio: /var/squid/acl.
Por que? Bien recordar que pfsense version nano se carga en memoria, entoces muchas particiones como /var su contenido se crea al momento del arranque, por ello cuando squid arranca se crea su folder de 0 y automaticamente todo lo que ahi se localice es sobreescrito.
Aparte como es mas rapido el arranque que la creacion de archivos entonces le esta ganando squid a el arranque de pfsense.
Como podemos atacarlo?
Bien por ahi encontrado que la manera de hacerlo es editando el archivo principal de squid que ahi nos dice: squid.inc localizado en /usr/local/pkg/squid.inc.
Aparte nos dice que la linea 844 o 848 pero por ahi anda, lo abrimos con el editor y nos vamos a esa linea, vamos a ver algo asi:
$options = array( 'unrestricted_hosts' => 'src',
'banned_hosts' => 'src',
'whitelist' => 'dstdom_regex -i',
'blacklist' => 'dstdom_regex -i',
);
Como estamos editando nuestra propia configuracion y nuestros acl se localizan en /usr/local/etc/squid/acl, pues vamos hackeando pfsense y ver como nos va, comentamos esa linea y la volvemos a crear sin el parametro que nos esta afectando, quedaria asi:
$options = array(
#'unrestricted_hosts' => 'src',
'banned_hosts' => 'src',
'whitelist' => 'dstdom_regex -i',
'blacklist' => 'dstdom_regex -i',
);
Salvamos, reiniciamos y vemos si ya no se nos presenta ese mensaje.
15) Fin.
NOTA: Recordar que si van a hacer cambios en la configuracion deben modificar squid-custom y ademas deben respaldar tanto squid-custom y todos los acl's que estan usando.
sábado, 10 de marzo de 2012
pfsense 2: Acceso a consola SSH por llave
usuario+password.
Pero esto ya no es seguro, aparte de que nuestro logs van a aparecer infinidad de mensajes de gente que esta tratando de accesar con ataques de diccionario.
Otra cosa que les aconsejo es cambiar el puerto tradicional de ssh que es el 22 por uno mayor pero que ustedes esten seguros que ninguno de sus servicios lo requiera, ejemplo:
1978
Regularmente los scripts de ataque escanean del 1-1024, asi que mientras mayor el puerto mucho mejor.
11387
Que servicio de nuestra red los usan?
Una vez que definan el puerto(si lo hacen) debemos generar nuestras llaves, tanto publica como privada, si usan windows tenemos a putty, el paquete completo trae todo, ahi viene el generador de llaves, por default la llave es generada utilizando codigos de 1024 bits, pero vamos siendo realistas, con el poder de los equipos de computo actuales este valor ya no es confiable.
Por ello yo lo cambio a 2048, mientras mayor el valor mas seguro pero tarda un poco mas en encriptar/desencriptar los paquetes pero vale la pena.
| Generando las llaves de 2048 bits. |
| Llaves generadas. |
Save public key y Save private key.
Ustedes deben saber que las llaves privadas son su llave a el mundo, deben guardarlas en un lugar seguro.
Lo que vamos a dar siempre a el mundo es la llave publica, la privada a nadie, ni a su novia :-).
Yo no recomiendo que pongan una frase ya que es muy incomodo estar a cada rato metiendo esa clave, es buen punto de seguridad pero muy incomodo, si su sistema creen que lo vale adelante.
Un ejemplo de el contenido de las los archivos:
| Llave publica. |
| Llave Privada. |
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAud0msDGWBNXq8OteQafJsKQz/xf1pDoqplnu
v/Wkm3ZFsbtN2UwO33gynocI9WAgIpNXXQXwQerS510HY/1iNhWVMrv5bWECyYkP
RrzhZLQwaqOvlHUoVFLeaKu95GJciSZeE/4fYxTG7kPY9JpW/gOH5+mbDmneUeiU
e0UPIuZKrOfJ9IsZqwMTdaoqiwWwhfWeSk0l2HQomwXCWHDdTQa0BbGEE1wZqKpR
BQ6HL7NeyqfOii6zSWtmpujTtocKg1btdDv21dhtVZ+pvNXK5nyYWt+z0S+ws9EQ
xrFUmsp8891XjX6YpTEnMbNfcJhYgHceuZcsgCdN5rAdkovEiQ==
El ssh-rsa se lo debemos agregar ya que putty no lo genera,
Ahora si vamos a el GUI de pfsense, y entramos a el administrador de usuarios, seleccionamos el admin y vamos a agregar nuestra llave publica.
| Editando usuarios. |
| Agregando la llave. |
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAud0msDGWBNXq8OteQafJsKQz/xf1pDoqplnu
v/Wkm3ZFsbtN2UwO33gynocI9WAgIpNXXQXwQerS510HY/1iNhWVMrv5bWECyYkP
RrzhZLQwaqOvlHUoVFLeaKu95GJciSZeE/4fYxTG7kPY9JpW/gOH5+mbDmneUeiU
e0UPIuZKrOfJ9IsZqwMTdaoqiwWwhfWeSk0l2HQomwXCWHDdTQa0BbGEE1wZqKpR
BQ6HL7NeyqfOii6zSWtmpujTtocKg1btdDv21dhtVZ+pvNXK5nyYWt+z0S+ws9EQ
xrFUmsp8891XjX6YpTEnMbNfcJhYgHceuZcsgCdN5rAdkovEiQ==
Todo en una sola linea.
Por ello en la imagen anterior como podran observar solo se ve una parte de la llave pero es una sola linea.
Debemos decirle a pfsense que vamos a entrar en la consola via ssh atraves de llaves. Nos vamos a la seccion System->Advanced->Secure Shell.
| Habilitamos el acceso con llave. |
Ya que hayamos hecho lo anterior salvamos y vamos a probar.
Para esto vamos a configurar putty para entrar a la consola usando nuestras llaves.
| Configurando Putty. |
| Selecionamos la llave privada. |
| SSH pregunta si acepatamos la operacion. |
| Adentro. |
Si desean comprobar que solo con llave podemos entrar, configuren otro profile en putty mentan todos los parametros excepto la llave y deben recibir un mensaje como este:
| Error cuando no hay llaves dadas. |
Recuerden que esta misma llave la pueden usar para todos los sistemas que controlen via ssh, se casa uno con ellas, yo la cambio cada 365 dias por seguridad.
Saludos.
jueves, 29 de diciembre de 2011
Centos 5:Xen PCI Passthrough USB
Hola, existen ocaciones donde necesitamos que nuestra maquina virtual pueda hacer uso de puertos como el USB, en mi caso de nuevo necesito que mi hvm pueda yo conectarle una memoria USB para que un software especifico funcione.
El sistema que maneja recursos humanos que es muy usando en la empresas grandes llamado Tress hace uso de una memoria USB tipo HASP como candado de seguridad.
Entonces si deseamos virtualizar el servidor donde se ejecuta el Tress necesitamos este opcion disponible en nuestra HVM.
Pase varias semanas batallando esto, ya que uno se enfrenta a distintos obstaculos, entre ellas la mas critica y dificil que encontre:
- Falta de documentacion por parte de los fabricantes tanto de placas madres como de procesadores.
Por que comento esto de los fabricantes de placas madres?, he logrado esto con 2 placas distintas:
Una tipo desktop:
MoBo: SABERTOOTH+990FX
Procesador: AMD Athlon II 640
Dicen los de soporte de la MoBo que si esta habilitada la opcion, pero nunca la encontre, me comunique con ellos y dicen que no pueden arreglar el BIOS.
AMD esta en las mismas, la doc no dice nada de este dato.
Para no perder el chip me fui por la que sigue:
MoBo:Asus M4A89TD PRO/USB3
Procesador: AMD Athlon II 640
En esta si aparece la opcion en el BIOS para habilitar esta funcion, probe Xen 4.1.1 de gitco y gracias a el cielo que Xen me dio el mensaje esperado:
(XEN) I/O virtualisation enabled
(XEN) I/O virtualisation for PV guests disabled
Ya con el simple hecho de que nos de este mensaje ya es ventaja, no me interesa que mi PV no pueda ya que no tengo nada en ellas que lo requiera, bien en la 1er placa actualice el BIOS hasta la ultima version y nada de nada asi que no quice perder mas mi tiempo, por ello mejor me fui por la segura.
Esto me funciono en Centos 5.x, Xen 3.4.1,4.1 sin problemas, algo que note es que solo la v 1.1 del USB fue soportada, y las versiones de windows:
- XP Pro xp3
- Windows 7 Pro
Otro detalle fue que windows 7, probe varias memorias USB y algunas si funcionaron otras no, pero lo que mas llamo la atencion que la memoria HASP que un programa llamado LabelView de www.teklynx.com no funciono.
Pero mi plan era que el software llamado: Darwin de www.vanguardiatec.com funcionara y.... funciono, usa igual que el anterior una memoria HASP USB, entonces en este momento lo estan usando usando sin problemas.
Ahora la siguiente tarea que encontre fue, puedo virtualizar windows 2003(sin problemas) y que tenga soporte de USB?
En este caso ya no estamos hablando de un equipo tipo desktop, aqui ya es una placa servidor, siempre estas van a tener mejor electronica que una desktop por ello las separan.
Este es el equipo de SuperMicro:
SuperServer 5026T-TB
Siempre hemos sido amantes de esta marca, no le pide nada a Dell, HP, IBM, es mas economica y se codea con ellos, la diferencia que aun en Mexico no existe una distribucion directa, todo viene de USA.
Haste eso que el soporte es excelente y no tienes pasar por una PBX que hace una infinidad de preguntas y siempre estan dispuestos a ayudarte.
El procesador es una Intel Xeon E5649 con memoria ECC 1333Mhz.
Dice la doc de Xen que tanto el MoBo como el CHIP deben tener soporte para que esta operacion funcione, por parte de la MoBo habia soporte, la doc de Intel como todas las demas, hasta AMD carece de informacion detallada.
Me comunique via char con el soporte de Intel, y el hizo lo mismo que uno del ambito haria antes de preguntar, leer la documentacion del chip, ahi no venia nada al respecto, espere un poco y me dice "No tiene soporte", ok gracias.
Entonces, ya era cuestion de probar por mi cuenta, por que en la lista de Xen, alguien comento que tenia algunos servidores con el chips de la familia 5600 y aparecia que si le aparecia el mensaje en su consola de:
(XEN) I/O virtualisation enabled
Pero no mostraba que chips, por ello no quedo otra que mancharme las manos.
Entonces ya fue mucho rollo, vamos a ver como habilitar esto en Xen:
NOTA1: Este procedimiento es igual para todos los chips o MoBo.
NOTA2: Xen 4.x no necesita el paso 1, ya viene por default.
1; Si usan Xen anterior a 4.x deben habilitar la opcion en su kernel asi:
kernel /xen.gz-3.4.3 dom0_max_vcpus=2 dom0_vcpus_pin dom0_mem=1024MB iommu=1
Xen 4.x ya lo tiene.
Reiniciar el server.
2; Asegurarse antes de nada que aparezca el mensaje esperado cuando ejecuten el comando: xen dmesg.
(XEN) I/O virtualisation enabledSi no aparece esto, ni le sigan.
2; Detectar la direccion de nuestro puerto USB.
Aqui estoy hablando de un puerto USB, pero aplica a los puertos que desean enviar, video, paralelo, etc, etc.
Ahora como puedo yo saber cual es la direccion de una puerto USB especifico?
Existe un comando poco usado llamado:
udevmonitor
Este comando lo que hace es monitorear los puertos para ver en consola que estamos conectando, cuando conectamos una memoria USB aparece esto en pantalla:
UEVENT[1325036667.645024] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2
UEVENT[1325036667.645051] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/usbdev1.3_ep00
UEVENT[1325036667.645235] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0
UEVENT[1325036667.645245] add@/class/scsi_host/host5
UEVENT[1325036667.645251] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/usbdev1.3_ep01
UEVENT[1325036667.645257] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/usbdev1.3_ep82
UEVENT[1325036667.645264] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/usbdev1.3_ep83
UEVENT[1325036667.645270] add@/class/usb_device/usbdev1.3
UDEV [1325036667.656886] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2
UDEV [1325036667.764765] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/usbdev1.3_ep00
UDEV [1325036668.179955] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0
UDEV [1325036668.389248] add@/class/scsi_host/host5
UDEV [1325036668.400871] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/usbdev1.3_ep82
UDEV [1325036668.400884] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/usbdev1.3_ep83
UDEV [1325036668.400891] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/usbdev1.3_ep01
UDEV [1325036668.546698] add@/class/usb_device/usbdev1.3
UEVENT[1325036672.644024] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/host5/target5:0:0/5:0:0:0
UEVENT[1325036672.644042] add@/class/scsi_disk/5:0:0:0
UEVENT[1325036672.770313] add@/block/sdg
UEVENT[1325036672.770326] add@/class/scsi_device/5:0:0:0
UEVENT[1325036672.770333] add@/class/scsi_generic/sg7
UDEV [1325036672.894515] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/host5/target5:0:0/5:0:0:0
UDEV [1325036673.105483] add@/class/scsi_disk/5:0:0:0
UDEV [1325036673.108784] add@/class/scsi_generic/sg7
UDEV [1325036673.314546] add@/class/scsi_device/5:0:0:0
UDEV [1325036673.399994] add@/block/sdg
Vamos buscar nuestro puerto:
UEVENT[1325036667.645024] add@/devices/pci0000:00/0000:00:1a.7/usb1/1-2
Ahora vamos a compararlo con el listado de Centos:
lspci
00:00.0 Host bridge: Intel Corporation 5520/5500/X58 I/O Hub to ESI Port (rev 22)
00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1 (rev 22)
00:03.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 3 (rev 22)
00:05.0 PCI bridge: Intel Corporation 5520/X58 I/O Hub PCI Express Root Port 5 (rev 22)
00:07.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 7 (rev 22)
00:09.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 9 (rev 22)
00:14.0 PIC: Intel Corporation 5520/5500/X58 I/O Hub System Management Registers (rev 22)
00:14.1 PIC: Intel Corporation 5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (rev 22)
00:14.2 PIC: Intel Corporation 5520/5500/X58 I/O Hub Control Status and RAS Registers (rev 22)
00:14.3 PIC: Intel Corporation 5520/5500/X58 I/O Hub Throttle Registers (rev 22)
00:16.0 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.1 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.2 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.3 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.4 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.5 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.6 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.7 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:1a.0 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4
00:1a.1 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5
00:1a.2 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6
00:1a.7 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2
00:1c.0 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 1
00:1c.1 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Port 2
00:1d.0 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1
00:1d.1 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2
00:1d.2 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3
00:1d.7 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)
00:1f.0 ISA bridge: Intel Corporation 82801JIR (ICH10R) LPC Interface Controller
00:1f.2 IDE interface: Intel Corporation 82801JI (ICH10 Family) 4 port SATA IDE Controller #1
00:1f.3 SMBus: Intel Corporation 82801JI (ICH10 Family) SMBus Controller
00:1f.5 IDE interface: Intel Corporation 82801JI (ICH10 Family) 2 port SATA IDE Controller #2
06:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
07:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
08:01.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1010 66MHz Ultra3 SCSI Adapter (rev 01)
08:04.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200eW WPCM450 (rev 0a)
Ya dimos y confirmamos que es la direccion que necesitamos.
3; Habilitar el modulo pciback en el kernel.
Este modulo ni RedHat ni Centos lo tienen compilado en el kernel,xen para ello tenemos 2 opciones:
A) Agregarlo
B) Compilar el kernel xen y habilitarlo.
Yo me voy por la mas rapida la A, para esto tenemos que hacer lo siguente.
1.1 Esconder del Host el puerto requerido, ya tenemos la direccion que necesitamos, para esto modificamos el archivo modprobe.conf que esta en /etc y agregamos esta linea a el final:
options pciback hide=(00:1a.7)
Salvamos y salimos, como podran ver es la direccion que obtuvimos anteriormente cuando ejecutamos udevmonitor.
1.2 Agregamos el modulo a nuestro modulo initrd para que cada que reinicie lo cargue antes de darnos la consola del poder.
Nos vamos a el folder boot:
cd /boot
NOTA 3: Por seguridad hacer una copia del initrd actual por si algo sale mal:
cp initrd-$(uname -r).img initrd-$(uname -r).img-default
Ahora si a agregar el modulo:
mkinitrd -f --preload=pciback /boot/initrd-$(uname -r).img $(uname -r)
Como podran ver hemos agregado el modulo pciback para que cuando arranque el kernel lo tenga listo, asi cuando ejecute el modprobe.conf ya pueda el esconder nuestro puerto y quede libre para nuestra hvm, de lo contrario el host se negara a soltar el puerto.
1.3 Decirle a Xen que puerto el va a tomar control para entregar a la HVM que lo necesite.
Para esto vamos a buscar otro dato que necesitamos de nuestro hw, ya tenemos la direccion del puerto, pero Xen requiere otro mas de ese puerto, y este lo obtenemos ejectando el comando lspci -n, buscamos nuestro hw id y buscamos este dato:
lspci -n
00:00.0 0600: 8086:3405 (rev 22)
00:01.0 0604: 8086:3408 (rev 22)
00:03.0 0604: 8086:340a (rev 22)
00:05.0 0604: 8086:340c (rev 22)
00:07.0 0604: 8086:340e (rev 22)
00:09.0 0604: 8086:3410 (rev 22)
00:14.0 0800: 8086:342e (rev 22)
00:14.1 0800: 8086:3422 (rev 22)
00:14.2 0800: 8086:3423 (rev 22)
00:14.3 0800: 8086:3438 (rev 22)
00:16.0 0880: 8086:3430 (rev 22)
00:16.1 0880: 8086:3431 (rev 22)
00:16.2 0880: 8086:3432 (rev 22)
00:16.3 0880: 8086:3433 (rev 22)
00:16.4 0880: 8086:3429 (rev 22)
00:16.5 0880: 8086:342a (rev 22)
00:16.6 0880: 8086:342b (rev 22)
00:16.7 0880: 8086:342c (rev 22)
00:1a.0 0c03: 8086:3a37
00:1a.1 0c03: 8086:3a38
00:1a.2 0c03: 8086:3a39
00:1a.7 0c03: 8086:3a3c
00:1c.0 0604: 8086:3a40
00:1c.1 0604: 8086:3a42
00:1d.0 0c03: 8086:3a34
00:1d.1 0c03: 8086:3a35
00:1d.2 0c03: 8086:3a36
00:1d.7 0c03: 8086:3a3a
00:1e.0 0604: 8086:244e (rev 90)
00:1f.0 0601: 8086:3a16
00:1f.2 0101: 8086:3a20
00:1f.3 0c05: 8086:3a30
00:1f.5 0101: 8086:3a26
06:00.0 0200: 8086:10d3
07:00.0 0200: 8086:10d3
08:01.0 0100: 1000:0021 (rev 01)
08:04.0 0300: 102b:0532 (rev 0a)
Ahi lo tenemos, el dato que requiere Xen es: 8086:3a3c.
Abrimos el archivo de Xen llamado /etx/xen/xend-pci-permissive.sxp
Y nos queda asi:
###############################################################################
(unconstrained_dev_ids
#('0123:4567:89AB:CDEF')
('8086:3a3c')
)
Viendo su archivo van a notar la diferencia, dice el doc que no es necesario, pero a mi me ha funcionado asi y no he tenido problema con mi HVM ni host.
1.4 Agregar el puerto a la configuracion de nuestra HVM, en este caso Windows XP:
pci = ["00:1a.7"]Esto lo agregamos a el final del archivo.
4; Reiniciar servidor y a probar.
5; Arracamos nuestra maquina virtual, ya que este lista, le conectamos el USB y tenemos esto:
Imagen 1: Mostrando contenido del USB.
Imagen 2: Controlador de USB en Windows.
Imagen 3: Device Manager de Windows.
No he tenido exito con USB 2.0, pero para lo que lo he necesitado que son las HASP USB Keys me ha funcionado sin problemas.
OS probados y funcionando:
Windows XP ProfesionalSaludos.
Windows 2003 Standard Edition
Windows 7 Profesional
martes, 22 de noviembre de 2011
Centos 5: Migrar MySQL 5.1 de Windows a Linux.
Hola, me encontre con un problema cuando quise migrar una base de datos corriendo MySQL 5.1.x en Windows XP y la trate de migrar a MySQL 5.1 corriendo Centos 5.7.
La base de datos que me interesa es tipo InnoDB, entonces la manera tradicional es atraves del comando mysqldump asi:
mysqldump -f --opt --single-transaction nombre-bd > nombre-bd.sql -u root -h windowsxp-ip -p
Para regresarla:
mysql nombre-bd < nombre-bd.sql -p
Todo esto hecho desde el mismo servidor centos.
Bien ya tenemos nuestra bd, ahora es cuestion de reconfigurar nuestra app que este caso se ejecuta bajo Windows atraves de un ODBC, hecho lo anterior era cuestion de ejecutar el programa.
Pero para mi sorpresa no funciono, el programa empezo a marcar errorres, el odbc decia que todo bien, su test sin problemas, que estaba pasando?
Los logs son benditos, me vi en la necesidad de prender el log mysql, reinicie el servicio y a leer el log.
Lo que sucedia era que la app mandaba los querys a la base de datos en mayusculas, recordar que Unix/Linux son sensibles a las minusculas/mayusculas, siempre han operado asi.
Cuando yo corria el mismo query en la consola de mysql el me decia que encontraba la tabla dada, ahi venia el problema, MySQl windows cuando creo la base de datos la tablas las nombro con Myusculas-Minusculas, cuando mysqldump restaura las tablas en Centos lo hace todo con minusculas ya que asi opera el por default.
Y esto llevo a que la app tronara, lo que hice fue modificar un parametro general de MySQL en centos este:
lower_case_table_names = 1
Por default es 0, lo que hace este parametro es que cuando compara los nombres no verifica si son mayusculas, minusculas, etc, una reiniciada a el servidor, y listo, la app empezo a funcionar.
El parametro va en: /etc/my.cnf.
Saludos!!!
La base de datos que me interesa es tipo InnoDB, entonces la manera tradicional es atraves del comando mysqldump asi:
mysqldump -f --opt --single-transaction nombre-bd > nombre-bd.sql -u root -h windowsxp-ip -p
Para regresarla:
mysql nombre-bd < nombre-bd.sql -p
Todo esto hecho desde el mismo servidor centos.
Bien ya tenemos nuestra bd, ahora es cuestion de reconfigurar nuestra app que este caso se ejecuta bajo Windows atraves de un ODBC, hecho lo anterior era cuestion de ejecutar el programa.
Pero para mi sorpresa no funciono, el programa empezo a marcar errorres, el odbc decia que todo bien, su test sin problemas, que estaba pasando?
Los logs son benditos, me vi en la necesidad de prender el log mysql, reinicie el servicio y a leer el log.
Lo que sucedia era que la app mandaba los querys a la base de datos en mayusculas, recordar que Unix/Linux son sensibles a las minusculas/mayusculas, siempre han operado asi.
Cuando yo corria el mismo query en la consola de mysql el me decia que encontraba la tabla dada, ahi venia el problema, MySQl windows cuando creo la base de datos la tablas las nombro con Myusculas-Minusculas, cuando mysqldump restaura las tablas en Centos lo hace todo con minusculas ya que asi opera el por default.
Y esto llevo a que la app tronara, lo que hice fue modificar un parametro general de MySQL en centos este:
lower_case_table_names = 1
Por default es 0, lo que hace este parametro es que cuando compara los nombres no verifica si son mayusculas, minusculas, etc, una reiniciada a el servidor, y listo, la app empezo a funcionar.
El parametro va en: /etc/my.cnf.
Saludos!!!
miércoles, 26 de octubre de 2011
Windows 7: Como grabar en C: y otros directorios del sistema
Me tope con una app que segun los de soporte me decian que el problema que tenia era que tenia problemas de permisos.
Ahora bien, hice lo necesario, aplique los permisos a el folder como ellos me indicaron y aun asi la aplicacion se rehuzo a instalarse.
De ahi, la persona de soporte me comento que iba a decirme como instalar la app a mano, segui sus instrucciones y nada.
Despues me dijo que iba a revisar con su maquina para ver el problema, me mando un correo y me dijo que haya con el la app funciono, probo en windows 7 32/64 y que todo bien, que el problema era la falta de permisos en mi maquina.
Entonces le pregunte, bien si dices que son por falta de permisos, dime donde los tengo que aplicar? Y claro que ni el sabia donde.
Analizando la app, es una hecha en vb6 aun, los dlls mas nuevos son del 2008, los demas son viejos.
El problema radica en que la app trata de instalar esos DLL en el folder C:\Windows\system32\ y claro que no le permite grabar los archivos.
La app fue hecha para buscar los DLL en system32 y no para correrlos localmente en el folder donde esta el ejecutable como el queria hacerle.
Bien, entonces descomprimi el folder, entre a el archivo CAB que tiene los DLL, y trate de copear todos los DLL a el system32 de mi Windows 7, BOOM, no dejo grabar ninguno.
Empece a investigar el problema, y note que mi usuario que se dice estar en el grupo de "Administrators" no lo es, Microsoft trata de engañarnos haciendonos creer que si lo somos, pero al final vivimos en el engaño.
Leyendo otros foros, habia uno donde nos indican esto, y existe una manera de habilitar el usuario "Administrator" que por default esta deshabilitado por seguridad.
Ya solo, le quitan la palomita para habilitarla, Apply - Ok y listo.
Se deslogean y les aparecera la cuenta para logearse, no tiene password por default.
Recordar que la cuenta por default no tiene password, por ello usenla y cierrenla.
NOTA: Algo que note cuando entre con el usuario Administrator es que los compartidos dejaron de operar, no me he metido mas a fondo pero en cuanto regrese con mi usuario normal los compartidos volvieron a trabajar.
Ahora bien, hice lo necesario, aplique los permisos a el folder como ellos me indicaron y aun asi la aplicacion se rehuzo a instalarse.
De ahi, la persona de soporte me comento que iba a decirme como instalar la app a mano, segui sus instrucciones y nada.
Despues me dijo que iba a revisar con su maquina para ver el problema, me mando un correo y me dijo que haya con el la app funciono, probo en windows 7 32/64 y que todo bien, que el problema era la falta de permisos en mi maquina.
Entonces le pregunte, bien si dices que son por falta de permisos, dime donde los tengo que aplicar? Y claro que ni el sabia donde.
Analizando la app, es una hecha en vb6 aun, los dlls mas nuevos son del 2008, los demas son viejos.
El problema radica en que la app trata de instalar esos DLL en el folder C:\Windows\system32\ y claro que no le permite grabar los archivos.
La app fue hecha para buscar los DLL en system32 y no para correrlos localmente en el folder donde esta el ejecutable como el queria hacerle.
Bien, entonces descomprimi el folder, entre a el archivo CAB que tiene los DLL, y trate de copear todos los DLL a el system32 de mi Windows 7, BOOM, no dejo grabar ninguno.
Empece a investigar el problema, y note que mi usuario que se dice estar en el grupo de "Administrators" no lo es, Microsoft trata de engañarnos haciendonos creer que si lo somos, pero al final vivimos en el engaño.
Leyendo otros foros, habia uno donde nos indican esto, y existe una manera de habilitar el usuario "Administrator" que por default esta deshabilitado por seguridad.
Figura 1. Cuenta de Administrator.
Por default como indica la Figura 1, la cuenta esta deshabilitada.
Figura 2. Caracteristicas de la cuenta.
Ya solo, le quitan la palomita para habilitarla, Apply - Ok y listo.
Notaran que la flecha ya no aparece en el usuario, por seguridad esta cuenta si es la de Administrator que teniamos en XP/2000, la que usamos es una de usuario normal con privilegios extras.
Se deslogean y les aparecera la cuenta para logearse, no tiene password por default.
Una recomendacion que les hago, esta cuenta usenla para hacer aquellas cosas que su usuario normal no se los permite en mi caso:
Grabar archivos en el C:\windows\system32\ como los DL por ejemplo.
Ya lo hice, una vez terminada mi tarea, deshabilito de nuevo la cuenta y entro con mi usuario normal, ya que con el si puedo hacer todas mis labores excepto grabar los DLL de mi aplicacion X.
No abusen de esta cuenta, usenla cuando en realidad tengan problemas, esta forma de trabajar de Windows 7 no es mala, desgraciadamente ellos no proporcionan la informacion real, el foro donde lei todo esto ahi viene infinidad de gente que tuvo problemas parecidos a el mio, y varios de ellos indican que hasta hablaron con personas de soporte y aun asi ni ellos mismos lograron solucionar el problema, ni modo asi nos quieren tener y aparte nos cobran.
Recordar que la cuenta por default no tiene password, por ello usenla y cierrenla.
NOTA: Algo que note cuando entre con el usuario Administrator es que los compartidos dejaron de operar, no me he metido mas a fondo pero en cuanto regrese con mi usuario normal los compartidos volvieron a trabajar.
Saludos!!!
Suscribirse a:
Entradas (Atom)


