viernes, 26 de diciembre de 2008

Cambiarle la clave a root si se te olvido

En lilo
Al encender la maquina y cuando aparece el menu gráfico de lilo en pantalla, teclea control+x ó control+c para ir al modo texto; verás lo siguiente:

boot:

escribe linux single y presiona enter.
boot: linux single

Esto cargará los elementos minimos del sistema, te dejará en el prompt del bash# y ahí podrás ejecutar passwd

bash# passwd
Passwd: NuevoPasswordDeRoot

Con eso estarás asignando un nuevo password a la cuenta de root, ya tienes cuenta de root.
Reincia el sistema y ten en cuenta que el resto depende de ti... ya sea bueno o malo.

En grub
El cargador por excelencia [desde mi punto de vista] es grub, veamos primero como se explota el agujero:

Cuando sale el menu de opciones, dice algo asi:
Use the ↑ and ↓ keys to select which entry is highligted. Press 'e' to edit the commands before booting....

Selecciona la entrada de Linux y presiona la tecla e para editar la entrada, te mostrará algo asi:

grub editing>
root (hd0,0)
kernel /vmlinuz-2.4.18.3 ro root=/dev/hda3
initrd /initrd-2.4.18-3.img

Elige la linea del kernel; al final agrega lo siguiente: single y presionas enter.

Quedaría así:
kernel /vmlinuz-2.4.18.3 ro root=/dev/hda3 single

Presiona b para bootear.

Esto cargará los elementos minimos del sistema, te dejará en el prompt del bash# y ahí podrás ejecutar passwd bla bla bla.. igual que en el anterior.

Muy bien, ya vimos como pedir prestada la cuenta de root.

martes, 23 de diciembre de 2008

GRUB - protegido con contraseña

El gestor de arranque GRUB permite hacer operaciones muy sensibles, como por ejemplo, modificar el dispositivo desde el que arranca el sistema o arrancar sin tener la contraseña de root (administrador). Para evitar esto, tienes la posibilidad de protoger GRUB con su propia contraseña.

Grub soporta dos formas diferentes para añadir una contraseña de acceso a su fichero de configuración. La primera usa texto sin cifrado, mientras que la segunda utiliza cifrado md5

Para ponerle una contraseña debes hacer lo siguiente (como root):

La primera opción usa texto sin cifrado

En el parámetro password escribimos la contraseña
que queramos usar,en este ejemplo usamos cambiame.

password cámbiame
Lo pegamos en el fichero /boot/grub/menu.lst antes de la lista de entradas de arranque,
o bien lo podemos poner en una entrada de arranque para proteger dicha entrada.

Ejemplo real :
password cambiame

Ejemplo en el grub en una entrada de arranque protegida:
title Debian GNU/Linux, con barra de progreso kernel 2.6.18-4-k7
password cambiame
root (hd1,0)
kernel /boot/vmlinuz-2.6.18-4-k7 root=/dev/hdb1 ro quiet splash vga=792
initrd /boot/initrd.img-2.6.18-4-k7
savedefault

La segunda opción utiliza cifrado --md5

En una consola y como root escribimos el siguiente comando
# grub-md5-crypt

Te pedirá una contraseña y su verificación (en nuestro ejemplo es cambiame), como resultado te dará un puñado de caracteres, los copias, los pegas en el fichero /boot/grub/menu.lst antes de la lista de entradas de arranque añade:
password --md5 $1$QJ.y0$KZfBdWPyEOPwd6vnsX77H/

Ahora cuando arranque grub sólo te permitirá seleccionar una entrada de arranque,
o pulsar 'p' para introducir la clave y a partir de ahí
tendrás acceso total para hacer lo que quieras.

Por cierto, si en alguna entrada de arranque pones 'lock'
te pedirá la misma contraseña del grub para poder usar dicha entrada,
o bien ponemos una entrada -md5 diferente,
eso es a gusto de cada uno.

Lo pegamos en el fichero /boot/grub/menu.lst
antes de la lista de entradas de arranque,
o bien lo podemos poner en una entrada de arranque
para proteger dicha entrada.

Ejemplo en el grub antes de la lista de entradas de arranque:

password --md5 $1$xf3y0$ak/xghHtCR0Z2RDRixnwS.

Ejemplo en el grub en dos entradas de arranque:

