OpenVPN servera un klienta instalēšana un konfigurēšana Debian 7


Šajā rakstā ir sīki aprakstīts, kā iegūt IPv6 savienojamību ar OpenVPN, izmantojot Debian Linux. Process ir pārbaudīts Debian 7, izmantojot KVM VPS ar IPv6 savienojamību kā serveri, un Debian 7 darbvirsmā. Komandas jādarbina kā root.

OpenVPN ir VPN programma, kas izmanto SSL/TLS, lai izveidotu drošus, šifrētus VPN savienojumus, lai virzītu jūsu interneta trafiku, tādējādi novēršot snoopingu. Atvērtais VPN ir ļoti spējīgs pārredzami pārvietoties caur ugunsmūri. Faktiski, ja situācija to prasa, varat palaist to pašu TCP portu ar HTTPS (443), padarot trafiku neatšķiramu un tādējādi praktiski neiespējamu bloķēt.

Lai klienti varētu autentificēties serverī, OpenVPN var izmantot dažādas metodes, piemēram, iepriekš koplietotas slepenās atslēgas, sertifikātus vai lietotājvārdus/paroles. OpenVPN izmanto OpenSSL protokolu un ievieš daudzas drošības un vadības funkcijas, piemēram, izaicinājuma atbildes autentifikāciju, vienreizējas pierakstīšanās iespēju, slodzes līdzsvarošanas un kļūmjpārlēces funkcijas un vairāku dēmonu atbalstu.

Domājiet par drošu komunikāciju - domājiet par OpenVPN. Ja jūs nevēlaties, lai kāds snooping jūsu interneta trafiku, izmantojiet OpenVPN, lai novirzītu visu trafiku caur ļoti šifrētu, drošu tuneli.

Tas ir īpaši svarīgi, pieslēdzoties publiskajiem WIFI tīkliem lidostās un citās vietās. Jūs nekad nevarat būt drošs par to, kurš pieskata jūsu trafiku. Varat novirzīt trafiku caur savu OpenVPN serveri, lai novērstu snoopingu.

Ja atrodaties kādā no valstīm, kas regulāri pārrauga visu jūsu trafiku un bloķē vietnes pēc vēlēšanās, varat izmantot OpenVPN, izmantojot TCP 443. portu, lai padarītu to neatšķiramu no HTTPS trafika. Jūs pat varat apvienot OpenVPN ar citām drošības stratēģijām, piemēram, OpenVPN trafika tuneļošanu pa SSL tuneli, lai pārvarētu padziļinātu pakešu pārbaudes paņēmienus, kas varētu identificēt OpenVPN parakstus.

Lai palaistu, OpenVPN prasa ļoti minimālas prasības. Lai palaistu OpenVPN, pietiek ar sistēmu ar 64 MB RAM un 1 GB cietā diska. OpenVPN darbojas gandrīz visās galvenajās operētājsistēmās.

OpenVPN instalēšana un konfigurēšana pakalpojumā Debian 7

Lai instalētu OpenVPN, palaidiet šo komandu.

# apt-get install openvpn

Pēc noklusējuma easy-rsa skripti tiek instalēti direktorijā ‘/ usr/share/easy-rsa /’. Tātad, mums šie skripti ir jākopē vēlamajā vietā, t.i.,/root/easy-rsa.

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

Atveriet failu “vars” un veiciet šādas izmaiņas, taču pirms izmaiņu veikšanas iesaku jums izveidot oriģināla faila dublējumu.

# cp vars{,.orig}

Izmantojot teksta redaktoru, iestatiet easy-rsa noklusējuma vērtības. Piemēram.

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

Šeit es izmantoju 4096 bitu atslēgu. Pēc vēlēšanās varat izmantot 1024, 2048, 4096 vai 8192 bitu atslēgu.

Eksportējiet noklusējuma vērtības, palaižot komandu.

# source ./vars

Iztīriet visus iepriekš ģenerētos sertifikātus.

./clean-all

Pēc tam palaidiet šo komandu, lai ģenerētu CA sertifikātu un CA atslēgu.

# ./build-ca

Ģenerējiet servera sertifikātu, palaižot komandu. “Servera nosaukumu” aizstājiet ar sava servera nosaukumu.

# ./build-key-server server-name

Ģenerējiet Diffie Hellman PEM sertifikātu.

# ./build-dh

Ģenerējiet klienta sertifikātu. “Klienta vārdu” aizstājiet ar sava klienta vārdu.

# ./build-key client-name

Ģenerējiet HMAC kodu.

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

Kopējiet sertifikātus klienta un servera mašīnās šādi.

  1. Pārliecinieties, ka ca.crt ir gan klientā, gan serverī.
  2. Ca.key atslēgai jābūt klientam.
  3. Serverim ir nepieciešami server.crt, dh4096.pem, server.key un ta.key.
  4. klientam.crt, klientam.atslēgam un ta.key jābūt klientam.

