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.
- Győződjön meg arról, hogy a ca.crt az ügyfélen és a kiszolgálón is jelen van.
- A ca.key kulcsnak az ügyfélen kell lennie.
- A szerverhez server.crt, dh4096.pem, server.key és ta.key szükséges.
- 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