title Debian GNU/Linux, con barra de progreso kernel 2.6.18-4-k7
password --md5 $1$QJ.y0$KZfBdWPyEOPwd6vnsX77H/
root (hd1,0)
kernel /boot/vmlinuz-2.6.18-4-k7 root=/dev/hdb1 ro quiet splash vga=792
initrd /boot/initrd.img-2.6.18-4-k7
savedefault

title Debian GNU/Linux, con barra de progreso kernel 2.6.18-4-k7
lock
root (hd1,0)
kernel /boot/vmlinuz-2.6.18-4-k7 root=/dev/hdb1 ro quiet splash vga=792
initrd /boot/initrd.img-2.6.18-4-k7
savedefault

viernes, 19 de diciembre de 2008

Detectar mas de 3 Gigas de ram en debian o ubuntu

Cuando instalas un servidor o estacion de trabajo con linux debian este no detecta mas de 3 o 4 gigas de memoria ram y si tienes mas pierdes el resto una manera facil de resolver eso en debian o ubuntu es de la siguiente manera

Instálate otro kernel que soporte para más de 4 Gigas que tienes:

apt-get install linux-image-2.6-686-bigmem

Normalmente, con el Etch a secas sin haber actualizado el paquete del kernel, te va a instalar el linux-image-2.6-486, que es el que te indica que tengas tan sólo un giga de RAM.


Una vez hecho eso, borra ese kernel:


apt-get --purge remove linux-image-2.6-486


Con esto ya tenemos listo nuestro servidor o equipo para verificar que eso sea cierto escribe lo siguiente orden en la consola

cat /proc/meminfo

Hay veras cuanta memoria ram esta detectando tu equipo y para verificar el procesador o procesadores

cat /proc/cpuinfo

En caso de que tengas mas de uno y no lo detecte instalar el soporte smp para el kernel.

jueves, 4 de diciembre de 2008

Servidor DHCP

El siguiente texto trata de explicar como configurar un servidor dhcp en linux cualquier distribucion debian y ubutu si los instalas basico sin nada basta solo con hacer apt-get install dhcp o apt-get install dcpd y se instala el software las otras distribuciones seleccionas el paquete cuando estas instalando el sistema operativo o lo compilar en el suspuesto de que ya este instalado el sistema operativo.

Para poner a funcionar nuestro servidor dhpc solo hay que configurar un archivo que se encuentra en /etc/dhcpd.conf ó /etc/dhcpd/dhcpd.conf con modificar este archivo vastara.

Aqui le pongo a continuacion el archivo ya configurado como quedaria

#
# Configuración del Servidor DHCP
# HECHO POR: GEORGE
# VERSIÓN DEL DHCP: "PIENSALO BIEN ANTES DE HACER ALGO"

ddns-update-style none;

# Identificador de dominio y resolución de DNS
##option domain-name tc.com.ve;
option domain-name-servers 192.168.0.253;

default-lease-time 600;
max-lease-time 7200;

# Intervalo de prioridad de registro de Eventos (LOG)

log-facility local7;

# Especificación de sub-redes en EMPRESA X (DHCP)

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.10.250;
option routers 192.168.0.253;
}

# Opción del broadcast para las PC'S

option broadcast-address 192.168.0.255;



#############################################################################
# Estrcutura de las maquinas en Red fijas en DHCP #
# Esta es la parte donde se especifica los equipos que van a tener IP FIJA #
#############################################################################

