Habilitar un proxy en Ubuntu

Hoy vamos a ver como habilitar un proxy en Ubuntu, esto nos va a venir muy bien cuando “salimos” a internet a través de un proxy, esto nos permitirá realizar updates y descargar cualquier paquete que necesitemos en nuestro sistema.

Lo primero que tenemos que hacer es situarnos en la home de nuestro usuario.

Cd /home/usuario
 

Una vez en la raíz de nuestro usuario, ejecutamos el siguiente comando para ver todos los ficheros almacenados (visibles y ocultos).

Ls -ltra
 

Buscamos el archivo donde tenemos el perfil de nuestro usuario y lo abrimos con el editor.

Vim .profile

Añadimos las siguientes líneas de código.

export http_proxy=http://RUTA-DEL-PROXY:PUERTO
export no_proxy=localhost,127.0.0.0/8

Vemos un ejemplo:

export http_proxy=http://Proxy.javierandres.es:3128
export no_proxy=localhost,127.0.0.0/8

Cerramos la sesión de Ubuntu para que se apliquen los cambios.
Iniciamos de nuevo la sesión y comprobamos si se han guardado los cambios correctamente, para ello ejecutamos el siguiente comando:

env | grep Proxy

Al ejecutar este comando nos tiene que aparecer las dos líneas que hemos añadido en el fichero .profile

export http_proxy=http://Proxy.javierandres.es:3128
export no_proxy=localhost,127.0.0.0/8

Tras los pasos realizados ya tenemos el proxy habilitado para nuestro usuario, pero también lo tenemos que habilitar para el usuario “root”, para ello ejecutamos el siguiente comando:

sudo visudo

Añadimos la siguiente línea de código:

defaults env_keep +="http_proxy no_proxy"

Cerramos de nuevo la sesión de nuestro usuario para que repliquen los cambios, la iniciamos de nuevo y ejecutamos el siguiente comando para ver si se han guardado los cambios.

Sudo env | grep proxy

Para finalizar realizado un update y un upgrade.

Sudo apt-get update
Sudo apt-get upgrade
Posted in Manuales, Ubuntu | Tagged , | Leave a comment

Inicializar y detener una instancia en Oracle

Hoy vamos a ver como iniciar y detener una instancia en Oracle, para entenderlo mejor, una imágen vale más que mil palabras con lo que en la parte posterior os he adjuntado 3 videos que explican a la perfección como iniciar y detener instancias en Oracle 10g, estos 3 videos también isrven para la versión 11g.

Antes de nada tenemos que saber que es una instancia, a continuación teneis la explicación:

Para permitir el acceso a los datos, Oracle utiliza un conjunto de procesos que son compartidos por todos los usuarios. Además, existen estructuras de memoria que son utilizadas para almacenar los datos más recientemente solicitados a la BD.

Una instancia de BD es el conjunto de estructuras de memoria y de procesos que acceden a los ficheros de datos.

Los parámetros que determinan el tamaño y composición de una instancia están almacenados en un fichero llamado init.ora. Este fichero es leido durante el arranque de la BD y puede ser modificado por el DBA. Cualquier modificación de este fichero no tiene efecto hasta la siguiente vez que se arranque la BD.

Las estructuras de la BD Oracle pueden ser divididas en tres clases:

* aquellas que son internas a la BD,
* aquellas que son internas a las áreas de memoria (incluidas la memoria compartida y procesos),
* aquellas que son externas a la BD.

Iniciar y detener una instancia. Parte 1

Iniciar y detener una instancia. Parte 2

Iniciar y detener una instancia. Parte 3

Posted in Oracle | Tagged , , | Leave a comment

Gestión y monitorización de servicios con Monit

En todo servidor web es muy importante tener monitorizados todos los servicios (http, MySQL, POP, SMTP, ftp, sshd,..) , para ello hoy vamos a ver como se instala y se configura Monit un software muy completo para monitorizar servicios, ya sea de forma local como remota de cualquier sistema Unix.

¿Qué es Monit?

Monit es una utilidad gratuita y Open Source para administrar y monitorear procesos, archivos, directorios y filesystems en un sistema Unix. Realiza tareas automáticas de mantenimiento y reparación y puede ejecutar acciones significativas durante situaciones de error.

Para más información, se puede consultar el sitio oficial de Monit y su manual online (ambos en inglés).

 

