Debian 7-de OpenVPN serweri we müşderi gurmak we konfigurasiýa


Bu makalada Debian Linux ulanyp, OpenVPN-de IPv6 birikmesini nädip almalydygyny jikme-jik görkezýär. Bu amal, Debian 7-de serwer hökmünde IPv6 birikmesi bolan KVM VPS-de we Debian 7 iş stolunda synag edildi. Buýruklar kök hökmünde işlemeli.

OpenVPN, ygtybarly, kodlanan VPN birikmelerini döretmek, internet traffigiňizi ugrukdyrmak üçin SSL/TLS ulanýan VPN programmasydyr, şeýlelik bilen gizlinligiň öňüni alar. Açyk VPN, diwar diwarlaryndan aç-açan geçmäge ýokary ukyply. Aslynda, ýagdaý zerur bolsa, ony HTTPS (443) ýaly TCP portunda işledip bilersiňiz, bu bolsa traffigi biri-birinden tapawutlandyryp, blokirlemek mümkin däl diýen ýaly.

OpenVPN, müşderilere serwerde hakykylygyny tassyklamak üçin öňünden paýlaşylan gizlin açarlar, şahadatnamalar ýa-da ulanyjy atlary/parollary ýaly dürli usullary ulanyp biler. OpenVPN, OpenSSL protokolyny ulanýar we kynçylyklara jogap tassyklamak, ýeke girmek mümkinçiligi, ýük balansy we ýalňyşlyk aýratynlyklary we köp daemon goldawy ýaly köp howpsuzlyk we gözegçilik aýratynlyklaryny ýerine ýetirýär.

Howpsuz aragatnaşyk hakda pikir ediň - OpenVPN pikir ediň. Internet trafigiňize kimdir biriniň girmegini islemeýän bolsaňyz, ýokary kodlanan, ygtybarly tunel arkaly ähli traffigiňizi ugrukdyrmak üçin OpenVPN ulanyň.

Aeroportlarda we beýleki ýerlerde köpçülikleýin WIFI torlaryna birikdirilende bu aýratyn möhümdir. Trafigiňyza kimiň göz aýlaýandygyna hiç wagt ynam edip bilmersiňiz. Gizlinligiň öňüni almak üçin öz OpenVPN serweriňiz arkaly traffigiňizi kanallaşdyryp bilersiňiz.

Traffichli traffigiňyza yzygiderli gözegçilik edýän we islegiňize görä web sahypalaryny bloklaýan ýurtlaryň birinde bolsaňyz, HTTPS trafiginden tapawutlandyrmak üçin TCP port 443 portundan OpenVPN ulanyp bilersiňiz. Hatda, OpenVPN gollaryny kesgitläp bilýän Çuň paket barlag usullaryny ýeňip geçmek üçin, OpenVPN traffigiňizi SSL tuneliniň üstünden tunnellemek ýaly beýleki howpsuzlyk strategiýalary bilen birleşdirip bilersiňiz.

OpenVPN işlemek üçin gaty az talaplary talap edýär. OpenVPN-i işletmek üçin 64 MB RAM we 1 GB HDD giňişlikli ulgam ýeterlikdir. OpenVPN esasy akym ulgamlarynyň hemmesinde diýen ýaly işleýär.

Debian 7-de OpenVPN-i gurmak we konfigurasiýa etmek

OpenVPN gurmak üçin aşakdaky buýrugy işlediň.

# apt-get install openvpn

Düzgüne görä, aňsat-rsa skriptleri '/ usr/share/easy-rsa /' katalogynda gurulýar. Şeýlelik bilen, bu skriptleri gerekli ýere göçürmeli, ýagny/root/easy-rsa.

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

Faýly açyň we aşakdaky üýtgeşmeleri giriziň, ýöne üýtgetmezden ozal asyl faýlyň ätiýaçlyk nusgasyny almagyňyzy maslahat berýärin.

# cp vars{,.orig}

Tekst redaktoryňyzy ulanyp, aňsat-rsa üçin başlangyç bahalary düzüň. Mysal üçin.

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

Ine, men 4096 bit açary ulanýaryn. Isleýşiňiz ýaly 1024, 2048, 4096 ýa-da 8192 bit düwmesini ulanyp bilersiňiz.

Buýrugy işledip, esasy bahalary eksport ediň.

# source ./vars

Öň döredilen şahadatnamalary arassalaň.

./clean-all

Ondan soň, CA şahadatnamasyny we CA açaryny döretmek üçin aşakdaky buýrugy işlediň.

# ./build-ca

Buýrugy işledip serwer şahadatnamasyny dörediň. Serweriň adyny serwer adyňyz bilen çalyşyň.

# ./build-key-server server-name

Diffie Hellman PEM şahadatnamasyny dörediň.

# ./build-dh

Müşderi şahadatnamasyny dörediň. “Müşderiniň adyny” müşderiňiziň ady bilen çalyşyň.

# ./build-key client-name

HMAC koduny dörediň.

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

