El siguiente articulo lo he creado mas o menos por el año 2012 en un pagina llamada taringa, aqui aprenderas temas sobre, dominios, redes, ips, dns, dhcp, bases de datos, linux y algunos temas importantes sobre informatica.
Como lo dice el titulo principal del articulo crearemos un servidor squid proxy server con 2 tarjetas de red, mas un servidor ejabber (de mensajeria) con el cual podran conectarse con cuentas que se encuentren fuera de su red (del exterior) grasias al servicio de no-ip.
Requisitos:
Ubuntu server en mi caso tengo la vercion 12.04
2 tarjetas de red
Squid proxy server
Dhcp
mysql, php y apache
Servidor ejabber
Cliente spark
NOTA: PARA GUARDAR CAMBIOS EN LOS ARCHIVOS QUE SE ABREN CON NANO POR CONSOLA SOLO DEBEN PRECIONAR CTRL + O (ESTO PARA GUARDAR) Y CTRL + X (ESTO PARA SALIR)
OPCIONAL: PARA INSTALAR SSH EJECUTAN LA SIGUIENTE INSTRUCCION
apt-get install openssh-server
Una vez instalado pueden descargase el cliente putty de la siguiente pagina:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
Una vez descargado lo abren y esciben la ip del servidor ubuntu server y dan enter y les mostrara un mensaje cuando se baia a conectar solo le disen que si y ya tendran la consola del servidor en su pc.
tenemos 2 tarjetas de red conectadas a la pc con ubuntu server que son, "etho" y "etho1". En la tarjeta "eth0" (la que viene integrada a la tarjeta madre) vamos a conectar un cable que balla de esta tarjeta directa al modem (su routeador de su proovedor de internet) y en la "eth1" vamos a conectar otro cable que balla conectada a un switch y todas sus maquinas que quieran pasar por squid proxy server deberan de estas conectadas al switch.
*Diagrama de red como quedaria ya con las tarjetas conectadas:
Escribimos:
sudo nano /etc/network/interfaces
Aca la imagen como deben quedar configuradas las 2 tarjetas de red, pueden borrar todo el contenido que tiene este archivo y solo dejan esta configuracion:
Ejecutan la siguiente instruccion:
sudo /etc/init.d/networking restart
Esto para cargar la nueva configuracion, luego hacen un ifconfig y podran ver que sus tarjetas ya estan configuradas correctamente.
Ejecutamos lo siguiente en la consola:
sudo nano /etc/resolv.conf
Aqui van a dejar la ip que tiene su modem el que les ofrece su provedor de internet por default los de telmex tiene la ip 192.168.1.254
Ejecutamos en la consola el siguiente comando:
sudo apt-get install dhcp3-server
Esto instalara el servidor dhcp
Ahora tendremos que desirle con que interface de red nos va escuchar, para ello ejecutamos la siguiente sentencia:
sudo nano /etc/default/dhcp3-server
Y al final tenemos que dejar "eth1" como se muestra en la imagen:
Ejecutamos la siguiente sentencia:
sudo nano /etc/dhcp3/dhcpd.conf
Aquí vamos a dejar lo siguiente:
ddns-update-style none; default-lease-time 3600;
max-lease-time 180000; log-facility local7;
ddns-update-style interim; authoritative;
subnet 192.168.2.0
netmask 255.255.255.0{
range 192.168.2.2 192.168.2.253;
option domain-name-servers 192.168.1.254;
option routers 192.168.2.1;
option broadcast-address 192.168.2.255;
Aqui indicamos la red que vamos a usar el rango de las ips el dns.
reiniciamos el dhcp con el siguiente comando:
sudo /etc/init.d/dhcp3-server restart
Nos debe de mostrar ok
Ejecutamos la siguiente instruccion:
sudo apt-get install squid3
Ya instalado tenemos que activar el forward para ello crearemos un archivo que se ejecutara durante el inicio del servidor esto para no tenerlo que activar cada que se reinicie el server.
pero primero escribiremos unas reglas iptables las cuales nos serviran para que digan que va pasar por la red y por donde va pasar.
Ejecutamos la siguiente instruccion:
sudo nano /etc/init.d/iptables.cf
Y pegamos lo siguiente:
iptables -X iptables -Z iptables -t nat -F
iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.2.0/24 -d ! 192.168.2.0/24 -p tcp -- dport 80 -j REDIRECT --to-port 3128
iptables -A INPUT -s 192.168.2.0/24 -i eth1 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp --dport 993 –j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp --dport 465 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p udp --dport 53 -j ACCEPT
Seguido ejecutamos la siguiente instruccion para habilitar el forward:
echo 1 > /proc/sys/net/ipv4/ip_forward
Damos permisos de ejecucion al archivo creado con el siguiente comando:
sudo chmod a+x /etc/init.d/iptables.cf
Instalaremos un programa para que se ejecute al arranque del servidor con el siguiente comando:
sudo apt-get install rcconf
Y lo ejecutamos con la siguiente instruccion:
sudo rcconf
Veran la siguiente imagen:
Aqui seleccionaran iptables.cf
Nota: para seleccionar posicionarce sobre iptables.cf y precionas la tecla espaciadora.
Borrar el archivo de configuracion de squid para ello ejecutamos el siguiente comando:
sudo rm /etc/squid3/squid.conf
Ahora creamos de nuevo el archivo y pegamos lo siguiente con el siguiente comando. ejecutamos el siguiente comando:
sudo nano /etc/squid3/squid.conf
y pegamos lo siguiente:
cache_mem 16 MBcache_dir ufs /var/spool/squid 700 16 256 ie_refresh on
offline_mode on
#acl all src 0.0.0.0/0.0.0.0
acl red_local src 192.168.2.0/24
acl bloquearip src "/etc/squid3/bloquearip"
acl restringidas src "/etc/squid3/restringidas"
acl libres src "/etc/squid3/libres"
acl localhost src 127.0.0.1/255.255.255.255
acl palabras url_regex "/etc/squid3/palabras" http_access deny bloquearip
http_access deny restringidas palabras
http_access allow libres http_access allow red_local http_access allow localhost http_access deny all
nota:crearemos 3 archivos con los siguientes comandos:
sudo nano /etc/squid3//bloquearip
192.168.2.6
192.168.2.7
192.168.2.8
En este archivo ponemos las ips de las maquinas que no tendran derecho a navegar por internet.
sudo nano /etc/squid3/restringidas
En este archivo pondremos las ips que no podran entrar a los sitios que esten registrados en el archivo de abajo que es palabras.
192.168.2.10
192.168.2.11
sudo nano /etc/squid3/libres
Aquí pondremos las ips de las maquinas que tengan acceso libre a internet 192.168.2.120.
192.168.2.121
sudo nano /etc/squid3/palabras
facebook
youtube
taringa
twitter
Aquí pondremos palabras comunen, toda pagina que contenga esta palabra en la url sera bloqueada
Hasta aqui la configuracion de squid proxy server: dudas las contesto en los comentarios.
Instalamos lamp (linux, apache, mysql, php) con el siguiente comando:
sudo tasksel install lamp-server
Les mostrara la siguiente pantalla, aqui ponen la contraseña que gusten para la base de datos mysql:
seguido nos pedira confirmar la contraseña ponemos la misa que la imagen anterior.
Ok, hasta aqui ya hemos instalado php mysql y apache, ahora podemos ingresar a nuestro navegador y escribimos la ip de nuestro servidor ubuntu server que en este caso es la 192.168.1.100 y si nos muestra la pantalla de xampp hemos hecho las cosas bien.
Ahora creamos un dominio para ello entramos a la pagina:
https://www.noip.com/sign-up
ya que tenemos la cuenta creada nos logeamos en la siguiente pagina:
https://www.noip.com/sign-up
Una vez dentro escogemos la opcion manage host.
Luego precionamos donde dise ADD A HOST un boton rojo a la derecha y nos mostrara la siguiente pantalla donde tenemos que escoger un hostame y un dominio como lo muestra la imagen: una vez que escojas un hostname y un dominio precionar add host abajo a la derecha.
Listo ya tenemos nuestro dominio en no-ip.org esto nos servira para poder ver nuestro servidor de fuera. ahora abrimos el archivo host para ello ejecutamos la siguiente sentencia:
sudo nano /etc/hosts
Y agregamos esta linea al final.
192.168.1.100 nuetro nombre de dominio que creamos en no-ip ejemplo
192.168.1.100 zeok.no-ip.org
Aquí ya podemos poner nuestro nombre de dominio en el navegador y nos debe de mostrar el its work de la imagen anterior
sudo aptitude install phpmyadmin
Durante la instalacion nos preguntara para que tipo quiere que adapte la instalacion le decimos que para apache2 y damos aceptar.
Nos mostrara un mensaje que dise que ocupa una base de datos para funcionar le desimos que si luego aceptar.
Nos pedira una contraseña, aqui tendremos que poner la que pusimos anteriormente al instalar php mysql y apache para la base de datos mysql.
Ahora ya pueden acceder al phpmy admin de la siguiente manera: ingresan al navegador y escriben:
192.168.1.100/phpmyadmin
usuario:root
contraseña: la que pusieron durante la instalacion del php myadmin.
Ejecutamos la siguiente instruccion:
sudo apt-get install ejabberd
Una vez instalado paramos el servicio con el siguiente comando
sudo /etc/init.d/ejabberd stop
Ahora vamos a configurar el administrador y el host para ello entramos en el siguiente archivo:
sudo nano /etc/ejabberd/ejabberd.cfg
Y buscamos las siguientes lineas:
%% Admin user {acl, admin, {user, "", "localhost"}}. %% Hostname {hosts, ["localhost"]}. y la editamos por esta %% Admin user {acl, admin, {user, "admin", "192.168.1.100"}}. %% Hostname {hosts, ["192.168.1.100", "localhost", "dominio que creamos en no-ip"]}.
iniciamos el servicio con el siguiente comando:
sudo /etc/init.d/ejabberd start
Ahora vamos aconfigurar el usuario administrador que configuramos en el paso anterior que es "admin" para ello ejecutamos la siguiente instruccion
Nota:donde dise mypassword va ser su contraseña
sudo ejabberdctl register admin 192.168.1.100 mypassword
Ahora ya pueden entrar al administrador por medio del navegador con esta direccion
http://192.168.1.100:5280/admin
usuario:admin
contraseña: la que pusieron en el comando anterior
Podremos ver la siguiente pagina: en donde dise 192.168.1.100 crearemos usuarios que esten dentro de nuestra red y en donde esta el nombre de dominio los usuarios que se conectaran de fuera.
Para crear usuarios dan click en donde dise 192.168.100 o el nombre de dominio luego precionan donde dise usuarios y ahi puden crearlos.
para ello entramos en la pagina del desarrollador que es la siguiente
http://www.igniterealtime.org/projects/spark/
Una vez descargado el programa lo instalamos en nuestras maquinas que tengamos en nuestra red. una vez instalado agregamos la cuenta de la siguiente forma:
El nombre juan es un nuevo usuario que hice en el administrador de spark
http://192.168.1.100:5280/admin
Si el usuario esta dentro de nuestra red lan crearemos este usuario en el apartado 192.168.1.100
Como se muestra en la imagen
Y quedaria configurado de la siguiente manera:
Pero si nuestro usuario que va usar la cuenta esta fuera de nuestra red lan entonces crearemos otra cuenta en el apartado "nombre de dominio" como lo muestra la siguiente imagen:
Y la configuramos de la siguiente manera:
Y aqui estan las 2 cuentas funcionando, es una captura de logmein es una maquina que esta en el exterior de mi red es una maquina de mi trabajo.
Fin del post. espero este claro, muchas grasias por su visita, compartan sus conocimientos, y que viva el open source...
Etiquetas:
Gusto por las motos Harley Davidson, el rock n roll y la informática, creador de este blog para difusión del conocimiento libre, interesado en el mundo open source.
Como acceder a Escritorio remoto GRATIS, fuera de mi red
Admin panel + breeze + spatie permission - Laravel 11
Como Crear middleware Laravel paso a paso
Crea un carrusel de imágenes dinámico con Laravel y bootstrap
Instalar Laravel + Vuejs + Vite + Como configurar, Paso Por Paso
How to config Enlace Punto a punto con antenas Ubiquiti