Weboldal keresés

OpenVPN szerver és kliens telepítése és konfigurálása Debian 7 rendszeren


Ez a cikk részletezi, hogyan szerezhet be IPv6 kapcsolatot az OpenVPN rendszeren a Debian Linux használatával. A folyamatot Debian 7 rendszeren tesztelték KVM VPS-en, szerverként IPv6 kapcsolattal, és Debian 7 asztali számítógépen. A parancsokat rootként kell futtatni.

Mi az az OpenVPN?

Az OpenVPN egy VPN-program, amely SSL/TLS-t használ biztonságos, titkosított VPN-kapcsolatok létrehozására, az internetes forgalom irányítására, így megelőzve a leskelődést. A nyílt VPN nagymértékben képes átláthatóan áthaladni a tűzfalakon. Valójában, ha a helyzet úgy kívánja, futtathatja ugyanazon a TCP-porton, mint a HTTPS (443), így a forgalom megkülönböztethetetlen, és így gyakorlatilag lehetetlen blokkolni.

Az OpenVPN számos módszert használhat, például előre megosztott titkos kulcsokat, tanúsítványokat vagy felhasználóneveket/jelszavakat, hogy lehetővé tegye az ügyfelek számára a hitelesítést a szerveren. Az OpenVPN az OpenSSL protokollt használja, és számos biztonsági és vezérlési funkciót valósít meg, mint például a kihívásra adott hitelesítés, az egyszeri bejelentkezési képesség, a terheléselosztás és a feladatátvételi szolgáltatások, valamint a több démon támogatása.

Miért érdemes OpenVPN-t használni?

Gondoljon a biztonságos kommunikációra – gondoljon az OpenVPN-re. Ha nem szeretné, hogy bárki leskelje az internetes forgalmát, használja az OpenVPN-t, hogy teljes forgalmát egy nagyon titkosított, biztonságos alagúton irányítsa.

Ez különösen fontos, ha a repülőtereken és más helyeken nyilvános WIFI hálózatokhoz csatlakozik. Soha nem lehetsz biztos abban, hogy ki leselkedik a forgalomra. Forgalmát saját OpenVPN-szerverén keresztül irányíthatja a leskelődés elkerülése érdekében.

Ha olyan országban tartózkodik, ahol rutinszerűen figyeli az összes forgalmat, és tetszés szerint blokkolja a webhelyeket, használhatja az OpenVPN-t a 443-as TCP-porton keresztül, hogy megkülönböztethetetlen legyen a HTTPS-forgalomtól. Az OpenVPN-t más biztonsági stratégiákkal is kombinálhatja, mint például az OpenVPN-forgalom SSL-alagúton keresztüli alagútvezetése, hogy legyőzze a Deep Packet Inspection technikákat, amelyek képesek lehetnek azonosítani az OpenVPN-aláírásokat.

rendszerkövetelmények

Az OpenVPN futtatásához nagyon minimális követelményekre van szükség. Egy 64 MB RAM és 1 GB HDD tárhellyel rendelkező rendszer elegendő az OpenVPN futtatásához. Az OpenVPN szinte az összes mainstream operációs rendszeren fut.

Az OpenVPN telepítése és konfigurálása Debian 7 rendszeren

Telepítse az OpenVPN-t a Master Serverre

Futtassa a következő parancsot az OpenVPN telepítéséhez.

apt-get install openvpn

Alapértelmezés szerint az easy-rsa szkriptek a „/usr/share/easy-rsa/” könyvtárba vannak telepítve. Tehát át kell másolnunk ezeket a szkripteket a kívánt helyre, azaz a /root/easy-rsa címre.

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

CA-tanúsítvány és CA-kulcs létrehozása

Nyissa meg a „vars” fájlt, és hajtsa végre a következő módosításokat, de a módosítások elvégzése előtt azt javaslom, hogy készítsen biztonsági másolatot az eredeti fájlról.

cp vars{,.orig}

A szövegszerkesztővel állítsa be az easy-rsa alapértelmezett értékeit. Például.

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

Itt egy 4096 bites kulcsot használok. Igény szerint használhat 1024, 2048, 4096 vagy 8192 bites kulcsot.

Exportálja az alapértelmezett értékeket a parancs futtatásával.

source ./vars

Tisztítsa meg a korábban generált tanúsítványokat.

./clean-all

Ezután futtassa a következő parancsot a CA tanúsítvány és a CA kulcs létrehozásához.

./build-ca

A parancs futtatásával állítsa elő a szervertanúsítványt. Cserélje ki a „szervernév” szót a szervernévvel.

./build-key-server server-name

Készítse elő a Diffie Hellman PEM tanúsítványt.

./build-dh

Az ügyféltanúsítvány létrehozása. Helyettesítse az „ügyfél nevét” az ügyfélnévvel.

./build-key client-name

HMAC kód létrehozása.

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

Másolja a tanúsítványokat a kliens és a kiszolgáló gépekre az alábbiak szerint.

  1. Győződjön meg arról, hogy a ca.crt az ügyfélen és a kiszolgálón is jelen van.
  2. A ca.key kulcsnak az ügyfélen kell lennie.
  3. A szerverhez server.crt, dh4096.pem, server.key és ta.key szükséges.
  4. A client.crt, client.key és ta.key legyen az ügyfélen.

