Fedora 25 post-instalación parte 1: Sistema Base

He migrado mi estación de trabajo de Ubuntu Mate 14.04 LTS a Fedora 25 Workstation (antes era Fedora 24 MATE Spin) con excelentes resultados en rendimiento y funcionalidad. En el camino tomé notas, las dejo como guía por si resultan de utilidad para alguien más.

Trataré de ser agnóstico en cuanto a uso en general, así que deben de servirte independientemente del papel que desempeñe Fedora para el usuario. No depende de ambientes de escritorio ni te voy a decir como instalar un montón de programas que quizás no requieres, eso lo veré en las siguientes partes del artículo.

Pre-Instalación: Lo que debes saber antes


Wayland en vez de X.org

A partir de ésta versión ha habido ciertos cambios en la tecnología de la infraestructura gráfica, cambiando el servidor X.org tradicional por Wayland. Aunque es estable para su uso en general, aún no lo recomiendo como opción por default todavía.
Particularmente, en el modo multi-monitor frecuentemente pueden encontrar problemas como sesiones en blanco, artefactos en video y lockups en el sistema.

Puedes probarlo, en la mayoría de los casos es lo suficientemente estable para usarlo, pero siempre tienes la opción de regresar a X.org en caso de que lo requieras.

No fglrx

Los usuarios de FGLRX o los nuevos drivers privados como Crimson no tendrán soporte de los drivers para las versiones de Xorg y el kernel que incluyen distros como Fedora o Ubuntu recientes.

La recomendación es seleccionar distribuciones basadas en el Kernel 3.6 todavía (todas las derivadas de ubuntu 14.04 son buenos candidatos). Aparte de algunos programas que no se pueden actualizar no afectará mucho tu experiencia como usuario.

Partición /home separada

Para facilitar la actualización o cambio de distribuciones de linux recomiendo mantener una partición separada con el directorio /home. En caso de requerir un cambio o reinstalación, éstas pueden realizarse fácilmente sin formatear la partición, evitando que se requiera copia de datos de respaldo externo.

Asegúrense de darle amplio espacio a la partición y seleccionar un buen punto en el esquema de particiones (en medio o al final dependiendo de tu geometría de particiones).

Compatibilidad con Windows

Es muy importante que estés preparado en caso que de vayas a usar Windows en un sistema de dual boot coexistiendo con Fedora.
Revisa las opciones de UEFI/BIOS en tu equipo y asegúrate de instalar tu sistema en el orden correcto (primero Windows -> redimensionado de disco desde Windows -> Luego instalación de Linux). No tengo un equipo con UEFI activo así que no requerí tomar muchas precauciones.

xfs recomendado como sistema de archivos

xfs es el sistema de archivos recomendado. Grub ya puede bootear desde particiones / con xfs así que pueden seleccionarlo como el sistema de archivos de todo el sistema. En mi opinión es excelente en rendimiento y robustez (sobrevive problemas de disco sin mucho problema), así que te recomiendo que lo pruebes si haces una instalación nueva.

ext* para compatibilidad con otras distros/OS

En caso de que utilices alguna distro adicional o requieras accesar las particiones desde Windows es más recomendable mantener el sistema de archivos ext4. Aunque tiene un menor rendimiento en algunas cargas de trabajo es ampliamente compatible entre distros, discos de rescate e interoperabilidad entre sistemas operativos. Con FreeBSD, por ejemplo, no pude leer los datos de la partición XFS.

Instalación:


Puedes familiarizarte con la instalación leyendo la documentación oficial: https://docs.fedoraproject.org/en-US/Fedora/25/html/Installation_Guide/index.html

Descarga un netinstall en vez de un Spin tradicional

Para mayor flexibilidad en la instalación recomiendo descargar el netinstall en vez del ISO de default o sus diferentes spins. Lo único que cambia es que requerirás acceso a la Internet durante la instalación para descargar tus paquetes.

Por ejemplo, el netinstall te permitirá instalar casi cualquier ambiente de escritorio, incluso aquellos que no tienen disponible un spin como LXQT.

Descárgalo del sitio oficial: https://alt.fedoraproject.org/.

PROTIP:Puedes configurar DNS alternativos en tu conexión desde el menú de instalación al dar de alta una nueva.

PROTIP: No descargues todos los grupos de paquetes desde la instalación, es más fácil instalar una base, actualizarla y luego descargar todo lo que necesites desde un sistema activo.

UTC y NTP tienen que configurarse, cuidado con el reloj de Windows

Un caveat, si la hora del sistema cambia entre reiniciadas en Windows y Linux asegúrate de configurar Windows en el mismo esquema que tienen configurado Linux (si usas Network time activo o UTC que quede igual en ambos sistemas).

