OpenVPN Server ug Pag-install ug Pag-configure sa Kliyente sa Debian 7


Gidetalye niini nga artikulo kung giunsa pagkuha ang koneksyon sa IPv6 sa OpenVPN gamit ang Debian Linux. Ang proseso gisulayan sa Debian 7 sa usa ka KVM VPS nga adunay koneksyon sa IPv6 isip server, ug usa ka Debian 7 desktop. Ang mga mando kinahanglan nga ipadagan ingon gamut.

Ang OpenVPN usa ka programa sa VPN nga naggamit sa SSL/TLS aron makahimo og luwas, naka-encrypt nga mga koneksyon sa VPN, aron maruta ang imong trapiko sa Internet, sa ingon mapugngan ang pag-snooping. Ang Open VPN adunay katakus kaayo nga moagi sa mga firewall. Sa tinuud, kung gikinahanglan kini sa sitwasyon, mahimo nimo kini ipadagan sa parehas nga TCP port sama sa HTTPS (443), nga naghimo sa trapiko nga dili mailhan ug sa ingon halos imposible nga babagan.

Ang OpenVPN makagamit ug lain-laing mga pamaagi sama sa pre-shared secret keys, certificates, o usernames/passwords, aron tugotan ang mga kliyente nga mag-authenticate sa server. Ang OpenVPN naggamit sa OpenSSL protocol ug nag-implementar sa daghang mga security ug control features sama sa challenge response authentication, single sign-on capability, load balancing ug failover features ug multi daemon support.

Hunahunaa ang luwas nga komunikasyon - hunahunaa ang OpenVPN. Kung dili nimo gusto ang bisan kinsa nga mag-snooping sa imong trapiko sa internet, gamita ang OpenVPN aron maruta ang tanan nimo nga trapiko pinaagi sa usa ka kaayo nga naka-encrypt, luwas nga tunel.

Kini labi ka hinungdanon kung magkonektar sa publiko nga mga network sa WIFI sa mga tugpahanan ug uban pang mga lugar. Dili ka makasiguro kung kinsa ang nag-snooping sa imong trapiko. Mahimo nimong ipaagi ang imong trapiko pinaagi sa imong kaugalingon nga OpenVPN server aron malikayan ang pag-snooping.

Kung naa ka sa bisan unsang mga nasud nga kanunay nga nagmonitor sa tanan nimong trapiko ug gibabagan ang mga website kung gusto, mahimo nimong gamiton ang OpenVPN sa TCP port 443, aron mahimo kini nga dili mailhan gikan sa trapiko sa HTTPS. Mahimo pa nimo nga ikombinar ang OpenVPN sa ubang mga estratehiya sa seguridad sama sa pag-tunnel sa imong trapiko sa OpenVPN sa usa ka tunel sa SSL, aron mabuntog ang mga pamaagi sa Deep Packet Inspection nga mahimong makaila sa mga pirma sa OpenVPN.

Ang OpenVPN nanginahanglan gamay kaayo nga mga kinahanglanon aron makadagan. Ang usa ka sistema nga adunay 64 MB RAM ug 1 GB nga wanang sa HDD igo na aron makadagan ang OpenVPN. Ang OpenVPN midagan sa halos tanang mainstream nga Operating System.

Pag-instalar ug Pag-configure sa OpenVPN sa Debian 7

Pagdalagan ang mosunod nga sugo aron i-install ang OpenVPN.

# apt-get install openvpn

Sa kasagaran, ang sayon-rsa nga mga script gi-install ubos sa '/usr/share/easy-rsa/' nga direktoryo. Mao nga, kinahanglan naton kopyahon kini nga mga script sa gusto nga lokasyon ie /root/easy-rsa.

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

Ablihi ang file nga 'vars' ug buhata ang mga mosunud nga pagbag-o, apan sa wala pa maghimo mga pagbag-o gisugyot ko kanimo nga mag-backup sa orihinal nga file.

# cp vars{,.orig}

Gamit ang imong text editor, i-set up ang default values para sa easy-rsa. Pananglitan.

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

Dinhi, naggamit ako usa ka 4096 bit nga yawe. Mahimo nimong gamiton ang 1024, 2048, 4096 o 8192 bit key kung gusto nimo.

I-export ang default nga mga kantidad pinaagi sa pagpadagan sa command.

# source ./vars

Limpyohi ang bisan unsang mga sertipiko nga nahimo kaniadto.

./clean-all

Sunod, padagana ang mosunod nga sugo aron makamugna ang CA certificate ug CA key.

# ./build-ca

Paghimo sa sertipiko sa server pinaagi sa pagpadagan sa mando. Ilisan ang 'server name' sa imong server-name.

# ./build-key-server server-name

Paghimo og sertipiko sa Diffie Hellman PEM.

# ./build-dh

Paghimo sa sertipiko sa kliyente. Ilisan ang 'ngalan sa kliyente' sa imong ngalan sa kliyente.

# ./build-key client-name

Paghimo sa HMAC code.

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

