IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Introducció

  • L'objectiu d'aquesta pràctica es crear dos màquines virtuals. La primera màquina (Ubuntu Server 10.10) serà creada amb dos interfícies de xarxa, una amb adaptador pont, es a dir, estarà dins de la xarxa del institut i l'altra amb xarxa interna, es a dir, serà totalment independent a la xarxa de l'institut. La segona màquina virtual (Ubuntu Desktop 10.10) serà creada amb una interfície de xarxa configurada com a xarxa interna, ja que aquesta es comunicarà amb l'altra xarxa interna del servidor anteriorment comentat. A continuació es mostra l'esquema de la xarxa descrita:
Esquema router linux rpinyol jbaucells 1.png
Topologia de xarxa

IMPORTANT: El client i el servidor estaran creats al mateix host, es a dir, es treballarà amb el socket local.

Objectius

  • 2 Màquines Virtuals
  • Una fa de servidor amb dos targetes de xarxa
  • Interfície bridge: connectada a la LAN de l'aula
  • Interfície privada: només per ús de màquines virtuals
  • L'altre de client. Client i servidor només es veuen entre sí per la targeta privada. Aquesta màquina serà la que "patira" els filtratges del gateway

Configuracions

  • Obrir ports (DNAT). Accedir des de un altre ordinador de la LAN (un company) al servidor web del client passant pel servidor
  • Configurar el firewall per no deixar utilitzar certs ports de sortida
  • Impedir tot el trànsit de forward menys DNS i altres serveis essencials
  • Forçar només la connexió per Proxy
  • Instal·lar i configurar Squid com a cache
  • Filtrar pàgines amb SquidGuard

Configuració del servidor

  • En aquest apartat es mostra la configuració per al servidor que farà de firewall.

Interfícies de xarxa

  • Per a tenir un nom mes descriptiu de les interfícies de xarxa que utilitzarem al servidor, hem modificar el fitxer /etc/udev/rules.d/70-persistent-net.rules de la següent manera:
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:7d:94:f2", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="WAN" 

# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:82:c5:a6", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="LAN"
  • Per a tenir un nom mes descriptiu de les interfícies de xarxa que utilitzarem al client, hem modificar el fitxer /etc/udev/rules.d/70-persistent-net.rules de la següent manera:
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:d5:0e:3d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="LAN"
  • Tot seguit que hem configurar les interfícies de xarxa al servidor de la següent manera:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto WAN
iface WAN inet static
address 192.168.202.20
netmask 255.255.255.0
gateway 192.168.202.1

auto LAN
iface LAN inet static
address 172.16.0.10
netmask 255.255.255.0
  • A continuació hem configurat les interfícies de xarxa del client de la següent manera:
auto lo
iface lo inet loopback

auto LAN
iface LAN inet static
address 172.16.0.15
netmask 255.255.255.0
gateway 172.16.0.10

Configurar IP FORWARDING

  • IP forwarding (aka Internet routing) és el procés utilitzat per determinar quina ruta ha de seguir un paquet IP. Aquest procediment utilitza la informació de rutes per tal de prendre una decisió.

Activar IP FORWARDING

  • Modifiquem el valor de 0 a 1 amb la següent comanda:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward

IMPORTANT: Aquesta modificació es TEMPORAL, es a dir, quant s'apaga el sistema la configuració s'esborra.

  • Per a crear aquesta configuració i fer que s'executi automàticament al iniciar el sistema hem de crear el següent fitxer:
sudo nano /etc/network/if-pre-up.d/router

amb el següent contingut:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
  • Per últim el fem executable amb la següent comanda:
sudo chmod +x /etc/network/if-pre-up.d/router

NOTA: Es convenient fer un ping entre les interfícies de la xarxa interna per a comprovar la correcta comunicació entre els hosts.

Configurar SNAT

  • Per tal de poder comunicar-nos correctament amb la xarxa d'Internet ens cal configurar el SNAT, per a això, el primer que hem de fer es configurar el sistema per a que els clients puguin sortir a Internet, ho farem de la següent manera:
sudo iptables -t nat -A POSTROUTING -o WAN -j SNAT --to 192.168.202.20
  • Ara que ja tenim la sortida a Internet habilitada podem provar de denegar el tràfic del protocol ICMP a la IP 192.168.202.1, es a dir, quant el client amb IP 172.16.0.0/24 fase un PING a la IP 192.168.202.1, es denegarà el paquet.
sudo iptables -A FORWARD -p icmp -d 192.168.202.1 -s 172.16.0.0/24 -j DROP

Configurar política restrictiva

  • Per a crear una política de base restrictiva el primer que hem de fer es denegar tot l'accés a la LAN mitjançant IPTABLES. Primer s'haurà d'activar l'SSH per a poder treballar amb mes facilitat amb la següent comanda i a continuació afegim una regla per a les DNS, tot seguit es mostra el fitxer que hem creat a /etc/networdk/if-pre-up.d/firewall.conf on s'especifiquen tots aquests paràmetres:
# Generated by iptables-save v1.4.4 on Thu Mar  8 21:05:24 2012
*filter
:INPUT ACCEPT [602:62500]
-A INPUT -p tcp --dport 22 -j ACCEPT
####################################
:FORWARD ACCEPT [0:0]
-A FORWARD -p udp --dport 53 -j ACCEPT
####################################
-A FORWARD -j DROP
:OUTPUT ACCEPT [563:77692]
COMMIT
# Completed on Thu Mar  8 21:05:24 2012
# Generated by iptables-save v1.4.4 on Thu Mar  8 21:05:24 2012
#####################################
# NAT                               #
#####################################
*nat
:PREROUTING ACCEPT [1854:467477]
:OUTPUT ACCEPT [14:960]
:POSTROUTING ACCEPT [2:120]
-A POSTROUTING -o WAN -j SNAT --to 192.168.202.20
COMMIT
# Completed on Thu Mar  8 21:05:24 2012

NOTA: Permetem en reenviament de paquets de connexions que provinguin de la LAN i que tinguin com a destinació una màquina externa a la xarxa per al port de destinació 53 i amb protocol UDP.

Realitzat per: Ramon Pinyol i Jordi Baucells

Vegeu també

Enllaços externs