martes, 29 de diciembre de 2009

Cita

"Debería haber un gran almacén de arte en el mundo al que el artista pudiera llevar sus obras y desde el cual el mundo pudiera tomar lo que necesitara"

Lud­wig van Beet­ho­ven


Si ya lo decía un genio como el, por que se empeñan en censurarlo tanto?

sábado, 5 de diciembre de 2009

Montar un servidor de correo con Postfix

Lo primero que tenemos que hacer es descargar el paquete postfix.
apt-get install postfix


Como siempre esta es la forma de descargarlo en debian, Que es la distribución que uso habitualmente.
Después de que apt descargue el paquete comenzara a instalarlo y salda una pantalla azul (no os preocupeis...no son como las de Microsoft) y os preguntara como configurarlo, elegís internet site.


Después una serie de preguntas como el nombre del servidor postfix y cosas así que podremos dejar todo según esta, y que si queremos cambiar algo lo podremos hacer en el archivo de configuracion.
Y justo es hay don de vamos a ir ahora, al archivo de configuracion que se encuentra en /etc/postfix/main.cf
Aquí como casi todos los archivos de configuracion, tienen muchas cosas aunque las importantes sean 3, para una configuracion básica como es este caso (ya iré preparando configuraciones avanzadas de los servicios que hemos ido instalando)
pues bueno una de las primeras cosas es fijarnos en la linea donde ponga, relayhost, y a de estar vacía.
relayhost =

Otra parte importante es mynetworks que van a ser las redes o host que podrán usar nuestro servidor postfix, generalmente quien lo use sera el servidor, aquí se marcara quienes podrán usarlo, que lo configuremos para nuestra maquina o nuestra red, no evitara que los correos no vayan a salir a internet, una configuracion típica seria la siguiente.
mynetworks = 127.0.0.0/8, 192.168.1.0/24

El main.cf asi podria funcionar bien. aqui os pongo una imagen de el aspecto aproximado del archivo.


Si ahora queremos que postfix nos envié a nuestro correo personal lo que va sucediendo en nuestro servidor tendríamos que tocar el archivo aliases que se encuentra en /etc/aliases, así que con un nano /etc/aliases y tiene una pinta mas o menos así:


Hay vemos que todos los servicios envían sus alertas a root y todo lo que va a root va a tu correo (puede ser un correo gmail, hotmail, o de tu propio dominio, vamos a cualquier correo electrónico que quieras), Algo que también es importante es que después de poner tu emal a root y guardar el archivo ejecutes el comando newaliases , con esto se refrescara y nuestro postfix nos enviara las alertas, esto es importante ya que si no ejecutas el comando aunque hayas guardados los cambios, nuestro servidor de correo(postfix en este caso) no nos enviara los emails.
Luego podemos probar si esto funciono enviando un email a cualquier usuario con el comando mail seguido de un nombre de usuario( mail usuario) y si lo que habéis puesto es una dirección de email os llegara el correo a vuestro email( mirar en spam por que a mi en gmal me los enviaba a spam y tuve que crear una regla para que dejara de hacerlo) y si lo que habeis puesto en root es root pues estando en el usuario root escribís mail y os dira si hay mails para el usuario root o no (comprobe que en algunos casos para que el comando mail funcione hay que instalar el paquete mailx, apt-get install mailx )

Y con esto tendríamos una configuracion básica de posfix y haríamos que nuestro sistema nos enviara las alertas a nuestro email, Espero que os haya gustado.
Un saludo

sábado, 24 de octubre de 2009

Foto curiosa

Hoy vi esta foto y me parecio curiosa y quise compartirla con vosotros, Demuestra el gran sentido del humor del Sr. Torvalds.






wallpapers linux vs windows

Bueno pues hoy voy a poner una de wallpapers de linux vs windows, que no todo van a ser servidores, no? también hay que tener nuestro ordenador personal curioso, espero que os gusten, A mi los que mas me gustan son el de la tia rubia y el de tux y el demonio de bsd ( ese demonio tiene nombre?)



























martes, 6 de octubre de 2009

Script de comprobacion de espacio libre en disco y envio por email

sencillo script bash para comprobar el espacio en disco, esto suele ser muy útil para saber si el servidor remoto esta carente de espacio en disco.

#!/bin/bash
df -hx tmpfs|grep dev > archivo.log
limite=90;
for i in $(df |awk '{print $(5)}');
do
i=`echo $i | cut -f 1 -d "%"`
if (("$i" '>=' "$limite")); then
cat dfd | mail -s "Discos Llenandose" tu@mail.com
break;
fi
done