Post-install: Primero lo primero


Mejora la velocidad de descarga de paquetes: habilita fastestmirror en dnf

Antes que nada, habilitamos la funcionalidad fastestmirror de DNF para asegurar descargas más veloces y eficientes.

Edita el archivo /etc/dnf/dnf.conf y agrega al final:

fastestmirror=true

A partir de ahora, todas las operaciones de manejo de paquetes con DNF usarán el mirror más rápido, lo que te dará como resultado operaciones más rápidas al descargar paquetes.

DNF update

Ahora puedes correr una actualización del sistema con DNF update. Recomiendo reiniciar el sistema para correr el kernel y los parches de seguridad más recientes antes de proseguir.

dnf update

Paquetes esenciales de desarrollo y operación

Utiliza el comando Groupinstall de Development Tools para tener la base mínima requerida para compilar programas.

dnf group install "Development Tools"

Para crear tus propios paquetes (o utilizar paquetes que los autogenerarán por ti) requerirás el paquete de herramientas de RPM. Frecuentemente también requerirás la cadena de desarrollo de C y C++.

dnf group install "C Development Tools and Libraries"

dnf group install "RPM Development Tools"

LSB

Linux Standards Base provee una base de compatibilidad para aplicaciones y librerías entre diferentes versiones, y es un requisito de varios programas como Google Chrome. Instálalo usando el comando:

dnf install redhat-lsb

RPM Fusion

Agregar el repo de RPM Fusion para variedad más amplia de software. RPM Fusion provee una enorme cantidad de paquetes de software, generalmente basta instalar éste repositorio para la mayoría de los usuarios de escritorio.

La manera más simple de instalarlo es con el siguiente comando:

su -c 'dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'

No olvides correr dnf update después de instalar los repos

Usuarios de laptops y servidores con requerimientos energéticos considerables: Instalen tlp

Agregar y habilitar el subsistema TLP si el equipo es una laptop para usar más eficientemente la batería y reducir la temperatura promedio del sistema.

dnf install tlp

Una vez instalado, es requisito iniciarlo y configurar su inicio al arranque del sistema:

sudo systemctl start tlp

sudo systemctl enable tlp.service

Puedes checar detalles y estadísticas del sistema con tlp-stat:

tlp-stat –-battery

Security - Hardening


Es muy importante revisar la seguridad general de un sistema desde su primer uso. Aparte de las recomendaciones estándar de Linux (contraseñas seguras, particiones encriptadas, cuentas limitadas) hay algunos fedorismos adicionales que mejoran un poco el nivel de seguridad.

Archivo de HOSTS

Personalmente, uso una solución simple para bloquear anuncios excesivos y conexiones entrantes y salientes a dominios conocidos de malware. Uso un archivo de hosts modificado.

Hay varios archivos de hosts disponibles en la red, puedes checar alguno como el de mvps para empezar.

Copia de seguridad

cp -v /etc/hosts /root/hosts.bak

Reemplazamos el archivo de hosts del sistema por uno nuevo, modificando el encabezado para mantener la sintaxis preferida de hosts de fedora (la parte de 127.0.0.1 con localhost).

Reemplazo:

cp -v hosts-nuevo /etc/hosts

En ocasiones puede evitar que veas algunas páginas que consideras "legítimas" (de pirateria de software y sitios para adultos generalmente), así que no todos lo usan por ese motivo.

DNS de verisign/opendns

Editar parámetros de conexión para utilizar DNS más seguros y rápidos en NetworkManager. Pueden utilizar el método de edición en archivos de /etc para habilitar el cambio de modo permanente, aunque también puedes copiarlos y pegarlos en las propiedades de conexión del Network Manager.

Tuve algo de comportamiento raro usando los DNS de default de mi proveedor de Internet (Telmex), ocasionalmente tardaban en refrescarse las páginas o apuntaban a ips equivocadas. Probé los de Verisign y OpenDNS exitósamente.

Las direcciones de servidores DNS adicionales son:

64.6.64.6, 64.6.65.6, 208.67.222.222, 208.67.220.220

Si requieres direcciones IPv6 puedes encontrarlas desde las páginas de los proveedores (con mi envidia de que estés en un lugar donde pueden usar IPv6).

Yo evito usar Google DNS para no darle toda la información privada de mis hábitos cochinos a Google. Google además tiene un historial de salvar tus datos para proveerselo a autoridades o usarlo con fines "internos" no especificados.

Estoy probando DNS Crypt, así que probablemente vean un artículo de cómo usarlo luego.

Firewall