Instalación

La instalación de Monit es muy sencilla.

cd /usr/src
wget http://mmonit.com/monit/dist/monit-5.1.1.tar.gz
tar zxvf monit-5.1.1.tar.gz
cd monit-5.1.1
./configure --prefix=/usr
make && make install

Si estamos instalando Monit en CentOS o algún Linux similar, vamos a querer copiar el archivo rc.

cp contrib/rc.monit /etc/init.d/monit
chown root:root /etc/init.d/monit
chmod 755 /etc/init.d/monit
chkconfig --add monit
chkconfig monit on

Configuración

Una vez instalado podemos pasar a la configuración, que será lo más importante del proceso. Para ello vamos a crear un archivo inicial /etc/monitrc que posee la configuración general del Monit, y luego dentro de una carpeta /etc/monit creo un archivo por cada servicio que quiero monitorear.

Les dejo aquí mi configuración.

Archivo: /etc/monitrc

set daemon  120
set logfile syslog facility log_daemon
set mailserver localhost

set alert administrator@domain.com           # receive all alert
set alert anotheradmin@domain2.com

set httpd port 2812 and
   use address localhost # only accept connection from localhost
    allow localhost      # allow localhost to connect to the server and
#    allow admin:monit   # require user 'admin' with password 'monit'
#
#
###################################################################
## Services
###################################################################
##
## Check general system resources such as load average, cpu and memory
## usage. Each test specifies a resource, conditions and the action to be
## performed should a test fail.
#
  check system fqdn.domain.com
    if loadavg (1min) > 5 then alert
    if loadavg (5min) > 10 then alert
    if loadavg (1min) > 20 then exec "/bin/bash /root/handle_high_load.sh"
    if memory usage > 75% then alert
    if cpu usage (user) > 70% for 3 cycles then alert
    if cpu usage (system) > 30% for 3 cycles then alert
    if cpu usage (wait) > 20% for 3 cycles then alert

