You are on page 1of 21

Generalitat de Catalunya CFGS

Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX


Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

Servidor SQUID amb suport HTTPS


Introducció
L'objectiu és la instal·lació i configuració d'un servidor amb les següents característiques:

1. Servidor Ubuntu 20.04 Server.

2. Dues targetes de xarxa. Una connectada a la xarxa PONT (que ens donarà internet) amb adreça IP fixa i una altre
connectada a una xarxa interna (192.168.0.0/24) amb l’adreça IP 192.168.0.1.

3. DHCP per donar adreces IP als ordinadors de la xarxa interna.

4. DNS per a donar resposta a les DNSs de la xarxa interna.

5. Firewall amb política de denegació per defecte.

6. Servidor intermediari SQUID amb suport per SSL.

Passos inicials
1. Actualització del sistema base:

apt update
apt dist-upgrade
reboot

2. Instal·lació dels paquets per a fer la compilació del servidor SQUID.

apt install build-essential libssl-dev devscripts fakeroot

3. Instal·lació dels servidor DHCP i del servidor DNS

apt install isc-dhcp-server


apt install bind9

Configuració del DNS


Per a configurar el nostre DNS farem els següents passos:

1. Editem l'arxiu /etc/bind/named.conf.options i afegim els forwarders (DNSs que ens faran la resolució de noms
si el nostre DNS no les pot fer) adequats:

forwarders {
8.8.8.8;
};

2. Editem l'arxiu /etc/bind/named.conf.local i afegim les zones directa i inversa del nostre DNS:

19/09/2019 APROVAT Pàgina 1 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

zone "xarxa.lan" {
type master;
file "/etc/bind/directa_xarxa";
};

zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/inversa_xarxa";
};

3. Creem els arxius de zona directa i inversa de l'aula:

ZONA DIRECTA
; ZONA DIRECTA DE L'AULA
;
$TTL 86400
@ IN SOA xarxa.lan. root.xarxa.lan. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS xarxa.lan.

xarxa.lan. IN A 192.168.0.1

ZONA INVERSA
; ZONA INVERSA DE L'AULA
;
$TTL 86400
@ IN SOA xarxa.lan. root.xarxa.lan. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS xarxa.lan.

1 IN PTR xarxa.lan.

4. Reiniciem el servei: service bind9 restart.

19/09/2019 APROVAT Pàgina 2 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

Configuració del DHCP


Per a configurar el nostre DHCP farem els següents passos:

1. Editem l'arxiu /etc/dhcp/dhcpd.conf i configurem els paràmetres per defecte del nostre servidor:

ARXIU DHCPD.CONF
option domain-name "xarxa.lan";
default-lease-time 6000;
max-lease-time 7200;
option subnet-mask 255.255.255.0;

# De la IP 10 a la 100 estaran reservades per


# les màquines virtuals en pont
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.100;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
}

2. Fem que només escolti per a la interfície local editant l'arxiu /etc/default/isc-dhcp-server:

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp0s8"
INTERFACESv6=""

3. Reiniciem el servei: service isc-dhcp-server restart.

19/09/2019 APROVAT Pàgina 3 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

Configuració del FIREWALL


Configurem el FIREWALL amb els següents elements bàsics:

1. Política de denegació per defecte, per tant tots els elements estaran tancats.

2. Permetem la resolució dels dominis 192.168.0.1 i 8.8.8.8 a l'equip servidor.

3. Permetem la connexió al HTTP i al HTTPS sense limitacions a l'equip servidor.

4. Permetem que l'equip servidor pugui accedir per SSH a la resta d'equips de l'aula (atenció NO A LA INVERSA).

5. Les màquines de l'aula (ordinadors clients) podran consultar el DNS 192.168.0.1.

6. Les màquines de l'aula es podran comunicar pel port 3128 (port del proxy SQUID).

7. Les màquines de l'aula es podran comunicar pel port 3129 (port del proxy SQUID).

8. Les màquines de l'aula es podran comunicar pel port 3130 (port del proxy SQUID).

