Archive for Mayo, 2007

Recuperar contraseña de Webmin

Qué onda raza, fijense que hace algunos días me paso un caso muy extraño con un servidor, resulta que lo actualice y entre los paquetes se encontraba el webmin, y pues yo bien seguro de todo actualice pero al finalizar la instalación parece ser que no puse la atención debida al semi asistente que aparece para la actualización de algunos archivos, ya que al día siguiente me econtre con que la contraseña de root dewebmin no era la correcta, cosa que se me hizo extraña por que regularmente es la misma que el usuario root del sistema operativo, no pues para pronto me fui al famoso [url]http://ww.google.com[/url] y encontre cómo se puede hacer para recuperar dicha contraseña.

Al estar leyendo los documentos me di cuenta que es muy sencillo y de echo el propio webmin te proporciona la herramienta para estos casos. Para no darle tantas vueltas al asunto les pongo lo que me ayudo a restaurar mi sagrada contraseña :-P

How do I change my Webmin password if I can’t login?

Included with the Webmin distribution is a program called changepass.pl to solve erecisely this problem. Assuming you have installed Webmin in /usr/libexec/webmin, you could change the password of the admin user to foo by running
/usr/libexec/webmin/changepass.pl /etc/webmin admin foo

De hecho yo solo ejecute el siguiente comando y todo fuinciono muy bien
[terminal]
/usr/libexec/webmin/changepass.pl /etc/webmin root 123456
[/terminal]

Algo que si no te es que el usuario que tenia creado ademas del root desaparecio por lo cuál tuve que crearlo, esto fue suerte ya que de haber tenido mas hubiera sido una weba tener que recapturar todos ya que no tenía respaldo de esto.

De esto me quedan 2 cosas de experiencia:
1-Sacar respaldos de etc
2-Poner atención a los etc-update :D

Bueno espero algún día esto le sirva a alguién.

Saludos

device is busy : umount

Hola raza, no les ha pasado que quieren desmontar alguna unidad de almacenamiento con umount les aparece la leyenda de device is busy?. Y cuando se fijan en los procesos no ven nada que la pueda estar usando. Esto es realmente molesto para mi, sobretodo cuando llevo prisa, pero afortunadamente existe un par de comandillos que nos ayudan saber que proceso lo esta ocupando y así poder detenerlo y después hacer bien el umount.

El primero de ellos es fuser que identifica los procesos que estan usando los archivos o puertos.
El segundo que tenemos es el lsof: que solamente lista los archivos abiertos.

Vamos a ver un ejemplos para saber cómo funcionan:

Ejemplo 1: Utilizando fuser
[terminal]
lily ~ # umount /mnt/ntfs
umount: /mnt/ntfs: dispositivo ocupado
umount: /mnt/ntfs: dispositivo ocupado
lily ~ # fuser /mnt/ntfs
/mnt/ntfs: 7286c
lily ~ # ps aux | grep 7286
ivan 7286 0.0 0.2 12744 3024 pts/3 Ss+ 15:22 0:00 bash
lily ~ #
[/terminal]

Cómo pueden ver quién esta haciendo uso del dispositivo es el usuario ivan que esta firmando en la terminal virtual número 3, ya solo queda darle un kill al proceso o decirle que se salga si es que somos amables :)

Ejemplo 2: usando lsof

[terminal]
lily ~ # lsof /mnt/ntfs/
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 7286 ivan cwd DIR 3,5 8192 5 /mnt/ntfs/
lily ~ #
[/terminal]

Cómo pueden ver aquí, nos da mas detalles acerca del punto.
Ya con alguno de estos comandos podemor hacer que nuestro desmotaje sea normal y no tengamos que desconectar el dispositivo a la fuerza y correr riesgos de perdida de datos.

Nota importante, estos se deben correr como root :)

De regreso a las andadas :)

Qué onda raza pues aquí comenzando a postear nuevamente y para dar inicio voy ponerles un script que utilizo para establecer un Firewall usando IPTABLES.

Estas reglas estan establecidas para usar la implementación de: Política por defecto DENEGAR, es decir, todo esta negado, y solo se permitirá pasar por el firewall aquellos que se permita explícitamente.

[code='Bash']
#!/bin/bash

############################################################
# Los acentos en este texto han sido eliminados a proposito.
# Firewall con politicas de DROP por defecto
# Construido por Ivan Rico | 7th Sign
# ivan@rico.org.mx
# http://ivan.rico.org.mx
############################################################

############################################################
# VARIABLES DEL SCRIPT
############################################################

#Ruta del binario de iptables
IPTABLES=/sbin/iptables

#Interfaz conectada a internet
INTERNET="eth0"

#Interfaz conectada a nuestra LAN
LAN="eth1"

#Declarar la clase de la red local
CLASS=192.168.0.1/24

#Declarar el resto de la red
UNIVERSE=0.0.0.0/0

############################################################
# ELIMINACION DE REGLAS EXISTENTES
############################################################

$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F

############################################################
# ESTABLECEMOS POLITICAS POR DEFECTO (CERRADO)
############################################################

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

############################################################
# COMIENZAN REGLAS DE FILTRADO
############################################################
#El localhost se deja acceso total
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

#*************************************************************#
#*************************************************************#
# REGLAS DE INPUT #
#*************************************************************#
#*************************************************************#
#PERMITIR PETICIONES ICMP QUE VENGAN DE LAS IPS DE LA RED
$IPTABLES -A INPUT -p ICMP -s $CLASS -j ACCEPT

