servidor debian router proxy firewall dhcp
TRANSCRIPT
Servidor Debian Router FW
Objetivos:Administrar las conexiones de 2 redes lan,
una de alumnos y otra de profesores.Ambas redes deben acceder a internet y respetar ciertas politicas de seguridad.
Desde Cero● Nuestro servidor puede ser una Pentiun I
con 128 de ram y 3 placas de red. Para por ejemplo un Máximo de 10 PC.
● En nuestro caso usamos virtualbox para crear el escenario y mostrar la practica.
● Servidor = Debian● PC Alumno = Windows Xp● PC Profesor = Windows 2000
Primeros pasos
● Instalamos Debian estable, solo el sistema base, nada extra.
● Instalamos algunas herramientas que nos pueden ser de utilidad, ud. instalen sus preferidas.#aptget install mc nmap htop iftop ssh
Configurando las placas de red
● Ahora debemos configurar las 3 placas de red. Para ello editaremos el archivo interfaces
#mcedit /etc/network/interfaces
# The loopback network interface auto loiface lo inet loopback
# The primary network interface# la placa ETH0 la dejo en automaticoallowhotplug eth0iface eth0 inet dhcp
#Configuro la placa de red profesoresauto eth1iface eth1 inet static address 10.10.10.1 netmask 255.255.255.0 broadcast 10.10.10.255 network 10.10.10.0#configuro la placa de red alumnos y wifiauto eth2iface eth2 inet static address 10.10.20.1 netmask 255.255.255.0 broadcast 10.10.20.255 network 10.10.20.0
Interfaces – comentarios
# The loopback network interface auto loiface lo inet loopback Es la configuracion que viene de fabrica de la interfaz virtual especial, de loopback, para hacer pruebas de conexión con nosotros mismos.
# The primary network interface# la placa ETH0 la dejo en automaticoallowhotplug eth0iface eth0 inet dhcp Esta es la configuracion adecuada para que esta placa de red se auto configure, osea deberia estar conectada al modem/router de nuestro ISP (arnet, fibertel, cablexpress, etc.)
Interfaces - comentarios#Configuro la placa de red profesoresauto eth1 Placa de red de profesoresiface eth1 inet static Address 10.10.10.1 Indica la ip de la placa Netmask 255.255.255.0 Indica la mascara de red Broadcast 10.10.10.255 Indica el broadcast Network 10.10.10.0 Indica el inicio de la red#configuro la placa de red alumnos y wifiauto eth2iface eth2 inet static address 10.10.20.1 netmask 255.255.255.0 broadcast 10.10.20.255 Network 10.10.20.0 Idem al segmento de red de profesores Para mas detalles leer# man interfaces
DHCP - Instalación
● Ahora instalamos y configuramos el servidor de DHCP para que las computadoras de profesores y alumnos se configuren automáticamente al conectarse a nuestras redes.
#apt-get install dhcp3-server
DHCP - Configuración
# A slightly different configuration for an internal subnet.
# dhcp para red de alumnos
subnet 10.10.10.0 netmask 255.255.255.0 { range 10.10.10.101 10.10.10.199; option domain-name-servers 170.210.200.3; option domain-name "alumnos.mired.lan"; option routers 10.10.10.1; option broadcast-address 10.10.10.255; default-lease-time 600; max-lease-time 7200;}
# mcedit /etc/dhcp/dhcpd.conf
Editamos el archivo de configuración
Editamos las siguientes lineas quedando así, luego repetimos lo mismo para la red de alumnos.
DHCP - Explicaciónsubnet 10.10.10.0 netmask 255.255.255.0 {--- define la subred, igual que en interfaces range 10.10.10.101 10.10.10.199;--- define el rango de nros ipes que entregará option domain-name-servers 170.210.200.3;--- define el DNS que utilizará nuestra red option domain-name "alumnos.mired.lan";--– define el nomre del dominio para nuestra red option routers 10.10.10.1;--- Indica el gw o puerta de enlace para nuestra red option broadcast-address 10.10.10.255;--- Indica la direccion de broadcast default-lease-time 600; max-lease-time 7200;}--- Son parametros que indican el tiempo por el cual se entregaUna direccion IP
DHCP – ultimo pasoConfiguramos DEFAULTS para que todo funcione desde el arranque del sistema, para ello editamos el siguientearchivo /etc/default/iscdhcpserver, que debe quedar así
# On what interfaces should the DHCP server (dhcpd) # Separate multiple interfaces with spaces, INTERFACES="eth1 eth2"
Aqui solo se señalan las interfaces en donde el servidorDebe trabajar.
Ahora podemos re iniciar el servidor para comprobar queTodo funciona. Para ello tambien prendemos una pc deAlumnos y otra de profesores y deberian auto configurarce.
Probando el DHCP en alumnos
Probando el DHCP en profesores
Siguiente paso compartir internet
Para compartir internet vamos a instalar SHOREWALL que es una interfaz de scripts queNos permitira administrar de una forma ordenada, el firewall de nuestro servidor.
# aptget install shorewall
#cp r /usr/share/doc/shorewall/examples/threeinterface/* /etc/shorewall/
Despues de la instalacion, vamos a copiar los archivos de configuracion de ejemplo que vienenCon shorewall.
Configurando ShorewallActivamos el forward de paquetes, esto es muy importante si pretendemos compartir internet.Para ello editamos el archivo /etc/shorewall/shorewall.confY editamos la siguiente linea dejando asi:
IP_FORWARDING=Yes
Luego editamos el archivo /etc/shorewall/interfaces y lo dejamos asi. De esta formaAsociamos las zonas del firewall a las placas de red correspondientes
#ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect tcpflags,dhcp,nosmurfs,routefilter,logmartiansalu eth1 detect tcpflags,nosmurfs,routefilter,logmartiansdoc eth2 detect tcpflags,nosmurfs,routefilter,logmartians
Notar que net= internet, alu = red alumnos y doc=red docentes
Configurando Shorewall
Ahora editamos el archivo /etc/shorewall/zones para definir las zonas con las que trabaja elFirewall, y deberia quedar asi
##########################ZONE TYPE OPTIONS # fw firewallnet ipv4alu ipv4doc ipv4
Configurando ShorewallAhora editamos el archivo /etc/shorewall/policy para definir las politicas con las que trabajaráEl firewall
###########################################################################SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
#aceptaqmos las conexiones desde las redes locales al internetalu net ACCEPTdoc net ACCEPT#negamos la comunicacion desde alumnos hacia docentesalu doc DROP#aceptamos la comunicación desde los docentes a los alumnosdoc alu ACCEPT#aceptamos las conexiones desde las redes al FW o GW en este casoalu $FW ACCEPTdoc $FW ACCEPT#negamos cualquier conexion desde la inetnet all DROP info
# THE FOLLOWING POLICY MUST BE LASTall all REJECT info
Configurando ShorewallAhora editamos el archivo /etc/shorewall/rules para definir las reglas del firewall, que tambienSe soncideran como las excepciones a las políticas que se definieron ateriormente
# Accept DNS connections from the firewall to the InternetDNS(ACCEPT) alu $FWDNS(ACCEPT) doc $FWDNS(ACCEPT) $FW net# Accept SSH connections from the local network to the firewall and DMZSSH(ACCEPT) net $FWSSH(ACCEPT) doc $FWSSH(ACCEPT) doc aluSSH(DROP) alu docSSH(DROP) alu $FW# Reglas para bloquear el ping entre las zonas.Ping(ACCEPT) net $FWPing(ACCEPT) doc $FWPing(DROP) alu docPing(DROP) alu $FWPing(ACCEPT) doc alu#reglas para servicios, como dns, dhcp, http, https, squid , ssh, ftpACCEPT doc $FW tcp 21,22,53,80,443,3128,8080ACCEPT alu $FW tcp 21,22,53,80,443,3128,8080ACCEPT $FW net tcp 21,22,53,80,444,3128,8080
Configurando ShorewallPor ultimo pero no menos importante, es activar en en mascaramiento de direcciones, paraCompartir internet. Para ello modificamos el archivo /etc/shorewall/masq
############################################################################INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARKeth0 10.10.10.0/24eth0 10.10.20.0/24
Reiniciamos todo el equipo, aun que no hace falta realmente, es solocon el fin de comprobar que al iniciar el servidor, ya queda todofuncionando.
Caso contrario solo reiniciamos los servicios necesarios
∙ shorewall restart
Ahora SI los alumnos y docentes deben tener internet.
SQUID – Proxy cacheAhora, como todo funciona, vamos a instalar un proxy cache transparentePara aprobechar mejor el ancho de banda disponible.Para ello instalamos squid
#aptget install squid
Configuramos Squid, editando las siguientes lineas del archivo/etc/squid/squid.conf
# Squid normally listens to port 3128http_port 3128 transparent
# should be allowedacl redalu src 10.10.10.0/24 # RFC1918 possible internal networkacl reddoc src 10.10.20.0/24 # RFC1918 possible internal network
# from where browsing should be allowedhttp_access allow localhosthttp_access allow redaluhttp_access allow reddoc
Por ultimo nos queda nodificar el firewall para que envie las peticionesDel puerto 80 de las redes al 3128 que es donde escucha SQUID
SQUID – Proxy cacheEL ultimo paso para que squid quede funcionando de forma transparenteAl usuario, es hacer una redireccion.Para eso editamos el archivo rules de shorewall, agregando estas lineasAl inicio de todas las reglas
#redireccion para squid
REDIRECT alu 3128 tcp wwwREDIRECT doc 3128 tcp www
Para terminar reiniciamos shorewall y squid. Y todo funciona
#shorewall restart
#/etc/init.d/squid restart
Listo todo deberia funcionar OK
Bloqueando páginas con SQUIDPodemos llegar a bloquear paginas web con squid, para ello hace faltaCrear un archivo con las palabras prohibidas o sitios prohividos.Y SQUID se encarga de bloquear esas paginasEl archivo puede llamarce sitionegados y debe estar en /etc/squid
El contenido del archivo puede ser el siguiente
#sitios bloqueadoswww.facebook.cowWww.ventasdedrogascom.ar
Para terminar en el squid.conf, agregamos las siguientes lineas
Acl urlnegadas url_regex i “/etc/squid/sitionegados”
http_access allow redalu !sitionegados
De esta forma reiniciamos squid y ya no se prodrá entrar a losSitios que se encuentran en el archivo
Saludos a todos y felices fiestas
Bloqueando páginas con SQUIDEL ultimo paso para que squid quede funcionando de forma transparenteAl usuario, es hacer una redireccion.Para eso editamos el archivo rules de shorewall, agregando estas lineasAl inicio de todas las reglas
#redireccion para squid
REDIRECT alu 3128 tcp wwwREDIRECT doc 3128 tcp www
Reiniciamos shorewall y squid, para que nuestras redestenga