9. Les màquines de l'aula es podran comunicar pels ports 67 i 68 que són els ports estàndards per a la recepció del
DHCP.

10. Les comunicacions 80 provinents dels clients es redirigiran al port 3129.

11. Les comunicacions 443 provinents dels clients es redirigiran al port 3130.

12. El paquets permesos podran sortir a Internet.

FIREWALL
#!/bin/bash
ipt=/usr/sbin/iptables

## ESBORREM REGLES ANTIGUES


$ipt -F
$ipt -X
$ipt -Z
$ipt -t nat -F
$ipt -t nat -X
$ipt -t nat -Z

## ESTABLIM LA POLÍTICA PER DEFECTE


$ipt -P INPUT DROP
$ipt -P OUTPUT DROP
$ipt -P FORWARD DROP

## FILTREM LA MÀQUINA LOCAL


# Obrim la comunicació a la màquina local
$ipt -A INPUT -i lo -j ACCEPT
$ipt -A OUTPUT -o lo -j ACCEPT

# Fem que l'equip local pugui consultar les DNS


$ipt -A OUTPUT -d 192.168.0.1 -p udp --dport 53 -j ACCEPT
$ipt -A INPUT -s 192.168.0.1 -p udp --sport 53 -m state --state RELATED,ESTABLISHED \
-j ACCEPT
$ipt -A OUTPUT -d 192.168.0.1 -p tcp --dport 53 -j ACCEPT

19/09/2019 APROVAT Pàgina 4 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

$ipt -A INPUT -s 192.168.0.1 -p tcp --sport 53 -m state --state RELATED,ESTABLISHED \


-j ACCEPT

$ipt -A OUTPUT -d 8.8.8.8 -p udp --dport 53 -j ACCEPT


$ipt -A INPUT -s 8.8.8.8 -p udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A OUTPUT -d 8.8.8.8 -p tcp --dport 53 -j ACCEPT
$ipt -A INPUT -s 8.8.8.8 -p tcp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT

# Fem que la l'equip local pugui accedir a la WEB i a la WEB segura


$ipt -A OUTPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A OUTPUT -p tcp --dport 443 -j ACCEPT
$ipt -A INPUT -p tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT

# Fem que pugui accedir via ssh a les màquines de la xarxa


$ipt -A OUTPUT -p tcp --dport ssh -j ACCEPT
$ipt -A INPUT -p tcp --sport ssh -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permetem la comunicació amb el DHCP i el DNS


$ipt -A INPUT -p udp --dport 53 -j ACCEPT
$ipt -A OUTPUT -p udp --sport 53 -j ACCEPT

$ipt -A INPUT -p tcp --dport 53 -j ACCEPT


$ipt -A OUTPUT -p tcp --sport 53 -j ACCEPT

$ipt -A INPUT -p udp --dport 67 -j ACCEPT


$ipt -A OUTPUT -p udp --sport 67 -j ACCEPT

$ipt -A INPUT -p udp --dport 68 -j ACCEPT


$ipt -A OUTPUT -p udp --sport 68 -j ACCEPT

$ipt -A INPUT -p tcp --dport 67 -j ACCEPT


$ipt -A OUTPUT -p tcp --sport 67 -j ACCEPT

$ipt -A INPUT -p tcp --dport 68 -j ACCEPT


$ipt -A OUTPUT -p tcp --sport 68 -j ACCEPT

## FILTREM LES MÀQUINES DE LA XARXA DE L'AULA


# Permetem la comunicació amb el PROXY
$ipt -A INPUT -s 192.168.0.0/24 -i enp0s8 -p tcp --dport 3128 -j ACCEPT
$ipt -A OUTPUT -d 192.168.0.0/24 -o enp0s8 -p tcp --sport 3128 -j ACCEPT
$ipt -A INPUT -s 192.168.0.0/24 -i enp0s8 -p tcp --dport 3129 -j ACCEPT
$ipt -A OUTPUT -d 192.168.0.0/24 -o enp0s8 -p tcp --sport 3129 -j ACCEPT
$ipt -A INPUT -s 192.168.0.0/24 -i enp0s8 -p tcp --dport 3130 -j ACCEPT
$ipt -A OUTPUT -d 192.168.0.0/24 -o enp0s8 -p tcp --sport 3130 -j ACCEPT

