DNS personalizado con SystemD y Ubuntu o CentOS

Para los que no saben… y para mi que suelo olvidarme, no se puede editar resolv.conf como si nada, ahora debemos cambiar las DNS en otro fichero… para esto me creo esta entrada, a modo de recordatorio.

Setear DNS en el archivo ubicado en /etc/systemd/resolved.conf, modificar el parámetro comentado DNS y agregar los valores deseados:
Continúa leyendo DNS personalizado con SystemD y Ubuntu o CentOS

Limpiar USB creado con DD en Microsoft Windows

Algunos o varios como yo en Linux utilizamos DD a la hora de generar un instalador de ISO a USB y cuando intentamos formatear el USB en Windows nos encontramos que no se ven particiones o el tamaño original del USB no es coincidente.

Para arreglar esto voy a explicar brevemente como limpiar el USB con Diskpart en Microsoft Windows 7.

Continúa leyendo Limpiar USB creado con DD en Microsoft Windows

Problemas con particiones en USB usando DD

Un error que al parecer es común, luego de usar dd es que nuestro USB queda funcionando mal… al punto que formatearlo con gparted u otras herramientas es un problema, se quejara del inicio de sectores 2048, dará algún mensaje de invalido o:

physical block size is 512 bytes, but Linux says it is 2048 bytes

esto se puede arreglar fácilmente con los siguientes comandos:

sudo parted /dev/sde mklabel msdos
sudo parted -a none /dev/sde mkpart  primary fat32 0 2048
sudo mkfs.vfat -n "Disk" /dev/sde1

 

Con esto ya podremos abrir fdisk o gparted y no tendremos el error de bloques inválidos.

Habilitar directorio de usuarios para pagina web en CentOS 6 con SELinux

Este articulo va dedicado a mi estimado amigo Santiago Carnago que sufre muchas veces con Linux, en nuestra oficina utilizamos Xen Server, luego de una instalación de Centos 6 mínimo debemos efectuar las siguientes configuraciones:

  • Red
  • Actualizar
  • Instalar EPEL y WebTatic
  • Instalar LAMP
  • Generar esqueleto para futuros usuarios
  • Habilitar directorio de usuarios

La Red:

Apenas finalizamos la instalación de CentOS 6 minimal deberemos configurar la red de forma manual, por lo general esto se hace de la siguiente forma:

vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
 TYPE=Ethernet
 ONBOOT=yes
 BOOTPROTO=none
 IPADDR=192.168.1.68
 PREFIX=24
 GATEWAY=192.168.1.254
 IPV4_FAILURE_FATAL=yes
 NAME="System eth0"

Si vemos contenido en el archivo entonces simplemente agregamos las lineas faltantes, por lo general los valores mas importantes son IPADDR, PREFIX, GATEWAY y cambiar el valor de BOOTPROTO asi como el de ONBOOT y finalizamos la configuración con:

service network restart

Actualizar:

Ejecutamos el siguiente comando:

yum update -y

Y pasamos a la instalacion de EPEL y Webtatic la cual es bastante rapida, ejecutamos el siguiente comando:

yum install -y epel-release

Y luego instalamos Webtatic

rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

Ahora vamos a hacer algo sucio, seguramente alguien podra corregirme aca, pero CentOS 6 trae MySQL 5.1 y quiero utilizar la version 5.5 de Webtatic, por ende antes remuevo el paquete viejo de mysql-libs para instalar el nuevo, esto me remueve varios paquetes los cuales arreglo a mano con los siguientes comandos (se de –nodeps).

yum remove -y mysql-libs
yum install cronie cronie-anacron crontabs postfix --exclude=mysql-libs

Esto me va a instalar la version 5.5 de mysql-libs y ahora estoy listo para ejecutar lo siguiente:

yum install php56w* mysql55w* --exclude=php56w-mysqlnd

Luego de finalizar esto agregaremos algunas características al esqueleto de usuarios:

mkdir /etc/skel/public_html
echo "Hello World" > /etc/skel/public_html/index.php
echo "<?php phpinfo(); ?>" > /etc/skel/public_html/test.php

Ahora habilitamos el UserDir de apache (me instale nano, odio vi):

nano /etc/httpd/conf/httpd.conf

Dentro buscamos (control +w UserDir disabled)

<IfModule mod_userdir.c>
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    #UserDir disabled

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    #
    UserDir public_html

</IfModule>

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

Y lo comentamos como ven en este ejemplo, le sacamos el comentario a la variable UserDir public_html y removemos el comentario de la directiva Directory que se encuentra un poco mas abajo. Y ahora reiniciamos apache y lo dejamos activo al inicio:

service httpd restart
chkconfig httpd on

Creamos nuestro usuario el cual contiene ya el esqueleto nuevo:

[root@localhost ~]# adduser alberto
[root@localhost ~]# passwd alberto
Cambiando la contraseña del usuario alberto.
Nueva contraseña:
Vuelva a escribir la nueva contraseña:
passwd: todos los tokens de autenticación se actualizaron exitosamente.
[root@localhost ~]# ls -lah /home/alberto/
total 24K
drwx------. 3 alberto alberto 4,0K ago 27 09:50 .
drwxr-xr-x. 4 root    root    4,0K ago 27 09:50 ..
-rw-r--r--. 1 alberto alberto   18 jul 23 13:55 .bash_logout
-rw-r--r--. 1 alberto alberto  176 jul 23 13:55 .bash_profile
-rw-r--r--. 1 alberto alberto  124 jul 23 13:55 .bashrc
drwxr-xr-x. 2 alberto alberto 4,0K ago 27 09:16 public_html
[root@localhost ~]#

