domingo, 19 de noviembre de 2017

Router doméstico con pf (packet filter) en OpenBSD 6.2

Hola amigos,
En este apunte escribimos sobre cómo hacer un router "casero", imaginar un escenario donde se tiene una o varias redes internas y solamente una ip que te permite salir a internet; normalmente los proveedores de internet nos proporcionan un equipo llamado modem/router que hace la función transparente al usuario, conectamos nuestras PCs o equipos inalámbricos y con ips privadas salimos a internet, pero ¿cómo hace eso? Si te digo que podemos hacer eso con un equipo que podría ser una computadora o un equipo dedicado a ser servidor supongo que estas pensando y cómo? y para qué?

La idea es ordenar algunas redes Lans, tal vez se desea realizar un filtrado de paquetes y deseas tener control total, realizar un propio servidor DNS, un propio servidor dhcp, un proxy, un firewall, entonces separamos al modem/router, más o menos el escenario sería como el siguiente:



En nuestro caso será con dos redes LAN, donde las interfaces de red son vic0 (conectada al router), las dos redes internas, vic1 y vic2, para que las redes LANs salgan a internet con una sola ip usaremos el concepto de NAT, para todo eso usaremos software que viene incluido en el sistema operativo, dicho software es un firewall que hace todo ese trabajo, veamos como.

1. Tener un sistema operativo instalado en un equipo en este caso OpenBSD un tipo unix puro, en la entrada anterior se vió como instalar.

2. tener configurado con ips las interfaces de red.

OpenBSD configura a cada interfaz en archivos tipo /etc/hostname.nombredelainterfaz
Con el comando
#ifconfig | less
Podemos ver las interfaces

 

3. escribir en /etc/pf.conf las reglas e indicar que haga NAT en la interfaz externa.

Abrimos el archivo /etc/pf.conf y escrubimos estas líneas


En la figura de arriba le decimos las interfaces y con $ abajo le decimos que las "tome", traduciendo lo que dice la regla sería más o menos lo siguiente:
pasar fuera sobre la interfaz directa al modem/router o directa a internet, por donde ingresará internet a nuestro servidor, seguido de la palabra from, que significa desde cualquier red que sea diferente a la red externa (!) significa diferente, para alguna red (any), nat-to en la interface externa :), en la documentación de PF, hay opciones y sintaxis, es cuestión de entender, toma sus buenas horas comprender jeje, sobre todo en mi caso :)

4. habilitar el reenvío de paquetes

Como indica al inicio del archivo pf.conf, hay que habilitar el reenvío, procedemos con un comando:
#echo 'net.inet.ip.forwarding=1' >> /etc/sysctl.conf

Luego reiniciamos el servidor y para alguna modificación de pf.conf no es necesario reiniciar, solo usar comando
#pfctl -f /etc/pf.conf
Dicho comando verifica el archivo y si hay error informa y no carga las nuevas reglas
#pfctl -sr
Dicha regla muestra las reglas que tenemos.
#pfctl -s state
Muestra como traduce :)








domingo, 12 de noviembre de 2017

Instalar OpenBSD 6.2

Hola amigos,
En ésta entrada haremos la instalación desde disco de un sistema operativo tipo Unix en una máquina de 32 bits, con este sistema operativo libre podemos familiarizarnos con entornos tipo Unix puro, cada vez más amigable al igual que sus "hermanos" como FreeBSD o NetBSD, sistemas operativos libres y excelentes para routeadores y firewalls personalizados, no exigen grandes recursos en hardware.

Según Wikipedia en español:
OpenBSD es un sistema operativo libre tipo Unix multiplataforma, basado en 4.4BSD. Es un descendiente de NetBSD, con un foco especial en la seguridad y la criptografía.

Este sistema operativo se concentra en la portabilidad, cumplimiento de normas y regulaciones, corrección, seguridad proactiva y criptografía integrada. OpenBSD incluye emulación de binarios para la mayoría de los programas de los sistemas SVR4 (Solaris), FreeBSD, Linux, BSD/OS, SunOS y HP-UX.

Se distribuye bajo la licencia BSD, aprobada por la OSI.
Instalación
Descargamos el sistema operativo desde sus sitios webs "espejos" y escogemos la arquitectura, sea de 32 bits o 64 bits, en mi caso fue de 32 bits, grabamos en un disco cd e introducimos a la lectora e iniciamos la instalación en la máquina física.

Seguimos las capturas de pantalla:

Nos pregunta qué deseamos realizar, le decimos Instalar


Nos indica por el teclado a escoger, y oh sorpresa aparece teclado latinoamericano :), lo escogemos ya que tenemos dicho teclado

Escribimos la

Escribimos un nombre para nuestro sistema


Interface de red detectada e ingresamos parámetros de red


Ip clase C, 192.168.1.85/24


Puerta de enlace y servidores DNS, separados por espacio


Contraseña para el superusuario root


Aceptamos las sugerencias para algunos servicios


Añadimos un susuario y su contraseña


Aceptamos que restringa el acceso remoto directo para root


Detecta nuestro disco duro, le decimos que si, ahi mismo deseo instalar, que use todo el disco, que lo haga automático el particionamiento.


