Amarrado de IP con ARP OpenBSD

Crear un archivo llamado ipmac en /etc coloque el código siguiente:

 
Mac IP # atado 
10.10.0.1 00: 00: 00: 00: 00 
10.10.0.2 00: 00: 00: 00: 00 
10.10.0.3 00: 00: 00: 00: 00 
10.10.0.....


 .... y así sucesivamente.

 Para activar el uso del siguiente comando: #arp -f /etc/macip

Explicación:

Básicamente utiliza la tabla ARP fija de acuerdo con el archivo /etc/ipmac

Para deshacer el siguiente código #arp -d

Bloquear facebook.com y otros con OpenBSD 6.x y Unbound

¿Que es Unbound?: 

Unbound es un producto de resolución DNS caché, recursivo y de validación de NLnet Labs. Se distribuye de forma gratuita en formato de código abierto bajo la licencia BSD.

Archivos de Configiración

/var/unbound/etc/unbound.conf


## Simple recursive caching DNS, UDP port 53
## unbound.conf -- https://calomel.org
#
server:
   access-control: 10.0.0.0/8 allow
   access-control: 127.0.0.0/8 allow
   access-control: 192.168.0.0/16 allow
   cache-max-ttl: 14400
   cache-min-ttl: 900
   hide-identity: yes
   hide-version: yes
   interface: 0.0.0.0
   minimal-responses: yes
   prefetch: yes
   qname-minimisation: yes
   rrset-roundrobin: yes
   use-caps-for-id: yes
   verbosity: 1


local-zone: "facebook.com" redirect
local-data: "facebook.com A 127.0.0.1" 

local-zone: "youtube.com" redirect
local-data: "youtube.com A 127.0.0.1" 

local-zone: "minijuegos.com" redirect
local-data: "minijuegos.com A 127.0.0.1"
 


forward-zone:
      name: "."
      forward-addr: 199.85.126.30        # Norton ConnectSafe Bloquea porno y malware
      forward-addr: 199.85.127.30        # Norton ConnectSafe Bloquea porno y malware


Para agregar Unbound los servicios al arranque en el archivo  rc.conf.local usar el comando

# rcctl enable unbound

Instalar Python en OpenBSD

Create a symbol link for python after installing it on OpenBSD

# pkg_add python
quirks-2.304 signed on 2017-04-02T15:01:33Z
Ambiguous: choose package for python
a       0: <None>
        1: python-2.7.13p0
        2: python-3.4.5p2
        3: python-3.5.2p2
        4: python-3.6.0p0
Your choice: 4
It won’t create a symbol link by default:

# python
ksh: python: not found
So for using it handily, you can create a symbol link yourself:

# cd /usr/local/bin
# ln -s python3.6 python

Importar archivo “.sql” desde la consola mysql

Importar un archivo desde phpmyadmin es algo lento y hay que configurar unos parametros en el php.ini cuando son archivos demasiado grandes, para ahorrarse toda la espera en el navegador recomiendo importar el archivo sql desde la consola de mysql, para esto se debe iniciar sesion desde la consola (Es lo mismo para windows como para linux)
(Iniciamos sesion)
1
mysql -uUSUARIO -pPASSWORD
(usamos la bd donde queremos importar el archivo sql, en mi caso es una tabla)
1
use nombreBasedatos;
(source es el comando donde se llamara el archivo como parametro y comenzara hacer todo).
1
source /home/nombreusuario/archivo.sql

Cambiar Password en OpenBSD

How do I change root user or any other user account password under OpenBSD operating systems?
You need to use the passwd command. It can changes the user’s local password stored in /etc/master.passwd file, Kerberos, or YP password. A root user can change any users password. Normal user can only change their own password.

Task: OpenBSD Change root User Password

Login as root user and enter:
# passwd

Task: OpenBSD Change Other User Account Password

Login as root user and enter:
# passwd {userName}
To change the password for tom user account, enter:
# passwd tom

Task: OpenBSD Change Your Own Password

Simply type the passwd command:
$ passwd
First, the user is prompted for their current password. If the current password is correctly typed, a new password is requested. The new password must be entered twice to avoid typing errors.

Power Management

You may also want to enable apmd to save power if your hardware supports it. It will scale the CPU down during idle times and turn it up when the load reaches a certain point. Check the man page for a few different options.
# echo 'apmd_flags="-A"' >> /etc/rc.conf.local
# /etc/rc.d/apmd start
You can check what level (with 0 being the lowest, 100 being the highest) the CPU is running at with:
# sysctl hw.setperf
Try different levels and apmd settings to find the balance you're most comfortable with. Always running it on the lowest setting might limit the data throughput too much, but it will really depend on what hardware you're using.

Bandwidth Statistics

