tun
(per a túnels a nivell IP) i tap
(per a túnels a nivell Ethernet). A la pràctica, les interfícies tun
s'utilitzaran amb més freqüència excepte quan els clients VPN estan destinats a ser integrats a la xarxa local del servidor mitjançant un pont Ethernet.
pki/ca.crt
) s'emmagatzemarà a totes les màquines (tant clients com servidors) com a /etc/ssl/certs/Falcot_CA.crt
. El certificat del servidor només s'instal·la al servidor (pki/issued/vpn.falcot.com.crt
va a /etc/ssl/certs/vpn.falcot.com.crt
, i pki/private/vpn.falcot.com.key
va a /etc/ssl/private/vpn.falcot.com.key
amb permisos restringits perquè només l'administrador el pugui llegir), amb els paràmetres Diffie-Hellman corresponents (pki/dh.pem
) instal·lats a /etc/openvpn/dh.pem
. Els certificats de client s'instal·len en el corresponent client VPN de manera similar.
/etc/openvpn/server/*.conf
. Setting up a VPN server is therefore a matter of storing a corresponding configuration file in this directory. A good starting point is /usr/share/doc/openvpn/examples/sample-config-files/server.conf
, which leads to a rather standard server. Of course, some parameters need to be adapted: ca
, cert
, key
and dh
need to describe the selected locations (respectively, /etc/ssl/certs/Falcot_CA.crt
, /etc/ssl/vpn.falcot.com.crt
, /etc/ssl/private/vpn.falcot.com.key
and /etc/openvpn/dh.pem
). The server 10.8.0.0 255.255.255.0
directive defines the subnet to be used by the VPN; the server uses the first IP address in that range (10.8.0.1
) and the rest of the addresses are allocated to clients.
tun0
. No obstant això, els tallafocs es configuren sovint al mateix temps que les interfícies de xarxa reals, que ocorre abans que comenci l'OpenVPN. Per tant, una bona pràctica recomana crear una interfície de xarxa virtual persistent, i configurar l'OpenVPN per utilitzar aquesta interfície preexistent. Això també permet triar el nom d'aquesta interfície. A aquest efecte, openvpn --mktun --dev vpn --dev-type tun
crea una interfície de xarxa virtual anomenada vpn
de tipus tun
; aquesta ordre es pot integrar fàcilment a l'script de configuració del tallafocs, o en una directiva up
del fitxer /etc/network/interfaces
, o una regla udev es pot crear amb aquesta fi. El fitxer de configuració d'OpenVPN també s'ha d'actualitzar en conseqüència amb les directives dev vpn
i dev-type tun
.
10.8.0.1
. La concessió als clients d'accés a la xarxa local (192.168.0.0/24), requereix l'addició d'una directiva push route 192.168.0.0 255.255.255.0
a la configuració de l'OpenVPN perquè els clients VPN obtinguin automàticament una ruta de xarxa que els digui que aquesta xarxa és accessible a través de la VPN. A més, les màquines de la xarxa local també han de ser informades que la ruta cap a la VPN passa pel servidor VPN (això funciona automàticament quan el servidor VPN està instal·lat a la passarel·la d'entrada). Alternativament, el servidor VPN es pot configurar per realitzar emmascaraments IP de manera que les connexions procedents de clients VPN apareguin com si vinguessin del servidor VPN (vegeu Secció 10.1, «Gateway»).
/etc/openvpn/client/
. A standard configuration can be obtained by using /usr/share/doc/openvpn/examples/sample-config-files/client.conf
as a starting point. The remote vpn.falcot.com 1194
directive describes the address and port of the OpenVPN server; the ca
, cert
and key
also need to be adapted to describe the locations of the key files.
AUTOSTART
directive to none
in the /etc/default/openvpn
file. Starting or stopping a given VPN connection is always possible with the commands systemctl start openvpn-client@name
and systemctl stop openvpn-client@name
(where the connection name matches the one defined in /etc/openvpn/client/name.conf
). The same is true for the server.
tun*
) a ambdós costats d'una connexió SSH, i aquestes interfícies virtuals es poden configurar exactament com si fossin interfícies físiques. El sistema de tunelització s'ha d'activar primer establint PermitTunnel
a «yes» al fitxer de configuració del servidor SSH (/etc/ssh/sshd_config
). En establir la connexió SSH, la creació d'un túnel ha de ser explícitament sol·licitada amb l'opció -w any:any
(any
pot ser substituït amb el nombre de dispositiu tun
desitjat). Això requereix que l'usuari tingui privilegis d'administrador en ambdós costats, per tal de poder crear el dispositiu de xarxa (en altres paraules, la connexió s'ha d'establir com a usuari arrel).
/etc/ipsec.conf
de cada equip conté els paràmetres per a túnels IPsec (o Security Associations, en la terminologia IPsec) de què el servidor s'ocupa. Hi ha molts exemples de configuració a /usr/share/doc/libreswan/
, però la documentació en línia de Libreswan té més exemples amb explicacions:
systemctl
; per exemple, systemctl start ipsec
iniciarà el servei IPsec.
/etc/ppp/options.pptp
, /etc/ppp/peers/falcot
, /etc/ppp/ip-up.d/falcot
, i /etc/ppp/ip-down.d/falcot
.
Exemple 10.2. El fitxer /etc/ppp/options.pptp
# opcions PPP usades en una connexió PPTP lock noauth nobsdcomp nodeflate
Exemple 10.3. El fitxer /etc/ppp/peers/falcot
# vpn.falcot.com és el servidor PPTP pty "pptp vpn.falcot.com --nolaunchpppd" # la connexió s'identificarà usant l'usuari "vpn" user vpn remotename pptp # es necessita xifratge require-mppe-128 file /etc/ppp/options.pptp ipparam falcot
pptpd
és el servidor PPTP per a Linux. El seu fitxer de configuració principal, /etc/pptpd.conf
, requereix molt pocs canvis: localip (adreça IP local) i remoteip (adreça IP remota). En l'exemple següent, el servidor PPTP sempre utilitza l'adreça 192.168.0.199
, i els clients PPTP reben adreces IP de 192.168.0.200
a 192.168.0.250
.
Exemple 10.6. El fitxer /etc/pptpd.conf
[..] # TAG: localip # TAG: remoteip # Specifies the local and remote IP address ranges. # # These options are ignored if delegate option is set. # # Any addresses work as long as the local machine takes care of the # routing. But if you want to use MS-Windows networking, you should # use IP addresses out of the LAN address space and use the proxyarp # option in the pppd options file, or run bcrelay. # # You can specify single IP addresses seperated by commas or you can # specify ranges, or both. For example: # # 192.168.0.234,192.168.0.245-249,192.168.0.254 # # IMPORTANT RESTRICTIONS: # # 1. No spaces are permitted between commas or within addresses. # # 2. If you give more IP addresses than the value of connections, # it will start at the beginning of the list and go until it # gets connections IPs. Others will be ignored. # # 3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238, # you must type 234-238 if you mean this. # # 4. If you give a single localIP, that's ok - all local IPs will # be set to the given one. You MUST still give at least one remote # IP for each simultaneous client. # # (Recommended) #localip 192.168.0.1 #remoteip 192.168.0.234-238,192.168.0.245 # or #localip 192.168.0.234-238,192.168.0.245 #remoteip 192.168.1.234-238,192.168.1.245 localip 192.168.0.199 remoteip 192.168.0.200-250
/etc/ppp/pptpd-options
. Els paràmetres importants són el nom del servidor (pptp
), el nom del domini (falcot.com
), i les adreces IP dels servidors de DNS i WINS.
Exemple 10.7. El fitxer /etc/ppp/pptpd-options
# Enable connection debugging facilities. # (see your syslog configuration for where pppd sends to) #debug # Name of the local system for authentication purposes # (must match the second field in /etc/ppp/chap-secrets entries) name pptpd # Optional: domain name to use for authentication ## change the domainname to your local domain domain falcot.com # Authentication ## these are reasonable defaults for WinXXXX clients ## for the security related settings auth refuse-pap refuse-chap refuse-mschap # Require the peer to authenticate itself using MS-CHAPv2 [Microsoft # Challenge Handshake Authentication Protocol, Version 2] authentication. require-mschap-v2 # Require MPPE 128-bit encryption # (note that MPPE requires the use of MSCHAP-V2 during authentication) require-mppe-128 # Network and Routing ## Fill in your addresses ms-dns 192.168.0.1 ms-wins 192.168.0.1 ## Fill in your netmask netmask 255.255.255.0 ## some defaults nodefaultroute proxyarp lock
vpn
(i la contrasenya associada) al fitxer /etc/ppp/chap-secrets
. Contràriament a altres instàncies on funcionaria un asterisc (*
), el nom del servidor s'ha d'explicitar aquí. A més, els clients PPTP de Windows s'identifiquen amb la forma DOMINI\\USER
, en lloc de només proporcionar un nom d'usuari. Això explica per què el fitxer també esmenta l'usuari FALCOT\\vpn
. També és possible especificar adreces IP individuals per als usuaris; un asterisc en aquest camp especifica que s'ha d'utilitzar l'adreçament dinàmic.