sábado, 16 de noviembre de 2013

Todo los días se aprende algo nuevo...

Cuando se genera un nuevo sistema de ficheros y lo montamos, vemos que en su interior existe una carpeta lost+found. Esta carpeta se utiliza cuando se pasa la utilidad e2fsck y aparecen bloques huerfanos. La carpeta se genera por medio del comando mklost+found, la cual, reserva bloques de datos para alojar los ficheros huerfanos.

...parece que nunca terminas de aprender cosas... ...el mundo sería aburrido si no tenemos cosas que aprender... 

sábado, 9 de noviembre de 2013

Construcción de un paquete rpm

Los paquetes de distribución de software que usan las distribuciones linux Red Hat y CentOS son en formato rpm. En debian y derivados, como ubuntu, los paquetes son en formato deb. Entre los objetivos a conocer para el RHCSA es necesario saber construir un paquete rpm.

Los paquetes rpm deben ser construidos en una estructura de directorios predeterminada:

BUILD

BUILDROOT

RPMS

SOURCES

SPECS

SRPMS

Esta estructura y para hacernos el trabajo más simple se puede generar con el comando rpmdev-setuptree, las estructura se genera en la carpeta incial del usuario bajo la carpeta rpmbuild.

Para construir un paquete rpm necesitamos un fichero, .spec, que le indique a la aplicación rpmbuild que construir y como. Al instalar el paquete rpmdevtools, en la carpeta /etc/rpmdevtools/ se nos dejan varios ficheros plantilla y en nuestro caso usaremos el fichero spectemplate-minimal.spec. También se puede hacer uso del comando rpmdev-newspec, el cual genera el mismo fichero con el nombre newpackage.spec. El fichero .spec debe estar colocado en la carpeta SPECS.

Para generar el paquete rpm necesitamos basarnos en un fichero .tar con el contenido de nuestro paquete. El fichero se debe colocar en la carpeta SOURCES. Para este ejemplo he generado una carpeta que contiene lo siguiente:

./vsconf-personal:

total 8

-rwxr-xr-x. 1 root root    0 nov  9 18:31 configure

drwxr-xr-x. 3 root root 4096 nov  3 20:15 etc

drwxr-xr-x. 3 root root 4096 nov  9 09:23 opt

./vsconf-personal/etc:

total 4

drwxr-xr-x. 2 root root 4096 nov  9 09:22 vsftpd

./vsconf-personal/etc/vsftpd:

total 8

-rw-------. 1 root root 4617 nov  3 20:06 mi_vsftpd.conf

./vsconf-personal/opt:

total 4

-rw-r--r--. 1 root root    0 nov  9 09:23 fileone

-rw-r--r--. 1 root root    0 nov  9 09:23 filetwo

drwxr-xr-x. 2 root root 4096 nov  9 09:23 uno

./vsconf-personal/opt/uno:

total 0

-rw-r--r--. 1 root root 0 nov  9 09:23 Oneeee

 

-rw-r--r--. 1 root root 0 nov  9 09:23 Twoooo

Atención al fichero configure (Se usa para configurar un fuente antes de compilarlo, en nuestro caso no lo usaremos), vacío y con permisos de ejecución. La idea es que el fichero mi_vsftpd.conf se coloque en la carpeta /etc/vsftpd. En la carpeta /opt se generan dos ficheros (fileone y filetwo). Además se crea la carpeta uno con los fichero Oneeee y Twoooo en su interior. De esta estructura generamos un fichero vsconf-personal.tar

Tras renombrar el fichero newpackage.spec como vsconf-personal.spec que inicialmente tiene la siguiente información:

Name:           

Version:        

Release:        1%{?dist}

Summary:        

 

Group:          

License:        

URL:            

Source0:        

 

BuildRequires:  

Requires:       

 

%description

 

 

%prep

%setup -q

 

 

%build

%configure

make %{?_smp_mflags}

 

 

%install

rm -rf $RPM_BUILD_ROOT

make install DESTDIR=$RPM_BUILD_ROOT

 

%clean

rm -rf $RPM_BUILD_ROOT

 

%files

%defattr(-,root,root,-)

%doc

 

 

%changelog

Editamos el fichero y lo dejamos de la siguiente manera:

Name:          vsconf-personal

Version:       1.0 

Release:        1%{?dist}

Summary:       This is a summary test 

License:       GPL

Source0:        vsconf-personal.tar

 

%description

Desc1

Desc2

Desc3

Desc4

 

%prep

#%setup -q

%setup -n vsconf-personal

 

 

#%build

#%configure

#make %{?_smp_mflags}

 

 

%install

rm -rf $RPM_BUILD_ROOT

