OpenVPN-i serveri ja kliendi installimine ja seadistamine Debian 7-s


Selles artiklis kirjeldatakse üksikasjalikult, kuidas hankida IPv6-ühenduvus OpenVPN-is Debiani Linuxi abil. Protsessi on testitud Debian 7-l KVM VPS-il, mille server on IPv6-ühenduvus, ja Debian 7 töölaual. Käsud tuleb käivitada juurkasutajana.

OpenVPN on VPN-programm, mis kasutab SSL/TLS-i turvaliste, krüptitud VPN-ühenduste loomiseks, Interneti-liikluse suunamiseks, vältides seeläbi nuhkimist. Avatud VPN on väga võimeline läbipaistvalt läbi tulemüüride liikuma. Tegelikult, kui olukord seda nõuab, saate selle käivitada samas TCP-pordis kui HTTPS (443), muutes liikluse eristamatuks ja seega praktiliselt võimatuks blokeerida.

OpenVPN võib kasutada erinevaid meetodeid, näiteks eelnevalt jagatud salajasi võtmeid, sertifikaate või kasutajanimesid/paroole, et lasta klientidel serveris autentida. OpenVPN kasutab OpenSSL-i protokolli ja rakendab paljusid turva- ja juhtimisfunktsioone, nagu väljakutse vastuse autentimine, ühekordse sisselogimise võimalus, koormuse tasakaalustamise ja tõrkeotsingu funktsioonid ning mitme deemoni tugi.

Mõtle turvalisele suhtlemisele - mõtle OpenVPN-ile. Kui te ei soovi, et keegi teie Interneti-liiklust nuhkiks, kasutage OpenVPN-i, et suunata kogu liiklus läbi krüpteeritud ja turvalise tunneli.

See on eriti oluline lennujaamades ja muudes kohtades ühenduse loomiseks avalike WIFI-võrkudega. Kunagi ei saa kindel olla, kes teie liiklust nuhib. Nuhkimise vältimiseks saate oma liikluse suunata oma OpenVPN-serveri kaudu.

Kui asute mõnes riigis, mis jälgib regulaarselt kogu teie liiklust ja blokeerib veebisaidid oma äranägemise järgi, võite kasutada OpenVPN-i TCP-pordi 443 kaudu, et muuta seda HTTPS-liiklusest eristamatuks. Võite isegi ühendada OpenVPN-i teiste turvastrateegiatega, näiteks OpenVPN-i liikluse tunneldamine üle SSL-tunneli, et ületada Deep Packet Inspection -tehnikaid, mis võivad olla võimelised tuvastama OpenVPN-i allkirju.

OpenVPN nõuab käitamiseks väga minimaalseid nõudeid. OpenVPN-i käitamiseks piisab 64 MB RAM-i ja 1 GB kõvakettaruumiga süsteemist. OpenVPN töötab peaaegu kõigis peamistes operatsioonisüsteemides.

OpenVPN-i installimine ja seadistamine Debian 7-s

OpenVPN-i installimiseks käivitage järgmine käsk.

# apt-get install openvpn

Vaikimisi installitakse easy-rsa skriptid kataloogi '/ usr/share/easy-rsa /'. Niisiis, peame need skriptid kopeerima soovitud asukohta, st/root/easy-rsa.

# mkdir /root/easy-rsa
cp -prv /usr/share/doc/openvpn/examples/easy-rsa/2.0 /root/easy-rsa

Avage fail „vars” ja tehke järgmised muudatused, kuid enne muudatuste tegemist soovitan teil algsest failist varukoopia teha.

# cp vars{,.orig}

Seadistage oma tekstiredaktori abil easy-rsa vaikeväärtused. Näiteks.

KEY_SIZE=4096
KEY_COUNTRY="IN"
KEY_PROVINCE="UP"
KEY_CITY="Noida"
KEY_ORG="Home"
KEY_EMAIL="[email protected]"

Siin kasutan 4096-bitist võtit. Soovi korral saate kasutada 1024-, 2048-, 4096- või 8192-bitist võtit.

Ekspordi vaikeväärtused käsu käivitamisega.

# source ./vars

Koristage kõik varem loodud sertifikaadid.

./clean-all

Järgmisena käivitage järgmine käsk CA-sertifikaadi ja CA-võtme loomiseks.

# ./build-ca

Looge käsu käivitades serverisertifikaat. Asendage "serveri nimi" oma serveri nimega.