host nombre_de_equipo {
fixed-address 192.168.0.166;
hardware ethernet 0:0:c0:5d:bd:95;

lunes, 3 de noviembre de 2008

Crear Raid por software

Crear RAID 0 y RAID 1 con mdadm

Preparar el disco duro

Se va a crear un RAID-0 o un RAID-1. Para RAID-5 necesitará añadir más discos. Cree una particion en cada disco con el máximo tamaño:

Hay que hacer los mismos pasos para todos los discos que vayan a formar el RAID:

#fdisk /dev/dispositivo (hda, hdb, sda,sdb, etc...)
d y nº partición para borrar todas las existentes.
n para crear una nueva, p para decirle que es primaria y
1 para decirle que es la1ª.
t para indicar el tipo, fd que es el que corresponde a Linux RAID autodetect
w para escribir los cambios en la tabla del disco y salir

Device Boot Start End Blocks Id System
/dev/hda1 1 79780 40209088+ fd Linux raid autodetec

RAID-0 (¡sin redundancia!)

Use mdadm para crear un RAID-0:

mdadm --create /dev/md0 --chunk=64 --level=raid0 --raid-devices=2 /dev/hda1 /dev/hdc1

# cat /proc/mdstat
Personalities : [raid0]
read_ahead 1024 sectors
md0 : active raid0 hdc1[1] hda1[0]
80418048 blocks 128k chunks

RAID-1 (¡con redundancia!)

Use mdadm para crear un RAID-1:

mdadm --create /dev/md0 --chunk=64 --level=raid1 --raid-devices=2 /dev/hda1 /dev/hdc1

# cat /proc/mdstat
Personalities : [raid0] [raid1]
read_ahead 1024 sectors
md0 : active raid1 hdc1[1] hda1[0]
40209024 blocks [2/2] [UU]
[>....................] resync = 0.7% (301120/40209024) finish=17.6min speed=37640K/sec

Antes de reiniciar tiene que esperar a que se complete la sincronización

Guarde la información de los arrays recien creados

# mdadm --detail --scan >> /etc/mdadm.conf
# cat /etc/mdadm.conf
DEVICE /dev/hd* /dev/sd*
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=d876333b:694e852b:e9a6f40f:0beb90f9

Obtener información sobre los dispositivos RAID y los discos
Mostrar el estado actual de los dispositivos raid

cat /proc/mdstat

Salida de un RAID-1 degradado con un disco que falla:

Personalities : [raid0] [raid1]
read_ahead 1024 sectors
md0 : active raid1 hdc1[2](F) hda1[0]
40209024 blocks [2/1] [U_]
unused devices:

Salida de un RAID-1 degradado con un disco quitadoi:

Personalities : [raid0] [raid1]
read_ahead 1024 sectors
md0 : active raid1 hda1[0]
40209024 blocks [2/1] [U_]
unused devices:

Salida de un RAID-1 recostruyéndose:

Personalities : [raid0] [raid1]
read_ahead 1024 sectors
md0 : active raid1 hdc1[2] hda1[0]
40209024 blocks [2/1] [U_]
[=======>.............] recovery = 37.1% (14934592/40209024) finish=11.7min speed=35928K/sec
unused devices:

Obtener más detalles sobre los dispositivos RAID

# mdadm --query /dev/md0
/md0: 38.35GiB raid1 2 devices, 3 spares. Use mdadm --detail for more detail.
/dev/md0: No md super block found, not an md component.

# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.00
Creation Time : Mon Jan 20 22:53:28 2003
Raid Level : raid1
Array Size : 40209024 (38.35 GiB 41.22 GB)
Device Size : 40209024 (38.35 GiB 41.22 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Jan 21 00:49:47 2003
State : dirty, no-errors
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0


Number Major Minor RaidDevice State
0 3 1 0 active sync /dev/hda1
1 22 1 1 active sync /dev/hdc1
UUID : d876333b:694e852b:e9a6f40f:0beb90f9

Obtener más detalles sobre los discos

# mdadm --query /dev/hda1
/dev/hda1: is not an md array
/dev/hda1: device 0 in 2 device active raid1 md0....

# mdadm --query /dev/hdc1
/dev/hdc1: is not an md array
/dev/hdc1: device 1 in 2 device active raid1 md0....

Administrar dispositivos RAID (RAID-1 y superiores)

Configurando el fallo de un disco:

# mdadm --fail /dev/md0 /dev/hdc1

Quitando un disco que falla de un array:

# mdadm --remove /dev/md0 /dev/hdc1

Borrando cualquier información de un raid anterior de un disco

# mdadm --zero-superblock /dev/hdc1

Agragar un disco al array

# mdadm --add /dev/md0 /dev/hdc1

lunes, 21 de julio de 2008

Programar tareas en linux crontad

Al igual que en linux existe un programador de tares que se llama crontad solo que es un poco distinto la manera de trabajar con el esto con respecto a windows que es mucho mas facil de entender aqui es un poco mas complejo aqui les pongo un ejemplo de tareas con crontad

0 4 * * * /usr/bin/date # Todos los días a las 04:00 de la mañana

Este muestra la hora y fecha todos los dias a las cuatro de la mañana

Los parametros para trabajar con el crontad son los siguientes

mm : Minuto dentro de la hora (0-59)
hh : Hora del día (0-23)
dd : Día del mes (1-31)
MM : Mes del año (1-12)
ss : Día de la semana (0-6, Domingo=0)
Comandos : Secuencia de comandos a ejecutar, deben ir separados con ";", pudiéndose redireccionar tanto la salida estándar como la de errores hacia algún archivo (2>&1).

$ crontab -l # lista las tareas en el cron del usuario
$ crontab -e # edita el archivo cron del usuario
$ crontab mi_archivo # activa mi_archivo como archivo cron del usuario

Con esto ya debemos de tener para programar nuestras tareas en linux

domingo, 20 de julio de 2008

Cómo ocultar la versión de PHP y apache en un servidor web

Para poner un pocos mas de seguridad en nuestro web server podriamos hacer unos pequeños ajustes

Para ocultar la version e apache seria modificar o agregar en el caso de que no existan estas dos lineas en el archivo de configuracion de apache en debian es /etc/apache2/apache2.con

ServerSignature Off
ServerTokens Prod

Con esto esta listo ya no veran la versión de apache que se muestra con algunos errores o cuando entran por ip o algo parecido

Para ocultar la versión de php es muy simple tambien

Para ocultarlo, basta con ir al fichero php.ini, y poned a “off” la línea “expose_php = On”. Esta línea viene activada en la mayoría de las distribuciones, y en las compilaciones de PHP.

Configuración de servidor https Debian etch 4.0 ó Ububtu Server 7.0

Muchas veces queremos poner que las paginas de nuestro servidor web sean https pero no contamos con dinero suficiente para para comprar los certificados entonces recurrimos a los gratuits aqui les pongo un buen ejemplo de como implanar uno suponiendo que ya tenemos el servidor andando sino aqui tambien hay una manual de como montarlo.

Instalaremos openssl:

apt-get install openssl ssl-cert

Para activar el mod ssl tecleamos:

a2enmod ssl

Esto nos dira que debemos reiniciar el apache lo hacemos de la siguiente manera

/etc/ini.d/apache2 forece-reload

Con esto ya esta activado el mod ssl

openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

Con esto le estamos diciendo que cree un certificado el cual durara 365 dias se va a llamar apache.pem y los va a guardar en /etc/apache2/ luego cambiamos los permisos del fichero

chmod 600 /etc/apache2/apache.pem

Y por útlimo editamos la configuración del servidor Apache, primero el fichero /etc/apache2/ports.conf y añadimos la siguiente línea:

Listen 443

Luego creamos los host virtuales de la siguiente manera para que cuando lso usuarios entren http los redireccione a https


Redirect / https://midominio.com
ServerName midominio.com



SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
DocumentRoot /var/www/mipagina
ServerName midominio.com


Reiniciamos el apache

/etc/init.d/apache2 restart

Y listo ya tenemos nuestro servidor web montado con https.

jueves, 17 de julio de 2008

Configurar servidor dns bind con vistas

La nueva versión 9 del tal vez el programa mas popular de dns en linux bind tienes muchas mejoras y nuevas herramientas, una de las que mas me impresiono gratamente es la de las vistas con esta opción podemos configurar un servidor dns para que sirva en la red interna y a la ves en la red publica

Escenario del ejemplo
En el ejemplo a continuación se muestran los archivos de configuración para el programa named que representan el
siguiente escenario:
Red Interna (clientes): 172.31.0.0/16 (segmento de direcciones privadas)
Red DMZ (servidores): 172.31.0.0/16 (segmento de direcciones privadas)
Red Externa (Internet): 200.122.271/29 (segmento de direcciones públicas)

Todos los servidores en la red privada DMZ son accesados desde la Internet gracias a NAT estáticos configurados
en el Firewall.
Los servidores en la red DMZ son accesados desde la red Interna directamente a su dirección DMZ sin NAT,
ruteados eso si por el FireWall

Archivos de configuración

/etc/named.conf ó /etc/bind/named.conf

options {
directory "/var/named";
version " Piensalo Bien antes de hacer algo";
query-source address * port 53;
auth-nxdomain yes;
allow-query { any; };
// DNS Hecho por: hgeorge123
};

view "internal" {
match-clients { 172.31.0.0/16; 127.0.0.0/8; };
recursion yes;

zone "dominio.com" IN {
type master;
file "named.dominio.com";
allow-transfer { any; };
allow-update { none; };
};

zone "10.31.172.in-addr.arpa" {
type master;
file "named.dominio.com.rev";
allow-transfer { any; };
allow-update { none; };
};

view "external" {
match-clients { any; };

zone "tudominio.com" IN {
type master;
file "named.tudominio.com";
allow-transfer { none; };
allow-update { none; };
};

zone "271.122.200.in-addr.arpa" IN {
type master;
file "named.tudominio.com.rev";
allow-transfer { none; };
allow-update { none; };
};

Esta es la configuracion que tiene que tener el named.conf estan declaradas las dos vistas la vista que ve la red internet y la que ve la red externa, ahora declaramos las zonas

/var/named/named.dominio.com

$TTL 3h
@ IN SOA dominio.com. root.dominio.com (
2008071300 ; Serial
3h ; Refresh
2h ; Retry
1w ; Expire
1d ) ; Negative
IN A 172.31.10.1
IN NS dns1.dominio.com.
IN NS dns2.dominio.com.
IN MX 5 mail
dns1 IN A 172.31.10.1
dns2 IN A 172.31.10.1
www IN A 172.31.0.1
mail IN A 172.31.0.1

/var/named/named.dominio.com.rev

$TTL 3h
@ IN SOA dominio.com. root.dominio.com (
2008052202 ; Serial
3h ; Refresh
2h ; Retry
1w ; Expire
1d ) ; Negative
IN NS dns1.dominio.com.
IN NS dns2.dominio.com.
dns1 IN NS 172.31.10.1
dns2 IN NS 172.31.10.1
1 IN PTR mail
1 IN PTR www

/var/named/named.tudominio.com

$TTL 3h
@ IN SOA dominio.com. root.dominio.com (
2008071300 ; Serial
3h ; Refresh
2h ; Retry
1w ; Expire
1d ) ; Negative
IN A 200.122.271.89
IN NS dns1.dominio.com.
IN NS dns2.dominio.com.
IN MX 5 mail
dns1 IN A 200.122.271.89
dns2 IN A 200.122.271.89
www IN A 200.122.271.89

/var/named/named.tudominio.com.rev

$TTL 3h
@ IN SOA dominio.com. root.dominio.com (
2008071001 ; Serial
3h ; Refresh
2h ; Retry
1w ; Expire
1d ) ; Negative
@ IN NS dns1.dominio.com.
IN NS dns2.dominio.com.
89 IN PTR dns1.dominio.com.
89 IN PTR mail
89 IN PTR www

Con esto ya tenemos el nuestro servidor dns listo iniciamos el servico o reiniciamos si ya lo tenemos listo esto solo funciona en bind 9 en el 8 no, como información adicional les digo que cada ves que hagana algun cambio en los archivos de zona actualizen el serial el cual esta en el siguiente formato año/mes/dia/numero de modificacion un ejemplo es:
288071001 Esto dice año 2008 mes 07 dia 10 modificacion 1 del dia.

miércoles, 16 de julio de 2008

Instalacion y configuracion de zimbra en debian etch 4.0

Muchos administradores se matan la cabeza montando un servidor de correo debido a que no es nada facil a pesar de postfix que ha humanisado mas los archivos de configuración porque sendmail es otro nivel, bueno para quitarse muchos dolores de cabeza yo recomiendo instalar zimbra como gestor de correo y aqui les pongo un ejemplo facil de como montarlo a mi me funciono perfecto.

Primero revisamos el /etc/hosts que este hay el el nombre del equipo y dominio para el que va a ser servidor de correo, deberia haber algo parecido a esto

127.0.0.1 localhost.localdomain localhost
192.168.0.110 server1.example.com server1

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

En caso de que no este el nombre del equipo y el dominio borramos lo que este hay y agregamos el dominio con nombre de host de etsa manera

echo server1.example.com > /etc/hostname

luego reiniciamos para que surtan efecto los cambios en todo el sistema

Al cargar ejecutamos hostname -f y no debe arrojar como resultado esto
server1.example.com

Luego revisamos el archivo /etc/resolv.conf qu eesten configurado los ip de nuestro servidor dns en el caso de que el servidor de correo este detras un firewall o gateway en una red privada, luego de esto desintalamos los paquetes innecesarios para nuestra instalación y que ademas dan problemas con el zimbra

apt-get remove --purge exim4 exim4-base exim4-config exim4-daemon-light

acto seguido instalamos los que si necesitamos

apt-get install libc6-i686 sudo libidn11 curl fetchmail libgmp3c2 libexpat1 libgetopt-mixed-perl libxml2 libstdc++6 libpcre3 libltdl3 ssh
ya con esto tenemos el sistema listo para em pesar con la instalación del zimbra nos cambiamos de directorio y nos descargamos la ultima versión que para el momento es 5.0.8

cd /tmp/
wget http://files.zimbra.com/downloads/5.0.8_GA/zcs-5.0.8_GA_2462.DEBIAN4.0.20080709172452.tgz

Acto seguido que lo hemos descargado empezamos con la instalación

tar xvfz zcs-5.0.8_GA_2462.DEBIAN4.0.20080709172452.tgz
cd zcs-5.0.8_GA_2462.DEBIAN4.0.20080709172452
./install.sh -l

En este paso nos hara una serie de preguntas

Checking for prerequisites...
NPTL...FOUND
sudo...FOUND sudo-1.6.8p12-4
libidn11...FOUND libidn11-0.6.5-1
fetchmail...FOUND fetchmail-6.3.6-1etch1
libpcre3...FOUND libpcre3-6.7+7.4-2
libgmp3c2...FOUND libgmp3c2-2:4.2.1+dfsg-4
libxml2...FOUND libxml2-2.6.27.dfsg-2
libstdc++6...FOUND libstdc++6-4.1.1-21
openssl...FOUND openssl-0.9.8c-4etch1
libltdl3...FOUND libltdl3-1.5.22-4
Prerequisite check complete.
Checking for standard system perl...
perl-5.8.8...FOUND standard system perl-5.8.8

Install zimbra-ldap [Y] Y
Install zimbra-logger [Y] Y
Install zimbra-mta [Y] Y
Install zimbra-snmp [Y] Y
Install zimbra-store [Y] Y
Install zimbra-apache [Y] Y
Install zimbra-spell [Y] Y
Install zimbra-proxy [N] N

The system will be modified. Continue? [N] Y

Main menu

1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: admin@server1.example.com
******* +Admin Password UNSET
+Enable automated spam training: yes
+Spam training user: spam.m0bqyoayc@server1.example.com
+Non-spam(Ham) training user: ham.ygch0qyz1@server1.example.com
+Global Documents Account: wiki@server1.example.com
+SMTP host: server1.example.com
+Web server HTTP port: 80
+Web server HTTPS port: 443
+Web server mode: http
+IMAP server port: 143
+IMAP server SSL port: 993
+POP server port: 110
+POP server SSL port: 995
+Use spell check server: yes
+Spell server URL: http://server1.example.com:7780/aspell.php

4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-logger: Enabled
7) zimbra-spell: Enabled
8) Default Class of Service Configuration:
r) Start servers after configuration yes
s) Save config to file
x) Expand menu
q) Quit