#make install DESTDIR=$RPM_BUILD_ROOT

mkdir $RPM_BUILD_ROOT

cp -r * $RPM_BUILD_ROOT/

rm -f $RPM_BUILD_ROOT/configure

 

%clean

rm -rf $RPM_BUILD_ROOT

 

 

%files

%defattr(-,root,root,-)

%doc

#%dir /opt/uno

/etc/vsftpd/mi_vsftpd.conf

/opt/fileone

/opt/filetwo

/opt/uno/Oneeee

/opt/uno/Twoooo

 

 

%changelog

%setup -n vsconf-personal --> Con este cambio indicamos durante la construcción donde está el fichero .tar a usar.

Con las lineas mkdir $RPM_BUILD_ROOTcp -r * $RPM_BUILD_ROOT/ generamos una carpeta  y copiamos nuestros ficheros que luego se empaquetan en nuestro rpm. La linea rm -f $RPM_BUILD_ROOT/configure elimina el fichero configure del paquete.

%files --> Ponemos los ficheros que queremos que se copian al instalar el paquete rpm.

El paquete rpm se genera ejecutando el comando rpmbuild -bb vsconf-personal.spec. El resultado se deja en la carpeta rpmbuild/RPMS/x86_64/vsconf-personal-1.0-1.el6.x86_64.rpm . El parámetro -bb hace que se genere el instalador binario. 

 

viernes, 1 de noviembre de 2013

Restringir acceso vía SSH por usuario y grupos

Es impresionante lo que uno puede hacer vía ssh en un servidor Linux. En una de mis entradas del blog ya hablo de túneles ssh y túneles ssh inversos. Ahora, y con motivo del RHCSA he tenido que hacer un laboratorio donde se te pide que restrinjas el acceso a un servidor vía ssh a un usuario en concreto. En la documentación del demonio ssh aparece una entrada que se puede colocar en la configuración y de esta manera denegar el acceso a un usuario.

DenyUsers

Se trata de una lista de usuarios, separada por comas o espacios, del sistema destino con el host desde el que van realizar el acceso.

Un ejemplo:

DenyUsers user1@server1, user2@server1.example.org

DenyGroups

Es análogo al anterior pero usando grupos de usuarios del sistema destino.

Nota:

También existen las directivas AllowUsers y AllowGroups. Por defecto se permite acceso a todos los usuarios. Si cambiamos este compartamiento, esta directiva nos permite hacer una lista de usuarios con acceso al servidor.

viernes, 18 de octubre de 2013

RHCSA - Level System Administration Tasks

Dentro de las diferentes tareas de administración que se llevan a cabo en el sistema operativo existen las tareas cron (las que más uso) y las tareas at que nunca he usado. Las tareas cron son ejecutadas por el demonio crond y las tareas at por el demonio atd.

La sintaxis de las tareas at (simplificada) es la siguiente:

at [-f file] time

Si no se especifica el comando, se presenta una consola donde introducir el comando o el fichero script (rpm -qa > /root/test.txt | /root/rpmq.sh). Para terminar es necesario hacer un CTRL-D.

La hora (time) se puede especificar de muchas maneras, para verlas consulten la documentación de CentOS.

Ejemplos de tareas:

at HH:MM (Si la hora ha pasado se ejecutará el siguiente día)
at now + time (Se ejecutará a la hora actual dentro de X time que puede tener los valores minutes, hour, days o week).

Ejemplos reales:

at -f /root/rpms.sh now + 5 min

at now + 20 hour
at> rpm -qa > /root/salida.txt
at> CTRL-D


jueves, 17 de octubre de 2013

Certificaciones...

Ha pasado más de un año sin escribir por aquí... eso es demasiado tiempo... Este último año, mi trabajo y mi vida personal no me han dado el tiempo que requiere escribir un blog.

Certificaciones?... Sí, certificaciones... He completado durante este año algunas certificaciones relacionadas con mi trabajo, muchas son sobre el sistema de Backup de IBM TSM (Tivoli Storage Manager), pero para mi, la más importante ha sido el VCP5-DCV de VMware. (Gracias Open).



Creo que esto de estar certificado es muy interesante, y por eso ahora mismo estoy preparando las certificaciones relacionadas con el Sistema Operativo Linux. Desde mi punto de vista, las certificaciones RHCSA y RHCE de Red Hat son las más reconocidas y con más salida profesional. Pero si estudias para sacar esas dos certificaciones, también tienes a tiro las certificaciones LPIC1 y LPIC2 del Linux Professional Institute.

Como necesito un sitio donde guardar mis notas, voy a usar mi blog para tomar notas sobre los objetivos de los exámenes que no conozco en profundidad.

Un saludo a todos...