Seva ya OpenVPN na Ufungaji na Usanidi wa Mteja kwenye Debian 7


Nakala hii inaelezea jinsi ya kupata muunganisho wa IPv6 kwenye OpenVPN kwa kutumia Debian Linux. Mchakato umejaribiwa kwenye Debian 7 kwenye KVM VPS iliyo na muunganisho wa IPv6 kama seva, na kompyuta ya mezani ya Debian 7. Amri zinapaswa kuendeshwa kama mzizi.

OpenVPN ni programu ya VPN inayotumia SSL/TLS kuunda miunganisho salama ya VPN iliyosimbwa kwa njia fiche, ili kuelekeza trafiki yako ya Mtandao, hivyo basi kuzuia kuchungulia. Open VPN ina uwezo mkubwa wa kupita kwa uwazi kupitia ngome. Kwa kweli, ikiwa hali inaihitaji, unaweza kuiendesha kwenye mlango wa TCP sawa na HTTPS (443), na kufanya trafiki isitofautishwe na hivyo kuwa vigumu kuizuia.

OpenVPN inaweza kutumia mbinu mbalimbali kama vile funguo za siri zilizoshirikiwa awali, vyeti, au majina ya watumiaji/manenosiri, ili kuwaruhusu wateja kuthibitisha kwa seva. OpenVPN hutumia itifaki ya OpenSSL na kutekeleza vipengele vingi vya usalama na udhibiti kama vile uthibitishaji wa majibu ya changamoto, uwezo wa kuingia mara moja, kusawazisha upakiaji na vipengele vya kushindwa na usaidizi wa daemoni nyingi.

Fikiria mawasiliano salama - fikiria OpenVPN. Ikiwa hutaki mtu yeyote achunguze trafiki yako ya mtandaoni, tumia OpenVPN kuelekeza trafiki yako yote kupitia handaki iliyosimbwa kwa njia fiche sana, iliyo salama.

Hii ni muhimu hasa wakati wa kuunganisha kwenye mitandao ya umma ya WIFI katika viwanja vya ndege na maeneo mengine. Huwezi kamwe kuwa na uhakika ni nani anayechunguza trafiki yako. Unaweza kuelekeza trafiki yako kupitia seva yako ya OpenVPN ili kuzuia kuchungulia.

Iwapo uko katika mojawapo ya nchi ambazo kwa kawaida hufuatilia trafiki yako yote na kuzuia tovuti upendavyo, unaweza kutumia OpenVPN kupitia mlango wa TCP 443, ili kuifanya isiweze kutofautishwa na trafiki ya HTTPS. Unaweza hata kuchanganya OpenVPN na mikakati mingine ya usalama kama vile kuelekeza trafiki yako ya OpenVPN juu ya handaki ya SSL, ili kushinda mbinu za Ukaguzi wa Kifurushi cha Kina ambazo zinaweza kutambua saini za OpenVPN.

OpenVPN inahitaji mahitaji madogo sana ili kuendesha. Mfumo wenye RAM ya MB 64 na nafasi ya GB 1 ya HDD inatosha kuendesha OpenVPN. OpenVPN huendesha karibu Mifumo yote ya Uendeshaji ya kawaida.

Ufungaji na Usanidi wa OpenVPN kwenye Debian 7

Tumia amri ifuatayo ili kusakinisha OpenVPN.

# apt-get install openvpn

Kwa chaguo-msingi, hati rahisi-rsa husakinishwa chini ya saraka ya '/usr/share/easy-rsa/'. Kwa hivyo, tunahitaji kunakili hati hizi kwa eneo linalohitajika yaani /root/easy-rsa.

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

Fungua faili 'vars' na ufanye mabadiliko yafuatayo, lakini kabla ya kufanya mabadiliko ninapendekeza uhifadhi nakala ya faili asili.

# cp vars{,.orig}

Kwa kutumia kihariri chako cha maandishi, weka thamani chaguomsingi za rahisi-rsa. Kwa mfano.

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

Hapa, ninatumia kitufe cha 4096 kidogo. Unaweza kutumia kitufe cha 1024, 2048, 4096 au 8192 kama unavyotaka.

Hamisha maadili ya msingi kwa kuendesha amri.

# source ./vars

Safisha vyeti vyovyote vilivyotolewa hapo awali.

./clean-all

Ifuatayo, endesha amri ifuatayo ili kutoa cheti cha CA na ufunguo wa CA.

# ./build-ca

Tengeneza cheti cha seva kwa kuendesha amri. Badilisha 'jina la seva' na jina la seva yako.

# ./build-key-server server-name

Tengeneza cheti cha Diffie Hellman PEM.

# ./build-dh

Tengeneza cheti cha mteja. Badili ‘jina la mteja’ na jina la mteja wako.

# ./build-key client-name

Tengeneza msimbo wa HMAC.

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

Nakili vyeti kwa mteja na mashine za seva kama ifuatavyo.

  1. Hakikisha kuwa ca.crt iko kwenye mteja na seva.
  2. Ufunguo wa ca.key unapaswa kuwa kwenye mteja.
  3. Seva inahitaji server.crt, dh4096.pem, server.key na ta.key.
  4. client.crt, client.key na ta.key vinapaswa kuwa kwenye mteja.