Address unconfigured (**) items (? - help)

Aqui tienes que elegir la opción numero 3 y ponerle una clave al usuario admin no menor de 6 digitos, cn este usuario es que vamos a trabajar siempre para administrar nuestro servidor

Store configuration

1) Status: Enabled
2) Create Admin User: yes
3) Admin user to create: admin@server1.example.com
** 4) Admin Password UNSET
5) Enable automated spam training: yes
6) Spam training user: spam.m0bqyoayc@server1.example.com
7) Non-spam(Ham) training user: ham.ygch0qyz1@server1.example.com
8) Global Documents Account: wiki@server1.example.com
9) SMTP host: server1.example.com
10) Web server HTTP port: 80
11) Web server HTTPS port: 443
12) Web server mode: http
13) IMAP server port: 143
14) IMAP server SSL port: 993
15) POP server port: 110
16) POP server SSL port: 995
17) Use spell check server: yes
18) Spell server URL: http://server1.example.com:7780/aspell.php

Select, or 'r' for previous menu [r]

Enter "4" (without the quotes) and press "Enter" to modify the admin password. Now you'll be asked for the new password.

Password for admin@server1.example.com (min 6 characters): [TR9Fm7uD]

Aqui introduces el password para el usuario admin

Main menu

1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-store: Enabled
4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-logger: Enabled
7) zimbra-spell: Enabled
8) Default Class of Service Configuration:
r) Start servers after configuration yes
s) Save config to file
x) Expand menu
q) Quit