# ./build-key-server server-name

Looge Diffie Hellmani PEM-sertifikaat.

# ./build-dh

Looge kliendisertifikaat. Asendage kliendi nimi oma kliendi nimega.

# ./build-key client-name

Looge HMAC-kood.

# openvpn --genkey --secret /root/easy-rsa/keys/ta.key

Kopeerige sertifikaadid kliendi ja serveri masinatesse järgmiselt.

  1. Veenduge, et ca.crt oleks olemas nii kliendis kui ka serveris.
  2. Ca.key-võti peaks olema kliendil.
  3. Server vajab serverit.crt, dh4096.pem, server.key ja ta.key.
  4. klient.crt, klient.võti ja ta.klahv peaksid olema kliendi peal.

Klahvide ja sertifikaatide seadistamiseks serveris käivitage käsud.

# mkdir -p /etc/openvpn/certs
# cp -pv /root/easy-rsa/keys/{ca.{crt,key},server-name.{crt,key},ta.key,dh4096.pem} /etc/openvpn/certs/

Nüüd peate seadistama OpenVPN-i serveri. Avage fail ‘/etc/openvpn/server.conf’. Tehke muudatused allpool kirjeldatud viisil.

script security 3 system
port 1194
proto udp
dev tap

ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/server-name.crt
key /etc/openvpn/certs/server-name.key
dh /etc/openvpn/certs/dh4096.pem
tls-auth /etc/openvpn/certs/ta.key 0

server 192.168.88.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

keepalive 1800 4000

cipher DES-EDE3-CBC # Triple-DES
comp-lzo

max-clients 10

user nobody
group nogroup

persist-key
persist-tun

#log openvpn.log
#status openvpn-status.log
verb 5
mute 20

Luba IP-suunamine serveris.

# echo 1 > /proc/sys/net/ipv4/ip_forward

Käivitage järgmine käsk OpenVPN-i seadistamiseks käivitamisel käivitamiseks.

# update-rc.d -f openvpn defaults

Käivitage OpenVPN-teenus.

# service openvpn restart

Käivitage järgmine käsk OpenVPN-i installimiseks kliendimasinasse.

# apt-get install openvpn

Tekstiredaktori abil seadistage kliendi OpenVPN-i konfiguratsioon jaotises '/etc/openvpn/client.conf'. Konfiguratsiooni näide on järgmine:

script security 3 system
client
remote vpn_server_ip
ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/client.crt
key /etc/openvpn/certs/client.key
cipher DES-EDE3-CBC
comp-lzo yes
dev tap
proto udp
tls-auth /etc/openvpn/certs/ta.key 1
nobind
auth-nocache
persist-key
persist-tun
user nobody
group nogroup

Käivitage järgmine käsk OpenVPN-i seadistamiseks käivitamisel käivitamiseks.

# update-rc.d -f openvpn defaults

Käivitage kliendis OpenVPN-teenus.

# service openvpn restart

Kui olete veendunud, et OpenVPN töötab IPv4-l hästi, saate siit teada, kuidas IPv6 üle OpenVPN-i tööle panna.

Lisage järgmised read serveri konfiguratsiooni ’/etc/openvpn/server.conf’ lõppu.

client-connect /etc/openvpn/client-connect.sh
client-disconnect /etc/openvpn/client-disconnect.sh

Need kaks skripti ehitavad/hävitavad IPv6 tunneli iga kord, kui klient ühendab/katkestab ühenduse.

Siin on saidi client-connect.sh sisu.

#!/bin/bash
BASERANGE="2a00:dd80:003d:000c"
ifconfig $dev up
ifconfig $dev add ${BASERANGE}:1001::1/64
ip -6 neigh add proxy 2a00:dd80:003d:000c:1001::2 dev eth0
exit 0

Minu host määrab mulle IPV6-aadressid plokist 2a00: dd80: 003d: 000c ::/64. Seega kasutan
2a00: dd80: 003d: 000c kui PÕHJUS. Muutke seda väärtust vastavalt sellele, mida teie host teile määras.

Iga kord, kui klient loob ühenduse OpenVPN-iga, määrab see skript serveri tap0-liidese IPV6-aadressiks aadressi 2a00: dd80: 003d: 000c: 1001 :: 1.

Viimane rida seab meie tunneli jaoks üles Neighbor Discovery. Olen lisanud puhverserveri aadressiks kliendipoolse tap0 ühenduse IPv6 aadressi.

