====== FreeBSD-12.1 en el Desktop ====== {{ :informatica:freebsd:logo-reverse.png?380 | FreeBSD }} 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 li­nea 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 ===== {{ :informatica:freebsd:screen01.png?610 | FreeBSD MATE desktop }} 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 ===== {{ :informatica:freebsd:screen02.png?610 | FreeBSD MATE App }} 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 ===== 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.