*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help)

Con esot ya tenemos casi listo nuestro servidor de correo nos hara una preguna sobre donde y en que archivo va a sarvar los cambio le damos a todo enter

Save configuration data to a file? [Yes] Enter
Save config in file: [/opt/zimbra/config.5422]
Saving config in /opt/zimbra/config.5422...done.
The system will be modified - continue? [No] Y

Operations logged to /tmp/zmsetup.02062008-135354.log
Setting local config values...done.
Setting up CA...done.
Creating SSL certificate...done.
Initializing ldap...done.
Setting replication password...done.
Setting Postfix password...done.
Setting amavis password...done.
Deploying CA to /opt/zimbra/conf/ca ...done.
Creating server entry for server1.example.com...done.
Setting spell check URL...done.
Setting service ports on server1.example.com...done.
Adding server1.example.com to zimbraMailHostPool in default COS...done.
Installing skins...
hotrod
lavender
waves
steel
sky
bones
yahoo
sand
lemongrass
beach
bare
done.
Setting zimbraFeatureIMEnabled=FALSE...done.
Setting zimbraFeatureTasksEnabled=TRUE...done.
Setting zimbraFeatureBriefcasesEnabled=TRUE...done.
Setting zimbraFeatureNotebookEnabled=TRUE...done.
Setting MTA auth host...done.
Setting TimeZone Preference...done.
Creating domain server1.example.com...done.
Creating user admin@server1.example.com...done.
Creating postmaster alias...done.
Creating user wiki@server1.example.com...done.
Creating user spam.m0bqyoayc@server1.example.com...done.
Creating user ham.ygch0qyz1@server1.example.com...done.
Setting spam training accounts...done.
Initializing store sql database...done.
Setting zimbraSmtpHostname for server1.example.com...done.
Initializing logger sql database...done.
Initializing mta config...done.
Configuring SNMP...done.
Setting services on server1.example.com...done.
Setting up zimbra crontab...done.
Setting up syslog.conf...done.