Monitoring how much bandwidth is being used is a common feature of many routers. The same thing can be done on an OpenBSD box quite easily. We'll install the "vnstat" daemon and tell it to monitor each interface.
# pkg_add vnstat
# vnstat -u -i em0
# vnstat -u -i em1
# vnstat -u -i em2
# vnstat -u -i em3
# chown _vnstat /var/db/vnstat/*
If you only care about WAN traffic statistics, just enable it for the egress interface, which is em0 in my case. Next, make any changes you want to the configuration file:
# vi /etc/vnstat.conf
I like to make things a bit more human-readable:
--- vnstat.conf     Sat May  2 21:15:35 2015
+++ vnstat.conf     Sat May  2 21:13:32 2015
@@ -28,7 +28,7 @@
 # how units are prefixed when traffic is shown
 # 0 = IEC standard prefixes (KiB/MiB/GiB/TiB)
 # 1 = old style binary prefixes (KB/MB/GB/TB)
-UnitMode 0
+UnitMode 1

 # output style
 # 0 = minimal & narrow, 1 = bar column visible
@@ -37,11 +37,11 @@
 OutputStyle 3

 # used rate unit (0 = bytes, 1 = bits)
-RateUnit 1
+RateUnit 0

 # maximum bandwidth (Mbit) for all interfaces, 0 = disable feature
 # (unless interface specific limit is given)
-MaxBandwidth 100
+MaxBandwidth 0

 # interface specific limits
 #  example 8Mbit limit for 'ethnone':
Be sure to add the rc.d script to your startup items, alongside dnscrypt-proxy.
# grep scripts /etc/rc.conf.local

pkg_scripts="dnscrypt_proxy vnstatd"
Finally, start the daemon.
# /etc/rc.d/vnstatd start
Wait a few minutes and it should start collecting data.
# vnstat -i em0

    Database updated: Tue Jun  9 15:41:10 2015

   em0 since 05/02/15

          rx:  334.15 GB      tx:  110.72 GB      total:  444.88 GB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       May '15     265.71 GB |    53.94 GB |   319.66 GB |    125.14 KB/s
       Jun '15      68.44 GB |    56.78 GB |   125.22 GB |    175.62 KB/s
     ------------------------+-------------+-------------+---------------
     estimated     237.26 GB |   196.85 GB |   434.11 GB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday       3.03 GB |     1.43 GB |     4.46 GB |     54.09 KB/s
         today       2.68 GB |   134.89 MB |     2.82 GB |     52.28 KB/s
     ------------------------+-------------+-------------+---------------
     estimated       4.11 GB |      205 MB |     4.31 GB |
That's all there is to it.

OpenBSD RAID1 (ESPEJADO DE DISCOS) durante la instalación

Setting up a mirror in OpenBSD is quite easy. Boot up the installer and go to shell mode.
Welcome to the OpenBSD/i386 5.5 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell? s
By default, OpenBSD will only make a /dev entry for the first drive. This is assuming you have two drives: wd0 and wd1. Let's create the /dev entry for wd1 and set a disk layout.
# cd /dev
# sh MAKEDEV wd1
# dd if=/dev/zero of=/dev/wd0c bs=1m count=1
# dd if=/dev/zero of=/dev/wd1c bs=1m count=1
# fdisk -iy wd0
# fdisk -iy wd1
Next we create the partitions on the disks.
# disklabel -E wd0
Label editor (enter '?' for help at any prompt)
> a a
offset: [64]
size: [20964761]
FS type: [4.2BSD] RAID
We can do it once for wd0 and then just import that same configuration into wd1 - pretty cool!
# disklabel wd0 > bsdnowiscool
# disklabel -R wd1 bsdnowiscool
# rm bsdnowiscool
Create the mirror like so:
# bioctl -c 1 -l wd0a,wd1a softraid0
# exit
In my case, the newly-created pseudo-device was called sd0. Go through the installer as normal, but be sure to choose that device instead of the regular hard drives.
Available disks are: wd0 wd1 sd0.
Which one is the root disk? (or 'done') [wd0] sd0
Reboot and check the status of your array in the new system:
# bioctl sd0                                                                   
Volume      Status               Size Device  
softraid0 0 Online         2146656256 sd0     RAID1 
          0 Online         2146656256 0:0.0   noencl <wd0a>
          1 Online         2146656256 0:1.0   noencl <wd1a>
Or just verify through dmesg.
# grep sd0 /var/run/dmesg.boot                                                 
sd0 at scsibus3 targ 1 lun 0: <OPENBSD, SR RAID 1, 005> SCSI2 0/direct fixed
sd0: 2047MB, 512 bytes/sector, 4192688 sectors
root on sd0a (fa6620cf9195850e.a) swap on sd0b dump on sd0b
That's it.

pf.conf en OpenBSD 6.2