Fedora utiliza firewalld, así que pueden tomar ventaja de todo el trabajo hecho en vez de configurar su script de iptables tradicional. Sólo seleccionen su zona por conexión y los servicios que deseen habilitar. Pueden cambiar los puertos de algunos servicios que utilicen para prevenir ataques automatizados (por ejemplo, no usen SSH en el puerto 22 ni Apache/Nginx en el puerto 80). Los comandos base son:

firewall-cmd --state

firewall-cmd --get-zones

firewall-cmd --set-default-zone=$zone

Revisa la documentación de Firewalld en https://fedoraproject.org/wiki/Firewalld para que elijas tu zona, servicios permitidos y reglas de conexión que se adaptan más a ti.

Clamav

Me gusta tener un antivirus debido al contacto constante con archivos que comparto con gente que trabaja en Windows / macOS. Nunca está de más.

dnf install clamav

Una vez instalado, no olviden editar clamav.conf y editar freshclam en cron.daily para tener actualizaciones automáticas.

Maldet

Linux malware detect no está disponible como paquete en Fedora, tendrás que descargar el código, compilarlo e instalarlo (es bastante fácil siguiendo el archivo INSTALL). No olvides configurar esmtp en /root/.esmtprc, hay un bug en selinux que lanza errores y notificaciones de selinux.

Performance / Rendimiento:


Tuned Daemon

Tuned es un daemon que corre en el fondo de la computadora, cambiando los parámetros de configuración de áreas del kernel y sistema para adaptar el rendimiento al perfil seleccionado. Ofrece varios perfiles optimizados para diferentes casos de uso, como servidores de alta latencia, máquinas virtuales o servidores de bases de datos.

Instálalo desde dnf

dnf install tuned

Inicia el daemon (como root)

systemctl start tuned

Ahora ejecuta el daemon al iniciar el sistema

systemct enable tuned.service

Puedes revisar la lista de perfiles que incluye el daemon:

tuned-adm list

Para cambiarlo, usas la siguiente instrucción:

tuned-adm profile $NOMBRE_DEL_PERFIL

El Daemon puede recomendarte que perfil usar, aunque en todos los casos que he visto recomendará balanced.

tuned-adm recommend

He probado todos los perfiles en mi laptop, y debo de decir que extrañamente, el que mejoró la responsividad y rendimiento fue powersave.

tuned-adm profile powersave

Kernel:

Desde la época de Slackware 9.1 he usado kerneles customizados. Hay ciertas opciones del Kernel que pueden modificarse para optimizarlo al perfil de uso específico que le vas a dar.

En mi caso de uso quiero una Workstation de Desarrollo Web de alta responsividad. En Fedora es fácil usar un kernel con los siguientes parches gracias al trabajo de Pavel Alexeev, que portea una versión del kernel con mejoras en Schedulers y opciones de CPU governors de Con Kolivas https://ck-hack.blogspot.mx/2016/10/muqss-multiple-queue-skiplist-scheduler.html

Éste es el procedimiento:

Repositorio de Kernel: http://hubbitus.info/wiki/Main

Instala el repositorio

sudo 'rpm -Uhv http://rpm.hubbitus.info/Fedora25/Hubbitus-release-25-latest.noarch.rpm'

Opcional: Actualiza los repositorios

dnf update

Primero verifica que versiones están disponibles para seleccionar el indicado

dnf list available kernel

Ahora instala el nuevo kernel (la versión cambiará dependiendo de la última versión de desarrollo):

dnf install kernel-4.8.7-300.pf7.hu.1.fc25

Selecciona el nuevo scheduler para el kernel

sudo touch /etc/tmpfiles.d/set_IO_scheduler.conf

sudo 'echo "w /sys/block/sda/queue/scheduler - - - - bfq" > /etc/tmpfiles.d/set_IO_scheduler.conf'

Ahora verifica el scheduler que estás corriendo:

cat /sys/block/sda/queue/scheduler

Oracle JDK


Si eres desarrollador de Java probablemente requieras usar el JDK oficial de Oracle. Descarga el RPM correspondiente a tu sistema (64 o 32 bits) del sitio oficial: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.

Instálalo con rpm:

rpm -ivh jdk-$version-linux-x64.rpm

Una vez instalado puedes utilizar el comando alternatives para configurar el sistema para usar el JDK de Oracle exclusivamente.

alternatives --config java

alternatives --config javac

alternatives --config javaws

Verifica que esté seleccionado con:

alternatives --list | grep /usr/java

Con ésto concluyo la parte 1, el Sistema Base. Debemos de tener una buena base para diferentes roles.

Siguiente entrega: Software para Servidores y de Escritorio (Incluyendo códecs, tipografía y Stacks de desarrollo Web).

Como siempre, agradezco sugerencias y comentarios.

Augusto Tijerina

Read more posts by this author.