After all you'll be asked if you want to notify Zimbra of your installation. Press "Enter" if you want to do that, or enter "N" (without the quotes) and press "Enter" if you disagree to that. Afterwards the system will be initialized - it should look like this:

Starting servers...done.
Checking for deprecated zimlets...done.
Installing zimlets...
com_zimbra_date
com_zimbra_url
com_zimbra_cert_manager
com_zimbra_phone
com_zimbra_search
com_zimbra_local
com_zimbra_email
done.
Initializing Documents...done.
Restarting mailboxd...done.

Moving /tmp/zmsetup.02062008-135354.log to /opt/zimbra/log

Por ultimo para verificar que todo este bien nos cambiamos al usuario zimbra y verificamos que todos los servicios esten arriba de la siguiente manera

su - zimbra
zmcontrol status Esto nos deberia de arrojar como resultado lo siguiente
Host server1.example.com
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
mta Running
snmp Running
spell Running
stats Running

En caso de no arrojar un resultado parecido a este intentamos levantar los servicios asi

zmcontrol start

Si todo ha ido bien tenemos listo nuestro servidor de correo sino es porque te slataste algun paso del manual.

Para empezar a administrar nuestro servidor entramos a la consola administrativa de la siguiente manera https://server1.example.com:7071/zimbraAdmin/ impotante que "A" de Admin este en mayuscula si no esta en mayuscula no va a entrar en la consola aqui nos pide un usuraio y una clave el usuario es admin y la clave es la uqe pusimos hace ratos atras, la consola no la voy a explicar porque ella se explica sola es muy facil y eficiente, todo lo que resta es crear los usuarios y los dominios si vas a hacer el servidor multidominio y listo.

