Páginas

Mostrando entradas con la etiqueta hardware. Mostrar todas las entradas
Mostrando entradas con la etiqueta hardware. Mostrar todas las entradas

lunes, 20 de febrero de 2023

FAMP Freebsd Apache MySQL PHP

Instalar la pila FAMP que significa FreBSD Apache MySQL PHP en la jail www

1.- Creación de la Jail www con Bastille

2.- Instalar Apache MySQL PHP

3.- Instalar Wordpress. Activar rdr en Firewall PF


pkg search apache2
apache24-2.4.55                Version 2.4.x of Apache web server
p5-Apache2-SOAP-0.73_4         Apache2 mod_perl2 SOAP Server
p5-Apache2-SiteControl-1.05_3  Perl web site authentication/authorization system

Instalar el servidor web Aapache


 pkg install apache24

Activar Apache usando sysrc


 sysrc apache24_enable=YES
 apache24_enable: NO -> YES

Iniciar el servicio


 service apache24 onestart
 starting apache24

Editar el archivo de configuración de Apache


 cd /usr/local/etc/apache24

Hacer una copia del archivo original


 cp httpd.conf httpd.conf-original

Editar /usr/local/etc/apache24/httpd.conf


ServerName 10.10.10.2

Listen 80

Reiniciar Apache


 service apache24 restart

Comprobar que esta funcionando


 ps aux | grep httpd
root   10186   0.0  0.2  195432  30168  -  SsJ  15:27      0:00.07 /usr/local/sbin/httpd -DNOHTTPACCEPT
www    10195   0.0  0.2  195432  30180  -  IJ   15:27      0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www    10196   0.0  0.2  195432  30180  -  IJ   15:27      0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www    10198   0.0  0.2  195432  30180  -  IJ   15:27      0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www    10199   0.0  0.2  195432  30180  -  IJ   15:27      0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www    10200   0.0  0.2  195432  30180  -  IJ   15:27      0:00.00 /usr/local/sbin/httpd -DNOHTTPACCEPT

Status de Apache


 apachectl status
apache24 is running as pid 12118.

Instalar el sistema de gestión de base de datos MariaDB, MySQL, o Percona


 pkg install mariadb104-server

Activar MySQL


 sysrc mysql_enable=YES
 mysql_enable: NO -> YES

Iniciar el servicio


 service mysql-server onestart
Installing MariaDB/MySQL system tables in '/var/db/mysql' ...
OK

Comprobar que está en marcha


 ps aux | grep mysql
mysql 16574  0.0  0.0  13596  3132  -  IsJ  07:28   0:00.01 /bin/sh /usr/local/bin
mysql 29646  0.0  0.5 601752 83468  -  IJ   07:28   0:00.10 /usr/local/libexec/mar
root  34451  0.0  0.0  12840  2324  4  S+J  07:30   0:00.00 grep mysql

Proceder con la correcta instalación y despliegue de la base de datos. Como es la primera instalación, se establece la contraseña raíz de la base de datos y responder las preguntas con los valores predeterminados.


 mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

Set root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Instalar PHP Scripting Language


 pkg install php80

Configurar PHP


 cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Instalar módulos o dependencias de PHP para que Wordpress funcione correctamente


 pkg install mod_php80 php80-bz2 php80-ctype php80-curl php80-dom php80-exif \
 php80-extensions php80-fileinfo php80-filter php80-gd  php80-iconv php80-intl \
 php80-mbstring php80-mysqli php80-opcache php80-pdo php80-pdo_mysql php80-pdo_sqlite \
 php80-pear php80-pear-Services_JSON php80-pecl-mcrypt php80-phar php80-posix \
 php80-session php80-simplexml php80-sqlite3 php80-tokenizer php80-xmlphp80-xmlreader \
 php80-xmlwriter php80-zip php80-zlib

Puede listar los módulos instalados con el comando


 php -m