Que instale todo el contenido del disco o todas las opciones.


Nos indica que no tenemos verificación SHA256 firma, pero sabemos que es una imagen iso descargada desde uno de sus espejos, le decimos que continúe.



Terminó la instalación, reiniciamos...


Nuestro primer inicio


Ingresamos con nuestro usuario que no es root


La configuración de red ya se hizo en la instalación, probamos conexión a otras redes...


Nos cambiamos a root y miramos archivos de configuración, como nombre, puerta de enlace, servidores dns que pusimos, nombre fqdn, interface de red configurada, etc.


Interface de red ethernet con sus parámetros


Ya tenemos un sistema OpenBSD completo, lo que sigue es "levantar" una interfaz gráfica, será para un próximo tutorial.



sábado, 21 de octubre de 2017

Configurar interfaces de red en Debian 9.2

Hola,
En esta entrada vamos a tratar de cómo configurar las interfaces de red en Debian, asumimos que se ha realizado una instalación limpia de Debian y no se ha configurado absolutamente nada para las interfaces cableadas, disponemos de tres interfaces ethernet.
1. Agregamos un nombre completo y lo relacionamos con una ip


2. Miramos nuestras interfaces con el comando ip a | less, vemos las interfaces, luego vamos al archivo /etc/network/interfaces y debe queda así.


3. Ahora creamos un archivo para resolver nombres a ip, por defecto no se ha creado resolv.conf, tampoco tenemos el software resolvconf para gestionar dns, hemos realizado una instalación limpia y reitero no hemos configurado absolutamente nada para la red.

#touch /etc/resolv.conf



4. Reiniciamos la red y miramos luego el estado, salió bien y hacemos una prueba desde las estaciones clientes.




Todo es manual, servidor sin gui.





Iniciar reglas iptables en inicio de Debian 9.2

Buen día lector,

Esta entrada trata sobre cómo iniciar las reglas iptables en tiempo de inicio, esto también podría generarlizarse a un script personalizado, veamos cómo lo podemos hacer.
Seguimos el howto en la wiki Debian, se ha hecho una pequeña modificación, el objetivo es anotar esta forma de proceder, en Debian 7 y 8 la forma de iniciar scripts lo hacía desde un archivo rc.local, pero en Debian 9.x ya no existe rc.local y se procede de la forma que anoto, espero les sea de ayuda.

1. Creamos un archivo en la ruta /etc/, lo llamaremos reglas.sh, usaremos la shell sh, motivo por el cual este archivo tiene un inicio #!/bin/sh, pero si preguntas al sistema por la shell que usa pues la respuesta será bash, pero también esta disponible sh, preguntemos con
$ echo $SHELL

Entonces escribimos en el archivo, en éste caso yo he escrito un contenido para hacer NAT, deseo que salgan dos segmentos de red por mi servidor Debian hacia internet.

#!/bin/sh
iptables -F
echo 1 > /proc/sys/net/ipv4/ip_forwad
iptables -t nat -A POSTROUTING -o mi_interfaz_de_cara_a_internet -j MASQUERADE

2. Procedemos a crear un archivo en /etc/network/if-pre-up.d/, nombré al archivo como iptables y le dí permiso de ejecución:
#touch /etc/network/if-pre-up.d/iptables
#chmod +x /etc/network/if-pre-up.d/iptables
El contenido del archivo es ejecutar el script
#!/bin/sh
sh /etc/reglas.sh

De esa manera ya puedes hacer reboot y cuando inicies de forma automática se incia el contenido del scritp.

Algunas capturas:










miércoles, 9 de agosto de 2017

Vivaldi (navegador) en 16.04.3 LTS (Xenial Xerus)

Hola amigos, el otro día estuve viendo que navegador podría utilizar, como que quiero uno que no consuma muchos recursos, pues encontré a Vivaldi y "jolines" no esta en los repositorios de Ubuntu, entonces procedí del siguiente modo para tenerlo en Ubuntu, por cierto tiene soporte para distros basadas en Debian como es el caso de Ubuntu y para distros basadas en paquetes rpm como sería el caso de RHEL y su distro más conocida como Fedora, por ahora lo tengo en Ubuntu.

Paso 1: ir al sitio web y descargarse el paquete. deb



Paso 2: descargado procedemos a realizarle doble clic o mucho mejor abrir una terminal y usar el comando dpkg -i el paquete.deb y en primera instancia no va a instalar, hay que agregar dos dependencias, libappindicator1 y libindicator7




# apt-get install libappindicator1 libindicator7






Me gusta :), aunque Firefox será siempre el que es más completo, tiene muchas extensiones y es compatible con muchos sistemas operativos, hasta para windows xp aun le da soporte :), saludos.


lunes, 10 de julio de 2017

Fedora y Android phone

Alguna vez conectamos celulares a la PC o portátil y no reconce y no se visualiza en interfaz gráfica, entonces procedemos a agregar unos paquetes y reiniciamos el sistema operativo.

Fuente: https://ask.fedoraproject.org/en/question/81481/fedora-doesnt-want-to-recognize-a-android-phone-what-to-do/