Para entrar en modo usuario entras de la siguiente manera http://server1.example.com introduces el usuario en este formato usuario@midominio.com y la clave si no le pones el @dominio no va a entrar debido a que puede ser servidor multi dominio, como información adicional les digo que antes de empezar a instalar el zimbra tienen que tener el DNS bien configurado apuntando hacia la ip de nuestro servidor de correo porque sino el zimbra les va a dar error en la instalación.

viernes, 11 de julio de 2008

Limitar intentos fallidos de ssh o brute force

Hay muchos administradores de red que necesitan conectarse desde fuera a los servidores del trabajo pero no saben como hacen para abrir el puerto ssh sin ser tan vulnerable una opción seria configurar un vpn u otra seria limitar las conexiones de ese puerto por tiempo y numero de conexiones una herramienta ideal para eso seria el iptables el firewall por excelencia de linux aqui les pongo un ejemplo de como hacerlo

iptables -N pqtes-tcp-permitidos
iptables -A pqtes-tcp-permitidos -p TCP -m state --state NEW --dport 22 -m recent --set
iptables -A pqtes-tcp-permitidos -p TCP -m state --state NEW --dport 22 -m recent --pdate --seconds 60 --hitcount 4 -j DROP
iptables -A pqtes-tcp-permitidos -p TCP -m state --state NEW --dport 22 -j ACCEPT