#PERMITIR PINGS DESDE INTERNET
$IPTABLES -A INPUT -p icmp -i $INTERNET --icmp-type echo-reply -j ACCEPT

#PERMITIR EL USO DEL SERVIDOR DNS
$IPTABLES -A INPUT -p udp -s $CLASS --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s $CLASS --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp -d $CLASS --sport 53 -j ACCEPT
$IPTABLES -A INPUT -p tcp -d $CLASS --sport 53 -j ACCEPT

#ACCESO A SSH DESDE LA RED LOCAL
$IPTABLES -A INPUT -i $LAN -p tcp --dport 22 -j ACCEPT

#ACCESSO A SMB DESDE LA RED LOCAL
$IPTABLES -A INPUT -i $LAN -s $CLASS -p tcp --dport 137 -j ACCEPT
$IPTABLES -A INPUT -i $LAN -s $CLASS -p tcp --dport 138 -j ACCEPT
$IPTABLES -A INPUT -i $LAN -s $CLASS -p tcp --dport 139 -j ACCEPT
$IPTABLES -A INPUT -i $LAN -s $CLASS -p tcp --dport 445 -j ACCEPT
$IPTABLES -A INPUT -i $LAN -s $CLASS -p udp --dport 137 -j ACCEPT
$IPTABLES -A INPUT -i $LAN -s $CLASS -p udp --dport 138 -j ACCEPT
$IPTABLES -A INPUT -i $LAN -s $CLASS -p udp --dport 139 -j ACCEPT
$IPTABLES -A INPUT -i $LAN -s $CLASS -p udp --dport 445 -j ACCEPT

#PERMITIR ACCESO A LAS CONEXIONES ESTABLECIDAS
$IPTABLES -A INPUT -i $INTERNET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#*************************************************************#
#*************************************************************#
# REGLAS DE OUTPUT #
#*************************************************************#
#*************************************************************#
#PERMITIR CONTESTAR LAS PETICIONES ICMP DE LAS IPS DE LA RED
$IPTABLES -A OUTPUT -p ICMP -d $CLASS -j ACCEPT

#PERMITIR PNGS DESDE INTERNET
$IPTABLES -A OUTPUT -p icmp -o $INTERNET --icmp-type echo-request -j ACCEPT

#DNS
$IPTABLES -A OUTPUT -p udp -d $CLASS --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -d $CLASS --sport 53 -j ACCEPT

#ACCESO A SSH DESDE LA RED LOCAL
$IPTABLES -A OUTPUT -o $LAN -p tcp --sport 22 -j ACCEPT

#ACCESSO A SMB DESDE LA RED LOCAL
$IPTABLES -A OUTPUT -o $LAN -d $CLASS -p tcp --sport 137 -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN -d $CLASS -p tcp --sport 138 -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN -d $CLASS -p tcp --sport 139 -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN -d $CLASS -p tcp --sport 445 -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN -d $CLASS -p udp --sport 137 -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN -d $CLASS -p udp --sport 138 -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN -d $CLASS -p udp --sport 139 -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN -d $CLASS -p udp --sport 445 -j ACCEPT

#PERMITIR EL ACCESO A LAS CONEXCIONES ESTABLECIDAS
$IPTABLES -A OUTPUT -o $INTERNET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#*************************************************************#
#*************************************************************#
# REGLAS DE FORWARD #
#*************************************************************#
#*************************************************************#
#HABILITAR CONSULTA DNS
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p udp --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p tcp --dport 53 -j ACCEPT

#HABILITAR EL POP3
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p tcp --dport 110 -j ACCEPT
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p tcp --dport 995 -j ACCEPT

#HABILITAR EL SMTP
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p tcp --dport 25 -j ACCEPT

#HABILITAR TRAFICO WEB
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p tcp --dport 80 -j ACCEPT

#HABILITAR PING
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p icmp -j ACCEPT

#PERMITIR EL USO DE MSN MESSENGER
$IPTABLES -A FORWARD -p TCP --dport 1863 -j ACCEPT

#PERMITIR EL USO DEL PUERTO DEL CPANEL
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p TCP --dport 2083 -j ACCEPT

#PERMITIR EL USO DEL SSL
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p TCP --dport 443 -j ACCEPT

#PERMITIR CONEXIONES SSH HACIA EL EXTERIOR
$IPTABLES -A FORWARD -i $LAN -o $INTERNET -p TCP --dport 22 -j ACCEPT

#HABILITAR LAS CONEXIONES ESTABLECIDAS
$IPTABLES -A FORWARD -i $INTERNET -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT

#*************************************************************#
#*************************************************************#
# REGLAS De NAT #
#*************************************************************#
#*************************************************************#
#ACTIVANDO EL NAT USANDO MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -A POSTROUTING -s $CLASS -d $UNIVERSE -o $INTERNET -j MASQUERADE

[/code]

Cabe mencionar que estas reglas son las mas sencillas para poner un buen firewall ya que como pueden ver no establece ninguna zona Desmilitarizada ni nada por el estilo.

Pero bueno funciona para mis propositos y lo hace bien :) , espero que a alguién mas le sean útil estas reglas y si llega a existir alguna duda, pues que me avise y con gusto se la amplio, digo… se la aclaro :)

Nos vemos en el siguiente post.