Ili kusanidi funguo na vyeti kwenye seva, endesha amri.

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

Sasa unahitaji kusanidi seva ya OpenVPN. Fungua faili '/etc/openvpn/server.conf'. Tafadhali fanya mabadiliko kama ilivyoelezwa hapa chini.

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

Washa usambazaji wa IP kwenye seva.

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

Tekeleza amri ifuatayo ili kusanidi OpenVPN ili kuanza kwenye buti.

# update-rc.d -f openvpn defaults

Anzisha huduma ya OpenVPN.

# service openvpn restart

Tumia amri ifuatayo ili kusakinisha OpenVPN kwenye mashine ya mteja.

# apt-get install openvpn

Kwa kutumia kihariri maandishi, sanidi usanidi wa mteja wa OpenVPN katika ‘/etc/openvpn/client.conf’, kwenye mteja. Mfano wa usanidi ni kama ifuatavyo:

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

Tekeleza amri ifuatayo ili kusanidi OpenVPN ili kuanza kwenye buti.

# update-rc.d -f openvpn defaults

Anzisha huduma ya OpenVPN kwenye mteja.

# service openvpn restart

Mara tu unaporidhika kwamba OpenVPN inafanya kazi vizuri kwenye IPv4, hapa kuna jinsi ya kupata IPv6 kufanya kazi kupitia OpenVPN.

Ongeza mistari ifuatayo hadi mwisho wa usanidi wa seva '/etc/openvpn/server.conf'.

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

Hati hizi mbili huunda/kuharibu handaki ya IPv6 kila wakati mteja anapounganisha/kukata muunganisho.

Haya hapa ni maudhui ya client-connect.sh.

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

Mwenyeji wangu hunipa anwani za IPV6 kutoka kwa 2a00:dd80:003d:000c::/64 block. Kwa hivyo, mimi hutumia
2a00:dd80:003d:000c kama BASERANGE. Rekebisha thamani hii kulingana na kile mwenyeji wako amekupa.

Kila wakati mteja anaunganisha kwa OpenVPN, hati hii huweka anwani 2a00:dd80:003d:000c:1001::1 kama anwani ya IPV6 ya kiolesura cha tap0 cha seva.

Mstari wa mwisho unasanidi Ugunduzi wa Jirani kwa handaki yetu. Nimeongeza anwani ya IPv6 ya muunganisho wa upande wa mteja wa tap0 kama anwani ya proksi.

Haya hapa ni maudhui ya client-disconnect.sh.

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

Hii inafuta tu anwani ya handaki ya IPv6 ya seva, mteja anapokata muunganisho. Rekebisha thamani ya BASERANGE inavyofaa.

Fanya maandishi yatekelezwe.

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

Ongeza maingizo yafuatayo kwa ‘/etc/rc.local’ (Unaweza pia kurekebisha sysctls zinazofaa katika /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

Maingizo haya huwezesha Ugunduzi wa Jirani na Usambazaji. Pia nimeongeza firewall.

Unda ‘/etc/init.d/firewall’ na uweke maudhui yafuatayo.

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

Endesha ‘/etc/rc.local’ na uanzishe ngome.

# sh /etc/rc.local

Hii inakamilisha marekebisho ya upande wa seva.

Ongeza ifuatayo kama mistari ya mwisho ya faili ya usanidi wa mteja wako ‘/etc/openvpn/client.conf‘.

# 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

Hati za juu na chini huunda/huharibu sehemu za mwisho za mteja wa IPV6 za muunganisho wa mteja wa tap0 kila wakati mteja anapounganisha/kukata muunganisho kwa au kutoka kwa seva ya OpenVPN.

Haya hapa maudhui ya up.sh.

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

Hati inapeana anwani ya IPV6 2a00:dd80:3d:c:1001::2 kama anwani ya IPV6 ya mteja na kuweka njia chaguo-msingi ya IPV6 kupitia seva.

Rekebisha IPV6BASE ili iwe sawa na BASERANGE katika usanidi wa seva.

Haya hapa maudhui ya down.sh.

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

Hii inafuta tu anwani ya IPV6 ya mteja na kubomoa njia ya IPV6 mteja anapokata muunganisho kutoka kwa seva.

Rekebisha IPV6BASE ili iwe sawa na BASERANGE katika usanidi wa seva na ufanye hati itekelezwe.

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

Kwa hiari, rekebisha ‘/etc/resolv.conf’ na uongeze seva za majina za IPV6 za Google kwa ubora wa DNS.

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

Anzisha tena openvpn kwenye seva kisha uunganishe nayo kutoka kwa mteja. Unapaswa kuunganishwa. Tembelea test-ipv6.com ili kuona kwamba muunganisho wako wa IPV6 kupitia OpenVPN unafanya kazi.

Viungo vya Marejeleo

Ukurasa wa nyumbani wa OpenVPN