Lai serverī iestatītu atslēgas un sertifikātus, palaidiet komandas.

# 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/

Tagad jums jākonfigurē OpenVPN serveris. Atveriet failu ‘/etc/openvpn/server.conf’. Lūdzu, veiciet izmaiņas, kā aprakstīts zemāk.

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

Iespējojiet IP pārsūtīšanu uz servera.

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

Palaidiet šo komandu, lai iestatītu OpenVPN, lai sāktu sāknēšanu.

# update-rc.d -f openvpn defaults

Sāciet OpenVPN pakalpojumu.

# service openvpn restart

Lai instalētu OpenVPN klienta mašīnā, izpildiet šo komandu.

# apt-get install openvpn

Izmantojot teksta redaktoru, iestatiet klienta OpenVPN konfigurāciju mapē ‘/etc/openvpn/client.conf’. Konfigurācijas piemērs ir šāds:

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

Palaidiet šo komandu, lai iestatītu OpenVPN, lai sāktu sāknēšanu.

# update-rc.d -f openvpn defaults

Sāciet klienta OpenVPN pakalpojumu.

# service openvpn restart

Kad esat pārliecināts, ka OpenVPN darbojas labi ar IPv4, lūk, kā panākt, lai IPv6 darbotos, izmantojot OpenVPN.

Pievienojiet šīs rindas servera konfigurācijas faila “/etc/openvpn/server.conf” beigām.

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

Šie divi skripti izveido/iznīcina IPv6 tuneli katru reizi, kad klients izveido savienojumu/atvieno.

Šeit ir client-connect.sh saturs.

#!/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

Mans resursdators man piešķir IPV6 adreses no 2a00: dd80: 003d: 000c ::/64 bloka. Tādējādi es izmantoju
2a00: dd80: 003d: 000c kā BASERANGE. Mainiet šo vērtību atbilstoši tam, ko jūsu resursdators jums ir piešķīris.

Katru reizi, kad klients izveido savienojumu ar OpenVPN, šis skripts piešķir servera tap0 interfeisa IPV6 adresi 2a00: dd80: 003d: 000c: 1001 :: 1.

Pēdējā līnija izveido kaimiņu atklājumu mūsu tunelim. Kā starpniekservera adresi esmu pievienojis klienta puses tap0 savienojuma IPv6 adresi.

Šeit ir client-disconnect.sh saturs.

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

Tas vienkārši izdzēš servera IPv6 tuneļa adresi, kad klients atvienojas. Vajadzības gadījumā mainiet BASERANGE vērtību.

Padariet skriptus izpildāmus.

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

Pievienojiet šādus ierakstus mapei “/etc/rc.local” (Atbilstošās sysctls var mainīt arī mapē /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

Šie ieraksti aktivizē kaimiņu meklēšanu un pārsūtīšanu. Esmu pievienojis arī ugunsmūri.

Izveidojiet ‘/etc/init.d/firewall’ un ievietojiet šādu saturu.

#!/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

Palaidiet ‘/etc/rc.local’ un palaidiet ugunsmūri.

# sh /etc/rc.local

Tas pabeidz servera puses modifikācijas.

Pievienojiet šo kā pēdējās klienta konfigurācijas faila “/etc/openvpn/client.conf” rindas.

# 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

Uz augšu un uz leju skripti izveido/iznīcina klienta tap0 savienojuma IPV6 klienta gala punktus katru reizi, kad klients izveido savienojumu/atvienojas no OpenVPN servera vai no tā.

Šeit ir up.sh saturs.

#!/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

Skripts kā klienta IPV6 adresi piešķir IPV6 adresi 2a00: dd80: 3d: c: 1001 :: 2 un caur serveri nosaka noklusējuma IPV6 maršrutu.

Servera konfigurācijā modificējiet IPV6BASE kā BASERANGE.

Šeit ir down.sh saturs.

#!/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

Tas vienkārši izdzēš klienta IPV6 adresi un nojauc IPV6 maršrutu, kad klients atvienojas no servera.

Pārveidojiet IPV6BASE tā, lai servera konfigurācijā būtu BASERANGE, un padariet skriptu izpildāmu.

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

Pēc izvēles modificējiet “/etc/resolv.conf” un pievienojiet Google IPV6 vārda serverus DNS izšķirtspējai.

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

Pārstartējiet openvpn serverī un pēc tam izveidojiet savienojumu ar to no klienta. Jums vajadzētu būt savienotam. Apmeklējiet test-ipv6.com, lai redzētu, vai jūsu IPV6 savienojamība, izmantojot OpenVPN, darbojas.

Atsauces saites

OpenVPN mājas lapa