Siin on saidi client-disconnect.sh sisu.

#!/bin/bash
BASERANGE="2a00:dd80:003d:000c"
/sbin/ip -6 addr del ${BASERANGE}::1/64 dev $dev
exit 0

See lihtsalt kustutab serveri IPv6 tunneli aadressi, kui klient katkestab ühenduse. Muutke vajadusel BASERANGE väärtust.

Muutke skriptid käivitatavaks.

# chmod 700 /etc/openvpn/client-connect.sh
# chmod 700 /etc/openvpn/client-disconnect.sh

Lisage järgmised kirjed kausta '/etc/rc.local' (sobivaid sysctl-sid saate muuta ka kataloogis /etc/sysctl.conf).

echo 1 >/proc/sys/net/ipv6/conf/all/proxy_ndp
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
/etc/init.d/firewall stop && /etc/init.d/firewall start

Need kirjed aktiveerivad naabrite otsimise ja edastamise. Olen lisanud ka tulemüüri.

Looge '/etc/init.d/firewall' ja lisage järgmine sisu.

#!/bin/sh
# description: Firewall
IPT=/sbin/iptables
IPT6=/sbin/ip6tables
case "$1" in
start)
$IPT -F INPUT
$IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i eth0 -p icmp -j ACCEPT
$IPT -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
$IPT -A INPUT -i tap+ -j ACCEPT
$IPT -A FORWARD -i tap+ -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -t nat -F POSTROUTING
$IPT -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
$IPT -A INPUT -i eth0 -j DROP
$IPT6 -F INPUT
$IPT6 -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT6 -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
$IPT6 -A INPUT -i eth0 -p icmpv6 -j ACCEPT
$IPT6 -A FORWARD -s 2a00:dd80:003d:000c::/64 -i tap0 -o eth0 -j ACCEPT
$IPT6 -A INPUT -i eth0 -j DROP
exit 0
;;
stop)
$IPT -F
$IPT6 -F
exit 0
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop}"
exit 1
;;
esac

Käivitage ‘/etc/rc.local’ ja käivitage tulemüür.

# sh /etc/rc.local

See viib serveripoolsed muudatused lõpule.

Lisage oma kliendi konfiguratsioonifaili '/etc/openvpn/client.conf' viimaste ridadena järgmine.

# create the ipv6 tunnel
up /etc/openvpn/up.sh
down /etc/openvpn/down.sh
# need this so when the client disconnects it tells the server
explicit-exit-notify

Üles ja alla skriptid loovad/hävitavad kliendi tap0 ühenduse IPV6 kliendi lõpp-punktid iga kord, kui klient loob ühenduse OpenVPN-i serveriga või loobub sellest.

Siin on faili up.sh sisu.

#!/bin/bash
IPV6BASE="2a00:dd80:3d:c"
ifconfig $dev up
ifconfig $dev add ${IPV6BASE}:1001::2/64
ip -6 route add default via ${IPV6BASE}:1001::1
exit 0

Skript määrab kliendi IPV6 aadressiks IPV6 aadressi 2a00: dd80: 3d: c: 1001 :: 2 ja määrab IPV6 vaikemarsruudi läbi serveri.

Muutke IPV6BASE serveri konfiguratsioonis samaks mis BASERANGE.

Siin on saidi down.sh sisu.

#!/bin/bash
IPV6BASE="2a00:dd80:3d:c"
/sbin/ip -6 addr del ${IPV6BASE}::2/64 dev $dev
/sbin/ip link set dev $dev down
/sbin/ip route del ::/0 via ${IPV6BASE}::1
exit 0

See lihtsalt kustutab kliendi IPV6 aadressi ja lõhub IPV6 marsruudi, kui klient serverist lahti ühendab.

Muutke IPV6BASE serveri konfiguratsioonis samaks BASERANGE ja muutke skript käivitatavaks.

# chmod 700 /etc/openvpn/up.sh
# chmod 700 /etc/openvpn/down.sh

Soovi korral saate muuta faili /etc/resolv.conf ja lisada DNS-i lahendamiseks Google'i IPV6 nimeserverid.

nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

Taaskäivitage openvpn serveris ja seejärel ühendage sellega klient. Sa peaksid olema ühendatud. Külastage saiti test-ipv6.com, et näha, kas teie IPV6-ühenduvus OpenVPN-i kaudu töötab.

Viited

OpenVPN koduleht