Paso 1: necesitas los siguientes paquetes que estan en la base de Fedora.


  • gvfs-mtp
  • simple-mtpfs
Paso 2: agregamos con el gestor de paquetes DNF

Abrimos un emulador de terminal "corremos" los siguientes comandos.

#dnf install gvfs-mtp simple-mtpfs

Reinicia y prueba nuevamente conectando tu teléfono celular, lo más probable es que ya lo veas en el escritorio con ícono. Yo no he necesitado realizar paso alguno más.



domingo, 4 de junio de 2017

VLC en openSUSE Leap 42.2

Hola amigos, el otro día estuve con una máquina con openSUSE y por defecto VLC se instalaba con los repos por default, dije ya funcionará, pues no funciona, no reproduce videos ni música en mp3, dije supongo que hay que agregar un repo, pero recuerdo que vlc ya trae todo lo necesario para funcionar y reproducir la mayoría de formatos, pues no es asi aquí, entonces añadí un repo con zypper :) y funciona :)

Paso 1: abrir una terminal y como root escribir

zypper ar -f -n packman http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.2/ packman

Paso 2: refrescar el repo

zypper refresh

Paso 3: instalar vlc con sus codecs

zypper in vlc
Así como está intentas reproducir un video en formato mpg4 pues nada que lo reproduce, indica que faltan algunas cosas.

Paso 4: añadir los codecs

zypper in vlc-codecs

Ahora si, cabe mencionar que al añadir vlc y los vlc-codecs nos indica algunas opciones, hay que aceptar que agregue del nuevo repo packman, también nos da la opción de no instalar.




Para tenerlo en español:

Paso 5: añadir vlc-lang

zypper in vlc-lang



Funciona VLC, :), diferente forma de manejar las cosas, otras distros son un poco más simples, caso de Fedora, Ubuntu, pero vaya openSUSE esta bueno.


sábado, 27 de mayo de 2017

Instalar CentOS 6.9 en modo texto

Hola amigos, aquí les presento un alcance que anoto, instalaremos y configuraremos CentOS 6.9 en su versión mímima, y lo haremos en modo texto, porque queremos hacerlo sin entorno gráfico, el motivo es que al estar frente a un servidor puro lo normal es estar a pura cli (línea de comandos) y también de esa manera no consume recursos o no exige recursos.

Insertamos el CD de instalación de CentOS e inicia, presionamos la tecla tabulador y escribimos linux text, luego seguimos el asistente en modo texto, a puro teclado estaremos de aqui en adelante.

CentOS para descargar, es libre y es el sistema operativo excelente para servidores, es clon de RHEL, una "roca"



Luego si estamos seguros que la imagen iso esta bien saltamos



Escogemos el idioma a usar en la instalación


Seleccionamos el teclado, yo tengo un teclado latinoamericano, CentOS lo tiene.


 Escogemos esa opción para reinicializar todo, estamos haciendo una instalación limpia, desde cero.


 Enseguida seleccionamos el huso horario, yo vivo en Perú en mi ciudad llamada Arequipa, pero en el asistente escogemos America/Lima :)


 Seleccionamos una contraseña, lo recomendable es alguna con letras, números y caracteres especiales, e incluir mayúsculas, pero si seleccionas una simple te pide confirmar :)


Enseguida nos muestra la opción de seleccionar el disco, nosotros haremos un servidor puro, un firewall para proteger nuestras dos redes LANS, tendrá servicios como dhcp, proxy, dns y será nuestro gateway, para salir al exterior tendran que pasar primero por nuestro CentOS de igual manera para llegar a alguna red interna desde afuera primero se van a encontrar con CentOS :)



Esperamos a que instale el software.


Ya tenemos a CentOS en nuestro disco duro, ahora reiniciamos y a comenzar a configurar, recordar que se usa el disco mínimo, pero es suficiente, ahora nos conectamos a una red que nos haga salir a internet.


Estamos con nuestro CentOS sin configuración, lo haremos de forma manual, como la vieja escuela, editaremos archivos usando vi, el excelente editor de texto :), CentOS ya nos configuró bien el teclado y el huso horario, solo falta configurar el nombre del sevidor, asignar parámetros de red a las tres interfaces, una de cara a internet y dos internas, veamos como lo hacemos :)

Ingresamos como superusuario root, el único usuario que tenemos e ingresamos su contraseña.



Asignamos una ip a nuestro nombre completo y luego cambiaremos el nombre.



Procedemos a configurar la interfaces de red, son tres.



Reiniciamos la red con el comando
#service network restart
Luego miramos las interfaces ya con sus parámetros de red.


Por ultimo agregamos servidores dns a nuestro CentOS para resolver nombres


Ya esta todo, incluso el nombre completo, pero aún no se ve, hacemos un reboot y todo estará listo, ahora ya funciona todo, ya hay salida a internet, pero un reboot y estará ok.


Luego ya queda hacer un update y luego añadir software como las páginas man en español y luego configurar servicios, bueno hasta aquí llegamos, saludos cordiales y continuamos en otro tutorial :)