Şahadatnamalary müşderä we serwer maşynlaryna aşakdaky ýaly göçüriň.

  1. ca.crt-iň müşderide-de, serwerde-de bardygyna göz ýetiriň.
  2. ca.key açary müşderide bolmaly.
  3. Serwer server.crt, dh4096.pem, server.key we ta.key talap edýär.
  4. client.crt, client.key we ta.key müşderide bolmaly.

Serwerde açarlary we şahadatnamalary gurmak üçin buýruklary işlediň.

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

Indi OpenVPN serwerini sazlamaly. '/Etc/openvpn/server.conf' faýly açyň. Aşakda görkezilişi ýaly üýtgeşmeler girizmegiňizi haýyş edýäris.

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

Serwerde IP ugratmagy işjeňleşdiriň.

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

Başlamak üçin OpenVPN gurmak üçin aşakdaky buýrugy işlediň.

# update-rc.d -f openvpn defaults

OpenVPN hyzmatyny başlaň.

# service openvpn restart

Müşderi maşynyna OpenVPN gurmak üçin aşakdaky buýrugy işlediň.

# apt-get install openvpn

Tekst redaktoryny ulanyp, müşderide “/etc/openvpn/client.conf” -da OpenVPN müşderi konfigurasiýasyny guruň. Mysal konfigurasiýasy aşakdaky ýaly:

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

Başlamak üçin OpenVPN gurmak üçin aşakdaky buýrugy işlediň.

# update-rc.d -f openvpn defaults

Müşderide OpenVPN hyzmatyny başlaň.

# service openvpn restart

OpenVPN-iň IPv4-de gowy işleýändigini kanagatlandyranyňyzdan soň, IPv6-ny OpenVPN-de nädip işlemelidigini görkeziň.

Serwer konfigurasiýasynyň '/etc/openvpn/server.conf' faýlynyň soňuna aşakdaky setirleri goşuň.

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

Bu iki skript, her gezek bir müşderi birikdirilende/aýrylanda IPv6 tuneli gurýar/ýok edýär.

Ine, müşderi-connect.sh-iň mazmuny.

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

Öý eýesi maňa 2a00: dd80: 003d: 000c ::/64 blokdan IPV6 salgylaryny belleýär. Şonuň üçin men
ulanýaryn 2a00: dd80: 003d: 000c BASERANGE hökmünde. Bu bahany öý eýesiniň bellänine görä üýtgediň.

Müşderi her gezek OpenVPN-e birikende, bu skript 2a00: dd80: 003d: 000c: 1001 :: 1 adresi serweriň tap0 interfeýsiniň IPV6 salgysy hökmünde belleýär.

Iň soňky setir biziň tunelimiz üçin Goňşularyň açyşyny düzýär. Proksi salgysy hökmünde müşderi tarap tap0 birikmesiniň IPv6 salgysyny goşdum.

Ine, müşderi-disconnect.sh-iň mazmuny.

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

Müşderi aýrylanda, bu diňe serweriň IPv6 tunel salgysyny pozýar. BASERANGE-iň bahasyny degişli derejede üýtgediň.

Ripazgylary ýerine ýetiriň.

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

Aşakdaky ýazgylary '/etc/rc.local' -a goşuň (Degişli sysctls-i /etc/sysctl.conf-da üýtgedip bilersiňiz).

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

Bu ýazgylar Goňşularyň açyşyny we Iberilmegini işjeňleşdirýär. Men diwar diwaryny hem goşdum.

'/Etc/init.d/firewall' dörediň we aşakdaky mazmuny goýuň.

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

'/Etc/rc.local' işlediň we gorag diwaryny işlediň.

# sh /etc/rc.local

Bu serwer tarapyndaky üýtgeşmeleri tamamlaýar.

Müşderi konfigurasiýa faýlyňyzyň iň soňky setirleri hökmünde '/etc/openvpn/client.conf' goşuň.

# 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

Upokarky we aşaky ýazgylar, her gezek bir müşderi OpenVPN serwerine birikdirilende ýa-da birikdirilende IPV6 müşderi ahyrky nokatlaryny gurýar/ýok edýär.

Ine 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

Scriptazgy, IPV6 adresi 2a00: dd80: 3d: c: 1001 :: 2 müşderiniň IPV6 salgysy hökmünde belleýär we serweriň üsti bilen adaty IPV6 ugruny kesgitleýär.

IPV6BASE-i serwer konfigurasiýasyndaky BASERANGE bilen üýtgediň.

Ine, aşak.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

Bu, diňe müşderiniň IPV6 salgysyny pozýar we müşderi serwerden aýrylanda IPV6 ýoluny ýykýar.

IPV6BASE-i serwer konfigurasiýasyndaky BASERANGE bilen deňleşdiriň we skriptiň ýerine ýetirilmegini üpjün ediň.

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

Islege görä, '/etc/resolv.conf' üýtgediň we DNS çözgüdi üçin Google-yň IPV6 at serwerlerini goşuň.

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

Serwerde openvpn-i täzeden açyň we müşderiden birikdiriň. Baglanan bolmaly. OpenVPN-den IPV6 birikmäňiziň işleýändigini görmek üçin test-ipv6.com sahypasyna giriň.

Salgylanma baglanyşyklary

OpenVPN Baş sahypa