Configuracion Ubuntu Server
Configuracion Ubuntu Server
Configuracion Ubuntu Server
Despues de instalar un servidor con Ubuntu Server en este caso 8.10, lo que
normalmente necesitamos es proveer de servicio de internet y con ello establecer ciertas
reglas para controlar el acceso a siertas paginas, para mantener fluido el trafico de
nuestra red, el primer paso seria configurar el servidorDHCP, para asignar las ip
automaticamente.
Ip de eth1: 192.168.2.1
Ip de eth0: 192.168.1.100
En este caso salimos a internet por medio de un modem 2wire de Telmex, aun que esto
no importa demaciado, solo es para referencia.
Lo primero que debemos da hacer es configurar las ip estaticas, como estamos usando
una version de servidor asumimos que no tenemos interface grafica asi que nuestro
editor de archivos sera VI , pero pueden usar el que mas les acomode.
En vi hay dos modos de trabajo edicion y comandos, para edita un archivo hay que
precionar la tecla [insert] para salir del modo de edicion y pasar a comandos
precionamos la tecla [esc] si queremos guardar el archivo entramos a modo de
comandos y tecleamos :w si queremos salir es :q si queremos guardar y salir :wq para
forzar cualquier accion agregamos el ! forzar el guardar :w! o forzar la salida :q!
PLAIN TEXT
CODE:
1. sudo apt-get install vim
PLAIN TEXT
CODE:
1. sudo vi /etc/network/interfaces
PLAIN TEXT
CODE:
1. # This file describes the network interfaces available
on your system
2. # and how to activate them. For more information, see
interfaces(5).
3.
4. # The loopback network interface
5. auto lo
6. iface lo inet loopback
7.
8. # The primary network interface
9. auto eth0
10. iface eth0 inet static
11. address 192.168.1.100
12. netmask 255.255.255.0
13. network 192.168.1.0
14. broadcast 192.168.1.255
15. gateway 192.168.1.254
16. dns-nameservers 192.168.1.254
17.
18. auto eth1
19. iface eth1 inet static
20. address 192.168.2.1
21. netmask 255.255.255.0
PLAIN TEXT
CODE:
1. # This file describes the network interfaces available
on your system
2. # and how to activate them. For more information, see
interfaces(5).
3.
4. # The loopback network interface
5. auto lo
6. iface lo inet loopback
Se define la configuracion para eth0 que es la tarjeta que nos conectara a internet
PLAIN TEXT
CODE:
1. # The primary network interface
2. auto eth0
PLAIN TEXT
CODE:
1. iface eth0 inet static
La variable addres es una ip del rango que nos asigna el modem para salir a internet
PLAIN TEXT
CODE:
1. address 192.168.1.100
2. netmask 255.255.255.0
PLAIN TEXT
CODE:
1. network 192.168.1.0
2. broadcast 192.168.1.255
PLAIN TEXT
CODE:
1. gateway 192.168.1.254
Y los DNS en este caso usamos el mismo modem para que nos resuelva hacia internet,
esto datos cambian segun la configuracion de la red que les da salida a internet
PLAIN TEXT
CODE:
1. dns-nameservers 192.168.1.254
Esta es la configuracion de la tarjeta de red a la que se conectara la red interna, solo hay
que indicar la direccion IP y mascara, ya que nos conectaremos a internet por la otra
tarjeta de red.
PLAIN TEXT
CODE:
1. auto eth1
2. iface eth1 inet static
3. address 192.168.2.1
4. netmask 255.255.255.0
PLAIN TEXT
CODE:
1. sudo /etc/init.d/networking restart
PLAIN TEXT
CODE:
1. * Reconfiguring network interfaces...
2.
3. * if-up.d/mountnfs[eth0]: waiting for interface eth1
before doing NFS mounts
4. [ OK ]
PLAIN TEXT
CODE:
1. sudo apt-get install dhcp3-server
Primero hay que indicar en que interface de red es donde va a escuchar para eso
editamos el siguiente archivo
PLAIN TEXT
CODE:
1. sudo vi /etc/default/dhcp3-server
En nuestro caso la tarjeta que va a proveer el servicio es la eth1 que va a la red interna
PLAIN TEXT
CODE:
1. # Defaults for dhcp initscript
2. # sourced by /etc/init.d/dhcp
3. # installed at /etc/default/dhcp3-server by the
maintainer scripts
4.
5. #
6. # This is a POSIX shell fragment
7. #
8.
9. # On what interfaces should the DHCP server (dhcpd)
serve DHCP requests?
10. # Separate multiple interfaces with spaces,
e.g. "eth0 eth1".
11. INTERFACES="eth1"
PLAIN TEXT
CODE:
1. sudo vi /etc/dhcp3/dhcpd.conf
PLAIN TEXT
CODE:
1. ddns-update-style interim;
2.
3. authoritative;
4.
5. subnet 192.168.2.0 netmask 255.255.255.0{
6. range 192.168.2.100 192.168.2.200;
7. option domain-name-servers 192.168.1.254;
8. option routers 192.168.2.1;
9. option broadcast-address 192.168.2.255;
10. default-lease-time 36000;
11. max-lease-time 180000;
12. }
PLAIN TEXT
CODE:
1. ddns-update-style interim;
2.
3. authoritative;
4.
5. subnet 192.168.2.0 netmask 255.255.255.0{
Indicamos el rando de direcciones que deseamos que asigne en este caso asiganras
desdela ip 192.168.2.100 hasta la ip 192.168.2.200
PLAIN TEXT
CODE:
1. range 192.168.2.100 192.168.2.200;
PLAIN TEXT
CODE:
1. option domain-name-servers 192.168.1.254;
La puerta de enlace, en este caso el servidor ubuntu, ya que todas las maquinas de la red
se conectaran a nosotros para proveerlos de internet.
PLAIN TEXT
CODE:
1. option routers 192.168.2.1;
Estos son los valores que en dado caso se tendrian que modificar segun su configuracion
de red. Solo quedaria reiniciar el servicio de DHCP
PLAIN TEXT
CODE:
1. sudo /etc/init.d/dhcp3-server restart
PLAIN TEXT
CODE:
1. * Stopping DHCP server
dhcpd3 [ OK
]
2. * Starting DHCP server
dhcpd3 [ OK
]
PLAIN TEXT
CODE:
1. sudo apt-get install squid
Es muy importante para poder compartir el internet tener activado al Froward, para
esto crearemos un archivo que se ejecutara al inicio del arranque donde tambien se
cargaran las iptables, ya que estas configuraciones, se pierden cada vez que se apaga el
equipo, este archivo se llamara iptables.cf, o como gusten llamarle
PLAIN TEXT
CODE:
1. sudo vi /etc/init.d/iptables.cf
Y pondremos lo siguiente
PLAIN TEXT
CODE:
1. iptables -F
2.
3. iptables -X
4. iptables -Z
5. iptables -t nat -F
6.
7. iptables -P INPUT ACCEPT
8. iptables -P OUTPUT ACCEPT
9. iptables -P FORWARD ACCEPT
10. iptables -t nat -P PREROUTING ACCEPT
11. iptables -t nat -P POSTROUTING ACCEPT
12. iptables -t nat -A POSTROUTING -s 192.168.2.0/24
-o eth0 -j MASQUERADE
13.
14. 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
15.
16. iptables -A INPUT -s 192.168.2.0/24 -i eth1 -j
ACCEPT
17.
18. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p
tcp --dport 993 -j ACCEPT
19. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p
tcp --dport 110 -j ACCEPT
20. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p
tcp --dport 465 -j ACCEPT
21. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p
tcp --dport 25 -j ACCEPT
22. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p
tcp --dport 80 -j ACCEPT
23. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p
tcp --dport 443 -j ACCEPT
24.
25. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p
tcp --dport 53 -j ACCEPT
26. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p
udp --dport 53 -j ACCEPT
27.
28. echo 1> /proc/sys/net/ipv4/ip_forward
Que es esto?
Las iptables nos ayudaran a decidir que dejar pasar por la red y por donde dejarlo pasar,
en este caso, solo configuraremos las iptables para que nos redireccionen todo el del
puerto 80 hacia el puerto 3128 que es el puerto del squid, para que no tengamos que
configurar el proxy en todas las maquinas , y ya que compartimos el internet
enmascaramos todo lo que venga de la red interna y que saldra por la interface eth0,
permitiremos tambien el forward para el dhcp y tambien para el correo, para no tener
problemas con los clientes de correo.
PLAIN TEXT
CODE:
1. iptables -X
2. iptables -Z
3. iptables -t nat -F
PLAIN TEXT
CODE:
1. iptables -P INPUT ACCEPT
2. iptables -P OUTPUT ACCEPT
3. iptables -P FORWARD ACCEPT
4. iptables -t nat -P PREROUTING ACCEPT
5. iptables -t nat -P POSTROUTING ACCEPT
Esta es una configuracion muy basica asi que por el momento no nos preocuparemos
por el tema de la seguridad (eso es otro HowTo)
Habilitamos el enmascaramiento, para que la red interna pueda salir a internet por la
conexion del server
PLAIN TEXT
CODE:
1. iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o
eth0 -j MASQUERADE
PLAIN TEXT
CODE:
1. 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
Habilitamos el forward para los puertos especificos de correo y dhcp, pop, imap,
simap, smtp, ssmtp y dhcp
PLAIN TEXT
CODE:
1. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp
--dport 993 -j ACCEPT
2. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp
--dport 110 -j ACCEPT
3. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp
--dport 465 -j ACCEPT
4. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp
--dport 25 -j ACCEPT
5. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp
--dport 80 -j ACCEPT
6. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp
--dport 443 -j ACCEPT
7.
8. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p tcp
--dport 53 -j ACCEPT
9. iptables -A FORWARD -s 192.168.2.0/24 -i eth1 -p udp
--dport 53 -j ACCEPT
PLAIN TEXT
CODE:
1. echo 1> /proc/sys/net/ipv4/ip_forward
Con esto es mas que suficiente, ahora hay que darle permisos de ejecucion
PLAIN TEXT
CODE:
1. sudo chmod a+x /etc/init.d/iptables.cf
Ahora para que se ejecute al arranque instalaremos un pequeño programa que nos ayuda
a configurar los archivos que se ejecutan al iniciar el sistema
PLAIN TEXT
CODE:
1. sudo apt-get install rcconf
y lo ejecutaremos con
PLAIN TEXT
CODE:
1. sudo rcconf
Veran esta pantalla solo hay que marcar el iptables.cf y todo listo si nececitan correr un
archivo al arranque solo concedanle permisos y de la misma forma : D.
Ahora hay que configurar el Squid, para eso editaremos el siguiente archivo.
PLAIN TEXT
CODE:
1. sudo vi /etc/squid/squid.conf
PLAIN TEXT
CODE:
1. http_port 3128 transparent
2.
3. cache_mem 16 MB
4.
5. cache_dir ufs /var/spool/squid 700 16 256
6.
7. ie_refresh on
8.
9. offline_mode on
10.
11. acl all src 0.0.0.0/0.0.0.0
12. acl red_local src 192.168.2.0/24
13. acl plus src "/etc/squid/plus.lst"
14. acl sites url_regex "/etc/squid/sites.lst"
15. acl files url_regex -i .exe .flv .mp4 .mp3
.avi .wma .mov .acc .wav .bat .asf .mpeg .3gp .swf
16. acl localhost src 127.0.0.1/255.255.255.255
17.
18. http_access deny red_local !plus sites
19. http_access deny red_local !plus files
20. http_access allow red_local
21. http_access allow localhost
22. http_access deny all
Para que esto funciones habremos de crear dos archivos, uno donde se guardaran las
paginas que deseamos bloquear, y otro donde tendremos una lista de las ip que tendran
derechos privilegiados
PLAIN TEXT
CODE:
1. vi /etc/squid/sites.lst
Aqui pondremos las paginas bloqueadas, esta es mi lista, algunas paginas de video redes
sociales, mensageros web etc.
PLAIN TEXT
CODE:
1. hi5.com
2. www.metroflog.com
3. mx.youtube.com
4. es.youtube.com
5. www.youtube.com.us
6. www.youtube.com
7. www.youtube.com.mx
8. www.dailymotion.com
9. www.tu.tv
10. www.ebuddy.com
11. www.meebo.com
12. webmessenger.msn.com
13. www.webmessenger.msn.com
14. www.iloveim.com
15. www.spacelive.com
16. home.spaces.live.com/
17. www.myspace.com/
18. spaces.live.com/
19. www.radiusim.com/
20. www.messengerfx.com
21. messengerfx.com/
22. www.facebook.com/
23. fulltono.com/
24. www.fulltono.com/
25. rapidshare.com
26. megaupload.com
27. www.veoh.com/
28. www.megavideo.com/
29. www.proxybutton.com/
30. www.videoblogs.com/
31. video.google.com/
32. imo.im
33. www.koolim.com/
34. koolim.com/
35. voltv.es/
36. www.imhaha.com
37. imhaha.com
38. proxify.com/
39. www.proxify.com/
40. www.megaclick.com/
41. www.my-proxy.com
42. www.blogger.com/
43. cbox.ws
44. megaclilck.com/
45. facebook.com/
46. youporn.com
47. www.lajaula.net
48. www.alianzo.com
49. www.goear.com
50. www.zshare.com
51. zshare.net
52. skydrive.live.com
PLAIN TEXT
CODE:
1. 192.168.2.150
2.
3. 192.168.2.135
Indicamos que por el puerto 3128 escucharemos y que sera proy tranparente
PLAIN TEXT
CODE:
1. http_port 3128 transparent
PLAIN TEXT
CODE:
1. cache_mem 16 MB
2.
3. cache_dir ufs /var/spool/squid 700 16 256
4.
5. ie_refresh on
6.
7. offline_mode on
Las acl o definiciones de control de acceso, son las que nos permitiran hacer referencias
hacia ciertos elementos ya sea ip, direciones etc
PLAIN TEXT
CODE:
1. acl all src 0.0.0.0/0.0.0.0
PLAIN TEXT
CODE:
1. acl red_local src 192.168.2.0/24
La definicion plus hace referencia alas ip que se encuentran listadas dentro del archivo
que creamos
PLAIN TEXT
CODE:
1. acl plus src "/etc/squid/plus.lst"
PLAIN TEXT
CODE:
1. acl sites url_regex "/etc/squid/sites.lst"
PLAIN TEXT
CODE:
1. acl files url_regex -i .exe .flv .mp4 .mp3 .avi
.wma .mov .acc .wav .bat .asf .mpeg .3gp .swf
PLAIN TEXT
CODE:
1. acl localhost src 127.0.0.1/255.255.255.255
Ahora ay que generar las reglas, para permitir o denegar el acceso usamos http_acces
despues la accion deny o allow aquien se lo vamos a aplicar y que le vamos a restringir
Aqui denegamos a todas las direciones de la red que sean diferente a las definidas en la
lista plus los sitios definidos por la lista sites
PLAIN TEXT
CODE:
1. http_access deny red_local !plus sites
De igual forma denegamos a todas las ip de la red local que sean diferentes a las
definidas por la lista plus el acceso a los archivo definidos en la lista files
PLAIN TEXT
CODE:
1. http_access deny red_local !plus files
Muy importante todas las reglas siempre deben de ir antes de estas ultimas de lo
contrario el proxy aparentara que no esta funcionando, ya que las reglas llevan un orden
de ejecucion
PLAIN TEXT
CODE:
1. http_access allow red_local
2. http_access allow localhost
3. http_access deny all
Cada vez que se haga un cambio en las reglas habra que reiniciara el servicio, esto
interrunpuria todo el trafico que este pasando por el proxy, hasta que recargue el
servcio segun la velocidad del servidor y la carga de trafico unos 20 o 30 segundo.
Espero sea de utilidad, y como siempre espero sus comentarios, criticas y chiste.
Pd. este post fue motivado por algunas dudas de los amigos del foro de Byte.
Byte.