La instalación de mod_php80 contiene un mensaje para usar el módulo de forma correcta, editando el archivo de configuración principal de Apache.


 cd /usr/local/etc/apache24

Editar /usr/local/etc/apache24/httpd.conf cerca de la línea 285 añadir index.php


 vim /usr/local/etc/apache24/httpd.conf

# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
284 <IfModule dir_module>
285     DirectoryIndex index.html
286 </IfModule>

Quedaría como se ve a continuación


<IfModule dir_module>
        DirectoryIndex index.php index.html
</IfModule>

Agregar las líneas de configuración que le permiten a Apache comunicarse con PHP


cd /usr/local/etc/apache24/modules.d/
touch 001_mod-php.conf
vim 001_mod-php.conf

<FilesMatch "\.php$">

SetHandler application/x-httpd-php

</FilesMatch>

<FilesMatch "\.phps$">

SetHandler application/x-httpd-php-source

</FilesMatch>

Listar el directorio


root@www:/usr/local/etc/apache24/modules.d # ls
001_mod-php.conf        README_modules.d

Comprobar errores de sintaxis en el archivo de configuración de Apache


 apachectl configtest
...
Syntax OK

Reiniciar Aapache


 apachectl graceful
...
Performing a graceful restart

Cambiar AllowOverride none por AllowOverride All httpd.conf, cerca de la línea número 272


# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   AllowOverride FileInfo AuthConfig Limit
#
#AllowOverride None
     AllowOverride All

Habilitar modulo rewrite


cat /usr/local/etc/apache24/httpd.conf | nl | grep rewrite
 177 #LoadModule rewrite_module libexec/apache24/mod_rewrite.so

LoadModule rewrite_module libexec/apache24/mod_rewrite.so

LoadModule alias_module libexec/apache24/mod_alias.so

LoadModule rewrite_module libexec/apache24/mod_rewrite.so

LoadModule php_module       libexec/apache24/libphp.so

Activar módulo PHP-FPM, para que PHP pueda comunicarse con el servidor Apache


 sysrc php_fpm_enable=YES
 php_fpm_enable:  -> YES

 service php-fpm start
Performing sanity check on php-fpm configuration:
[23-Jan-2023 09:20:27] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful

Realizamos la comprobación


 ps aux | grep php
