Fedora 21: Postinstall

Un par de días con la leve ansiedad de tener instalado las mejorías casi inperceptibles de Fedora 21. Un poco de tiempo libre en el trabajo basta para respaldar la info que resultó de dos meses de trabajo y proceder a instalar Fedora. Esta vez dándole una oportunidad a KDE, luego de haber leído por ahí que resulta ser Fedora una de las tres distros más rápidas con KDE, luego de Chakra Linux. Y efectivamente así parece ser.

El clásico update antes que nada.

$ sudo yum update

Uups… la costumbre después de estar utilizando derivados de Debian. No sabía que sudo ya venía configurado en Fedora 21… Pero bueno.

$ su -
# yum install yum-plugin-fastestmirror
# yum update

# yum remove calligra*

Quise darle un intento a Calligra, pero hay cosas que no andan bien para quien ya se volvió un usuario frecuente de las suites de office.

# yum install libreoffice

Y por supuesto, usuario de impresoras.

# yum install hpijs hplip cups
# hp-setup -i

# yum install firefox thunderbird

Luego de un reinicio, constatamos que todo anda bien y proseguí…

$ su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'

yum update

Luego de eso yum me pregunta que si deseo proseguir con la instalación de paquetes complementarios como códecs de audio/video que se encuentran en rpmfusion… yes.

# yum install firefox thunderbird

Ahora solo resta configurar el proxy en Firefox, el correo institucional y su respectivo chat.

Voilà!

Metiéndole seguridad a OpenSSH

Mi preferencia por descargar vía torrent y una que otra vulnerabilidad “social” de mi proveedor de Internet han hecho de un tiempo acá bastante común los intentos desde fuera por acceder a mi terminal. ¿Quiénes? ¿Cuándo? ¿Cómo? No importa, lo importante es que aprendamos a no creernos invulnerables e intocables sólo porque usamos GNU/Linux.

OpenSSH (o Secure Shell) se ha convertido en el estándar en acceso remoto, reemplazando así, a telnet como protocolo, esto porque la conexión es cifrada y las contraseñas no son enviadas en texto plano para que todo mundo las vea.

De cualquier manera, la configuración por defecto de SSH no es perfecta, y cuando se corre un servidor SSH existen algunos pasos sencillos que pueden darle robustez a la configuración. Créeme que sí.

Usa contraseñas/nombres de usuarios más fuertes

Una de las primeras cosas a notarse es que si tenés SSH corriendo y expuesto al mundo exterior lo más probable es que recibas registros de intentos por parte de lamers y hackers de adivinar tu usuario o contraseña. Típicamente un hacker hará un scan para el puerto 22 (el puerto por defecto en el que SSH “escucha”) queriendo encontrar máquinas con SSH corriendo, y luego intentará un ataque de fuerza bruta contra esto. Con fuertes contraseñas en su lugar es posible que cualquier ataque sea registrado y puesto en advertencia antes de que cualquiera logre un ingreso exitoso.

Por suerte ya usás contraseñas fuertes, pero si no, entonces prueba a escoger contraseñas que contengan:

  • Mínimo de 8 caracteres
  • Mezcla de minúsculas y mayúsculas
  • Mezclas de letras y números
  • Caracteres no alfanuméricos (p.e. caracteres tales como ! ” £ $ % ^, etc)

Si absolutamente no se puede prevenir a los usuarios de escoger contraseñas débiles, entonces considera generarlas de manera aleatoria o nombres de usuario difíciles de adivinar para tus cuentas de usuario. Si los chicos malos no pueden adivinar el usuario es más difícil que logren la contraseña por fuerza bruta. Sin embargo, esto es seguridad a travéz de oscuridad, y es mejor tener en cuenta que la información se puede escapar en el envío de correos electrónicos, por ejemplo.

Desactiva Ingresos de Root

Los ajustes del servidor SSH están alojados en /etc/ssh/sshd_config. Para desactivar los ingresos de root asegúrate de corregir la siguiente entrada:

# Prevent root logins:

PermitRootLogin no

y reinicia el servicio sshd:

service sshd restart

Si necesitas ingresos de root es preferible ingresar como usuario normal y luego usar su.

Limita los ingresos de usuarios

Los ingresos de SSH pueden ser limitados a ciertos usuarios que necesitan acceso remoto. Si tu máquina tiene muchas cuentas de usuarios en el sistema, entonces es preferible limitar el acceso remoto a las cuentas de usuarios que realmente lo necesitan, limitando de esta forma el impacto de un casual usuario que tenga una contraseña débil. Agrega usuarios separados por espacio en /etc/ssh/sshd_config. Por ejemplo:

AllowUsers alice bob

y reinicia el servicio sshd.

Desactiva el Protocol 1

SSH tiene dos protocolos que puede usar, protocolo 1 y protocolo 2. El más antiguo es el protocolo 1, es menos seguro y debería ser desactivado, a menos que específicamente lo requieras. Corrige como a continuación en el archivo /etc/ssh/sshd_config:

# Protocol 2,1
Protocol 2

y reinicia el servicio sshd.

Usa puertos no estándar

Por defecto SSH “escucha” conexiones entrantes en el puerto 22. Como ya habíamos dicho, para que el hacker determine si SSH corre en tu máquina, este intentará un scan en el puerto citado. Un método efectivo es correr SSH en un puerto no estándar. Cualquier puerto sin usarse servirá, aunque uno por encima del 1024 es preferible. Mucha gente escoge el 2222 como alternativa, a como normalmente se escoge el 8080 para el puerto HTTP. Por esta razón es probable que no sea la mejor respuesta, ya que cualquier hacker estaría haciendo scan al 2222 como buena medida. Es mejor escoger algún puerto aleatoriamentem, que sea alto y que no esté siendo usado por servicios conocidos. Para hacer el cambio, agrega la linea siguiente a tu archivo en /etc/ssh/sshd_config:

# Run ssh on a non-standard port:
Port 2345  #Change me

y reinicia el servicio sshd. No olvides de hacer cualquier cambio necesario en tu enrutador y cualquier regla en el firewall.

Para mayores detalles acerca de SELinux y las reglas del firewall, visita la página que me fue de utilidad.