OpenVPN-palvelimen ja -asiakkaan asennus ja konfigurointi Debian 7:ssä
Tässä artikkelissa kerrotaan, kuinka saat IPv6-yhteyden OpenVPN-verkkoon käyttämällä Debian Linuxia. Prosessi on testattu Debian 7:llä KVM VPS:llä, jossa on IPv6-yhteys palvelimena, ja Debian 7 -työpöydällä. Komennot tulee suorittaa root-käyttäjänä.
Mikä on OpenVPN?
OpenVPN on VPN-ohjelma, joka käyttää SSL/TLS:ää luomaan turvallisia, salattuja VPN-yhteyksiä, reitittämään Internet-liikennettäsi, mikä estää nuuskimisen. Avoin VPN pystyy erittäin hyvin kulkemaan läpinäkyvästi palomuurien läpi. Itse asiassa, jos tilanne sitä vaatii, voit käyttää sitä samassa TCP-portissa kuin HTTPS (443), jolloin liikenne on erottamaton ja siten käytännössä mahdoton estää.
OpenVPN voi käyttää useita menetelmiä, kuten ennalta jaettuja salaisia avaimia, varmenteita tai käyttäjänimiä/salasanoja, jotta asiakkaat voivat todentaa palvelimelle. OpenVPN käyttää OpenSSL-protokollaa ja toteuttaa monia suojaus- ja ohjausominaisuuksia, kuten haastevastaustodennusta, kertakirjautumisominaisuutta, kuormituksen tasapainotus- ja vikasietoominaisuuksia sekä usean demonin tuki.
Miksi käyttää OpenVPN:ää?
Ajattele turvallista viestintää – ajattele OpenVPN:ää. Jos et halua kenenkään nuuskivan Internet-liikennettäsi, käytä OpenVPN:ää reitittämään kaikki liikenteesi erittäin salatun, suojatun tunnelin läpi.
Tämä on erityisen tärkeää yhdistettäessä julkisiin WIFI-verkkoihin lentokentillä ja muissa paikoissa. Et voi koskaan olla varma siitä, kuka nuuskii liikennettäsi. Voit kanavoida liikennettä oman OpenVPN-palvelimesi kautta nuuskimisen estämiseksi.
Jos olet jossakin niistä maista, jotka valvovat rutiininomaisesti kaikkea liikennettäsi ja estävät verkkosivustoja halutessasi, voit käyttää OpenVPN:ää TCP-portin 443 kautta, jotta se ei erottuisi HTTPS-liikenteestä. Voit jopa yhdistää OpenVPN:n muihin tietoturvastrategioihin, kuten OpenVPN-liikenteen tunnelointiin SSL-tunnelin kautta, voittaaksesi Deep Packet Inspection -tekniikat, jotka saattavat pystyä tunnistamaan OpenVPN-allekirjoitukset.
Laitteistovaatimukset
OpenVPN vaatii erittäin vähän vaatimuksia toimiakseen. Järjestelmä, jossa on 64 Mt RAM-muistia ja 1 Gt kiintolevytilaa, riittää OpenVPN:n käyttämiseen. OpenVPN toimii lähes kaikissa yleisimmissä käyttöjärjestelmissä.
OpenVPN:n asennus ja konfigurointi Debian 7:ssä
Asenna OpenVPN Master Serveriin
Asenna OpenVPN suorittamalla seuraava komento.
apt-get install openvpn
Oletusarvoisesti easy-rsa-skriptit asennetaan hakemistoon /usr/share/easy-rsa/. Joten meidän on kopioitava nämä skriptit haluttuun paikkaan, eli /root/easy-rsa.
mkdir /root/easy-rsa
cp -prv /usr/share/doc/openvpn/examples/easy-rsa/2.0 /root/easy-rsa
Luo CA-sertifikaatti ja CA-avain
Avaa tiedosto vars ja tee seuraavat muutokset, mutta ennen muutosten tekemistä suosittelen, että otat varmuuskopion alkuperäisestä tiedostosta.
cp vars{,.orig}
Määritä easy-rsa:n oletusarvot tekstieditorillasi. Esimerkiksi.
KEY_SIZE=4096
KEY_COUNTRY="IN"
KEY_PROVINCE="UP"
KEY_CITY="Noida"
KEY_ORG="Home"
KEY_EMAIL="[email "
Tässä käytän 4096-bittistä avainta. Voit käyttää 1024-, 2048-, 4096- tai 8192-bittistä avainta haluamallasi tavalla.
Vie oletusarvot suorittamalla komento.
source ./vars
Puhdista kaikki aiemmin luodut varmenteet.
./clean-all
Luo seuraavaksi CA-varmenne ja CA-avain suorittamalla seuraava komento.
./build-ca
Luo palvelinvarmenne suorittamalla komento. Korvaa "palvelimen nimi" palvelimesi nimellä.
./build-key-server server-name
Luo Diffie Hellman PEM -sertifikaatti.
./build-dh
Luo asiakassertifikaatti. Korvaa "asiakkaan nimi" asiakkaan nimellä.
./build-key client-name
Luo HMAC-koodi.
openvpn --genkey --secret /root/easy-rsa/keys/ta.key
Kopioi varmenteet asiakas- ja palvelinkoneille seuraavasti.
- Varmista, että ca.crt on sekä asiakaskoneessa että palvelimessa.
- ca.key-avaimen tulee olla asiakassovelluksessa.
- Palvelin vaatii server.crt, dh4096.pem, server.key ja ta.key.
- client.crt, client.key ja ta.key pitäisi olla asiakassovelluksessa.
Määritä avaimet ja varmenteet palvelimelle suorittamalla komennot.
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/
OpenVPN-palvelimen määrittäminen
Nyt sinun on määritettävä OpenVPN-palvelin. Avaa tiedosto /etc/openvpn/server.conf. Tee muutokset alla kuvatulla tavalla.
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
Ota IP-lähetys käyttöön palvelimella.
echo 1 > /proc/sys/net/ipv4/ip_forward
Suorita seuraava komento asettaaksesi OpenVPN käynnistymään käynnistyksen yhteydessä.
update-rc.d -f openvpn defaults
Käynnistä OpenVPN-palvelu.
service openvpn restart
Asenna OpenVPN asiakaskoneeseen
Suorita seuraava komento asentaaksesi OpenVPN asiakaskoneeseen.
apt-get install openvpn
Määritä OpenVPN-asiakasmääritykset tekstieditorilla asiakkaan tiedostossa /etc/openvpn/client.conf. Esimerkki kokoonpanosta on seuraava:
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
Suorita seuraava komento asettaaksesi OpenVPN käynnistymään käynnistyksen yhteydessä.
update-rc.d -f openvpn defaults
Käynnistä OpenVPN-palvelu asiakkaalla.
service openvpn restart
Kun olet varma, että OpenVPN toimii hyvin IPv4:ssä, voit saada IPv6:n toimimaan OpenVPN:n kanssa seuraavasti.
IPv6:n saaminen toimimaan OpenVPN:n kanssa palvelimella
Lisää seuraavat rivit palvelimen /etc/openvpn/server.conf-tiedoston loppuun.
client-connect /etc/openvpn/client-connect.sh
client-disconnect /etc/openvpn/client-disconnect.sh
Nämä kaksi komentosarjaa rakentavat/tuhoavat IPv6-tunnelin joka kerta, kun asiakas muodostaa yhteyden tai katkaisee yhteyden.
Tässä on client-connect.sh:n sisältö.
#!/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
Isäntäni määrittää minulle IPV6-osoitteet 2a00:dd80:003d:000c::/64-lohkosta. Siksi käytän
2a00:dd80:003d:000c BASERANGE-arvona. Muokkaa tätä arvoa sen mukaan, mitä isäntäsi on sinulle määrittänyt.
Aina kun asiakas muodostaa yhteyden OpenVPN:ään, tämä komentosarja määrittää osoitteen 2a00:dd80:003d:000c:1001::1 tap0<:n IPV6-osoitteeksi. palvelimen käyttöliittymä.
Viimeinen rivi asettaa Neighbor Discoveryn tunneliimme. Olen lisännyt asiakaspuolen tap0-yhteyden IPv6-osoitteen välityspalvelimen osoitteeksi.
Tässä on client-disconnect.sh-tiedoston sisältö.
#!/bin/bash
BASERANGE="2a00:dd80:003d:000c"
/sbin/ip -6 addr del ${BASERANGE}::1/64 dev $dev
exit 0
Tämä vain poistaa palvelimen IPv6-tunneliosoitteen, kun asiakas katkaisee yhteyden. Muokkaa BASERANGE-arvoa tarpeen mukaan.
Tee skriptit suoritettaviksi.
chmod 700 /etc/openvpn/client-connect.sh
chmod 700 /etc/openvpn/client-disconnect.sh
Lisää seuraavat merkinnät kohtaan '/etc/rc.local' (Voit myös muokata asianmukaisia sysctl-tiedostoja tiedostossa /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
Nämä merkinnät aktivoivat naapurin etsinnän ja edelleenlähetyksen. Lisäsin myös palomuurin.
Luo /etc/init.d/firewall ja lisää seuraava sisältö.
#!/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
Suorita '/etc/rc.local' ja käynnistä palomuuri.
sh /etc/rc.local
Tämä suorittaa palvelinpuolen muutokset.
IPv6:n saaminen toimimaan OpenVPN:n kanssa asiakassovelluksessa
Lisää seuraavat rivit asiakkaan määritystiedoston '/etc/openvpn/client.conf' viimeisiksi riveiksi.
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
Ylös- ja alas-skriptit rakentavat/tuhoavat asiakkaan tap0-yhteyden IPV6-asiakaspäätepisteet aina, kun asiakas muodostaa yhteyden OpenVPN-palvelimeen tai katkaisee yhteyden siitä.
Tässä on up.sh:n sisältö.
#!/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
Komentosarja määrittää IPV6-osoitteen 2a00:dd80:3d:c:1001::2 asiakkaan IPV6-osoitteeksi ja määrittää oletusarvoisen IPV6-reitin palvelimen kautta.
Muokkaa IPV6BASE olemaan sama kuin BASERANGE palvelimen asetuksissa.
Tässä on down.sh:n sisältö.
#!/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
Tämä vain poistaa asiakkaan IPV6-osoitteen ja purkaa IPV6-reitin, kun asiakas katkaisee yhteyden palvelimeen.
Muokkaa IPV6BASE samaksi kuin BASERANGE palvelimen asetuksissa ja tee komentosarjasta suoritettava.
chmod 700 /etc/openvpn/up.sh
chmod 700 /etc/openvpn/down.sh
Vaihtoehtoisesti muokkaa /etc/resolv.conf-tiedostoa ja lisää Googlen IPV6-nimipalvelimet DNS-selvitystä varten.
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
Käynnistä openvpn uudelleen palvelimella ja muodosta sitten yhteys siihen asiakkaalta. Sinun pitäisi olla yhteydessä. Käy osoitteessa test-ipv6.com nähdäksesi, että IPV6-yhteytesi OpenVPN:n kautta toimii.
Viitelinkit
OpenVPN-kotisivu
Lähde: stavrovski