este script esta corriendo en un servidor que tiene a su vez montado un mail server.

Fuente: Administrando Linux | | Windows

Notas mias:
El script funciona correctamente probado por mi, lo que si le vi fue que si tienes particiones montadas en LVM da problemas por que salta una linea y no da los resultadados bien, en particiones ext3 y ext4 todo funciona correctamente.
Si alguno soluciona el problema con las LVM'S agradecería que me lo comunicara.

jueves, 3 de septiembre de 2009

MONTAR UN SERVIDOR PROXY CON SQUID

Software necesario:
1- squid
2- apache (no es necesario obligatoriamente pero acelerara la cache y trae un paquete que necesitaremos para encriptar las contraseñas de los usuarios en caso de que queramos que el proxy sea con autentificacion de usuarios)

Lo 1º tenemos que descargar el squid si quedemos compilarlo a mano lo descargaríamos de www.squid-cache.org aunque en muchas de las distribuciones ya esta en los repositorios, Yo como uso Debian usare apt y es tan sencillo como apt-get install squid3 y lo mismo con apache2.
Después tenemos que ir al archivo de configuracion de squid ( /etc/squid/squid.conf ) y editarlo cambiando unos parámetros que a continuación pondré.

Puerto de escucha
El primero es buscar la linea " # Squid normally listens to port 3128 " esta dentro de la sección NETWORK OPTIONS, (Este archivo parece un autentico caos por la cantidad de lineas que tiene pero luego no lo es tanto y no hay que cambiar tantas cosas...yo diría que el 90% del archivo son esplicaciones.)
Bueno buscamos esa linea (si usáis nano se busca con ctrl+W ) y justo debajo añadís (sin la almoadilla que eso es para comentarios)

http_port 3128
http_port 8080




memoria cache y cache en disco

Que sera el puerto por el que escuchara squid.
Luego buscamos la parte donde pone " cache_mem " y lo desmarcamos de comentario y lo dejamos así:

cache_mem 32 MB


Después buscamos esta linea: " cache_dir ufs /var/spool/squid 100 16 256 "


Donde aquí podríamos cambiar el 100 que puse en negrita que es cuantos megas de disco vamos a dejar para que guarde las paginas en la cache y se pueda acceder a ellas mas rápido, Yo creo que con el volumen de discos que manejamos hoy en dia se pueden dejar sin problemas 500 que aun así 500 megas para almacenar paginas no creo que este mal, pero eso ya es al gusto del consumidor, necesidades de la red y demás.

lista de control de acceso

Luego nos encontramos la parte de control de accesos, Aquí tenemos que saber sobre que red vamos a trabajar, 192.168.1.0 o 192.168.2.0 y la mascara de subred que salvo casos excepcionales, En ambientes de hogar claro ya que una gran empresa dudo que consulte este blog para montar su proxy, pues salvo esos casos suele ser 255.255.255.0.
Lo que tendríamos que cambiar aquí en principio seria poner esta linea " acl miredlocal src 192.168.1.0/255.255.255.0 " pero digo en principio porque luego veremos que depende como lo hagamos esta linea puede ser muy importante, y apartir de ahora los acl donde pongamos miredlocal se refreirá a 192.168.1.0/255.255.255.0, También podemos crear una lista de maquinas que queramos que accedan al proxy con lo siguiente " acl permitidos src "/etc/squid/permitidos" " y en /etc/squid/permitidos una lista con las ips internas que queramos que accedan, la sintaxis seria la siguiente:

acl (nombre) src (red o dir archivo)

un ejemplos:

acl miredlocal src 192.168.1.0/255.255.255.0
acl miredlocal src 192.168.1.0/255.255.255.0 192.168.2.0/255.255.255.0
acl permitidos src "/etc/squid/permitidos

Lo anterior es una lista de control de acceso, lo siguiente que vamos a ver son las reglas de control de acceso

Tenemos que buscar el texto " INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS "
La sintaxis seria " http_access (deny o allow) (lista) " y usando el archivo anterior podíamos crear la siguiente regla:

http_access allow permitidos

Pero esta parte tiene mucho juego ya que en una misma regla podemos poner varias listas y dejar acceso a unas y otra denegarlas, poniendo ! delante de la lista la deniegas el acceso, un ejemplo en el que la lista1 va a tener acceso y la lista2 no:

http_access allow lista1 !lista2

