En esta sección voy a incluir todas las 'chuletas' que más utilizo, porque soy de los que piensan que es mejor un lápiz pequeño a una memoria grande, así que, todas esas cosas que utilizo muy de vez en cuando, las anoto para no tener que buscarlas otra vez, y que mejor sitio que aquí, donde nos podemos beneficiar todos.
Siendo administrador de sistemas de varios equipos y servidores, y algunos de ellos con windows, se hace inevitable tener que modificar la configuración de los usuarios para administrar la política de permisos y restricciones.
Hay un comando que te permite llegar a esta ventana de configuración sin tener que pasar por el panel de control y que, además, ofrece muchas posibilidades es
lusrmgr.msc
Una de las posibilidades, entre otras, es la creación/modificación/eliminación de usuarios y los perfiles que deban tener. Pruebalo y ya me contarás.
Este es el comando que utilizo para apagar el ordenador con windows. La importancia de esta orden va más allá de la utilización en el propio equipo.
Lo bueno de esta orden es que se puede utilizar para apagar todos los equipos que estén dentro de la red local a través de telnet, con la comodidad de no tener que ir, puesto por puesto, apagándolos todos.
shutdown.exe -t 6
El 6 le indica los segundos de espera que doy por si algún usuario que lo este utilizando que le de tiempo de guardar los cambios.
Como decía alguien, una imagen vale más que mil palabras, y es cierto, pero en este caso, una palabra vale más que 4 bloques de 3 números.
Cuando controlamos varios equipos informáticos dentro de una red, es más fácil, y más rápido, tener las direcciones ip registradas en un archivo para acceder a ellos, de esta forma se consume menos recursos de la red y se alivian la recarga de las DNS.
Este archivo existe en linux, /etc/hosts, y en windows c:\windows\system32\drivers\etc\hosts
Tampoco voy a hacer una tesis doctoral de estos ficheros, lo único que me queda por decir es que el archivo contiene las asignaciones de las direcciones IP a los nombres de host, y cada una debe permanecer en una linea individual. La dirección y el nombre de host deben separarse con, al menos, un espacio.
Ejemplo:
192.168.1.1 router # ip del router
Con esta configuración, en vez de tener que escribir http://192.168.1.1, escribimos http://router, y nos lleva a la configuración del router, suponiendo que el gateway estuviera en 192.168.1.1
Estos son los comandos que utilizo para configurar automáticamente la red en el portátil cada vez que tengo que ir a algún sitio donde ya conozco la configuración. Así, me evito tener que preguntar por enésima vez la ip que puedo utilizar dentro de la red o tener que estar escribiendo la ip y las dns.
Si solo vas a utilizar 2 ip's distintas no merece la pena, pero desde el momento que vas a utilizar 6 o 7... el tema cambia un poco.
Con este comando guardamos la configuración que estemos utilizando en este preciso momento, con lo que la primera vez toca hacerlo a mano.
netsh dump > c:\config_station.txt
Con este segundo comando, directamente asignamos automáticamente la configuración sin tener que escribir más que esto.
netsh exec c:\config_station.txt
Este comando debe utilizarse como root, y sirve para castellanizar o 'españolizar', vamos poner en español, tu distribución de linux basada en debian.
dpkg-reconfigure locale
dpkg-reconfigure console-data
Lo ejecutamos, y cuando nos pidan los datos, le respondemos, SIEMPRE que español.
Esto sirve para ponerlo en español o en cualquier idioma que nos de opción.
En la configuración de la red de blogs Live in Blogs he tenido que recurrir a personalizaciones en la configuracion del servidor y como no lo podia hacer directamente en httpd.conf lo he hecho utilizando el archivo .htaccess y he aquí algunas de las opciones que nos ofrece.
Aquí teneis un listado de las que he ido encontrando en internet.
Activar la busqueda de directorios
Options +Indexes
## bloqueas unos cuantos tipos de ficheros
IndexIgnore *.wmv *.mp4 *.avi
Desactiva la busqueda de directorios
Options All -Indexes
Personaliza los mensajes de error
ErrorDocument 403 /forbidden.html
ErrorDocument 404 /notfound.html
ErrorDocument 500 /servererror.html
Trabajando con HTML/SHTML
AddType text/html .html
AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
AddHandler server-parsed .htm
Cambia la pagina por defecto
DirectoryIndex myhome.htm index.htm index.php
Bloquea usuarios segun desde donde venga
< limit GET POST PUT >
order deny,allow
deny from 202.54.122.33
deny from 8.70.44.53
deny from .spammers.com
allow from all
< /limit >
Permite solamente a los usuarios de la red local
order deny,allow
deny from all
allow from 192.168.0.0/24
Redirige los visitantes a una nueva pagina/directorio
Redirect oldpage.html http: // www . domainname . com / newpage.html
Redirect /olddir http: // www . domainname . com / newdir /
Bloqueo al site desde remitentes especificos
RewriteEngine on
RewriteCond %{HTTP_REFERER} site-to-block\.com [NC]
RewriteCond %{HTTP_REFERER} site-to-block-2\.com [NC]
RewriteRule .* - [F]
Bloquea el robo de imagenes (hotlinking)
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]
Si prefieres mostrar un mensaje de 'Stealing is Bad'
# Añadir esta linea debajo de hotlink
RewriteRule \.(gif|jpg)$ http :// www . mydomain . com / dontsteal.gif [R,L]
Prohibir el acceso a archivos
< files file-name >
order allow,deny
deny from all
< /files >
Evitar error 500
# Evitar el error500 usando charset
AddDefaultCharset utf-8
Permitir acceso a CGI
Options +ExecCGI
AddHandler cgi-script cgi pl
# Permitir la ejecucion de todos los scripts en un directorio
# SetHandler cgi-script
Directorios Protegidos por Contraseña
Usa '.htaccess Password Generator' y sigue las instrucciones!
Desactiva magic_quotes_gpc
# Solo si usas PHP
< ifmodule mod_php4.c >
php_flag magic_quotes_gpc off
< /ifmodule >
Una de las características que nos ofrece drupal es la indexación de la información para que podamos realizar búsquedas en nuestro portal.
Para indexar la base de datos hay 2 formas posibles, manual o automática. La indexación manual se puede utilizar si el volumen de información generada es pequeña y sólo lo hace una persona porque es más fácil controlarlo, pero no es muy factible si el volumen es superior.
La indexación automática hay que hacerla abriendo el archivo cron.php de drupal, para ello se puede configurar de 3 formas diferentes.
/usr/bin/lynx -source http://example.com/cron.php
/usr/bin/wget http://example.com/cron.php
curl --silent --compressed http://example.com/cron.php
La razón de ser de este artículo no es esto, es la configuración de cron cuando no se tiene permisos para ejecutarlo.
¿Cómo puedo indexar las entradas de drupal si no tengo permisos?
Después de navegar mucho por internet y darle varias vueltas, llegué a la conclusión de que una posible solución sea ejecutar este código.
/usr/bin/php -q $HOME/cron.php
La variable $HOME es la ubicación del archivo cron.php
El tiempo de repetición lo debes hacer en función del volumen, porque hacerlo cada minuto cuando hay información nueva cada mes.
De esta forma ya no tienes excusa para no indexar automaticamente drupal.
Uno de los muchos problemas con los que me he encontrado en la configuración y mantenimiento de esta página web, es que no solía poner el protocolo completo, se pasaba las 'www' por el arco del triunfo, y me gusta controlar todo y esto no podía escapar de ese control. Además, es importante para la indexación en los buscadores porque, según google, no es la misma página http://www.cyfuss.com que http://cyfuss.com, así que lo voy a cambiar.
En cuanto busques un poco en internet sobre esto vas a encontrar mucha info, pero este es el que hago yo, porque así lo tengo en mi recetario para cuando tenga que hacerlo otra vez. Lo único que tienes que hacer es buscar el archivo .htaccess y escribir estas líneas. Esto es para que SIEMPRE aparezcan las www.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.TUDOMINIO\.com$
RewriteRule ^(.*)$ http://www.TUDOMINIO.com/$1 [L,R=301]
Pues ya lo tienes solucionado. Disfrútalo.
Este código funciona perfectamente, pero he encontrado códigos en internet, muy similares a este que daban fallos, así que te puedo asegurar que este funciona.
Uno de los problemas que tenemos que sufrir los usuarios de linux y windows, aparte de la compatibilidad entre las aplicaciones, es la compatibilidad entre el formato de las particiones. Me ha pasado en varias ocasiones que las particiones no se han podido comprobar en alguno de los 2 sistemas, ya sea en Windows XP o Linux, así que la forma que he encontrado para solucionarlo ha sido formatear la partición desde windows XP, para estas cosas linux se comporta como un campeón.
Los pasos han sido:
Eso si, lo formateamos con FAT32 para facilitar compartir los datos en los 2 sistemas y la unidad es 'd:' porque cuando creamos la particion dejamos 'd' como letra de la unidad.
El problema de hotlink es que consume el propio ancho de banda de cada dominio. Si se hace con una sola imagen, una sola vez, no pasa nada, el problema es cuando el mayor ancho de banda lo están consumiendo en webs que no son tuyas. Yo he sufrido este problema y cuando ya el ancho ha sido excesivo he tenido que darle una solución a este problema.
El hecho de que te enlacen no es malo, pero al menos, que si toman prestadas las fotos, al menos que manden un mail pidiendo permiso y/o que hagan una referencia directa a la web de procedencia... vamos, respetar un poco la licencia Creative Commons
Bien, la solución a este problema ha sido pegar en .htaccess este código.
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?TUPROPIAWEB.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|bmp|zip|rar|mp3)\$ - [F,NC]
Si utilizas gallery la mejor solución es añadir la extension 'php' para que nadie pueda enlazarlas.
ACTUALIZACIÓN
Es posible que desciendan el numero de visitas por estar filtrando la extension php, con lo que lo mas sensato puede ser buscar otra cadena de caracteres que se repitan en todas las imagenes y utilizarla para anular el hotlink
Para instalar dotLRN, necesitamos tener aolserver y postgresql instalados. Para hacerlo utilizaremos apt-get install
AOLServer4.0 y librerías
# apt-get install aolserver4 aolserver4-nspostgres aolserver4-nssha1 aolserver4-nsxml aolserver4-nsopenssl aolserver4-nscache aolserver4-dev
# apt-get install tdom htmldoc tcllib
# update-rc.d -f aolserver4 remove
# /etc/init.d/aolserver4 stop
Postgresql 8.1
# apt-get install postgresql-8.1 postgresql-client-8.1
Editamos /etc/postgresql/8.1/main/postgresql.conf y añadiremos o cambiaremos las siguentes lineas:
Reiniciaremos el servicio postgresql (como root):
# /etc/init.d/postgresql-8.1 restart
dotLRN
Creamos un usuario para dotLRN:
# addgroup web
# adduser nsadmin -ingroup web
Logueamos como 'nsadmin' y descomprimimos el tarball de dotLRN que hemos descargado de esta url:
http://openacs.org/projects/dotlrn/download/download/dotlrn-2.3.1.tgz?re...
# su - nsadmin
# tar -zxvf dotlrn-2.3.1.tgz
Esto creará el directorio 'dotlrn-2.3.1/' bajo el HOME del usuario nsadmin. Lo renombramos a 'dotlrn':
# cd /home/nsadmin
# mv dotlrn-2.3.1 dotlrn
Ahora sustituimos los ficheros adjuntos como sigue:
config.tcl --> /home/nsadmin/dotlrn/etc/config.tcl
run --> /home/nsadmin/dotlrn/etc/daemontools/run
[config.tcl]
[run]
El sitio ya esta configurado para correr en localhost, puerto 8000.
Ya tenemos todo, ahora necesitamos crear una base de datos para dotlrn. Para ello nos logueamos como usuario postgres:
# createuser nsadmin
Respondemos 'y' a todas las preguntas.
Salimos del usuario postgres y logueamos como nsadmin para crear la base de datos 'dotlrn' y arrancamos el servicio:
# createdb -E UNICODE dotlrn
Ahora iniciamos el servidor:
# /home/nsadmin/dotlrn/etc/daemontools/run
Apuntamos el navegador a http://localhost:8000 y seguimos las instrucciones que nos indiquen. Una vez que este todo creado el servicio se para. Comienzalo de nuevo utilizando el comando anterior.
Cuando el servicio sea reiniciado, lo primero que hay que hacer es crear comunidades.
Logueamos con el usuario que creamos durante la instalacion.
Hacemos click en la pestaña 'Administracion'.
Clickamos en 'Comunidades' -> 'Nueva Comunidad'.
Rellenamos el formulario para crear la Comunidad.
¡Disfruta!
Traduccion del manual de Emmanuelle Raffenne
Nota del Traductor
He seguido esta guía al pie de la letra, y me ha funcionado correctamente, pero es importante tener en cuenta, que al iniciar el servidor con el archivo run, tarda casi un minuto en estar funcional. El porque no lo sé, imagino que será por la configuración del servidor o porque el pc es un poco lento, así que no desesperes porque veas un 'conection broken'.
Tambien me he tomado la libertad de usar mi usuario en vez de 'nsadmin', pero lo hago por comodidad, prefiero tener todos los archivos en mi HOME, porque si me voy a dedicar al desarrollo, debo tenerlos a mano para el tema de backups. Si tambien lo quieres hacer así, debes tener mucho cuidado con modificar los 2 ficheros que copias y con el usuario de la base de datos.
Otro asunto MUY IMPORTANTE, debes tener en cuenta que si tienes apache corriendo, se estarán pisando con lo que habrá uno de los 2 que no habrá arrancado, así que ya sabes que si te falla, debes o cambiarle la configuración de puertos o parar uno de los 2 servicios.
ns_log notice "nsd.tcl: starting to read config file..."
######################################################################
#
# Instance-specific settings
# These default settings will only work in limited circumstances
# Two servers with default settings cannot run on the same host
#
######################################################################
#---------------------------------------------------------------------
# change to 80 and 443 for production use
set httpport 8000
set httpsport 8443
# If setting port below 1024 with AOLServer 4, read comments in file:
# /var/lib/aolserver/service0/packages/etc/daemontools/run
# The hostname and address should be set to actual values.
# setting the address to 0.0.0.0 means aolserver listens on all interfaces
set hostname localhost
#set address [ns_info address]
set address 127.0.0.1
# Note: If port is privileged (usually < 1024), OpenACS must be
# started by root, and, in AOLserver 4, the run script have a
# '-b address' flag which matches the address according to settings (above)
set server "dotlrn"
set servername "dotLRN"
set serverroot "/home/nsadmin/${server}"
#---------------------------------------------------------------------
# which database do you want? postgres or oracle
set database postgres
set db_name $server
if { $database == "oracle" } {
set db_password "mysitepassword"
} else {
set db_host localhost
set db_port ""
set db_user nsadmin
}
#---------------------------------------------------------------------
# if debug is false, all debugging will be turned off
set debug false
set homedir /usr/lib/aolserver4
set bindir [file dirname [ns_info nsd]]
set max_file_upload_mb 20
set max_file_upload_min 5
######################################################################
#
# End of instance-specific settings
#
# Nothing below this point need be changed in a default install.
#
######################################################################
#---------------------------------------------------------------------
#
# AOLserver's directories. Autoconfigurable.
#
#---------------------------------------------------------------------
# Where are your pages going to live ?
set pageroot ${serverroot}/www
set directoryfile index.tcl,index.adp,index.html,index.htm
#---------------------------------------------------------------------
# Global server parameters
#---------------------------------------------------------------------
ns_section ns/parameters
ns_param serverlog ${serverroot}/log/error.log
ns_param home $homedir
# maxkeepalive is ignored in aolserver4.x
ns_param maxkeepalive 0
ns_param logroll on
ns_param maxbackup 5
ns_param debug $debug
# ns_param mailhost localhost
# setting to Unicode by default
# see http://dqd.com/~mayoff/encoding-doc.html
ns_param HackContentType 1
ns_param DefaultCharset utf-8
ns_param HttpOpenCharset utf-8
ns_param OutputCharset utf-8
ns_param URLCharset utf-8
#---------------------------------------------------------------------
# Thread library (nsthread) parameters
#---------------------------------------------------------------------
ns_section ns/threads
ns_param mutexmeter true ;# measure lock contention
# The per-thread stack size must be a multiple of 8k for AOLServer to run under MacOS X
ns_param stacksize [expr 128 * 8192]
#
# MIME types.
#
ns_section ns/mimetypes
# Note: AOLserver already has an exhaustive list of MIME types:
# see: /usr/local/src/aolserver-4.{version}/aolserver/nsd/mimetypes.c
# but in case something is missing you can add it here.
ns_param Default text/plain
ns_param NoExtension text/plain
ns_param .pcd image/x-photo-cd
ns_param .prc application/x-pilot
ns_param .xls application/vnd.ms-excel
ns_param .doc application/vnd.ms-word
#---------------------------------------------------------------------
#
# Server-level configuration
#
# There is only one server in AOLserver, but this is helpful when multiple
# servers share the same configuration file. This file assumes that only
# one server is in use so it is set at the top in the "server" Tcl variable
# Other host-specific values are set up above as Tcl variables, too.
#
#---------------------------------------------------------------------
ns_section ns/servers
ns_param $server $servername
#
# Server parameters
#
ns_section ns/server/${server}
ns_param directoryfile $directoryfile
ns_param pageroot $pageroot
ns_param maxconnections 100 ;# Max connections to put on queue
ns_param maxdropped 0
ns_param maxthreads 10
ns_param minthreads 5
ns_param threadtimeout 120 ;# Idle threads die at this rate
ns_param globalstats false ;# Enable built-in statistics
ns_param urlstats false ;# Enable URL statistics
ns_param maxurlstats 1000 ;# Max number of URL's to do stats on
# ns_param directoryadp $pageroot/dirlist.adp ;# Choose one or the other
# ns_param directoryproc _ns_dirlist ;# ...but not both!
# ns_param directorylisting fancy ;# Can be simple or fancy
#
# Special HTTP pages
#
ns_param NotFoundResponse "/global/file-not-found.html"
ns_param ServerBusyResponse "/global/busy.html"
ns_param ServerInternalErrorResponse "/global/error.html"
#---------------------------------------------------------------------
#
# ADP (AOLserver Dynamic Page) configuration
#
#---------------------------------------------------------------------
ns_section ns/server/${server}/adp
ns_param map /*.adp ;# Extensions to parse as ADP's
# ns_param map "/*.html" ;# Any extension can be mapped
ns_param enableexpire false ;# Set "Expires: now" on all ADP's
ns_param enabledebug $debug ;# Allow Tclpro debugging with "?debug"
ns_param defaultparser fancy
ns_section ns/server/${server}/adp/parsers
ns_param fancy ".adp"
ns_section ns/server/${server}/redirects
ns_param 404 "global/file-not-found.html"
ns_param 403 "global/forbidden.html"
#
# Tcl Configuration
#
ns_section ns/server/${server}/tcl
ns_param library ${serverroot}/tcl
ns_param autoclose on
ns_param debug $debug
#---------------------------------------------------------------------
#
# Rollout email support
#
# These procs help manage differing email behavior on
# dev/staging/production.
#
#---------------------------------------------------------------------
ns_section ns/server/${server}/acs/acs-rollout-support
# EmailDeliveryMode can be:
# default: Email messages are sent in the usual manner.
# log: Email messages are written to the server's error log.
# redirect: Email messages are redirected to the addresses specified
# by the EmailRedirectTo parameter. If this list is absent
# or empty, email messages are written to the server's error log.
# filter: Email messages are sent to in the usual manner if the
# recipient appears in the EmailAllow parameter, otherwise they
# are logged.
# ns_param EmailDeliveryMode redirect
# ns_param EmailRedirectTo somenerd@yourdomain.test, othernerd@yourdomain.test
# ns_param EmailAllow somenerd@yourdomain.test,othernerd@yourdomain.test
#---------------------------------------------------------------------
#
# WebDAV Support (optional, requires oacs-dav package to be installed
#
#---------------------------------------------------------------------
ns_section ns/server/${server}/tdav
ns_param propdir ${serverroot}/data/dav/properties
ns_param lockdir ${serverroot}/data/dav/locks
ns_param defaultlocktimeout "300"
ns_section ns/server/${server}/tdav/shares
ns_param share1 "OpenACS"
# ns_param share2 "Share 2 description"
ns_section ns/server/${server}/tdav/share/share1
ns_param uri "/dav/*"
# all WebDAV options
ns_param options "OPTIONS COPY GET PUT MOVE DELETE HEAD MKCOL POST PROPFIND PROPPATCH LOCK UNLOCK"
#ns_section ns/server/${server}/tdav/share/share2
# ns_param uri "/share2/path/*"
# read-only WebDAV options
# ns_param options "OPTIONS COPY GET HEAD MKCOL POST PROPFIND PROPPATCH"
#---------------------------------------------------------------------
#
# Socket driver module (HTTP) -- nssock
#
#---------------------------------------------------------------------
ns_section ns/server/${server}/module/nssock
ns_param timeout 120
ns_param address $address
ns_param hostname $hostname
ns_param port $httpport
# setting maxinput higher than practical may leave the server vulnerable to resource DoS attacks
# see http://www.panoptic.com/wiki/aolserver/166
ns_param maxinput [expr {$max_file_upload_mb * 1024 * 1024}] ;# Maximum File Size for uploads in bytes
ns_param maxpost [expr {$max_file_upload_mb * 1024 * 1024}] ;# Maximum File Size for uploads in bytes
ns_param recvwait [expr {$max_file_upload_min * 60}] ;# Maximum request time in minutes
# maxsock will limit the number of simultanously returned pages,
# regardless of what maxthreads is saying
ns_param maxsock 100 ;# 100 = default
# On Windows you need to set this parameter to define the number of
# connections as well (it seems).
ns_param backlog 5 ;# if < 1 == 5
# Optional params with defaults:
ns_param bufsize 16000
ns_param rcvbuf 0
ns_param sndbuf 0
ns_param socktimeout 30 ;# if < 1 == 30
ns_param sendwait 30 ;# if < 1 == socktimeout
ns_param recvwait 30 ;# if < 1 == socktimeout
ns_param closewait 2 ;# if < 0 == 2
ns_param keepwait 30 ;# if < 0 == 30
ns_param readtimeoutlogging false
ns_param serverrejectlogging false
ns_param sockerrorlogging false
ns_param sockshuterrorlogging false
#---------------------------------------------------------------------
#
# Access log -- nslog
#
#---------------------------------------------------------------------
ns_section ns/server/${server}/module/nslog
ns_param debug false
ns_param dev false
ns_param enablehostnamelookup false
ns_param file ${serverroot}/log/${server}.log
ns_param logcombined true
ns_param extendedheaders COOKIE
# ns_param logrefer false
# ns_param loguseragent false
ns_param logreqtime true
ns_param maxbackup 1000
ns_param rollday *
ns_param rollfmt %Y-%m-%d-%H:%M
ns_param rollhour 0
ns_param rollonsignal true
ns_param rolllog true
#---------------------------------------------------------------------
#
# nsjava - aolserver module that embeds a java virtual machine. Needed to
# support webmail. See http://nsjava.sourceforge.net for further
# details. This may need to be updated for OpenACS4 webmail
#
#---------------------------------------------------------------------
ns_section ns/server/${server}/module/nsjava
ns_param enablejava off ;# Set to on to enable nsjava.
ns_param verbosejvm off ;# Same as command line -debug.
ns_param loglevel Notice
ns_param destroyjvm off ;# Destroy jvm on shutdown.
ns_param disablejitcompiler off
ns_param classpath /usr/local/jdk/jdk118_v1/lib/classes.zip:${bindir}/nsjava.jar:${pageroot}/webmail/java/activation.jar:${pageroot}/webmail/java/mail.jar:${pageroot}/webmail/java
#---------------------------------------------------------------------
#
# CGI interface -- nscgi, if you have legacy stuff. Tcl or ADP files inside
# AOLserver are vastly superior to CGIs. I haven't tested these params but they
# should be right.
#
#---------------------------------------------------------------------
#ns_section "ns/server/${server}/module/nscgi"
# ns_param map "GET /cgi-bin/ ${serverroot}/cgi-bin"
# ns_param map "POST /cgi-bin/ ${serverroot}/cgi-bin"
# ns_param Interps CGIinterps
#ns_section "ns/interps/CGIinterps"
# ns_param .pl "/usr/bin/perl"
#---------------------------------------------------------------------
#
# PAM authentication
#
#---------------------------------------------------------------------
ns_section ns/server/${server}/module/nspam
ns_param PamDomain "pam_domain"
#---------------------------------------------------------------------
#
# OpenSSL for Aolserver 3.3 and 4
#
#---------------------------------------------------------------------
if { [ns_info version] < 4} {
#---------------------------------------------------------------------
# OpenSSL for Aolserver 3.3
#---------------------------------------------------------------------
ns_section "ns/server/${server}/module/nsopenssl"
ns_param ModuleDir ${serverroot}/etc/certs
# NSD-driven connections:
ns_param ServerPort $httpsport
ns_param ServerHostname $hostname
ns_param ServerAddress $address
ns_param ServerCertFile certfile.pem
ns_param ServerKeyFile keyfile.pem
ns_param ServerProtocols "SSLv2, SSLv3, TLSv1"
ns_param ServerCipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
ns_param ServerSessionCache true
ns_param ServerSessionCacheID 1
ns_param ServerSessionCacheSize 512
ns_param ServerSessionCacheTimeout 300
ns_param ServerPeerVerify false
ns_param ServerPeerVerifyDepth 3
ns_param ServerCADir ca
ns_param ServerCAFile ca.pem
ns_param ServerTrace false
# For listening and accepting SSL connections via Tcl/C API:
ns_param SockServerCertFile certfile.pem
ns_param SockServerKeyFile keyfile.pem
ns_param SockServerProtocols "SSLv2, SSLv3, TLSv1"
ns_param SockServerCipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
ns_param SockServerSessionCache true
ns_param SockServerSessionCacheID 2
ns_param SockServerSessionCacheSize 512
ns_param SockServerSessionCacheTimeout 300
ns_param SockServerPeerVerify false
ns_param SockServerPeerVerifyDepth 3
ns_param SockServerCADir internal_ca
ns_param SockServerCAFile internal_ca.pem
ns_param SockServerTrace false
# Outgoing SSL connections
ns_param SockClientCertFile certfile.pem
ns_param SockClientKeyFile keyfile.pem
ns_param SockClientProtocols "SSLv2, SSLv3, TLSv1"
ns_param SockClientCipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
ns_param SockClientSessionCache false
ns_param SockClientSessionCacheID 3
ns_param SockClientSessionCacheSize 512
ns_param SockClientSessionCacheTimeout 300
ns_param SockClientPeerVerify false
ns_param SockServerPeerVerifyDepth 3
ns_param SockClientCADir ca
ns_param SockClientCAFile ca.pem
ns_param SockClientTrace false
# OpenSSL library support:
# ns_param RandomFile /some/file
ns_param SeedBytes 1024
} else {
#---------------------------------------------------------------------
# OpenSSL for Aolserver 4
#---------------------------------------------------------------------
ns_section "ns/server/${server}/module/nsopenssl"
# Note this portion of the configuration is not perfect, and you
# will get errors in the your error.log. However, it does
# work. Fixes welcome.
# this is used by acs-tcl/tcl/security-procs.tcl to get the
# https port.
ns_param ServerPort $httpsport
# setting maxinput higher than practical may leave the server vulnerable to resource DoS attacks
# see http://www.panoptic.com/wiki/aolserver/166
# must set maxinput for nsopenssl as well as nssock
ns_param maxinput [expr {$max_file_upload_mb * 1024 * 1024}] ;# Maximum File Size for uploads in bytes
# We explicitly tell the server which SSL contexts to use as defaults when an
# SSL context is not specified for a particular client or server SSL
# connection. Driver connections do not use defaults; they must be explicitly
# specificied in the driver section. The Tcl API will use the defaults as there
# is currently no provision to specify which SSL context to use for a
# particular connection via an ns_openssl Tcl command.
ns_section "ns/server/${server}/module/nsopenssl/sslcontexts"
ns_param users "SSL context used for regular user access"
# ns_param admins "SSL context used for administrator access"
ns_param client "SSL context used for outgoing script socket connections"
ns_section "ns/server/${server}/module/nsopenssl/defaults"
ns_param server users
ns_param client client
ns_section "ns/server/${server}/module/nsopenssl/sslcontext/users"
ns_param Role server
ns_param ModuleDir ${serverroot}/etc/certs
ns_param CertFile certfile.pem
ns_param KeyFile keyfile.pem
# ns_param CADir ca-client/dir
# ns_param CAFile ca-client/ca-client.crt
# for Protocols "ALL" = "SSLv2, SSLv3, TLSv1"
ns_param Protocols "SSLv3, TLSv1"
ns_param CipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
ns_param PeerVerify false
ns_param PeerVerifyDepth 3
ns_param Trace false
# following from bartt's nsd4.tcl, might help stablize openssl connections?
# http://www.mail-archive.com/aolserver@listserv.aol.com/msg07092.html
ns_param SessionCache true
ns_param SessionCacheID 1
ns_param SessionCacheSize 512
ns_param SessionCacheTimeout 300
# ns_section "ns/server/${server}/module/nsopenssl/sslcontext/admins"
# ns_param Role server
# ns_param ModuleDir /path/to/dir
# ns_param CertFile server/server.crt
# ns_param KeyFile server/server.key
# ns_param CADir ca-client/dir
# ns_param CAFile ca-client/ca-client.crt
# for Protocols "ALL" = "SSLv2, SSLv3, TLSv1"
# ns_param Protocols "All"
# ns_param CipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
# ns_param PeerVerify false
# ns_param PeerVerifyDepth 3
# ns_param Trace false
ns_section "ns/server/${server}/module/nsopenssl/sslcontext/client"
ns_param Role client
ns_param ModuleDir ${serverroot}/etc/certs
ns_param CertFile certfile.pem
ns_param KeyFile keyfile.pem
# ns_param CADir ${serverroot}/etc/certs
# ns_param CAFile certfile.pem
# for Protocols "ALL" = "SSLv2, SSLv3, TLSv1"
ns_param Protocols "SSLv2, SSLv3, TLSv1"
ns_param CipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP"
ns_param PeerVerify false
ns_param PeerVerifyDepth 3
ns_param Trace false
# following from bartt's nsd4.tcl, might help stablize openssl connections?
# http://www.mail-archive.com/aolserver@listserv.aol.com/msg07092.html
ns_param SessionCache true
ns_param SessionCacheID 1
ns_param SessionCacheSize 512
ns_param SessionCacheTimeout 300
# SSL drivers. Each driver defines a port to listen on and an explitictly named
# SSL context to associate with it. Note that you can now have multiple driver
# connections within a single virtual server, which can be tied to different
# SSL contexts.
ns_section "ns/server/${server}/module/nsopenssl/ssldrivers"
ns_param users "Driver for regular user access"
# ns_param admins "Driver for administrator access"
ns_section "ns/server/${server}/module/nsopenssl/ssldriver/users"
ns_param sslcontext users
# ns_param port $httpsport_users
ns_param port $httpsport
ns_param hostname $hostname
ns_param address $address
# following added per
# http://www.mail-archive.com/aolserver@listserv.aol.com/msg07365.html
# Maximum File Size for uploads:
ns_param maxinput [expr {$max_file_upload_mb * 1024 * 1024}] ;# in bytes
# Maximum request time
ns_param recvwait [expr {$max_file_upload_min * 60}] ;# in minutes
# ns_section "ns/server/${server}/module/nsopenssl/ssldriver/admins"
# ns_param sslcontext admins
# ns_param port $httpsport_admins
# ns_param port $httpsport
# ns_param hostname $hostname
# ns_param address $address
}
#---------------------------------------------------------------------
#
# Database drivers
# The database driver is specified here.
# Make sure you have the driver compiled and put it in {aolserverdir}/bin
#
#---------------------------------------------------------------------
ns_section "ns/db/drivers"
if { $database == "oracle" } {
ns_param ora8 ${bindir}/ora8.so
} else {
ns_param postgres ${bindir}/nspostgres.so ;# Load PostgreSQL driver
}
if { $database == "oracle" } {
ns_section "ns/db/driver/ora8"
ns_param maxStringLogLength -1
ns_param LobBufferSize 32768
}
# Database Pools: This is how AOLserver ``talks'' to the RDBMS. You need
# three for OpenACS: main, log, subquery. Make sure to replace ``yourdb''
# and ``yourpassword'' with the actual values for your db name and the
# password for it, if needed.
#
# AOLserver can have different pools connecting to different databases
# and even different different database servers. See
# http://openacs.org/doc/openacs-5-1/tutorial-second-database.html
ns_section ns/db/pools
ns_param pool1 "Pool 1"
ns_param pool2 "Pool 2"
ns_param pool3 "Pool 3"
ns_section ns/db/pool/pool1
ns_param maxidle 0
ns_param maxopen 0
ns_param connections 5
ns_param verbose $debug
ns_param extendedtableinfo true
ns_param logsqlerrors $debug
if { $database == "oracle" } {
ns_param driver ora8
ns_param datasource {}
ns_param user $db_name
ns_param password $db_password
} else {
ns_param driver postgres
ns_param datasource ${db_host}:${db_port}:${db_name}
ns_param user $db_user
ns_param password ""
}
ns_section ns/db/pool/pool2
ns_param maxidle 0
ns_param maxopen 0
ns_param connections 5
ns_param verbose $debug
ns_param extendedtableinfo true
ns_param logsqlerrors $debug
if { $database == "oracle" } {
ns_param driver ora8
ns_param datasource {}
ns_param user $db_name
ns_param password $db_password
} else {
ns_param driver postgres
ns_param datasource ${db_host}:${db_port}:${db_name}
ns_param user $db_user
ns_param password ""
}
ns_section ns/db/pool/pool3
ns_param maxidle 0
ns_param maxopen 0
ns_param connections 5
ns_param verbose $debug
ns_param extendedtableinfo true
ns_param logsqlerrors $debug
if { $database == "oracle" } {
ns_param driver ora8
ns_param datasource {}
ns_param user $db_name
ns_param password $db_password
} else {
ns_param driver postgres
ns_param datasource ${db_host}:${db_port}:${db_name}
ns_param user $db_user
ns_param password ""
}
ns_section ns/server/${server}/db
ns_param pools "*"
ns_param defaultpool pool1
#---------------------------------------------------------------------
# which modules should be loaded? Missing modules break the server, so
# don't uncomment modules unless they have been installed.
ns_section ns/server/${server}/modules
ns_param nssock ${bindir}/nssock.so
ns_param nslog ${bindir}/nslog.so
ns_param nssha1 ${bindir}/nssha1.so
ns_param nscache ${bindir}/nscache.so
# openacs versions earlier than 5.x requires nsxml
# ns_param nsxml ${bindir}/nsxml.so
#---------------------------------------------------------------------
# nsopenssl will fail unless the cert files are present as specified
# later in this file, so it's disabled by default
# ns_param nsopenssl ${bindir}/nsopenssl.so
# authorize-gateway package requires dqd_utils
# ns_param dqd_utils dqd_utils[expr {int($tcl_version)}].so
# Full Text Search
# ns_param nsfts ${bindir}/nsfts.so
# PAM authentication
# ns_param nspam ${bindir}/nspam.so
# LDAP authentication
# ns_param nsldap ${bindir}/nsldap.so
# These modules aren't used in standard OpenACS installs
# ns_param nsperm ${bindir}/nsperm.so
# ns_param nscgi ${bindir}/nscgi.so
# ns_param nsjava ${bindir}/libnsjava.so
# ns_param nsrewrite ${bindir}/nsrewrite.so
if { [ns_info version] >= 4 } {
# Required for AOLserver 4.x
ns_param nsdb ${bindir}/nsdb.so
} else {
# Required for AOLserver 3.x
ns_param libtdom ${bindir}/libtdom.so
}
# nsthread library which should become standard in 5.3
if {[file exists ${homedir}/lib/thread2.6.4/libthread2.6.4[info sharedlibextension]]} {
ns_param libthread ${homedir}/lib/thread2.6.4/libthread2.6.4[info sharedlibextension]
}
ns_log notice "nsd.tcl: using threadsafe tcl: [info exists tcl_platform(threaded)]"
ns_log notice "nsd.tcl: finished reading config file."
if {[ns_info version] >= 4.5} {
ns_limits set default -maxupload [ns_config ns/server/${server}/module/nssock maxinput]
}
#!/bin/sh
# aolserver4 recommends descriptors limit (FD_SETSIZE) to be set to 1024,
# which is standard for most OS distributions
# For freebsd systems, uncomment following line:
# ulimit -n 1024
# give time for Postgres to come up
# see http://openacs.org/forums/message-view?message_id=176100
sleep 4
exec /usr/lib/aolserver4/bin/nsd -it /home/nsadmin/dotlrn/etc/config.tcl -u nsadmin -g web
# For AOLserver 4 using privileged ports (usually < 1024), add the flag
# -b youraddress:yourport to the nsd command
Este comando esta muy bien por si tienes que matar algun proceso que se queda colgado en windows.
En este ejemplo en concreto, esta muy bien para los sysadmin que esten cansados de recordar amablemente que el msn no se puede utilizar en horas de trabajo.
Sucede lo mismo que con shutdown, tambien se puede utilizar a traves de telnet.
TASKKILL /F /IM msnmsgr.exe
Para modificar la ruta de cada web, lo que se conoce por breadcrumb, hay que hacer estas modificaciones.
template.php
function 'TU-THEME'_breadcrumb($breadcrumb) {
$sep = ' > '; /*la separacion que quieras añadir*/
if (count($breadcrumb) > 0) {
return implode($breadcrumb, $sep) . $sep;
} else {
return t("");
}
page.tpl.php
$breadcrumb . $title
Con estas modificaciones conseguimos cambiar el separador de la ruta y añadir el titulo de la web donde estas en todo momento.
En ocasiones suele pasar que hay un pico de luz y tu pc no arranca más. La primera vez que me pasó lo primero que pensé fue que la fuente de alimentacion habia muerto asi, que desconecté todos los cables del pc, y lo puse en medio de la habitación. Por supuesto me acordé de la familia de los de la compañia de la luz porque me habían dejado sin pc, pero no se por que, me dió por volver a conectarlo para ver si podía hacerlo resucitar y casualmente, funcionó.
Al cabo del tiempo lei que las fuentes de alimentacion, en cuanto detectan un pico de luz, para prevenir una sobretension y que se puedan quemar los componentes hacen saltar un 'automatico' que bloquea la entrada de electricidad, y que la forma de desbloquearlo es desconectarlo de la corriente electrica durante unos minutos y presionar el boton de encendido.
Así que ya sabeis, si vuestro pc no enciende porque lo habeis encendido/apagado demasiado rapido o porque se ha ido la luz, probad a desconectarlo de la corriente.
Cuando se hace una instalación desde cero, debemos tener mucho cuidado con la configuración predeterminada porque puede ocasionar más de un dolor de cabeza. El caso que nos atañe ahora es la subida de archivos via WEB.
Despues de preparar el servidor con debian, mysql server y php5, para hacer las pruebas necesarias a las aplicaciones php que voy haciendo, quise importar una base de datos de unos 20 MB con phpmyadmin, y no paraba de darme problemas porque el archivo que intentaba subir era demasiado grande, así que estuve buscando en los ficheros de configuración para ver si podía corregir el fallo. LLegué a poner hasta 2000GB, y al cargar phpmyadmin, se podía comprobar que la capacidad máxima que podía subir era de 2000GB, pero seguía fallando.
Después de darle muchas vueltas y ver en muchas ocasiones 'Consulte la documentación para corregir el fallo. Excedió el tamaño máximo del archivo', llegué a la conclusión de que el fallo era que estaba poniendo las unidades completas, es decir, si el máximo eran 50 MB, ponía 50MB, y no como se debe poner correctamente 50M.
Para todos los que tengais ese problema, yo lo he tenido con PHP5 y Apache2, el archivo que hay que retocar es /etc/php5/apache2/php.ini, y las lineas estas:
post_max_size = 200M
upload_max_filesize = 200M
Así, me evito tener que estar modificando el tamaño en ocasiones futuras, y como además, es mi servidor de pruebas, me facilita el trabajo poder subir archivos a traves de web.
Espero que os sirva.
Bueno, esto esta probado en windows 2000 professional. Para conseguir entrar en este sistema podemos seguir unos pasos.
Lo primero que tenemos que hacer es crear un disco de arranque para evitar que se inicie el ordenador desde el disco duro. Lo podemos hacer de dos formas: Una es descargarlo de http://www.bootdisk.com, y la otra desde el cd de instalacion de windows 2000, lo tienes en d:\bootdisk\makeboot (suponemos d como la unidad de cd-rom)
Despues de esto (son 4 diskettes), reiniciamos el pc con los diskettes.
Lo segundo es elegir el usuario, el 1 es el administrador, 2.... Esto no 'funciona' si solo tienes la cuenta de administrador.
Para guardar el archivo lo podemos hacer: 'c:\copy c:\winnt\system32\config\sam a:'. Con esto guardamos el archivo para su posterior crackeo. Sin embargo, para borrarlo y poder entrar como administrador: 'c:\del c:\winnt\system32\config\sam'
Pues con esto ya esta, tenemos el escritorio que tiene al administrador. Si lo que queremos es saber la pass que tenia el administrador, buscamos y descargamos el programa Cain y Abel 2.5 y solucionado.
Aclaraciones Previas
Hay varias formas de saltarse las password de una página web. De ello depende la forma con la que este protegida, la tecnología utilizada.... Aquí vamos a tratar solo 2 formas de obtenerla. Por eso es un escrito muy básico. Por cierto esto esta escrito para aquellos que administran páginas web y 'no les apetece' currarse el tema de la seguridad.
Estos métodos no son los únicos que existen, también nos podemos encontrar web's protegidas con login/pass,... en fin, que lo que yo estoy intentando hacer aquí es convencer a los 'admin' que hay que ponerse las pilas con la seguridad
.
Las técnicas empleadas las he puesto en práctica SIEMPRE con el consentimiento del propietario y en mis propias máquinas. Es un consejo que te doy, no lo hagas nunca sin el consentimiento por escrito del dueño del pc donde hagas las pruebas, puedes tener problemas.
Los tipos de protección que vamos a ver aquí, estan en desuso, pocas páginas, por no decir ninguna, encontrarás de esta forma.
Saltarnos/Conseguir la contraseña
Pues como iba diciendo, hay varias formas para saltarse la contraseña. Una de ellas, es en la que la pass esta en el mismo código HTML. Un ejemplo lo puedes encontrar en el concurso de hacking Izhal (estaban pendiente de actualización del concurso, no se si han respetado esta prueba). No he visto en ningún otro sitio esta forma proteger la información, mas que nada por lo absurda que es.
En este tipo, te puedes encontrar algún 'problema', y es que hay webs que no te dejan estudiar el código porque directamente se abre una ventan preguntandote por la contraseña. Cuando me pasó esto... lo solucioné con un programa para descargar toda la información posible. Se llama webcopier, aunque hay otros que te pueden servir. Este es para windows.
Otra opción puede ser con java-script. Esta es de la misma forma que la anterior, con mirar el código se soluciona. Voy presuponiendo que tienes que 'conocer' java-script. Si no es así... busca en google que seguro que encuentras muchos tutoriales/manuales de java-script.
La ultima opción que vamos a ver es la que la contraseña esta dentro de un archivo java. En este caso debemos estudiar el código HTML para saber cual es el archivo .class que debemos descompilar para extraer la password. Una vez que lo hayamos encontrado necesitamos la ayuda de algún software para extraer la clave. Yo utilizo DJ Java Decompiler, es para windows. Una vez que este descompilado, estudias el código y ya obtienes la clave.
Estas tres formas de 'proteger' el contenido de una web han sido sacada de izhal y boinas negras. Si quieres encontrar otras formas y seguir practicando... te gustarán estos 2 concursos.