Tabla de Contenidos
FreeBSD-12.1 en el Desktop
Para disponer de una instalación de escritorio de FreeBSD se debe disponer de un sistema instalado sin ambiente gráfico y con lo mínimo de instalación para que el sistema bootee o se inicie sin problemas y nos entregue el prompt de login.
Una vez con esto debemos instalar lo siguiente:
# pkg install vim-console dfc
Con esto instalamos el editor de VIM que es un VI Mejorado, para editar los archivos de configuración y otros de administración. dfc -d nos permite ver la capacidad de uso de los discos por terminal.
Instalando XORG
Ahora instalaremos el ambiente gráfico, con:
# pkg install xorg
Esperamos a que termine, que dependiendo de la velocidad de su enlace y computador, tardara unos minutos.
Una vez terminado lo anterior, en la misma consola como root
debemos ejecutar la configuracion de xorg con lo siguiente:
# Xorg -configure
Esto genera en el mismo directorio un archivo de configuracion llamado xorg.conf.new
el cual nos servira para configurar las X o el entorno grafico, pero debemos editar y modificar un linea En la seccion Device debemos cambiar Driver a vesa, y dependiendo de su sistema, de que version de hardware tenga, si tienen una maquina con un procesador no tan nuevo de intel puede funcionar el driver de intel no tan recientes, por lo que tendrá que probar ambas configuraciones.
Tendra que dejar uno de los 2 siguientes drivers:
Section Device ... Driver "vesa" // Driver generico Driver "intel" // Driver Intel (el que usamos) ... EndSection
Con esto nos aseguramos que nuestro hardware de video funcione sin problemas en la primer booteo
, a menos que su hardware sea Nvidia u otra tarjeta con una GPU gráfica de alta gamma. En este caso deberá investigar mas, como no es mi caso y no dispongo de otra gráfica, no abordare esa configuración.
Configurando loader.conf
También retocaremos el archivo de configuración que nos permita cargar en en inicio algunos módulos del kernel, el contenido del archivo /boot/loader.conf
lo hemos dejado en:
cpu_microcode_load="YES" cpu_microcode_name="/boot/firmware/intel-ucode.bin" loader_logo="bestie" # Deshabilitamos touchpad hw.psm.synaptics_support=0 kern.ipc.shmseg=1024 kern.ipc.shmmni=1024 kern.maxproc=1000000 security.bsd.allow_destructive_dtrace=0 kern.geom.label.disk_ident.enable=0 kern.geom.label.gptid.enable=0 hw.syscons.disable=1 mmc_load="YES" mmcsd_load="YES" sdhci_load"YES" atapicam_load="YES" fuse_load="YES" coretemp_load="YES" tmpfs_load="YES" admtemp_load="YES" aio_load="YES" libiconv_load="YES" libmchain_load="YES" cd9660_iconv_load="YES" msdosfs_iconv_load="YES" snd_hda_load="YES" boot_mute="YES" autoboot_delay=3 cuse4bsd_load="YES" cuse_load="YES" hw.memtest.tests=0 sysctlinfo_load="YES" sysctlbyname_improved_load="YES"
Esta configuración no la voy a desglosar pero lo que les puedo comentar es que funciona sin problemas, podemos tener las referencias de los parámetros viendo en man loader.conf
.
Instalando Driver de Intel
Para instalar el driver nuevo para la GPU de intel se deben instalar algunas aplicaciones que pasamos a ver, en consola desde una terminal como root debemos ejecutar:
# pkg install drm-kmod
Una vez instaladas la aplicacion de microcodigo y el driver de GPU intel, debemos agregar a nuestro archivo de configuracion en /etc/rc.conf
, las siguientes lineas:
# sysrc kld_list="/boot/modules/i915kms.ko" // Para Intel # sysrc kld_list="amdgpu" // Para AMD RX580/RX5700 u otra AMD
Con esto hemos habilitado el driver de intel y ademas hemos habilitado las actualizaciones automaticas del microcodigo de intel, cada vez que se actualiza en los paquetes del sistema.
Debo indica ademas que si hay otros modulos habilitados en el /etc/rc.conf
podemos poner todo en la misma linea, de esta forma:
kld_list="/boot/modules/i915kms.ko linux fuse"
Con esto hemos habilitado para ejecutar aplicaciones compatibles con linux, también fuse para montaje de sistemas de archivos. Sin embargo para eso debemos hacer mas configuraciones, tanto para emulacion linux como para montaje de sistema de archivos, aqui hemos mostrado solo una linea para combinar módulos del kernel.
Actualizando el Firmware de Intel
Es recomendable actualizar el firmware de las CPU's de intel que han tenido varias fallas de seguridad y para resolver estos problemas se ha tenido que incluir un firmware adicional que mejora estos problemas de seguridad.
Debemos instalar el paquete:
# pkg install devcpu-data
Para ello se recomienda agregar a /boot/loader.conf lo siguiente:
cpu_microcode_load="YES" cpu_microcode_name="/boot/firmware/intel-ucode.bin"
Esto es además de las modificaciones al archivo /etc/rc.conf que se debe agregar:
microcode_update_enable="YES"
Instalando MATE
Una vez instalado el entorno grafico, instalaremos el escritorio, para ello ejecutamos en una terminal, uno de los dos siguientes comandos:
# pkg install mate mate-desktop // Si queremos usar MATE # pkg install xfce4 // Si queremos usar XFCE4
Esto tambien tardara unos minutos. Con esto tendremos un entorno basico, pero aun nos falta disponer de algunos paquetes adicionales tal como el gestor de ambiente grafico entre otras aplicaciones.
Hay que tener claro que XFCE4 le he encontrado problemas con el protector de pantalla cuando se va a hibernar la maquina, problemas que no me ha presentado MATE.
Paquetes Adicionales
Por lo que procedemos a instalar algunos paquetes adicionales, que nos permitiran mejorar el aspecto grafico de nuestro MATE o XFCE4.
# pkg install papirus-icon-theme # pkg install gtk-arc-themes # pkg install xfce4-goodies # pkg install hack-font
Ademas instalaremos paquetes de aplicaciones adicionales que nos permiten tener un entorno grafico mas comodo.
# pkg install firefox # pkg install libreoffice es-libreoffice # pkg install mpv uget celluloid vlc # pkg install htop py37-glances handbrake # pkg install neofetch screenfetch bsdinfo # pkg install audacious audacious-plugins # pkg install ristretto
Con esto tenemos un entorno grafico con algunas aplicaciones al inicio que sirven como base.
Instalando el LOGIN Grafico
Una vez terminada la instalacion de los paquetes solicitados procedemos con el gestor de ventanas, de la forma siguiente:
# pkg install slim slim-freebsd-black-theme slim-freebsd-themes
Esperamos unos minutos para que termine. Ademas debemos configurar el login de slim
, esto es editando el archivo /usr/local/etc/slim.conf
y modificamos la linea de current_theme
.
current_theme slim-freebsd-black-theme
Con esto tendremos una interfaz de login mas adecuada para nuestro sistema.
Modificando RC.CONF
Una vez que hemos instalado estos paquetes deberemos habilitar desde el inicio /etc/rc.conf
los paquetes para el entorno grafico, con las siguientes instrucciones:
# sysrc slim_enable="YES" # sysrc avahi_daemon_enable="YES" # sysrc avahi_dnsconfd_enable="YES" # sysrc hald_enable="YES" # sysrc dbus_enable="YES"
Con esto tenemos lo basico para rebootear nuestro sistema y que parta con entorno grafico.
Contenido de RC.CONF
Ahora indicaremos el contenido completo del archivo de inicio de demonios en nuestro sistema:
clear_tmp_enable="YES" syslogd_flags="-ss" hostname="fbsd" keymap="es.acc.kbd" // Para teclado espanol keymap="latinamerican.kbd" // Para teclado latinoamericano ifconfig_re0="DHCP" sshd_enable="YES" moused_enable="YES" ntpdate_enable="YES" kld_list="/boot/modules/i915kms.ko fuse linux" linux_enable="YES" powerd_enable="YES" powerd_flags="-a hiadaptive -b adaptive" hcsecd_enable="YES" sdpd_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="NO" openntpd_enable="YES" sendmail_enable="NONE" sendmail_msp_queue_enable="NO" sendmail_outbound_enable="NO" sendmail_submit_enable="NO" microcode_update_enable="YES" webcamd_enable="YES" hald_enable="YES" dbus_enable="YES" avahi_daemon_enable="YES" avahi_dnsconfd_enable="YES" slim_enable="YES" pf_enable="YES" pflog1_enable="YES"
Actualizando Perfil de Usuarios
Ahora lo que deberemos realizar es la actualización de cambios del perfil de los usuarios del sistema, esto se realiza como root desde una terminal:
# cap_mkdb /etc/login.conf
Ademas necesitamos generar en la cuenta del usuario normal del sistema el archivo que iniciara el ambiente gráfico una vez que el usuario ingrese su usuario y contraseña, en una terminal con la cuenta del usuario debemos hacer lo siguiente:
$ vim .xinitrc exec startxfce4 --with-ck-launch // Si usamos XFCE4 exec mate-session // Si usamos MATE
Despues guardamos y cerramos. Con esto estaremos listos para reiniciar nuesro sistema y que funcione correctamente en español. Ademas la opcion –with-ck-launch
permite que se añadan las opciones de cierre de session.
Agregando los Usuarios al Grupo Video
Ahora necesitamos agregar a los usuarios al grupo video
para que puedan usar correctamente el ambiente grafico sin problemas:
# pw group mod video -m root # pw group mod video -m <usuario>
Creando directorios de Usuario
Una vez que tengamos todas las aplicaciones gráficas instaladas, lo que podemos realizar es generar los directorios normales de las cuentas de usuario, para eso debemos instalar como root lo siguiente:
# pkg install xdg-user-dirs
Una vez instalado debemos ejecutar en una terminal como usuario normal, esta aplicación, de la siguiente forma:
$ /usr/local/bin/xdg-user-dirs
Al ejecutarse esto nos crea los directorios:
$ ls -lG drwxr-xr-x 2 user user 512 11 jul. 13:45 Descargas drwxr-xr-x 2 user user 512 11 jul. 13:45 Documentos drwxr-xr-x 2 user user 512 11 jul. 13:45 Escritorio drwxr-xr-x 2 user user 512 11 jul. 13:45 Imágenes drwxr-xr-x 2 user user 512 11 jul. 13:45 Música drwxr-xr-x 2 user user 512 11 jul. 13:45 Plantillas drwxr-xr-x 2 user user 512 11 jul. 13:45 Público drwxr-xr-x 2 user user 512 11 jul. 13:45 Vídeos
Si se fijan están creados en la misma fecha y hora, lo cual nos indica que sea han creado con la misma aplicación. Lógicamente es posible crearlas a mano con el mismo resultado, pero se han realizado con la aplicación indicada.
PF Minimo para nuestro Sistema
Ahora indicaremos el archivo completo de nuestro PF configurado en nuestra maquina FreeBSD.
# # $OpenBSD: pf.conf,v 1.54 2014/08/23 05:49:42 deraadt Exp $ # # See pf.conf(5) and /etc/examples/pf.conf ext_if="re0" # Por defecto, boquear todo block in all block out all # Permitir todo en la interfaz loopback set skip on lo # Politicas por defecto block return in log all #block out all # Drop todas las direcciones no routeables # block drop in quick on $ext_if from $martians to any # block drop out quick on $ext_if from any to $martians # Bloqueamos los paquetes spoofing antispoof quick for $ext_if # Permitimos PING a la interfaz externa pass inet proto icmp icmp-type echoreq # Permitir trafico entrante hacia el puerto 22 (SSH) pass in proto tcp from 192.168.1.0/24 to port 22 # Permitir trafico entrante hacia los puertos 80 y 443 (HTTP/HTTPS) #pass in proto tcp from any to port 80 #pass in proto tcp from any to port 443 # Permitir todo el trafico saliente pass out proto { tcp, udp, icmp } from any to any modulate state
Este es un Firewall para nuestra maquina personal.