Aquí investigando mas en profundidad podemos hacer mucho, restringir dominios, Que no se descarguen ficheros con mp3,avi.., por contenidos, Cuando investigue mas en profundidad las reglas igual hago un post sobre ello. pero vamos que es una de las partes donde mas se puede hacer.
Y las lineas de esta parte tendrían que quedar mas o menos así con una configuracion simple, Por debajo de " # Recommended minimum configuration " :

Así podría ser la configuracion de la lista de control de acceso

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl miredlocal src 192.168.1.0/255.255.255.0



y así la de las reglas de control de acceso

http_access allow localhost
http_access allow miredlocal
http_access deny all

Como dije esto es una configuracion simple para que funcione el squid

Podemos poner también los mensajes de error en español si lo deseamos con eliminar el directorio actual " rm -f /etc/squid/errors " y cambiar el enlace simbólico " ln -s /usr/share/squid/errors/Spanish /etc/squid/errors "

AUTENTIFICACION DE USUARIOS


Ahora vamos con otra parte importante que es el acceso con autentificacion, Hay 2 formas con LDAP y con módulo NCSA,que es una forma de atentificacion por un texto simple que ademas ya viene incluido en squid,obviamente es mas seguro por LDAP pero es esta segunda la que yo voy a utilizar yo, la de por modulo NCSA.

Bueno este método es muy sencillo de usar, Solo tenemos que crear un fichero que el usuario squid pueda leer (en esto mirar bien si el usuario que arranca es squid o proxy que a mi me dio algún problemilla esto) para crear el archivo nada mas que:

touch /etc/squid/usuarios


y despues solo hacer que tenga squid (o proxy) los permisos y que sea el propietario

chmod 600 /etc/squid/usuarios
chown squid:squid /etc/squid/usuarios


Después solo tenemos que usar el comando htpasswd que dicho paquete viene incluido en apache, Un ejemplo:

htpasswd /etc/squid/usuarios david

Después no pide la contraseña para el usuario y se guarda cifrada en /etc/squid/usuarios.
Después buscar la linea " auth_param basic program " y añadirle" /usr/lib/squid/ncsa_auth /etc/squid/usuarios " y desmarcarla como comentario, vamos que tiene que quedar así:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/claves

Con esto le decimos donde esta el archivo de los usuarios y las contraseñas.

Y en la lista de control de accesos que vimos antes añadir esta linea:

acl password proxy_auth REQUIRED
y la parte lista de control de accesos anterior quedaria asi:

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl miredlocal src 192.168.1.0/255.255.255.0
acl password proxy_auth REQUIRED



Ya solo queda añadir la palabra password donde definimos las reglas y que quede así:

http_access allow localhost
http_access allow miredlocal password
http_access deny all


Y con esto quedaría squid listo, sin olvidarnos de parar y arrancar el servicio para que coja la configuracion claro, el comando es fácil:

/etc/init.d/squid stop
/etc/init.d/squid start

o
/etc/init.d/squid restar para reiniciarlo

Ahora vamos a tocar un poco la parte física y como debe ir la red.

Bien vamos a tener un router, 2 ordenadores, uno sera el servidor y otro el cliente, clientes podemos tener mas de uno pero entonces necesitariamos también un switch, pero para este caso sera solo un cliente, aunque para mas no habrá mas que hacer lo mismo en los demas clientes.

bien el router sera un router normalito, esto en principio no tiene misterio.
El servidor va a tener que tener 2 targetas de red, una para conectarla al router y otra para que el cliente se conecte a el (en el caso de varios clientes, en esta segunda targeta iria conectado el switch y a el los clientes)
y el cliente pues un ordenador normal, sin nada especial.

Las tarjetas del servidor han de estar en redes diferentes la 1º en la red del router, por ejemplo la 192.168.1.x y la segunda en otra red, por ejemplo la 192.168.2.x y el equipo ha de estar en la red de la segunda tarjetas (192.168.2.x) para que así ningún equipo de la red pueda ver el router y todos tengan que pasar por el servidor proxy y autentificarse para poder salir a internet, ni que decir que las ips fijas, y claro las " acl miredlocal src 192.168.1.0/255.255.255.0 "de la lista de control de accesos (y de las reglas y de cualquier sitio donde vaya la dirección de nuestra red) han de cambiar a la red 192.168.2.x

No os olvidéis tampoco de añadir estas lineas en los ficheros /etc/bash.bashrc y /etc/environment para poder acceder por el proxy a Internet desde concosa, Sin esto apt,wget y demás aplicaciones de consola que acceden a internet no podrán acceder.

export http_proxy="http://usuario:password@proxy:puerto"
export https_proxy="http://usuario:password@proxy:puerto"
export ftp_proxy="http://usuario:password@proxy:puerto"