Y establecemos los permisos del directorio public_html junto con los permisos generales de SELinux:

chmod 0711 /home/alberto/
chmod 0755 /home/alberto/public_html
setsebool -P httpd_enable_homedirs true
setsebool -P httpd_read_user_content true
chcon -R -t httpd_sys_content_t /home/alberto/public_html
chcon -t httpd_sys_content_t /home/alberto
chcon -t httpd_sys_content_t /home

Para finalizar, accedemos a http://192.168.1.68/~alberto/index.php y deberemos ver nuestro nuevo index y si ingresan a http://192.168.1.68/~alberto/test.php veran los detalles de php.

Nota: 

Algunas herramientas opcionales:

yum install -y nano mc

 

Como obtener A+ en cPanel con la prueba de SSL Labs!

Captura20150908124722

Algo que por lo general buscamos los que estamos en el ramo de la administración en Linux (sysadmins) es la “perfección”, aunque esta no puede ser alcanzada por lo general dado requerimientos es bueno de vez en cuando tener calificaciones decentes.

En este articulo les voy a explicar como alcanzar grado A+ en la prueba de SSL Labs utilizando cPanel como panel de control. Continúa leyendo Como obtener A+ en cPanel con la prueba de SSL Labs!

Asegurando nuestra información en MySQL con AES

Con tanto revuelo de bases de datos por Internet, sitios vulnerados encuentro que es un buen momento para comenzar a diciplinar en ciertas artes a las cuales no se les presta atención. Una de ellas es la seguridad básica en nuestra base de datos MySQL o MariaDB (la volveremos mas completa a medida de que pase el tiempo) con técnicas bastante sencillas de aplicar.

Comenzaremos con una estructura simple de tabla:

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_first_name` varbinary(100) DEFAULT NULL,
  `user_last_name` varbinary(100) DEFAULT NULL,
  `user_email_address` varbinary(100) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB CHARSET=utf8;

Continúa leyendo Asegurando nuestra información en MySQL con AES

Parche Indicador de Sonido en Xubuntu 13.10

Como dice el titulo.. este es un parche para tener funcionando el indicador de sonido en el panel usando Xubuntu 13.10 ya que viene roto y no funciona..

--- /usr/share/dbus-1/services/indicator-sound.service  2013-11-02 16:14:21.661081218 -0600
+++ indicator-sound.service 2013-11-02 16:11:49.423258175 -0600
@@ -1,4 +1,3 @@
[D-BUS Service]
Name=com.canonical.indicator.sound
-Exec=/usr/lib/indicator-sound-gtk2/indicator-sound-service
-
+Exec=/usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service

Notificacion de Login/Logout en conexiones SSH

Aunque se que no es muy seguro puesto puede ser borrado nos notificara antes que se realice tal evento.

Vamos a editar 2 archivos, el primero sera .bash_profile el cual nos notificara cuando ingresa al sistema la persona:

Debajo del primer comentario agregamos lo siguiente:

echo 'ALERT - Access on:' `date` `who` | mail -s "Alert: Access from `who | awk '{print $6}'`" mi@email.com

Reemplazamos mi@email.com con el email el cual recibirá la alerta.

Ahora hacemos lo mismo con .bash_logout y agregamos lo siguiente:

echo 'ALERT - Logout on:' `date` `who` | mail -s "Alert: Logout from `who | awk '{print $6}'`" mi@email.com

No, Richard, Es Linux, no GNU/Linux

Con este tema muy gastado, constantes peleas en el mundo del software libre me puse a leer por la NET y me encontré con este articulo, el cual me pareció muy interesante, y aquí la traducción:

La mayor contribución que la FSF hizo a Linux fue la creación de la GPL y el compilador GCC. Esos fueron productos buenos e inspirados. GCC es un logro monumental que te ha Ganado a ti, RMS, y la Fundacion del Software Libre innumerables seguidores y mucho aprecio.

A continuación, algunas de las razones para que reflecciones, incluyendo algunas ya respondidas en tus FAQ.

Un muchacho, Linus Torvalds, usó GCC para hacer su sistema operativo (si, Linux es un sistema operativo – mas sobre esto luego). Lo llamó “Linux” con una pequeña ayuda de sus amigos. Por qué no lo llamó GNU/Linux? Porque él lo escribió, con mas ayuda de sus amigos, no de TU ayuda. Tu nombraste tus cosas, yo nombré mis cosas – incluyendo el software que escribí utilizando GCC – y Linus nombró sus cosas. El nombre propio es Linux, porque Linus Torvlads así lo dijo. Linus ha hablado. Acepta su autoridad. Hacer cualquier otra cosa es volverse una molestia. Tu no quieres volverte una molestia, verdad?

Continúa leyendo No, Richard, Es Linux, no GNU/Linux