Ubuntu
server + squid proxy server + dhcp + 2 tarjetas de red + mysql, php,
apache, phpmyadmin, + servidor ejabberd + cliente spark
Que tal compañeros les vengo a compartir varios dias de desvelo y conocimiento que he obtenido.
En este post aprenderan a montar squid proxy server mas un servidor
ejabber (de mensajeria) con el cual podran conectarse con cuentas que se
encuentren fuera de su red (del exterior)
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.
--------------paso numero 1:
* conectar los cables de red en su respectivo lugar.
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:

------------paso numero 2 configuracion de ips en las tarjetas de red:
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
ajecutan 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.
------------paso numero 3: agregar dns
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.
------------------paso numero 4: instalacion del dhcp
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:
---------------------------paso numero 5: configurar el dhcp
ejecutamos la siguiente sentencia: sudo nano /etc/dhcp3/dhcpd.conf
aqui 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
----------------------------------paso numero 6: instalar squid proxy server
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:
[color=#000000]
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
[/color]
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.
---------------------paso numero 7: configurar squid
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 MB
cache_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
squi 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
aqui 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.
------------------------paso numero 8: instalacion php mysql apache.
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
siguiente pantalla quiere desir que vamos bien.
---------------------paso numero 9: crear cuenta en no-ip.org
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
aqui ya podemos poner nuestro nombre de dominio en el navegador y nos debe de mostrar el its work de la imagen anterior
-----------------------------------paso 10: instalar phpmyadmin
nota:opcional
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 phpmyadmin nos pide otra contraseña esta es la que pondremos
para poder acceder a el por medio de la web ponemos la que gusten pero
qe no se les olvide.
confirman contraseña.
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.
---------------------------------paso numero 11:instalar ejabberd:
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.
---------------------------------- paso 12: instalar spark y configurar los clientes en las pcs
instalacion de spark: 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 por el bien de todos. grasias.