root  53873  0.0  0.2 193764 28628  -  SsJ  10:17   0:00.06 php-fpm: master proces
www   54234  0.0  0.2 193764 28640  -  IJ   10:17   0:00.00 php-fpm: pool www (php
www   54393  0.0  0.2 193764 28640  -  IJ   10:17   0:00.00 php-fpm: pool www (php
root  30063  0.0  0.0  12840  2312  1  S+J  10:47   0:00.00 grep php

Revisar archivo de configuración de Apache


 apachectl configtest
Performing sanity check on apache24 configuration:
Syntax OK

Creamos el archivo info.php para asegurarnos que todo funciona como debería


vim /usr/local/www/apache24/data/info.php
<?php phpinfo(); ?>

Salir del jail www


root@www: # exit
logout

Desde Firefox


http://10.10.10.2/info.php


 FreeBSD es genial!.

miércoles, 2 de septiembre de 2020

ARP (Address Resolution Protocol) Mikrotik

ARP crea una relación entre la dirección IP (layer 3) con la MAC address (layer 2). Opera de forma dinámica aunque puede ser configurado manualmente. La tabla ARP nos da información de la dirección IP, la dirección MAC y la interfaz en la cual está conectado el dispositivo. El tamaño de la Table ARP depende de la cantidad de dispositivos conectados.


Static ARP

seguridad

las entradas ARP pueden ser agregadas manualmente. La interfaz de red puede ser configurada a reply-only, de manera que solo aceptará entradas manuales. Los routers de los clientes no tendrán acceso a Internet si utilizan una IP diferente a la asignada. Si un usuario cambia su dirección IP sin nuestra autorización no coincidirá con la agregada manualmente a la tabla ARP y no tendrá conexión a Internet.



Las entradas ARP pueden ser convertidas en estática dando doble clic y clicando en Make Static. Pasa de dinámica estática. En el signo + puedo asignar una entrada estática a ARP, poniendo la dirección IP, la MAC address y la interfaz. Podemos agregar cualquier cantidad de clientes repitiendo el proceso. Es el primer mecanismo para agregar Static ARP.




El siguiente paso es ir a Interface, doble clic en la interfaz y en la entrada ARP cambiamos enabled por reply-only. A partir de este momento la interfaz solo aceptará entradas ARP estáticas o manuales, no dinámicas. Si se conecta alguien con un cable a cualquier entrada Ethernet no va a tener acceso a Internet porque no lo tenemos registrado en la Table ARP.



DHCP Server puede agregar entradas dinámicamente ARP combinando ¨static leases y ¨reply only ARP¨ combinando seguridad y facilidad de uso. Entramos en DHCP Server para poner la entrada Address Only en ¨static only¨ y en la parte inferior veremos ¨Add ARP For Leales¨, de manera que, cuando un cliente se conecte nos agregará una entrada a la tabla ARP.



Si elimino la tabla ARP me desconectará del Winbox. Para ingresar tengo que renovar la dirección IP, en el momento que el DHCP Server me asigne una dirección IP seré agregado a la tabla ARP. Ahora desconecto el cable de mi portátil y lo conecto de nuevo y ya tendré acceso. En IP ARP estará la entrada marcada como DCH - dynamic, complete, DHCP.

Mikrotik es genial!.

lunes, 31 de agosto de 2020

Router o2 Modo Bridge PPPoE Client Mikrotik

Después de poner el router Mitrastar HGU GPT-2541GNAC de o2 en modo bridge siguiendo la guía de macjosan vamos a configurar el Mikrotik (RouterOS) como router principal. 


Los routers Mikrotik traen una configuración por defecto donde la interfaz ether1 es la WAN y el resto de interfaces en un bridge que será nuestra LAN, además incluye reglas de firewall que permiten empezar a utilizar al salir de la caja. 


Diagrama de bloques del Router hAP ac2





Este dispositivo ya tiene un bridge configurado y los Ports del mismo: ether2, ether3, ether4, ether5, wlan1 y wlan2,  una IP Address para la LAN (bridge_LAN) del rango 192.168.88.0/24, y un DHCP Server activo que provee de direcciones IP automáticas a los dispositivos de la red. La hora debe estar bien configurada.




Nuestro Mikrotik estará expuesto directamente a Internet por lo que lo más recomendable es que el firewall sea configurado en modo “denegar todo”, permitir solo lo que nos interesa, impedir escáners de puertos, conectar vía remota sólo utilizando una VPN, impedir ataques DoS y DDos, crear blacklist automáticas de intentos de conexión (si tuviéramos puertos expuestos a Internet), Implementar el envío de email automatizado con la configuración .src y .backup de nuestro router. Permitir el uso de Winbox solo desde nuestra LAN. Crear un usuario privilegiado con full permisos y luego (no al revés), deshabitar el usuario por defecto Admin. Utilizar contraseñas fuertes. Impedir el acceso via web a nuestro Mikrotik (puerto 80), desactivar (en IP Service List) el puerto 21, api-ssl (8728), api (8728) y el acceso por telnet (23).



Dicho esto y teniendo el router HGU de o2 en modo bridge empezamos con la configuración del PPPoE Client en nuestro router Mikortik. En el puerto ether1, que es el puerto WAN por defecto del Mikrotik, conectamos un cable desde la interfaz Eth1 del HGU.


Nos vamos al Mikrotik y abrimos el Winbox para crear la interfaz PPPoE Client en la interfaz ether1 (renombrada como ether1_WAN), En la pestaña Dial Out el nombre del 

Service (opcional), 

User: adslppp@telefonicanetpa

Password: adslpppa




Marcamos Use Peer DNS si queremos utilizar los DNS del proveedor

Marcamos Add Default Route para que nos cree automáticamente la ruta por defecto (todo lo que no sepas donde enviarlo envíalo por aquí), que podemos ver en Route list.

DAS - dinámica, activa estática

DAC - dinámica, activa conectada



Enmascaramiento NAT


En IP - Firewall - Nat la interfaz de salida a Internet (Out. Interface), es la pppoe-out1 y la pestaña Action debe quedar en masquerade y hacer NAT (Traducción de Direcciones de Red). De lo contrario no podremos salir a Internet.




En IP address poremos ver la IP Pública y la ip de la red LAN.



Comprobamos que tenemos conexión a Internet



Mikrotik es genial!.

domingo, 30 de agosto de 2020

L2TP IPsec y BCP Mikrotik

VPN Túnel


Puertos que tenemos que abrir en el router Mikrotik 4500, 500, 1701 (udp) y el protocolo ipsec-esp (50).


Utilizar estos protocolos para conseguir conectividad en capa 2 con altos niveles de seguridad. Un túnel o VPN es una conexión entre dos equipos remotos como si los equipos estuviesen conectados directamente. Como este es un túnel de capa 2 vamos a extender nuestro dominio de broadcast de un router hacia el otro y crear un solo dominio de broadcast con independencia de su ubicación. 


L2tp quiere decir Layer 2 Tunneling Protocol o protocolo de capa 2 y se utiliza con IPSec que proporciona  encriptación y autenticación con el fin de para proporcionar mayores niveles de seguridad para la transmisión de datos. BCP (Bridge Control Protocol) sirve para agregar la interfaz virtual creada (el túnel) a un bridge. BCP es una parte independiente de PPP.


Laboratorio con GNS3. Con equipos físicos la configuración será la misma. Lo único que cambia es la IP pública que evidentemente debe ser alcanzable.



Configuración del equipo que va a servir de Servidor de las conexiones L2TP: 


Tenemos una oficina remota con una IP pública 172.16.90.138 (es la IP con la que el equipo sale a Internet en este laboratorio) y una LAN con IP privada 10.1.101.0/24.  Este equipo tiene un bridge llamado bridge_LAN al que pertenecen los puertos ether1 al ether5 y es el que vamos a utilizar con BCP en los túneles.



Queremos tener conexión total en capa 2 entre los dos routers. Comprobamos que tenemos conexión a Internet con un ping. 



En el GNS3 desde la terminal, (botón derecho sobre el router clic en Console), cambiamos los nombres de los routers.



Abrimos el Winbox (los routers ya tienen IP asignadas por NAT desde mi red local:



nos conectamos al router L2TPServer y habilitamos desde PPP el L2TP Server haciendo clic en Enabled, elegimos default encryption, (es aquí donde habilitamos BCP o en su defecto en el perfil que nosotros generemos), como Default Profile, en Use IPsec elegimos required (esto obliga al cliente a utilizar IPSec). En Authentication solo dejamos habilitado mschap2. En IPsec Secret ponemos una contraseña fuerte para conseguir un buen nivel de seguridad (este Secret es para IPsec y puede ser diferente de la contraseña del usuario). También podemos habilitar una sesión por host habilitando One Session Per Host. 



En la pestaña Profiles veremos los perfiles por defecto implementados en RouterOS. Abrimos Default Encryption. En bridge seleccionamos el bridge de la LAN. En estos momentos ya estamos utilizando BCP.  Cuando se establezca el túnel, la interfaz del túnel se va a agregar a este bridge que se llama bridge_LAN guardamos los cambios.




Necesitamos crear un usuario y una clave, esto lo haremos en New PPP Secret. Este usuario es para establecer el túnel l2tp. Como usuario carles y una contraseña (, en Service l2tp y en Profile default encryption. El password anterior era para IPsec. En Local Address pondremos la IP 10.100.100.1 y en Remote Address la 172.16.254.1 (esta es la IP que tomará el equipo cliente). Estas son las direcciones IP que va a tomar en sus extremos el túnel.





Llegados a este punto nuestro router está listo para recibir conexión y nuestro dominio de broadcast sea extendido hacia el cliente. 


Configuración del equipo Cliente:



Nos conectamos a través de Winbox



Equipo cliente desde el que vamos a conectarnos hacia la oficina. No es necesario que tenga una ip pública, algo imprescindible en el de la oficina, lo que si tiene que tener es conexión a Internet. Comprobamos conexión a Internet haciendo un ping. 



Vamos a agregar un L2TP Client y agregar los parámetros de conexión que debe coincidir con lo configurado en el Servidor. Donde pone Dial Out en la entrada Connect To tenemos que introducir la IP pública de la oficina que dijimos que, (a efectos del laboratorio), es la 172.16.90.138. En el usuario y la contraseña que habéis puesto antes.



En Profile seleccionamos default encryption y tildar Use IPsec e introducir el password de IPsec. No necesitamos utilizar las opciones Dial on Demand ni Add Default Route. Clic en Aplicar y OK. Ahora en Profiles agregamos el bridge. En este caso el router tiene un bridge creado entre los puertos 2 al 5 y la wlan1 que se llama LAN_bridge.





En el momento de establecer el túnel todos los puertos perteneciente al bridge tendrán conectividad en capa 2 con el router de la oficina.  Vamos a Interface y deshabitamos y habilitamos el túnel y vemos que el túnel se ha establecido. En status, Status connected. Las Local address (172.16.254.1) t Remote Address (10.100.100.1). Si hacemos un ping a la IP 10.100.100.1 veremos que hay respuesta. También podemos verificar que BCP está activo que entre los Ports del bridge LAN_bridge aparece el puerto l2tp dinámico que es el túnel L2TP. 



Ping a la IP 10.100.100.1



Si abro una nueva ventana New Winbox veré en la pestaña Neighbors el equipo del otro extremo (172.16.254.1.1). Si configuro mi portátil con una IP del mismo rango de la que se utiliza en la oficina que es la tendría que poder hacer ping hacia el otro router. 


Con un dhcp server habilitado mi portátil tomaría una IP automáticamente de esa LAN. Es como si estuviera conectado directamente al router de la oficina. Se pueden conectar clientes Mac, Windows, Linux, Android, etc.


Mikrotik es genial!.

miércoles, 25 de julio de 2012

Udev


Como configura Linux el hardware

Fuente: Oliver Frommel, Rene Rebe, Klaus Knopper

Linux heredó de UNIX la maxima "todo es un fichero". Esta abstracción permite a los programas utilizar nodos de dispositivos para acceder al hardware del ordenador como si se tratara de un fichero ordinario.

La tabla de texto pci.ids se encuentra en
/usr/share/misc/pci.ids
Puede comprobar que es un fichero con más de 20,000 líneas:
# wc -l /usr/share/misc/pci.ids
20460 /usr/share/misc/pci.ids

La mayoría de los componentes hardware PCI contienen unas id's de fabricante y producto. Estas id's se expresan como dos números hexadecimales.

# lspci -n

# lspci -v

En la actualidad la tabla legible se mantiene fuera del kernel y las id's de fabricante y producto se leen desde el bus del sistema.

Para detectar el hardware se necesita un mapeo entre las id's del PCI y el nombre del módulo del kernel a cargar a través de modprobe. Busca en la tabla pci.ids los nombres de los módulos a partir de las id's del PCI y carga los módulos listados allí.

Udev es el moderno demonio de detección hardware en Linux. Utiliza una funcionalidad compilada en el kernel. Udev escanea el sistema y revisa la lista de módulos, y con la id PCI de fabricante y producto carga el módulo para esa tarjeta.

# modinfo iwl3945
Muestra los parámetros del módulo, licencia, autor, alias pci, dependencias, firmware, etc.

# modprobe iwl3945

# lsmod | grep iwl3945


Linux es genial!.