Y bueno, con esto creo que el post (que este fue un poco mas largo) queda terminado,cualquier duda, sugerencia o lo que sea...ya sabéis, ponerlo en los comentarios o mandarme un email y os responderé con mucho gusto.
Un saludo

domingo, 16 de agosto de 2009

Cambiar entre versiones de Java

Es posible, que tras instalar nuestra Debian hayamos instalado Java. ¿Qué ocurre? Tendremos instaladas varias versiones de Java en nuestro sistema. Es posible que queramos utilizar la última versión disponible. Para ello, vamos a seguir los siguientes pasos:

Como root:

update-alternatives --config java

Entonces, nos aparece una lista con las versiones que tenemos instaladas en nuestro equipo. Algo como:

pc-debian:/home/sergio# update-alternatives --config java

Hay 3 alternativas que proveen `java’.

Selección Alternativa
———————————————--
1 /usr/bin/gij-4.3
+ 2 /usr/lib/jvm/java-gcj/jre/bin/java
* 3 /usr/lib/jvm/java-6-sun/jre/bin/java

Pulse para mantener el valor por omisión [*] o pulse un número de selección:

Si os fijáis, después de mostrarnos las versiones instaladas, nos dice que pulsemos un número (el correspondiente con la versión de java que queremos usar) o podemos pulsar intro para mantener la que estamos usando (es la marcada con un asterisco).

Como veis es muy simple.

Fuente: insepc.com

sábado, 8 de agosto de 2009

Instalar Flash para Firefox en Debian

Bueno esta no sera una entrada muy larga ni estrictamente de administración de servidores pero también creo que puede ser util para mucha gente y en esta vida no todo son servidores, no? bueno vamos con ello.

1º añadimos esta linea: deb http://www.backports.org/debian lenny-backports main contrib non-free a /etc/apt/sources.list
con esto añadimos los repositorios backports , que son unos repositorios de Debian también pero con paquetes de de otras versiones como testing o unstable, no te da la estabilidad que te da Debian estable pero te da paquetes que puedes necesitar como en este caso el flashplugin que en este caso mas que por inestable esta aquí por no ser libre (como sucede con java si no mal no recuerdo)

después hacemos update (apt-get update) pero nos dará error con de puclic key ( o firmas o llaves publicas si se tiene el sistema en español) así que ejecutamos lo siguiente:
wget -O - http://backports.org/debian/archive.key | apt-key add - (también esta el paquete debian-backports-keyring aunque este no lo probé ya que lo vi después)
para que nos descargue las claves publicas y con esto ya podremos hacer update sin que nos de errores

después se instala flashplugin-nonfree ( apt-get install flashplugin-nonfree ) en caso de problemas o que no lo vea intentamos forzarle a que lo busque en los repositorios backports con lo siguiente: apt-get -t lenny-backports install flashplugin-nonfree y con esto ya tendremos el flash en nuestro navegador de Debian (Iceweasel) que aun no tengo muy claro porque Debian tiene esa manía de cambiar el nombre a las cosas, bueno serán cosas de su política de libertad extrema, pero ese es otro tema que tratare otro dia.

jueves, 2 de julio de 2009

CONFIGURACION DE ETHERNET Y ALIAS DE RED

El comando basico para ver y configurar una red es ifconfig, As de ser root para ejecutarlo.
Muestra la información de todos los dispositivos, Un ejemplo es la siguiente captura


En este caso nuestra tarjeta es la eth1, La otra que se ve es la loopback, una direccion local que para lo que vamos a ver en este post no nos hace falta.

De aqui lo mas importantes lo sigiente:

Link encap:Ethernet

Te indica el tipo de dispositivo en este caso Ethernet, el Local Loopback (lo) va estar siempre es tu propia maquina

HWaddr 08:00:27:c5:61:7f

Esta es tu mac

Inet addr:10.0.2.15

Aqui sera tu ip, en este caso es 10.0.2.15

Bcast:10.0.2.255

Aqui te indica la ultima direccion posible (esa no se podra usar por ser la de broadcast)

Mask:255.255.255.0

Esto sera la mascara de red

cambiar una ip (interna se entiende) seria tan facil como usar el sigiente comando

# ifconfig eth0 10.0.2.16

con eso cambiaria nuestra ip de la 10.0.2.15 a la 10.0.2.16


CONFIGURACION DEL FICHERO /etc/network/interfaces

una configuracion normal seria todo automatico y cojeria todo del dhcp pero vamos a aprender a configurarlo a mano tambien, 1º vamos a ver como seria una configuracion automatica:

# The primary network interface

auto eth0

iface eth0 inet dhcp

con estas 2 lineas lo tendramos configurado (se contar...veo 3 pero la 1º es un comentario al tener el simbolo #, todo lo que este a la drecha de una almoadilla en un script sera interpretado como un comentario y no se tendra en cuenta a la hora de ejecutar el script)


ahora vamos a ver el mismo archivo de configuracion pero sin que este en automatico

iface eth0 inet static

address 192.168.242.3 # la ip

netmask 255.255.255.0 # la mascara de red

network 192.168.242.0 # la 1º ip posible

broadcast 192.168.242.255 # la ultima ip posible

gateway 192.168.242.3 # la puerta de enlace

hay que meter algunos dato mas pero tampoco mucho ni muy complicados y con esto estaria configurado todo.


* en un servidor servidor se recomienda siempre quitar los paquetes network-manager y network-manager-gnome, van a intentar configurar cosas de la red por ti y vas a tener problemas despues


ALIAS DE RED

el comando a utilizar para crar el alias seria el mismo ifconfig la sintaxis es practicamente la misma:

el comando "apropiado" es este:

ifconfig eth0:0 inet 192.168.100.2 netmask 255.255.255.0 up


pero generalmente no hace falta poner la mascara de red ni inet que se refiere a que es ipv4 pero al no ponerle nada lo asume todo y vale con este comando: (up al final si no lo pones tambien asume que quieres levantarla)


ifconfig eth0:0 10.0.2.99 up


si queremos "tirar" ese alias, vamos que si queremos quitarla el comando es el siguiente:


ifconfig eth0:0 donw  

tenemos que tener en cuenta que si la que tiramos es la "real" osea eth0 tiras tambien todos los alias que hayas creado

si tienes varias targetas de red lo que te cambiara es el numero, por ejemplo eth1, y el alias tendrias que crealo en eth1:0 eth1:1...etc


estos alias se borrarian al reiniciar el equipo, para que se queden grabados y esten siempre creadas hay que configurar el archivo interfaces que se encuentraen : /etc/network/interfaces


viernes, 26 de junio de 2009

Conexiones remotas con SSH

SSH (Secure SHell) es un programa, Bueno en realidad es un protocolo ya que programas hay varios para acceder o montar un servidor (cliente/servidor).
En muchas(la mayoria creo yo) de las distribuciones linux viene el cliente por defecto ya instalado,
El servidor es tan fácil como ejecutar el siguiente comando:
apt-get install ssh
ssh podría decirse que es como telnet, Pero la diferencia mas importante es que ssh encripta los datos, Por lo que es mucho mas seguro conectarse remotamente a una maquina por ssh que por telnet.
La sintaxis es la siguiente:

ssh usuario@nombre_de_maquina_o_ip

Ejemplos:
ssh pepe@debian.org
ssh pepe@150.223.50.189

Después de esto nos pedirá la contraseña como muestro en la imagen de abajo.


Y con eso ya estaríamos conectados a la maquina remotamente, pero...Ya esta? Solo eso permite ssh? Pues no, ssh aunque se puede usar de esa manera tan simple tiene mas funciones.
Imaginemos que solo queremos ver la ocupación de otro equipo, Solo queremos ver como están los discos pero no necesitamos entrar a el ejecutariamos:

ssh usuario@maquina comando
Ejemplo:

ssh pruebas@127.0.0.1 df -h
Te pediría la contraseña y sacaría esto:

Esa ip es tu propia maquina (localhost) siempre pero con cualquier ip funcionaria igual (y que exista el usuario y sepas la password claro)
Esto funcionaria con cualquier comando.

Otra cosa muy util es scp que permite copiar archivos o directorios de un equipo a otro con el protocolo ssh, Osea que los archivos viajan encriptados y seguros, vamos a ver la sintaxis:

scp [-r] origen destino
El -r es opcional significa recursive, Osea que copia el directorio y todos los directorios que estén dentro de el, Si solo queremos un archivo no nos hace falta el -r.
Ejemplo:
Si queremos copiar de nuestra maquina a otra remota seria
scp hhhh pruebas@127.0.0.1:/home/pruebas


Si lo que queremos es copiar un archivo de la otra maquina a nuestro equipo seria así:
scp pruebas@127.0.0.1:/home/pruebas/gggg /home/


Tambien tenemos el comando sftp que es un ftp seguro, Por que no olvidemos que ftp no encripta los datos

Asta aqui algunas cosas del cliente ssh, En otra ocasión nos meteremos a configurar el servidor ssh.