# Create blocks that are variable
ext_if="em0"
int_if="em1"
icmp_types="echoreq"
webports = "{http, https}"
sport = "{667 3306}"

# Skip all loopback traffic
set skip on lo

# Perform NAT on external interface
match out on $ext_if from $int_if:network to any nat-to $ext_if

# Define default behavior
block in
pass out keep state

# Allow inbound traffic on internal interface
pass quick on $int_if

# Protect against spoofing
antispoof quick for { lo $int_if }

# SSH is listening on port 22
pass in quick proto tcp to $ext_if port 22 keep state (max-src-conn 15, max-src-conn-rate 5/3, overload <bruteforce> flush global)

# Webserver
pass proto tcp from any to $ext_if port $webports
pass in quick log on $ext_if proto tcp to port $webports
pass in quick on $ext_if proto tcp to port $sport

Configurar el repositorio de OpenBSD 5.X

Para poder usar el comando pkg_add, OpenBSD necesita localizar los paquetes para poder instalarlos, para agregar esta ruta usamos el comando

echo installpath=ftp://ftp5.usa.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(uname -m) | sudo tee /etc/pkg.conf

Httpd de OpenBSD 5.7 + PHP

Httpd es un servidor web que viene por defecto en OpenBSD.

1.- Instalamos los paquetes php y php-fpm 5.4.38, pear 1.9.5p0


#pkg_add php 
#pkg_add php-fpm
#pkg_add pear


2.- Editamos el archivo "/etc/rc.conf.local":

  httpd_flags=
  pkg_scripts=php_fpm



3.- Modificamos el archivo de configuración de httpd "/etc/httpd.conf"

server "default" {
      listen on * port 80
      location "*.php" {
            fastcgi socket "/run/php-fpm.sock"
      }
      directory index index.php
      root "/htdocs"
}


Para poner en macha, detener o chekear el servidor httpd usamos el comando:

#/etc/rc.d/httpd start - stop - restart - check - reload

Colocar fondo de pantalla (Wallpaper) en el Manejador de Ventanas i3 con feh

Que es feh

feh es un visor de imágenes ligero y potente que también puede ser usado para administrar el fondo de escritorio para los gestores de ventanas independientes que carecen de tales características.

Instalación

# pkg_add feh

Una vez instalado el programa usamos el siguiente comando para poder colocar el wallpaper

# feh --bg-scale /home/user/image.png

En en este comando se especifica la ruta donde se encuentra la imagen que vamos a usar ademas la escalamos a la resolución de pantalla con el modificador -scale

Link: http://feh.finalrewind.org/

Instalar el Gestor de Ventanas i3

i3 es un gestor de ventanas de mosaico, completamente escrito desde cero. Las plataformas de destino son los sistemas operativos GNU / Linux y BSD, nuestro código es libre y software de código abierto (FOSS) bajo la licencia BSD. i3 está dirigido principalmente a usuarios avanzados y desarrolladores.


Instalación del paquete

# pkg_add i3

Cambiar el gestor de ventanas en OpenBSD

OpenBSD utiliza el sistema X11 para disponer de una interfaz gráfica. X Windows es un servicio aparte del sistema que se puede configurar y personalizar para cada usuario, al igual que en otros sistemas de Unix y Linux. Por defecto, el sistema OpenBSD inicia en un interfaz de texto y no muestra el interfaz gráfico hasta que se utiliza el comando startx. El gestor de ventanas determina la apariencia y funcionalidad de dicho interfaz gráfico.

Abra una nueva ventana de Terminal o xterm si está en el interfaz gráfico. Introduzca el siguiente comando:

vi .xinitrc

Este comando crea el archivo .xinitrc si es necesario abrirlo antes para editarlo.

Si ya tiene el nombre de un gestor de ventanas, borre dicha entrada antes de introducir su gestor de ventanas preferido. Por ejemplo, introduzca i3, para utilizar ese gestor de ventanas en el archivo.

Instale nuevos paquetes de gestor de programas con el comando pkg_add nombre, remplazando nombre por el nombre y directorio del paquete de instalación. Es necesario instalar con privilegios de root.

Configuración ejemplo de PF para OpenBSD 5.1

Aquí les dejo para su consideración un archivo de configuración de Packet Filter para OpenBSD 5.1, es el que uso en estos momentos y me funciona bien hasta ahora.


#MACROS
#Interfaces de red
ext_if="em0"
int_if="em1"
red_lan="10.0.55.0/24"

#OPCIONES
#No filtrar en la interfaz loopback
set skip on lo

#NAT
#Traduccion de direcciones de red
match out on $ext_if from $red_lan nat-to $ext_if

#Proxy transparente
pass in on $int_if proto tcp from $red_lan to any port 80 rdr-to 10.0.55.1 port 3128