# Fem les redireccions als ports corresponents


$ipt -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-port 3129
$ipt -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 443 -j REDIRECT --to-port 3130

# Sortim a la xarxa pública


$ipt -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s3 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

19/09/2019 APROVAT Pàgina 5 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

Creació d'una autoritat certificadora:


Per a que el servidor proxy SQUID pugui filtrar HTTPS necessitarem ser la autoritat certificadora del nostre
entorn i importar el nostre certificat als navegadors del clients. Per a fer-ho haurem de crear una autoritat certificadora.
Els passos són els següents:

1. Instal·lem el paquet necessari: apt install openssl libssl-dev.

2. Editem l'arxiu /etc/ssl/openssl.cnf. Guardarem el certificat i la clau privada de la nostra autoritat a


/etc/ssl/caijm.

dir = /etc/ssl/caijm # Where everything is kept


certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl clear # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.

certificate = $dir/caijm.crt # The CA certificate


serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/caijm.key# The private key
RANDFILE = $dir/private/.rand # private random number file

x509_extensions = usr_cert # The extentions to add to the cert

# Comment out the following two lines for the "traditional"


# (and highly broken) format.
name_opt = ca_default # Subject Name options
cert_opt = ca_default # Certificate field options

# Extension copying option: use with caution.


# copy_extensions = copy

# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs


# so this is commented out by default to leave a V1 CRL.
# crlnumber must also be commented out to leave a V1 CRL.
# crl_extensions = crl_ext
default_days = 3650 # how long to certify for

3. Generem l'estructura de directoris necessària:

mkdir /etc/ssl/caijm/
mkdir /etc/ssl/caijm/certs
mkdir /etc/ssl/caijm/private
mkdir /etc/ssl/caijm/newcerts
mkdir /etc/ssl/caijm/crl
echo "01" > /etc/ssl/caijm/serial
touch /etc/ssl/caijm/index.txt

4. Generem les claus públiques i privades de la nostra autoritat de certificació:

cd /etc/ssl/caijm/
openssl req -nodes -new -x509 -keyout private/caijm.key -out caijm.crt -days 3650

19/09/2019 APROVAT Pàgina 6 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

19/09/2019 APROVAT Pàgina 7 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

Instal·lació i configuració del proxy SQUID


Per a que el proxy SQUID pugui filtrar el tràfic HTTPS necessitem baixar-ho i compilar-ho activant els mòduls
ssl corresponents. Ho farem de la següent manera:

1. Descarreguem el paquet de la següent adreça: http://www.squid-cache.org/Versions/v5/ i el descomprimim.

19/09/2019 APROVAT Pàgina 8 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

2. Dins del directori descomprimit configurem la compilació i la realitzem amb les següents ordres:
a) ./configure --enable-icap-client --enable-ssl --enable-ssl-crtd --with-openssl

b) make

c) make install

3. La instal·lació del SQUID s'ha fet al directori /usr/local/squid.

4. Ara fem el següent fitxer de configuració per al SQUID a /usr/local/squid/etc/squid.conf:

http_port 192.168.0.1:3128
http_port 192.168.0.1:3129 intercept
https_port 192.168.0.1:3130 intercept ssl-bump generate-host-certificates=on \
dynamic_cert_mem_cache_size=4MB cert=/etc/ssl/caijm/caijm.crt \
key=/etc/ssl/caijm/private/caijm.key

cache_dir ufs /usr/local/squid/var/cache/squid 1500 16 256

always_direct allow all


ssl_bump none localhost
ssl_bump client-first all
sslproxy_cert_error allow all

acl totes src all