A kulcsok és tanúsítványok kiszolgálón történő beállításához futtassa a parancsokat.

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/

Az OpenVPN szerver konfigurálása

Most be kell állítania az OpenVPN-kiszolgálót. Nyissa meg a „/etc/openvpn/server.conf” fájlt. Kérjük, hajtsa végre a módosításokat az alábbiak szerint.

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

IP-továbbítás engedélyezése a szerveren.

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

Futtassa a következő parancsot az OpenVPN beállításához a rendszerindításkor.

update-rc.d -f openvpn defaults

Indítsa el az OpenVPN szolgáltatást.

service openvpn restart

Telepítse az OpenVPN-t a kliensre

Futtassa a következő parancsot az OpenVPN kliensgépre történő telepítéséhez.

apt-get install openvpn

Szövegszerkesztővel állítsa be az OpenVPN-kliens konfigurációját a kliens „/etc/openvpn/client.conf” mappájában. Egy példa konfiguráció a következő:

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

Futtassa a következő parancsot az OpenVPN beállításához a rendszerindításkor.

update-rc.d -f openvpn defaults

Indítsa el az OpenVPN szolgáltatást az ügyfélen.

service openvpn restart

Ha megbizonyosodott arról, hogy az OpenVPN jól működik az IPv4 rendszeren, a következőképpen állíthatja be az IPv6 működését az OpenVPN felett.

Az IPv6 működése az OpenVPN-nel a szerveren

Adja hozzá a következő sorokat a kiszolgálókonfigurációs „/etc/openvpn/server.conf” fájl végéhez.

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

Ez a két szkript minden alkalommal felállítja/megsemmisíti az IPv6 alagutat, amikor egy kliens csatlakozik/lekapcsol.

Itt van a client-connect.sh tartalma.

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

A gazdagépem IPV6 címeket rendel hozzám a 2a00:dd80:003d:000c::/64 blokkból. Ezért használom
2a00:dd80:003d:000c mint ALAPRANGE. Módosítsa ezt az értéket annak megfelelően, amit a gazdagép hozzárendelt.

Minden alkalommal, amikor egy kliens csatlakozik az OpenVPN-hez, ez a szkript a 2a00:dd80:003d:000c:1001::1 címet rendeli hozzá a tap0<IPV6 címeként. a szerver interfészét.

Az utolsó sor a Neighbor Discovery-t állítja be az alagútunkhoz. Proxy címként hozzáadtam az ügyféloldali tap0 kapcsolat IPv6 címét.

Íme a client-disconnect.sh tartalma.

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

Ez csak törli a szerver IPv6 alagútcímét, amikor az ügyfél megszakítja a kapcsolatot. Módosítsa a BASERANGE értékét szükség szerint.

Tegye végrehajthatóvá a szkripteket.

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

Adja hozzá a következő bejegyzéseket az „/etc/rc.local” fájlhoz (a megfelelő sysctl-eket az /etc/sysctl.conf fájlban is módosíthatja).

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

Ezek a bejegyzések aktiválják a Neighbor Discovery és Forwarding funkciót. Tűzfalat is adtam hozzá.

Hozza létre a „/etc/init.d/firewall” elemet, és helyezze be a következő tartalmat.

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

Futtassa az „/etc/rc.local” fájlt, és indítsa el a tűzfalat.

sh /etc/rc.local

Ezzel a szerveroldali módosítások befejeződnek.

Az IPv6 működése az OpenVPN-nel az ügyfélen

Adja hozzá a következőt az ügyfélkonfigurációs fájl „/etc/openvpn/client.conf” utolsó soraihoz.

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

A felfelé és lefelé irányuló szkriptek felállítják/megsemmisítik a kliens tap0 kapcsolatának IPV6 kliens végpontjait minden alkalommal, amikor egy kliens csatlakozik az OpenVPN-kiszolgálóhoz vagy bontja a kapcsolatot.

Itt van az up.sh tartalma.

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

A szkript a 2a00:dd80:3d:c:1001::2 IPV6-címet rendeli hozzá az ügyfél IPV6-címeként, és beállítja az alapértelmezett IPV6-útvonalat a kiszolgálón keresztül.

Módosítsa az IPV6BASE-t úgy, hogy megegyezzen a BASERANGE értékkel a kiszolgáló konfigurációjában.

Itt van a down.sh tartalma.

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

Ez csak törli a kliens IPV6-címét, és lebontja az IPV6-útvonalat, amikor az ügyfél megszakad a kiszolgálótól.

Módosítsa az IPV6BASE-t úgy, hogy megegyezzen a BASERANGE értékkel a kiszolgáló konfigurációjában, és tegye végrehajthatóvá a parancsfájlt.

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

Opcionálisan módosítsa az „/etc/resolv.conf” fájlt, és adja hozzá a Google IPV6 névszervereit a DNS-feloldáshoz.

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

Indítsa újra az openvpn-t a szerveren, majd csatlakozzon hozzá a kliensről. Csatlakoznia kellene. Látogassa meg a test-ipv6.com webhelyet, és ellenőrizze, hogy az OpenVPN-en keresztüli IPV6-kapcsolata működik-e.

Referencia hivatkozások

OpenVPN kezdőlap

Forrás: stavrovski