include /etc/monit/*.monitrc

A continuación vamos a explicar el contenido de este fichero de configuración. El daemon va a revisar cada 120 segundos los servicios, va a loguear en Syslog y va enviar mails usando el mailserver local. Cuando haya alguna alerta, la enviará a administrador@domain.com y anotheradmin@domain2.com. Luego habilito el servicio web que ofrece monit para que escuche en la IP local (esto es para poder utilizar todas las opciones del comando `monit`). Por último defino las reglas para el chequeo del sistema, cuyo FQDN es fqdn.domain.com (hostname de su servidor). Las reglas son bastante sencillas. En algunos casos lo que hago es enviar una alerta y si el loadavg es más de 20 ejecuto un script para controlarlo.

La última línea incluye todos los archivos *.monit del directorio /etc/monit. Que es lo que vamos a ver ahora.

Archivo: /etc/monit/httpd.monitrc en el que vamos a monitorizar el servidor apache

#
# Monitor Apache (httpd)
#
check process httpd with pidfile /usr/local/apache/logs/httpd.pid
    start program = "/etc/init.d/httpd start"
    stop program  = "/etc/init.d/httpd stop"
    if cpu > 80% for 3 cycles then alert
    if totalmem > 1500.0 MB for 5 cycles then alert
    if children > 250 then alert
    if children > 255 for 5 cycles then stop
    if cpu usage > 95% for 3 cycles then restart
    if failed port 80 protocol http then restart

check file httpd.conf with path /usr/local/apache/conf/httpd.conf
    if changed checksum then alert

En este fichero defino un proceso de nombre “httpd” con un pidfile que en nuestro caso es /usr/local/apache/logs/httpd.pid , en algunos otros casos puede ser /var/run/httpd.pid. Luego defino los comandos para iniciar y detener el proceso. Y luego las acciones a realizar según el evento. En el caso “alert” (enviar aviso por mail), en otros “restart” (reinicar el proceso). Hay otras opciones que podrán ver en la documentación. Por último agrego una verificación del archivo httpd.conf. Si se modifica me notificará por mail.

Monitorizamos el servicio de correo, en nuestro caso exim, para ello creamos el fichero /etc/monit/exim.monitrc con la siguiente configuración:

check process exim with pidfile /var/spool/exim/exim-daemon.pid
   start program = "/etc/init.d/exim start"
   stop program = "/etc/init.d/exim stop"
   if failed host 127.0.0.1 port 25 protocol smtp then alert
   if 5 restarts within 5 cycles then timeout

Monitorizamos el servicio ftp, en nuestro caso pure-ftpd, para ello creamos el fichero /etc/monit/ftp.monitrc con la siguiente configuración:

check process ftp with pidfile /var/run/pure-ftpd.pid
   start program = "/etc/init.d/pure-ftpd start"
   stop program = "/etc/init.d/pure-ftpd stop"
   if failed host 127.0.0.1 port 21 protocol ftp then alert
   if 5 restarts within 5 cycles then timeout

Monitororizamos servicio Imap, en nuestro caso courier-imap, para ello creamos el siguiente fichero de configuración /etc/monit/imap.monitrc con las siguientes líneas:

check process imap with pidfile /var/run/imap.pid
   start program = "/etc/init.d/courier-imap start"
   stop program = "/etc/init.d/courier-imap stop"
   if failed host 127.0.0.1 port 143 protocol imap then alert
   if 5 restarts within 5 cycles then timeout

Monitorizamos servicio MySQL, para ello creamos el fichero de configuración /etc/monit/mysql.monitrc con las siguientes líneas:

check process mysql with pidfile /var/lib/mysql/javierandres.es.pid

group database

start program = "/etc/init.d/mysql start"

stop program = "/etc/init.d/mysql stop"

if failed host 127.0.0.1 port 3306 then restart

if 5 restarts within 5 cycles then timeout

Iniciando Monit

Una vez que tenemos la configuración, ya podemos probarlo. Para ello iniciaremos el servicio, veremos si se inicia correctamente en el log y veremos el status.

Iniciamos:

service monit start

Luego vemos en syslog:

monit[24820]: Starting monit daemon with http interface at [localhost:2812]
monit[24822]: Starting monit HTTP server at [localhost:2812]
monit[24822]: monit HTTP server started
monit[24822]: 'fqdn.domain.com' Monit started

Para observar la monitorización en el interfaz web tienes que insertar en el navegador la siguiente ruta:

http://localhost:2812
Posted in Exim, Linux, Manuales, MySQL, PHP, pure-ftpd, VPS | Tagged , , | 2 Comments

Response buffer limit exceeded asp

Si al cargar una página web en asp se reproduce el error:

response buffer limit exceeded

Se debe a que hemos superado el aspbufferinglimit de la configuración del IIS. Para intentar solventar esta incidencia sin toar dicho valor podemos insertar la siguiente línea de código al principio del fichero donde se reproduce el error:

   <%
    response.buffer=false
   %>

De forma local verás como la página web ya funciona de forma correcta, aunque es posible que a través del navegador la página no funcione.

En el caso de que a través del navegador no funcione y tenemos acceso al servidor tendremos que modificar el valor aspbufferinglimit en la propiedades del IIS. Para ello tenemos que ir al fichero metabase.xml y modificar este valor que suele estar en 4mb.

En el caso de que no tengamos acceso al servidor y no podamos modificar el valor aspbufferinglimit, y no nos funcione insertando el parámetro response.buffer=false tendremos que optimizar la programación del sitio web para evitar llegar al límite.

Posted in Windows | Tagged , , | Leave a comment

Como saber si funciona el mod_rewrite

Parece una tontería pero me lo han preguntado en numerosas ocasiones, por ello he decidido hacer este post rápido y sencillo de como saber si en nuestro servidor o alojamiento linux tenemos activo el mod_rewrite.

Para ello nos vamos a la raíz (public_html) de nuestro sitio web y creamos o editamos el fichero .htaccess con las siguientes líneas:

RewriteEngine On
RewriteRule test\.html http://www.google.com [R]

Una vez que hayamos guardado los cambios abrimos el navegador e insertamos la url:


http://www.tudominio.com/test.html

Si el navegador nos redirecciona al sitio web de Google significa que tenemos el mod_rewrite activado y funcionando de forma correcta

Posted in Linux, Manuales, VPS | Leave a comment

Asociar servidores dns a un subdominio (registro NS)

Si deseamos asociar unos servidores dns a un subdominio, por ejemplo, prueba.javierandres.es distintos a los que posee nuestro dominio tenemos que crear un registro NS para el subdominio prueba.javierandres.es en la zona dns del dominio.

Para ver nuestra zona dns completa de nuestro dominio ejecutamos el siguiente comando:

dig javierandres.es

Y obtendremos el siguiente resultado:

root@casa# dig javierandres.es

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> javierandres.es
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16604
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;javierandres.es.		IN	A

;; ANSWER SECTION:
javierandres.es.	13990	IN	A	93.93.116.39

;; AUTHORITY SECTION:
javierandres.es.	13990	IN	NS	dns1.sistema-dns.com.
javierandres.es.	13990	IN	NS	dns2.sistema-dns.com.

;; ADDITIONAL SECTION:
dns1.sistema-dns.com.	6539	IN	A	93.93.112.103
dns2.sistema-dns.com.	6755	IN	A	198.104.137.238

;; Query time: 3 msec
;; SERVER: 10.0.0.108#53(10.0.0.108)
;; WHEN: Fri Jun  3 12:42:31 2011
;; MSG SIZE  rcvd: 134

Observamos que el dominio posee asociados los servidores de nombres: dns1.sistema-dns.com y dns2.sistema-dns.com , además queremos asociar al subdominio prueba.javierandres.es los siguientes servidores de nombres: ns1.services-hosting.com y ns2.services-hosting.com

Si la entidad que nos proporciona el servicio dns nos permite crear registros NS al igual que registros tipo A, MX, simplemente creamos lo siguiente:

--------------------------------------------------------------------- +
subdominio | dominio | tipo| registro |
--------------------------------------------------------------------- +
prueba | javierandres.es | NS | ns1.services-hosting.com. |
--------------------------------------------------------------------- +
prueba | javierandres.es | NS | ns2.services-hosting.com. |
--------------------------------------------------------------------- +

Por el contrario si tenemos nuestro propio servidor dns o tenemos acceso a editar nuestra zona dns dentro del propio sistema, para ello tenemos que editar el fichero de configuración del dominio:

vim /var/named/chroot/var/named/domains/javierandres.es

Al abrirlo para editar nos aparecerá algo parecido a esto:

; Fichero de zona para javierandres.es
; LussyDNS v0.1 Generator
;                       secarral hosting
$TTL 14000
@      14400    IN      SOA     dns1.sistema-dns.com.  (
      3316763467        ; serial, todays date+todays
      14400             ; refresh, seconds
      7200              ; retry, seconds
      3600000           ; expire, seconds
      86400 )           ; minimum, seconds

javierandres.es.        14400   IN      NS      dns1.sistema-dns.com.
javierandres.es.        14400   IN      NS      dns2.sistema-dns.com.

javierandres.es.        14400   IN      A       93.93.116.39
*       14400   IN      A       93.93.116.39
www     14400   IN      A       93.93.116.39
mail    14400   IN      A       93.93.116.39
javierandres.es.        14400   IN      MX    10      mail.javierandres.es.
server1 14400   IN      A       69.194.194.114
control 14400   IN      A       69.194.194.114

localhost.javierandres.es.      14400   IN      A       127.0.0.1

en la zona dns del dominio tenemos que buscar la sección de los registros NS y justo debajo de los registros NS creamos otros dos para nuestro subdominio prueba de la siguiente manera:

prueba.javierandres.es.	10078	IN	NS ns1.services-hosting.com.
prueba.javierandres.es.	10078	IN	NS ns2.services-hosting.com.

Tras la modificación el apartado tiene que quedar de la siguiente forma:

javierandres.es.	12929	IN	NS	dns2.sistema-dns.com.
javierandres.es.	12929	IN	NS	dns1.sistema-dns.com.
prueba.javierandres.es.	10078	IN	NS ns1.services-hosting.com.
prueba.javierandres.es.	10078	IN	NS ns2.services-hosting.com.

Tras la modificación al realizar un chequeo dns al dominio javierandres.es , por ejemplo, desde http://intodns.com observaremos que la zona dns del dominio se mantiene como estaba anteriormente.

En cambio si realizamos un chequeo dns al subdominio prueba.javierandres.es observaremos como los dns asociados al subdominio aparecen los dos servidores de nombres que acabamos de asociar.

Posted in Uncategorized | 3 Comments

Así afectará a los blogs la Ley Mordaza

este viernes el gobierno aprobó el anteproyecto de la llamada “Ley de Igualdad de Trato”, que podría someter todos los ámbitos de la vida a los caprichos del gobierno. Cuando digo “todos” me refiero también a los blogs. La inclusión de las bitácoras en los ámbitos afectados por esta ley no es algo gratuito. El Art.1 de ese anteproyecto señala que dicha norma regulará los “derechos y obligaciones de las personas, físicas o jurídicas, públicas o privadas”. El Art.3 señala: “Esta Ley se aplicará en todos los ámbitos de la vida política, económica, cultural y social”. Y el Art.4, en un absurdo intento de ponerle puertas al campo, afirma que “queda prohibida toda conducta, acto, criterio o práctica” que atente contra los amplísimos e incluso contradictorios conceptos de discriminación que contempla dicha ley. Veamos algunos ejemplos:
Continue reading

Posted in Uncategorized | Leave a comment

Configuración estandar MySQL para servidor VPS

Realizando diversas pruebas en servidores VPS, he observado que aunque no este en producción el servidor y con tan sólo dos blogs activos con apenas tráfico el consumo de memoria es muy alto, incluso llegando al 100% con el problema que esto acarrea, para encontrar el origen del error y debido a que el servidor no estaba en producción fui parando diversos servicios y observando el consumo vi que el problema lo causaba el servicio MySQL.

Para bajar el consumo de memoria en este caso vamos a optimizar el servicio mysql, para ello tenemos que editar el fichero de configuración de MySQL.

vim /etc/my.cnf

Una vez abierto el fichero insertamos los siguientes parámetros:

[mysqld]

max_connections=60
max_user_connections=60

tmp_table_size=16M
max_heap_table_size=4M
myisam_sort_buffer_size = 4M
read_buffer_size = 2M

query_cache_type=1
query_cache_size=8M
thread_cache_size=10
key_buffer=4M

connect_timeout=50
interactive_timeout=100
wait_timeout=500
skip-locking
safe-show-database

skip-innodb

Con esta configuración logre bajar sustancialmente el consumo de memoria, para dejarlo en unos parámetros normales para un servidor con poco tráfico. Estos parámetros son estandar cada uno los puede personalizar como desee.

Posted in Linux, MySQL, VPS, Windows | Tagged , , | 7 Comments

Personalizar el mensaje de bienvenida SSH

Si queremos personalizar o modificar el mensaje de acceso que aparece cuando accedemos a nuestro servidor por SSH tenemos que editar el fichero:

vim /etc/motd

Insertamos el mensaje que queremos que aparezca, como por ejemplo:

===============================================

Bienvenidos a javierandres.es

===============================================

Guardamos y salimos del servidor. Al acceder de nuevo al servidor nos aparecerá el mensaje de bienvenida de la siguiente forma:

:~$ ssh root@**.***.***.***
root@**.***.***.***'s password:
Last login: Wed Apr 13 16:01:09 2011 from ********
===============================================

Bienvenidos a javierandres.es

===============================================
[root@javierandres ~]#
Posted in Linux, Manuales, VPS | Tagged , , , | Leave a comment

Como activar Zend Optimizer

Para instalar Zen Cart lo primero que tenemos que saber es si tenemos instalado el módulo Zend Optimer en el servidor, para comprobarlo tenemos que ejecutar el siguiente comando desde SSH:

php -m

Y nos aparecerá algo parecido a esto:

[PHP Modules]
bcmath
calendar
ctype
curl
....
....

[Zend Modules]
Zend Optimizer

Como podeis observar en nuestro servidor ya está instalado con lo que ya podemos comenzar la instalación de la aplicación de comercio electrónico.

Un vez finalizada la instalación para que funcione la aplicación tenemos que activar Zend Optimizer, para ello tenemos que editar el fichero php.ini del servidor y añadir las siguientes líneas:

[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

Si por algún motivo no podemos editar el fichero php.ini del servidor, podemos crearnos un fichero php.ini en la raíz de nuestro sitio web y funcionará de igual modo.

Si teneis activado eAccelerator lo tendreis que desactivar, debido a que eAccelerator y Zen Optimizer no pueden estar activados juntos, para ello tenemos que editar el fichero php.ini y buscar la siguiente línea:

extension="eaccelerator.so"

Para descativarlo tienes que comentar esa línea, para ello añadele el signo “;” al inicio del mismo, tal y como puedes ver a continuación:

;extension="eaccelerator.so"
Posted in Linux, Manuales, Zen Cart | Tagged , , | Leave a comment