#REGLAS DE FILTRADO
#Politicas por defecto, bloquear todo lo que entra, dejar pasar todolo que sale
block in on $ext_if
pass out all

#Permite ssh y web desde fuera
pass in on $ext_if proto tcp from any to any port ssh
pass in on $ext_if proto tcp from any to any port 80

Nat en OpenBSD 4.9

Que es NAT:  

           NAT (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por enrutadores IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados. También es necesario editar los paquetes para permitir la operación de protocolos que incluyen información de direcciones dentro de la conversación del protocolo.

           Su uso más común es permitir utilizar direcciones privadas (definidas en el RFC 1918) para acceder a Internet. Existen rangos de direcciones privadas que pueden usarse libremente y en la cantidad que se quiera dentro de una red privada. Si el número de direcciones privadas es muy grande puede usarse solo una parte de direcciones públicas para salir a Internet desde la red privada. De esta manera simultáneamente sólo pueden salir a Internet con una dirección IP tantos equipos como direcciones públicas se hayan contratado. Esto es necesario debido al progresivo agotamiento de las direcciones IPv4. Se espera que con el advenimiento de IPv6 no sea necesario continuar con esta práctica.  (Fuente)

#MACROS Se define que interfaz se usa para cada proposito.
wan=rl0
lan=dc0


#Red interna
red_lan="10.0.55.0/24
"



#NAT esta regla hace que toda la red pueda salir a Internet.
match out on $wan from $red_lan to any nat-to $wan



Nota: Este es un fragmento de la configuración de un archivo pf.conf y solo hace referencia a NAT.

Luego activamos el reenvío de paquetes IP

Dado que NAT se utiliza casi siempre en los enrutadores y pasarelas de red, probablemente será necesario habilitar el reenvío de IP (IP Forwarding) para que los paquetes puedan viajar entre las interfaces de red de la máquina OpenBSD. El reenvío de IP se habilita mediante el mecanismo sysctl(3):

# sysctl net.inet.ip.forwarding=1 

# sysctl net.inet6.ip6.forwarding=1 (if using IPv6)

Para que este cambio sea permanente, hay que añadir las siguientes líneas al fichero /etc/sysctl.conf:

net.inet.ip.forwarding=1

net.inet6.ip6.forwarding=1

Estas líneas ya existen en la instalación predeterminada, pero como comentarios (prefijadas con #). Hay que quitar el signo # y guardar el fichero. El reenvío de IP se activará cuando se reinicie la máquina.   (Fuente)

Estructuras de directorios en OpenBSD

/

Directorio raíz del sistema de archivos.
altroot


bin

Utilidades de usuario fundamentales tanto para el ambiente monousuario como para el multiusuario.
dev

Nodos de dispositivo.
etc

Archivos de configuración y «scripts» del sistema.
home

Contiene utilidades y programas generales de cada usuario.
mnt

Directorio vacío utilizado de forma habitual por administradores de sistemas como punto de montaje temporal.
root

Directorio local para la cuenta root.
sbin

Programas del sistema y utilidades fundamentales de administración para ambientes monousuario y multiusuario.
stand

Contiene los archivos de arranque del sistema y el núcleo de Unix.
tmp

Para almacenar archivos temporarles.
usr

Contiene la mayoría de utilidades y aplicaciones de usuario.
var

Archivos multipropósito de log, temporales, en tránsito y de «spool».

Asignar puerta de enlace


Debemos acceder a la carpeta "/etc/" y buscar el archivo "mygate" y editarlo de la siguiente manera:


192.168.1.1


Aquí les dejo un ejemplo teniendo en cuenta de que la Puerta de Enlace Predeterminada es "192.168.1.1":


Si no se encuentra el archivo podemos crearlo con el comando "touch".


touch /etc/mygate

Asignar dirección ip y mascara de red a una placa de red

Bien, primero debemos acceder a la carpeta "/etc/" y buscar el archivo "hostname.nombredelainterfaz" (nombredelainterfaz es igual al nombre que OpenBSD le haya asignado a nuestra placa de red, en mi caso mi placa de red se llama "rl0" por consiguiente mi archivo es "hostname.rl0"), bien aquí les dejo un ejemplo de como configurarlo:


inet 10.0.55.1 255.255.255.0 NONE


En este ejemplo asignamos la dirección de ip 10.0.55.1 y mascara de red 255.255.255.0.


Para aplicar los cambios ejecutamos:


sh /etc/netstat

Asignar Servidores DNS

Debemos acceder a la carpeta "/etc/" y buscar el archivo "resolv.conf" y editarlo de la siguiente manera (en este ejemplo se utiliza como ejemplo de servidor de DNS primario "200.45.191.35" y "200.45.191.40" como DNS secundario, reemplácelo por el dominio que usted desee):


lookup file bind
nameserver 200.45.191.35
nameserver 200.45.191.40