la primera regla crea la cadena de paquetes, la segunda regla agrega el número IP que inicia una conexión SSH a una lista, la tercera regla actualiza la lista y prueba que no hayan más de 4 requerimientos nuevos en un lapso de 60 segundos, Si los hay, la regla descarta el requerimiento. De esta manera limitamos la tasa a máximo 3 requerimientos por minuto por IP

Otra cosa interesante seria bloquear los broadcast aqui dejo la linea de como bloquearlos

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Con esto ya tenemos el ssh seguro y prevenimos el brute force de ssh.

domingo, 11 de mayo de 2008

Servidor web con oci8

Existen muchas personas que se rompen la cabesa instalando un servidor web con oci8 que es el drivers para leer las base de datos en oracle a continuación les mostrare como se instala en un servidor con debían o ubuntu.

Primero que nada necesitamos descargar las siguientes librerías de la pagina oficial de oracle solo hay que registrarse es totalmente gratuito el registro. Ojo no importa la versión de las librerías si son mas nuevas o mas viejas es indiferente.

instantclient-basic-linux32-10.2.0.1-20050713.zip
instantclient-sdk-linux32-10.2.0.1-20050713.zip

Luego que tienes las librerías las descomprimes de la siguiente manera

unzip instantclient-basic-linux32-10.2.0.1-20050713.zip
unzip instantclient-sdk-linux32-10.2.0.1-20050713.zip

Luego creas una carpeta en la siguiente ruta mkdir -p /opt/oracle/instantclient que es donde el oci8 va a leer las liberias después de esto el procedimiento es el siguiente:

mv instantclient_10_2/* /opt/oracle/instantclient/
cd /opt/oracle/instantclient/
ln -s libclntsh.so.10.1 libclntsh.so
ln -s libocci.so.10.1 libocci.so

echo /opt/oracle/instantclient >> /etc/ld.so.conf
ldconfig

Con esto ya tenemos las librerías lista e incluidas en el path del linux ahora abrimos el asistente de instalación aptitude con apt-get no funciona dice que los paquetes no existen cuando si existen e instalamos los siguientes paquetes

apt-get install build-essential php5-dev php-pear apache2 apache2-doc apache2-utils apache2.2-common libapache2-mod-bt libapache2-mod-php5 libapache2-mod-proxy-html libapache2-mod-ruby libapache2-mod-scgi php5-apache2-mod-bt php5-dev php5-uuid php5-ming php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imagick php5-json php5-mcrypt php5-memcache php5-odbc php5-snmp

Aparte tienes qie unstalar esto pero abriendo la consola de aptitude porque si no te dice que no existe

aptitude install build-essentials

Con esto ya tenemos sificiente para instalar el oci8 si quiere adicionarle algo mas ya queda de parte de ustedes, ahora a instalar el oci8

mkdir -p /usr/local/src/
cd /usr/local/src/
pear download oci8
tar xzf oci8-1.1.1.tgz
cd oci8-1.1.1
./configure --with-oci8=shared,instantclient,/opt/oracle/instantclient
make
make install

Ya tenemos el oci8 instalado en el sistema solo falta decirle al php que lo lea y lo hacemos de la siguiente manera

echo extension=oci8.so >> /etc/php5/apache2/php.ini
echo extension=oci8.so >> /etc/php5/cli/php.ini

/etc/init.d/apache2 restart

Con esto ya tenemos listo nuestro servidor web con las librerias para que lea base de datos oracle

Despues de tener el servior listo si te da problemas con los caracteres especiales en la base de datos tienes que quitar esta linea en ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin" /etc/init.d/apache2 y colocas esto ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin ORACLE_HOME=/opt/oracle/instantclient NLS_LANG=SPANISH_SPAIN.WE8MSWIN1252".

Sincronizar archivos con rsync

Existe muchas personas que hacer respaldos diarios de archivos o sistemas y copiar todo el sistema a diario en el sitio donde respaldan esto si no usan ningun sistema de respaldos com rdiff o muchos otros que existen en linux hay otra manera de hacerlo con rsyn lo cual hace una comparacion de las dos carpetas y copia solo los archivos modificados sin tener que traspasar otra vez toda la data un ejemplo de esto seria de la siguiente manera.

rsync -a -p -v -L -e ssh /carptea_que_ha_sido_modificada root@IP_del_servidor_de_respaldo:/carpeta_a_donde_guarda_respaldo