Kopyaha ang mga sertipiko sa kliyente ug mga makina sa server sama sa mosunod.

  1. Siguruha nga ang ca.crt anaa sa kliyente ug sa server.
  2. Ang ca.key nga yawe kinahanglang anaa sa kliyente.
  3. Ang server nagkinahanglan og server.crt, dh4096.pem, server.key ug ta.key.
  4. client.crt, client.key ug ta.key kinahanglang anaa sa kliyente.

Aron ma-set up ang mga yawe ug mga sertipiko sa server, padagana ang mga sugo.

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

Karon kinahanglan nimo nga i-configure ang OpenVPN server. Ablihi ang file '/etc/openvpn/server.conf'. Palihug paghimo og mga kausaban sama sa gihulagway sa ubos.

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

I-enable ang IP forwarding sa server.

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

Pagdalagan ang mosunod nga sugo aron i-set up ang OpenVPN aron magsugod sa boot.

# update-rc.d -f openvpn defaults

Pagsugod sa serbisyo sa OpenVPN.

# service openvpn restart

Pagdalagan ang mosunod nga sugo aron i-install ang OpenVPN sa makina sa kliyente.

# apt-get install openvpn

Gamit ang text editor, i-setup ang OpenVPN client configuration sa ‘/etc/openvpn/client.conf‘, sa kliyente. Ang usa ka pananglitan nga pag-configure mao ang mosunod:

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

Pagdalagan ang mosunod nga sugo aron i-set up ang OpenVPN aron magsugod sa boot.

# update-rc.d -f openvpn defaults

Pagsugod sa serbisyo sa OpenVPN sa kliyente.

# service openvpn restart

Kung natagbaw ka nga ang OpenVPN maayo nga nagdagan sa IPv4, ania kung giunsa ang pagtrabaho sa IPv6 sa OpenVPN.

Idugang ang mosunod nga mga linya sa katapusan sa server configuration '/etc/openvpn/server.conf' file.

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

Kining duha ka mga script nagtukod/nagguba sa IPv6 tunnel sa matag higayon nga ang usa ka kliyente magkonektar/magdiskonekta.

Ania ang sulod sa 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

Gihatagan ako sa akong host og IPV6 nga mga adres gikan sa 2a00:dd80:003d:000c::/64 block. Busa, akong gigamit
2a00:dd80:003d:000c isip BASERANGE. Usba kini nga kantidad sumala sa gihatag sa imong host kanimo.

Sa matag higayon nga ang usa ka kliyente magkonektar sa OpenVPN, kini nga script mag-assign sa adres 2a00:dd80:003d:000c:1001::1 isip IPV6 nga adres sa tap0 interface sa server.

Ang kataposang linya nagpahimutang sa Neighbor Discovery para sa among tunel. Akong gidugang ang IPv6 address sa client side tap0 connection isip proxy address.

Ania ang sulod sa client-disconnect.sh.

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

Gitangtang ra niini ang address sa tunnel sa IPv6 sa server, kung ang kliyente mag-disconnect. Usba ang bili sa BASERANGE kon angay.

Himoa nga ma-executable ang mga script.

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

Idugang ang mosunod nga mga entry sa '/etc/rc.local' (Mahimo usab nimo nga usbon ang angay nga sysctls sa /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

Kini nga mga entry nagpalihok sa Neighbor Discovery ug Forwarding. Nagdugang usab ako usa ka firewall.

Paghimo og '/etc/init.d/firewall' ug ibutang ang mosunod nga sulod.

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

Pagdalagan '/etc/rc.local' ug sugdi ang firewall.

# sh /etc/rc.local

Nakompleto niini ang mga pagbag-o sa kilid sa server.

Idugang ang mosunod isip katapusang linya sa imong configuration file sa kliyente '/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

Ang pataas ug paubos nga mga script nagtukod/nagguba sa IPV6 client end point sa client tap0 connection sa matag higayon nga ang usa ka client magkonektar/disconnect sa o gikan sa OpenVPN server.

Ania ang sulod sa 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

Ang script nag-assign sa IPV6 nga adres 2a00:dd80:3d:c:1001::2 isip kliyente nga IPV6 address ug nagtakda sa default nga ruta sa IPV6 pinaagi sa server.

Usba ang IPV6BASE nga parehas sa BASERANGE sa configuration sa server.

Ania ang sulod sa 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

Gitangtang lang niini ang IPV6 nga adres sa kliyente ug giguba ang ruta sa IPV6 kung ang kliyente nag-disconnect gikan sa server.

Usba ang IPV6BASE aron mahimong parehas sa BASERANGE sa configuration sa server ug himoong executable ang script.

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

Opsyonal, usba ang '/etc/resolv.conf' ug idugang ang mga nameserver sa IPV6 sa Google alang sa resolusyon sa DNS.

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

I-restart ang openvpn sa server ug dayon ikonektar kini gikan sa kliyente. Dapat konektado ka. Bisitaha ang test-ipv6.com aron makita nga ang imong koneksyon sa IPV6 sa OpenVPN nagtrabaho.

Mga Reperensya nga Link

OpenVPN nga Panimalay