Para lograr que tu máquina virtual con Ubuntu Server 22.
04 funcione como un router/firewall,
permitiendo a los equipos de la red 192.168.1.0/24 acceder a Internet a través de la red
192.168.100.0/24, debes realizar una serie de configuraciones en tu servidor. Aquí te dejo una guía
paso a paso sobre cómo hacerlo:
1. Habilitar el reenvío de IP
Primero, necesitas habilitar el reenvío de IP en tu servidor Ubuntu. Esto permite que el servidor
enrute paquetes entre las dos interfaces de red.
Abre el archivo de configuración de sysctl:
sudo nano /etc/sysctl.conf
Agrega o descomenta la siguiente línea:
net.ipv4.ip_forward=1
Aplica los cambios:
sudo sysctl -p
2. Configurar NAT (Network Address Translation)
Utiliza iptables para configurar NAT, lo que permite que los dispositivos en tu red interna
(192.168.1.0/24) se comuniquen con redes externas a través de una única dirección IP (la dirección
IP de la interfaz NAT de tu servidor).
Primero, instala iptables si aún no lo está:
sudo apt update
sudo apt install iptables iptables-persistent
Luego, agrega una regla para configurar NAT sobre la interfaz que está conectada a la red NAT
(suponiendo que sea eth0 para la red 192.168.100.0/24 y eth1 para la red 192.168.1.0/24, ajusta
según tu configuración):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -
j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Guarda la configuración de iptables para que persista después de reiniciar:
sudo netfilter-persistent save
sudo netfilter-persistent reload
3. Configurar DHCP (Opcional)
Si deseas que tu servidor Ubuntu también funcione como servidor DHCP para asignar
automáticamente direcciones IP a los dispositivos en la red 192.168.1.0/24, puedes instalar y
configurar un servidor DHCP, como isc-dhcp-server.
Instala el servidor DHCP:
sudo apt install isc-dhcp-server
Configura el servidor DHCP para que asigne direcciones IP en la red 192.168.1.0/24. Edita el
archivo de configuración:
sudo nano /etc/dhcp/dhcpd.conf
Agrega una configuración como la siguiente, ajustando según tus necesidades:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.0.101 192.168.0.200;
option routers 192.168.0.100;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
Inicia y habilita el servicio DHCP:
sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server
4. Ajustes finales y prueba
• Asegúrate de que todas las configuraciones estén correctamente aplicadas y de que no haya
reglas de firewall que bloqueen el tráfico necesario.
• Verifica que los dispositivos en tu red 192.168.1.0/24 tienen configurado como puerta de
enlace predeterminada la dirección IP de tu servidor Ubuntu (192.168.0.100).
• Realiza pruebas de conectividad y navegación desde un dispositivo en la red
192.168.1.0/24 para asegurarte de que todo está funcionando correctamente.
Siguiendo estos pasos, tu máquina virtual debería funcionar como un router/firewall, permitiendo a
los dispositivos de tu red interna acceder a Internet a través de ella.
Ok, si después quiero instalar un servidor web en la máquina virtual para que los equipos
conectados a la red 192.168.1.0/24 puedan acceder con un navegador a la ip del servidor, e instalar
wordpress para crear una intranet?
Para configurar un servidor web en tu máquina virtual Ubuntu Server 22.04 y luego instalar
WordPress para crear una intranet accesible para los equipos en la red 192.168.1.0/24, puedes
seguir estos pasos:
1. Instalar Apache
Primero, instala el servidor web Apache:
sudo apt update
sudo apt install apache2
Una vez instalado, asegúrate de que Apache se esté ejecutando:
sudo systemctl start apache2
sudo systemctl enable apache2
2. Ajustar el Firewall
Si tienes UFW (Uncomplicated Firewall) activado, necesitarás permitir el tráfico al servidor web:
sudo ufw allow in "Apache"
Verifica que el estado del firewall permita el tráfico HTTP:
sudo ufw status
3. Instalar MySQL
WordPress utiliza una base de datos para almacenar toda su información, por lo que necesitarás
instalar MySQL:
sudo apt install mysql-server
Una vez instalado, ejecuta el script de seguridad proporcionado por MySQL:
sudo mysql_secure_installation
Sigue las instrucciones para configurar tu entorno de base de datos de manera segura.
4. Crear una Base de Datos para WordPress
Accede a la consola de MySQL:
sudo mysql
Crea una nueva base de datos y un usuario para WordPress:
sqlCopy code
CREATE DATABASE wordpress_db;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'un_password_seguro';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
5. Instalar PHP
WordPress está escrito en PHP, por lo que necesitarás instalar PHP junto con algunas extensiones
comunes:
sudo apt install php php-mysql libapache2-mod-php php-cli php-cgi php-gd
6. Descargar e Instalar WordPress
Dirígete al directorio raíz de tu servidor web:
cd /var/www/html
Elimina el archivo index.html predeterminado de Apache:
sudo rm index.html
Descarga la última versión de WordPress:
sudo wget https://wordpress.org/latest.tar.gz
Descomprime el archivo:
sudo tar -xzvf latest.tar.gz
Mueve los archivos de WordPress al directorio raíz:
sudo mv wordpress/* .
Elimina el directorio y archivo tar de WordPress ya que no se necesitan más:
sudo rm -rf wordpress latest.tar.gz
Cambia la propiedad de todos los archivos al usuario de Apache:
sudo chown -R www-data:www-data /var/www/html
7. Configurar WordPress
Navega a la IP de tu servidor en un navegador web para iniciar el proceso de configuración de
WordPress. En tu caso, sería http://192.168.0.100.
Sigue las instrucciones en pantalla, ingresando los detalles de la base de datos cuando se soliciten.
Una vez completada la configuración, podrás acceder al panel de administración de WordPress y
comenzar a personalizar tu intranet.
8. Ajustes Finales
• Verifica que todos los servicios (Apache, MySQL) se estén ejecutando correctamente.
• Asegúrate de que la configuración de seguridad de tu servidor esté actualizada,
especialmente si la intranet será accesible desde redes externas en algún momento.
Siguiendo estos pasos, tendrás un servidor web corriendo en tu máquina virtual, con WordPress
instalado y listo para ser utilizado como una intranet por los equipos conectados a la red
192.168.1.0/24.
Gracias, si ahora quiero instalar un certificado ssl autofirmado en ese servidor web?
Para instalar un certificado SSL autofirmado en tu servidor web Apache en Ubuntu Server 22.04,
puedes seguir estos pasos. Un certificado SSL autofirmado puede ser útil para ambientes de prueba
o intranets, pero no es recomendado para sitios web públicos ya que los navegadores mostrarán
advertencias de seguridad a los visitantes.
1. Instalar OpenSSL
Primero, asegúrate de que OpenSSL esté instalado en tu servidor:
sudo apt update
sudo apt install openssl
2. Crear un Certificado SSL Autofirmado
Crea un directorio para almacenar tu certificado y clave:
sudo mkdir /etc/ssl/private
sudo chmod 700 /etc/ssl/private
Ahora, crea el certificado SSL autofirmado y la clave privada ejecutando:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout
/etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-
selfsigned.crt
Durante la creación, te pedirá que rellenes algunos campos; el más importante es "Common
Name" que debe ser el nombre de dominio de tu servidor o, en su defecto, su dirección IP si no
tienes un dominio. Para una intranet, puedes usar la dirección IP del servidor, por ejemplo,
192.168.0.100.
3. Configurar Apache para Usar SSL
Primero, activa el módulo SSL y el sitio virtual SSL predeterminado en Apache:
sudo a2enmod ssl
sudo a2ensite default-ssl
Luego, edita el archivo de configuración del sitio virtual SSL predeterminado:
sudo nano /etc/apache2/sites-available/default-ssl.conf
Encuentra las directivas SSLCertificateFile y SSLCertificateKeyFile y
modifícalas para apuntar a tu certificado y clave generados:
apacheCopy code
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
Guarda y cierra el archivo.
4. Configurar Redirección (Opcional)
Si deseas forzar el uso de HTTPS en tu sitio, puedes modificar el archivo de configuración de tu
sitio web para redirigir todas las solicitudes HTTP a HTTPS. Edita el archivo de configuración de
tu sitio en Apache:
sudo nano /etc/apache2/sites-available/000-default.conf
Y agrega las siguientes líneas dentro del bloque <VirtualHost *:80>:
apacheCopy code
Redirect "/" "https://tu_dominio_o_IP/"
Reemplaza tu_dominio_o_IP con el dominio o IP de tu servidor.
5. Reiniciar Apache
Para aplicar los cambios, reinicia el servidor web Apache:
sudo systemctl restart apache2
6. Verificar la Configuración SSL
Abre un navegador y ve a la dirección de tu servidor usando HTTPS, por ejemplo,
https://192.168.0.100. Deberías ver una advertencia de seguridad debido al uso de un
certificado autofirmado. Puedes proceder de manera segura si confías en la conexión, ya que es tu
propio servidor.
Con estos pasos, has configurado un certificado SSL autofirmado en tu servidor Apache en Ubuntu
Server 22.04. Esto asegura las conexiones a tu servidor web mediante encriptación, aunque
recuerda que los certificados autofirmados no son adecuados para ambientes de producción en
internet abierto debido a las advertencias de seguridad que presentan en los navegadores.
Gracias, si ahora quisiera instalar dolibarr en ese mismo servidor?
Para instalar Dolibarr, un popular software de gestión de recursos empresariales (ERP) y gestión
de relaciones con clientes (CRM), en tu servidor web Apache en Ubuntu Server 22.04, sigue los
pasos a continuación. Este proceso asume que ya tienes Apache, MySQL/MariaDB, y PHP
instalados y configurados en tu servidor, como se describió en pasos anteriores.
1. Crear una Base de Datos para Dolibarr
Primero, necesitarás crear una base de datos específica para Dolibarr y un usuario de MySQL con
permisos para acceder y modificarla.
1. Accede a MySQL como root:
sudo mysql -u root -p
2. Crea la base de datos para Dolibarr:
sqlCopy code
CREATE DATABASE dolibarr_db CHARACTER SET utf8mb4 COLLATE
utf8mb4_unicode_ci;
3. Crea un usuario de MySQL y otórgale permisos sobre la base de datos:
sqlCopy code
CREATE USER 'dolibarr_user'@'localhost' IDENTIFIED BY
'un_password_seguro';
GRANT ALL PRIVILEGES ON dolibarr_db.* TO 'dolibarr_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
2. Descargar e Instalar Dolibarr
1. Ve al directorio de trabajo (por ejemplo, /var/www/html), pero es mejor crear un
subdirectorio para Dolibarr para mantener organizado tu servidor web:
cd /var/www/html
sudo mkdir dolibarr
cd dolibarr
2. Descarga la última versión de Dolibarr desde su sitio web oficial. Puedes encontrar el
enlace de descarga en https://www.dolibarr.org. Utiliza wget para descargar el archivo
directamente en tu servidor. Asegúrate de verificar la última versión disponible y actualizar
la URL del comando wget a continuación según sea necesario:
sudo wget https://sourceforge.net/projects/dolibarr/files/latest/download
-O dolibarr.zip
3. Descomprime el archivo descargado:
sudo unzip dolibarr.zip -d /var/www/html/dolibarr
Este comando descomprime el contenido en el directorio /var/www/html/dolibarr.
Dependiendo de cómo se empaquete la versión que descargaste, es posible que necesites
ajustar los comandos para que reflejen la estructura correcta de directorios.
4. Cambia la propiedad del directorio para que el servidor web pueda acceder y modificar los
archivos según sea necesario:
sudo chown -R www-data:www-data /var/www/html/dolibarr
3. Configurar Apache para Dolibarr
1. Crea un archivo de configuración de sitio virtual para Dolibarr:
sudo nano /etc/apache2/sites-available/dolibarr.conf
2. Agrega la siguiente configuración al archivo, ajustando DocumentRoot y ServerName
según sea necesario:
apacheCopy code
<VirtualHost *:80>
ServerAdmin admin@tu_dominio.com
DocumentRoot /var/www/html/dolibarr/htdocs
ServerName tu_dominio.com
<Directory /var/www/html/dolibarr/htdocs>
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
3. Habilita el sitio y el módulo rewrite de Apache:
sudo a2ensite dolibarr.conf
sudo a2enmod rewrite
4. Reinicia el servicio de Apache para aplicar los cambios:
sudo systemctl restart apache2
4. Completar la Instalación a través de la Interfaz Web
1. Abre un navegador web y ve a http://tu_dominio.com o
http://IP_del_servidor para acceder al instalador de Dolibarr.
2. Sigue las instrucciones en pantalla para configurar Dolibarr, incluyendo la configuración de
la base de datos con los detalles que creaste anteriormente.
3. Asegúrate de seguir cualquier paso adicional que el instalador sugiera, como configurar
parámetros adicionales o realizar ajustes de seguridad.
Con estos pasos, habrás instalado Dolibarr en tu servidor Ubuntu 22.04 con Apache, y estará listo
para ser configurado y utilizado para gestionar los recursos de tu empresa o proyecto.
Según la configuración que tenemos hasta ahora del servidor Ubuntu, sería posible instalar el
servicio de proxy Squid para que los equipos finales de la red 192.168.1.0/24 se conectaran usando
ese proxy, sin ser incompatible con la configuración de router que ya tiene el servidor entre las
redes 192.168.100.0/24 y 192.168.1.0./24?
Sí, es posible instalar y configurar Squid como un servicio de proxy en tu servidor Ubuntu que ya
está configurado como router/firewall entre las redes 192.168.100.0/24 y 192.168.1.0/24. Squid
puede funcionar en paralelo con las funciones de enrutamiento y firewall, proporcionando un
servicio de proxy para mejorar el control de acceso, la caché de contenido web para aumentar la
eficiencia de la navegación y la capacidad de filtrar tráfico.
Aquí te muestro cómo instalar y configurar Squid en tu servidor Ubuntu Server 22.04:
1. Instalar Squid
Primero, actualiza tu lista de paquetes e instala Squid:
sudo apt update
sudo apt install squid
2. Configurar Squid
Una vez instalado, Squid estará corriendo con una configuración básica. Para ajustarla a tus
necesidades, edita el archivo de configuración de Squid ubicado en
/etc/squid/squid.conf. Antes de hacer cambios, es una buena práctica hacer una copia de
seguridad del archivo de configuración original:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup
Ahora, edita el archivo de configuración:
sudo nano /etc/squid/squid.conf
Aquí hay algunas configuraciones básicas que puedes ajustar o agregar para controlar el acceso y
optimizar el rendimiento:
• http_access: Controla qué solicitudes son permitidas o denegadas.
• http_port: Define en qué puerto escuchará Squid las solicitudes de proxy. El puerto
predeterminado es 3128.
• acl: Define listas de control de acceso para especificar quién puede acceder a Squid.
Por ejemplo, para permitir que todos los equipos de tu red 192.168.1.0/24 utilicen el proxy, podrías
agregar:
apacheCopy code
acl mynetwork src 192.168.1.0/24
http_access allow mynetwork
Asegúrate de colocar estas líneas antes de cualquier http_access deny all para permitir el
acceso de tu red y denegar el resto.
Después de hacer tus cambios, guarda y cierra el archivo.
3. Reiniciar Squid
Para aplicar los cambios, reinicia el servicio Squid:
sudo systemctl restart squid
4. Configurar los Equipos Cliente
Para que los equipos de tu red utilicen Squid como su proxy, deberás configurar manualmente la
dirección IP del servidor Ubuntu y el puerto de Squid (por defecto 3128) en la configuración de
proxy de cada equipo o navegador.
5. Compatibilidad con la Configuración de Router/Firewall
La instalación y configuración de Squid no debería interferir con tu configuración existente de
router/firewall. Squid actúa a nivel de aplicación, proporcionando servicios de proxy para el
tráfico HTTP, HTTPS y FTP, entre otros, mientras que la función de enrutamiento y firewall opera
a niveles más bajos, gestionando el tráfico a nivel de red e IP.
Sin embargo, es importante asegurarse de que no existan reglas de firewall que bloqueen el puerto
en el que Squid está escuchando (por defecto 3128), permitiendo así que los equipos de tu red se
conecten al servicio de proxy sin problemas.
Con estos pasos, habrás configurado Squid en tu servidor Ubuntu para actuar como un proxy para
los equipos de tu red, complementando tu configuración de router/firewall sin causar
incompatibilidades.
Gracias, puedes darme un ejemplo completo de archivo squid.conf, para que incluya las opciones
mínimas para funcionar, con una acl de acceso para la red 192.168.1.0, las reglas de acceso
necesarias para el correcto funcionamiento de squid y el bloqueo de los dominios amazon.es, x.com
y una lista de palabras prohibidas habituales (por ejemplo, porno, apuestas, drogas...)
Claro, te proporcionaré un ejemplo de configuración para el archivo squid.conf que incluye
las opciones mínimas necesarias para funcionar correctamente, junto con una ACL (Lista de
Control de Acceso) para permitir el acceso solo desde la red 192.168.1.0/24. Además, configuraré
reglas para bloquear el acceso a los dominios específicos que mencionaste (amazon.es, x.com)
y filtrar contenido basado en palabras clave como "porno", "apuestas", "drogas".
Primero, recuerda hacer una copia de seguridad de tu archivo de configuración actual de Squid
antes de hacer cambios:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup
Ahora, aquí tienes un ejemplo de cómo podría verse tu squid.conf:
apacheCopy code
# Configuración básica
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
# Definir la ACL para la red permitida
acl mynetwork src 192.168.1.0/24
# Definir las ACLs para los dominios prohibidos
acl blocked_domains dstdomain .amazon.es .x.com
# Definir las ACLs para palabras clave prohibidas en URLs
acl blocked_keywords url_regex -i porno apuestas drogas
# Permitir el acceso solo a mynetwork
http_access allow mynetwork
# Bloquear los dominios especificados
http_access deny blocked_domains
# Bloquear las URLs que contienen las palabras clave prohibidas
http_access deny blocked_keywords
# Denegar el resto del tráfico
http_access deny all
# Puerto en el que Squid escuchará las peticiones
http_port 3128
# Registros
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log combined
# Otras configuraciones
cache_dir ufs /var/spool/squid 100 16 256
coredump_dir /var/spool/squid
# Refrescar patrones (opcional, pero útil para controlar el caché)
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
Este archivo de configuración:
• Define una ACL mynetwork para permitir el acceso únicamente desde la red
192.168.1.0/24.
• Establece reglas para denegar el acceso a los dominios amazon.es y x.com.
• Utiliza una expresión regular para bloquear URLs que contengan las palabras clave
"porno", "apuestas", "drogas".
• Permite el acceso a internet solo a través de mynetwork y bloquea todo lo demás por
defecto.
• Configura Squid para escuchar en el puerto 3128.
• Define rutas para los registros de Squid y la configuración del caché.
Después de editar el archivo /etc/squid/squid.conf con estos contenidos, recuerda
reiniciar Squid para aplicar los cambios:
sudo systemctl restart squid
Este es un punto de partida básico. Squid es muy configurable, y puedes ajustar aún más las
configuraciones según las necesidades específicas de tu red y políticas de seguridad.