jueves, 30 de septiembre de 2010

SElinux Activar y Desactivar

La verdad es que en varias ocasiones me ha tocado pegarme con SElinux tras darme cuenta que ese era el problema y para que no se me olvide:

Desactivar SELinux con comando:
# setenforce 0

Activar SELinux con comando:
# setenforce 1


SELinux desde el arranque en modo permisivo:

consultar http://fedoraproject.org/wiki/SELinux/setenforce

editar /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
#       targeted - Targeted processes are protected,
#       mls - Multi Level Security protection.
SELINUXTYPE=targeted



donde pone SELINUX=enforcing poner SELINUX=permissive

Script baja usuarios FTP

Evidentemente despues de añadir la entrada anterior tenia que añadir esta...
le he llamado /root/scripts/baja_usuarios_ftp.sh

#!/bin/bash

USUARIOFTP=" "

echo -----------------------------------------------------
echo Introduzca un nombre de usuario ftp
read USUARIOFTP

cat /etc/passwd |cut -d: -f1 | grep $USUARIOFTP
if [ $? -eq 0 ]; then
        userdel $USUARIOFTP
        echo Usuario eliminado
        echo elimine el directorio $(cat /etc/passwd |cut -d: -f6 | grep $USUARIOFTP)
else
        echo "ERROR#1: El usuario $USUARIOFTP no existe"
fi

Script alta usuarios FTP

Hoy toca scripting con bash, se que no soy crack en esto pero la cosa es que sabiendo un poquito te ayuda bastante con la administración.
yo le he llamado: /root/scripts/alta_usuarios_ftp.sh

#!/bin/bash
GRUPO_USUARIOS=Ftp-Users
SHELL_FTP=/bin/bash
DIR_RAIZ=/ftp/privado
USUARIOFTP=" "
CLAVE_USUARIOFTP=" "
COMENTARIO=" "
DIR_NUEVO=" "
URL_FTP="ftp.midominio.com"


echo -----------------------------------------------------
echo Introduzca un nombre de usuario ftp
read USUARIOFTP
echo $USUARIOFTP

echo -----------------------------------------------------
echo Introduzca una clave para el usuario ftp
read CLAVE_USUARIOFTP
echo $CLAVE_USUARIOFTP

echo -----------------------------------------------------
echo Introduzca un comentario acerca del usuario
read COMENTARIO
echo $COMENTARIO

echo -----------------------------------------------------
echo Introduzca el nuevo subdirectorio dentro de $DIR_RAIZ
read DIR_NUEVO
echo $DIR_NUEVO


echo Validacion...

if [ -d "$DIR_RAIZ/$DIR_NUEVO" ];then
        echo ERROR#1: Disculpe, el directorio $DIR_RAIZ/$DIR_NUEVO ya existe
else
        adduser -g $GRUPO_USUARIOS -d  $DIR_RAIZ/$DIR_NUEVO -s $SHELL_FTP -c "$COMENTARIO" -p $CLAVE_USUARIOFTP  $USUARIOFTP &>/dev/null
        OUT_CMD_ADDUSER=$?
        if [ $OUT_CMD_ADDUSER -eq 9 ]; then
                echo "ERROR#2: Disculpe el usuario:$USUARIOFTP ya existe."
                echo DEBUG $CMD_ADDUSER
        else
                if [ $OUT_CMD_ADDUSER -eq 0 ]; then
                        mkdir $DIR_RAIZ/$DIR_NUEVO &>/dev/null
                        chown $USUARIOFTP:$GRUPO_USUARIOS $DIR_RAIZ/$DIR_NUEVO
                        chmod -c 755 $DIR_RAIZ/$DIR_NUEVO
                        echo Directorio $DIR_RAIZ/$DIR_NUEVO creado
                        ls -lh $DIR_RAIZ | grep $DIR_NUEVO
                        echo $CLAVE_USUARIOFTP | passwd --stdin $USUARIOFTP
                        echo Usuario creado accedera mediante el siguiente enlace:
                        echo ftp://$USUARIOFTP:$CLAVE_USUARIOFTP@$URL_FTP/
                        echo SERVIDOR: $URL_FTP
                        echo USUARIO: $USUARIOFTP
                        echo CLAVE: $CLAVE_USUARIOFTP
                        #cat /etc/passwd |cut -d: -f1 | grep $USUARIOFTP
                else
                        echo DIR_RAIZ: $DIR_RAIZ
                        echo DIR_NUEVO: $DIR_NUEVO
                        echo USUARIO_FTP: $USUARIOFTP
                        echo GRUPO_USUARIOS: $GRUPO_USUARIOS
                        echo ERROR# Hubo un error desconocido
                        echo Devolvio $OUT_CMD_ADDUSER
                fi;
        fi
fi

miércoles, 29 de septiembre de 2010

Configurar servidor y cliente NTP

Lo he probado en ubuntu 10.04 
Instalar ntp
apt-get install ntp

Añadir al archivo /etc/ntp.conf
//La hora oficial española es 
//la del servidor hora.roa.es
server hora.roa.es

//ntp.ubuntu.org
//es.pool.ntp.org

para probar que funcione correctamente
/etc/init.d/ntp stop
date +%T -s "10:13:13"
/etc/init.d/ntp start
tail -f /var/log/syslog | grep ntp

y a esperar a que se sincronice la hora
date

Con esto conseguimos que esta maquina sicronice su hora con hora.roa.es y ademas hemos instalado el demonio ntpd que hace de servidor para otros equipos.

Es importante filtrar las peticiones NTP

//El servidor remoto (no permitimos nada)
restrict hora.roa.es mask 255.255.255.255 nomodify notrap noquery

//Las redes Internas (permitimos querys) 
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

//A Localhost (permitimos todo)
restrict 127.0.0.1

martes, 28 de septiembre de 2010

Configurando un servidor DNS (Bind9 en Ubuntu)

 Acabo de configurar un par de servidores DNS uno como master y otro como slave
en el servidor master con IP (a.a.a.a) la configuración

/etc/bind/named.conf.local
#resolución inversa
zone "p.p.p.in-addr.arpa" IN {
        type master;
        allow-transfer {
                b.b.b.b;
        };
        file "/etc/bind/reverse/db.p.p.p";
};

zone "midominio.com" IN {
        type master;
        allow-transfer {
                b.b.b.b;
        };
        file "/etc/bind/db.midominio.com";
};


y la conflagración en el servidor slave con IP (b.b.b.b)


/etc/bind/named.conf.local
 #resolución inversa
zone "p.p.p.in-addr.arpa" IN {
        type slave;
        masters { a.a.a.a; };
        file "db.p.p.p";
};

zone "midominio.com" IN {
        type slave;
        masters { a.a.a.a; };
        file "db.midominio.com";
};



recomiendo que reviséis la configuración de apparmor o bien desinstaléis en los dos servidores si queréis que las transferencias de zonas vayan bien.

para desinstalar de forma rápida
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
reboot



para comprobar que se replica correctamente la zona revisar los logs
tail -f /var/log/syslog | grep named
ls -lh /var/cache/bind

Comienzo...

Para que quede constancia... hoy comienza este blog.