acl xarxa src 192.168.0.0/24
acl prohibit dstdom_regex agora.xtec.cat bbva.es
acl noxs url_regex facebook

http_access allow localhost


http_access allow xarxa !prohibit !noxs
http_access deny totes

debug_options ALL,2

ATENCIÓ: La línia https_port ha d’estar en una única línia. Està posat així per temes d’espai.

19/09/2019 APROVAT Pàgina 9 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

5. Creem el fitxer a on s'emmagatzemarà el cau del proxy: touch /usr/local/squid/var/logs/cache.log.

6. Canviem els permisos de l'arxiu de logs chown -R proxy:proxy /usr/local/squid/var/logs.

7. Donem permisos d'accés al directori cau a l'usuari proxy: chown -R proxy:proxy


/usr/local/squid/var/cache/squid.

8. Crem el directori a on emmagatzemarem la base de dades de certificats mkdir /usr/local/squid/var/lib.

9. Generem la base de dades a on s'emmagatzemaran els certificats dinàmics associats a cada WEB HTTPS:
/usr/local/squid/libexec/security_file_certgen -c -s /usr/local/squid/var/cache/squid/ssl_db -M 4MB.

10. Li donem permisos a l'usuari proxy per a que pugui accedir a la base de dades de certificats: chown -R
proxy:proxy /usr/local/squid/var/cache/squid/ssl_db.

19/09/2019 APROVAT Pàgina 10 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

11. Fem que l'usuari proxy pugui fer servir el bash afegint /bin/bash al /etc/passwd.

19/09/2019 APROVAT Pàgina 11 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

12. Li donem permisos a l'usuari proxy per a que pugui accedir a la carpeta de gestió d'execució: chown -R
proxy:proxy /usr/local/squid/var/run.

13. Donem permissos a la clau privada per a que l’usuari proxy la pugui llegir: chmod -R 755
/etc/ssl/caijm/private/.

14. Creem els directoris de cau: su proxy -c "/usr/local/squid/sbin/squid -z".

15. Posem en marxa el nostre servidor fent servir la següent comanda: su proxy -c "/usr/local/squid/sbin/squid
-NCd1". I el podrem parar fent ctrl + c.

19/09/2019 APROVAT Pàgina 12 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

Client de la xarxa
El client rebrà l'adreça IP del servidor i l’únic que haurem de fer és importar el certificat de l'autoritat certificadora
(caijm.crt) al nostre navegador donant-li tots els permisos.

19/09/2019 APROVAT Pàgina 13 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

19/09/2019 APROVAT Pàgina 14 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

Comprobación:

19/09/2019 APROVAT Pàgina 15 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

19/09/2019 APROVAT Pàgina 16 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

Exercicis
1. Implementeu els punts anteriors i comproveu el funcionament amb el HTTPS i un conjunt de paraules
prohibides i dominis prohibits. [ 4 punts ]

(FET ADALT)

2. Consulteu el fitxer de logs d’accés del SQUID i trobeu les pàgines prohibides. [ 1 punt ]

cat Para finalizar directo y con less para navegar dentro

/usr/local/squid/var/logs/access.log

3. Esbrineu com instal·lar i configurar l’aplicatiu WEB SquidAnalyzer al servidor per a poder fer consultes
sobre els hàbits de navegació dels clients de la xarxa. [ 5 punts ]

19/09/2019 APROVAT Pàgina 17 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

19/09/2019 APROVAT Pàgina 18 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

19/09/2019 APROVAT Pàgina 19 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

19/09/2019 APROVAT Pàgina 20 de 21

VERSIÓ 00 D37-Activitat CF LOE


Generalitat de Catalunya CFGS
Departament d’Educació M11. SEGURETAT I ALTA DISPONIBILITAT 2n ASIX
Institut Joaquim Mir UF3. SERVIDORS WEB I PROXY
DEPT.
PRACTICA 4. PROXY SSL INF.

19/09/2019 APROVAT Pàgina 21 de 21

VERSIÓ 00 D37-Activitat CF LOE

You might also like