<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Openvpn_ipv6_tunelis</id>
	<title>Openvpn ipv6 tunelis - Versijų istorija</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Openvpn_ipv6_tunelis"/>
	<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Openvpn_ipv6_tunelis&amp;action=history"/>
	<updated>2026-04-17T17:41:33Z</updated>
	<subtitle>Šio puslapio versijų istorija projekte</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.eofnet.lt/w//index.php?title=Openvpn_ipv6_tunelis&amp;diff=8579&amp;oldid=prev</id>
		<title>\dev\null 11:51, 7 sausio 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Openvpn_ipv6_tunelis&amp;diff=8579&amp;oldid=prev"/>
		<updated>2018-01-07T11:51:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Naujas puslapis&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Situacija kai reikia į lokalų tinklą įvesti [[ipv6]], baigiasi pasenusių maršrutizatorių derinimo nesekme nes jie dažniausia nepripažysta ir nesupranta [[ipv6]] bei [[41 protokolas|41 protokolo]]. Šis straipsnis taip pat tinka tiems kurie nori naršyti, naudojant [[ipv6]] bet nenori užsiimti maršrutizatorių, klientų bei viso tinklo sudėtingu derinimu. Straipsnis padės [[openvpn]] pagalba įgalinti [[ipv6]] veikimą kliento kompiuteryje be didelių pastangų. Jums tereikia [[ipv6]] natyviai arba per [[4to6]] tunelį  palaikančio serverio su [[root]] teisėmis ir [[openvpn]].&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Screenshot at Jan 07 13-43-02.png]]&lt;br /&gt;
&lt;br /&gt;
IPV6 konfigūracija serveryje:&lt;br /&gt;
* Public [[IPv6]]: 2a07:5741:0:c::1&lt;br /&gt;
* /64 [[Potinklis]]: 2a07:5741:0:c::/64&lt;br /&gt;
* Pasirinktas [[VPN]] [[Ipv6]] [[potinklis]]: 2a07:5741:0:c:80::/112&lt;br /&gt;
&lt;br /&gt;
== Sistemos konfigūracija ==&lt;br /&gt;
Įgalinam [[ipv4]]/[[ipv6]] maršrutizavimą, į '''/etc/sysctl.conf''' įrašę:&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 net.ipv6.conf.all.forwarding = 1&lt;br /&gt;
 net.ipv4.ip_forward=1&lt;br /&gt;
 net.ipv6.conf.all.forwarding=1&lt;br /&gt;
 net.ipv6.conf.all.proxy_ndp = 1&lt;br /&gt;
 net.ipv4.conf.all.accept_redirects = 0&lt;br /&gt;
 net.ipv6.conf.all.accept_redirects = 0&lt;br /&gt;
 net.ipv4.conf.all.send_redirects = 0&lt;br /&gt;
 net.ipv6.conf.all.forwarding=1&lt;br /&gt;
 net.ipv6.conf.default.forwarding=1&lt;br /&gt;
 net.ipv6.conf.eth0.forwarding=1&lt;br /&gt;
Įkrauname naujai įrašytas taisykles:&lt;br /&gt;
 sysctl -p&lt;br /&gt;
&lt;br /&gt;
== OpenVPN diegimas ==&lt;br /&gt;
 apt-get install easy-rsa openvpn sudo bind9&lt;br /&gt;
Pasiruošiame generuoti sertifikatus, vpn duomenų šifravimui:&lt;br /&gt;
 cp -r /usr/share/easy-rsa/ /etc/openvpn&lt;br /&gt;
 mkdir /etc/openvpn/easy-rsa/keys&lt;br /&gt;
Atsidarome '''/etc/openvpn/easy-rsa/vars''' ir paredaguojame šiuos kintamuosius:&lt;br /&gt;
 export KEY_COUNTRY=&amp;quot;LT&amp;quot;&lt;br /&gt;
 export KEY_PROVINCE=&amp;quot;CA&amp;quot;&lt;br /&gt;
 export KEY_CITY=&amp;quot;Vilnius&amp;quot;&lt;br /&gt;
 export KEY_ORG=&amp;quot;ManoImone&amp;quot;&lt;br /&gt;
 export KEY_EMAIL=&amp;quot;as@manoimone.lt&amp;quot;&lt;br /&gt;
 export KEY_OU=&amp;quot;ManoImone&amp;quot;&lt;br /&gt;
 export KEY_ALTNAMES=&amp;quot;altnames&amp;quot;&lt;br /&gt;
 export KEY_NAME=&amp;quot;serveris&amp;quot;&lt;br /&gt;
Išsaugome, sugeneruojame [[Diffie-Hellman parametrai|hellmano]] parametrus su openssl:&lt;br /&gt;
 openssl dhparam -out /etc/openvpn/dh2048.pem 2048&lt;br /&gt;
Padarome bugfix, jeigu openssl versija lygi arba didesnė negu 1:&lt;br /&gt;
 ln -s openssl-1.0.0.cnf openssl.cnf&lt;br /&gt;
Sugeneruojame sertifikatus, reikalui esant visada galima keisti kintamuosius:&lt;br /&gt;
 cd /etc/openvpn/easy-rsa&lt;br /&gt;
 source ./vars&lt;br /&gt;
 ./clean-all&lt;br /&gt;
 ./build-ca&lt;br /&gt;
 ./build-key-server serveris # Naudojame kintamajį iš '''/etc/openvpn/easy-rsa/vars:export KEY_NAME=&amp;quot;serveris&amp;quot;'''&lt;br /&gt;
 cp /etc/openvpn/easy-rsa/keys/{serveris.crt,serveris.key,ca.crt} /etc/openvpn # Pakeičiame failo pavadinimą '''serveris''' (jeigu reikia)&lt;br /&gt;
Pridedame sistemos vartotoją vpn (ant jo leisime openvpn, saugumui pakelti):&lt;br /&gt;
 useradd -r -s /bin/false vpn&lt;br /&gt;
Sukuriame kliento konfigūracijos direktoriją:&lt;br /&gt;
 mkdir /etc/openvpn/ccd&lt;br /&gt;
Sudedame '''/etc/openvpn/variables''' globalius openvpn kintamuosius&lt;br /&gt;
 prefix=2a07:5741:0:c:80:&lt;br /&gt;
 prefixlen=112&lt;br /&gt;
Sukuriame kiento prisijungimo scriptą '''/etc/openvpn/server-clientconnect.sh''', su šiuo tekstu&lt;br /&gt;
&amp;lt;SyntaxHighLight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# Check client variables&lt;br /&gt;
if [ -z &amp;quot;$ifconfig_pool_remote_ip&amp;quot; ] || [ -z &amp;quot;$common_name&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Missing environment variable.&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Load server variables&lt;br /&gt;
. /etc/openvpn/variables&lt;br /&gt;
&lt;br /&gt;
ipv6=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Find out if there is a specific config with fixed IPv6 for this client&lt;br /&gt;
if [ -f &amp;quot;/etc/openvpn/ccd/$common_name&amp;quot; ]; then&lt;br /&gt;
        # Get fixed IPv6 from client config file  &lt;br /&gt;
        ipv6=$(sed -nr 's/^.*ifconfig-ipv6-push[ \t]+([0-9a-fA-F\\:]+).*$/\1/p' &amp;quot;/etc/openvpn/ccd/$common_name&amp;quot;)&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Get IPv6 from IPv4&lt;br /&gt;
if [ -z &amp;quot;$ipv6&amp;quot; ]; then&lt;br /&gt;
        ipp=$(echo &amp;quot;$ifconfig_pool_remote_ip&amp;quot; | cut -d. -f4)&lt;br /&gt;
        if ! [ &amp;quot;$ipp&amp;quot; -ge 2 -a &amp;quot;$ipp&amp;quot; -le 254 ] 2&amp;gt;/dev/null; then&lt;br /&gt;
                echo &amp;quot;Invalid IPv4 part.&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
        hexipp=$(printf '%x' $ipp)&lt;br /&gt;
        ipv6=&amp;quot;$prefix$hexipp&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Create proxy rule&lt;br /&gt;
/sbin/ip -6 neigh add proxy $ipv6 dev eth0&lt;br /&gt;
&amp;lt;/SyntaxHighLight&amp;gt;&lt;br /&gt;
Taip pat kliento atsijungimo failą, '''/etc/openvpn/server-clientdisconnect.sh'''&lt;br /&gt;
&amp;lt;SyntaxHighLight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# Check client variables&lt;br /&gt;
if [ -z &amp;quot;$ifconfig_pool_remote_ip&amp;quot; ] || [ -z &amp;quot;$common_name&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Missing environment variable.&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Load server variables&lt;br /&gt;
. /etc/openvpn/variables&lt;br /&gt;
&lt;br /&gt;
ipv6=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Find out if there is a specific config with fixed IPv6 for this client&lt;br /&gt;
if [ -f &amp;quot;/etc/openvpn/ccd/$common_name&amp;quot; ]; then&lt;br /&gt;
        # Get fixed IPv6 from client config file  &lt;br /&gt;
        ipv6=$(sed -nr 's/^.*ifconfig-ipv6-push[ \t]+([0-9a-fA-F\\:]+).*$/\1/p' &amp;quot;/etc/openvpn/ccd/$common_name&amp;quot;)&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Get IPv6 from IPv4&lt;br /&gt;
if [ -z &amp;quot;$ipv6&amp;quot; ]; then&lt;br /&gt;
        ipp=$(echo &amp;quot;$ifconfig_pool_remote_ip&amp;quot; | cut -d. -f4)&lt;br /&gt;
        if ! [ &amp;quot;$ipp&amp;quot; -ge 2 -a &amp;quot;$ipp&amp;quot; -le 254 ] 2&amp;gt;/dev/null; then&lt;br /&gt;
                echo &amp;quot;Invalid IPv4 part.&amp;quot;&lt;br /&gt;
                exit 1&lt;br /&gt;
        fi&lt;br /&gt;
        hexipp=$(printf '%x' $ipp)&lt;br /&gt;
        ipv6=&amp;quot;$prefix$hexipp&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Delete proxy rule&lt;br /&gt;
/sbin/ip -6 neigh del proxy $ipv6 dev eth0&lt;br /&gt;
&amp;lt;/SyntaxHighlight&amp;gt;&lt;br /&gt;
Pridedame pasileidimo flag'ą (+x):&lt;br /&gt;
 chmod +x /etc/openvpn/server-clientconnect.sh&lt;br /&gt;
 chmod +x /etc/openvpn/server-clientdisconnect.sh&lt;br /&gt;
Įdedame pora [[sudo]] taisyklių į '''/etc/sudoers'''&lt;br /&gt;
 Defaults:vpn env_keep += &amp;quot;ifconfig_pool_remote_ip common_name&amp;quot;&lt;br /&gt;
 vpn ALL=NOPASSWD: /etc/openvpn/server-clientconnect.sh&lt;br /&gt;
 vpn ALL=NOPASSWD: /etc/openvpn/server-clientdisconnect.sh&lt;br /&gt;
Atėjo laikas surašyti pagrindinį openvpn konfigūracijos failą, '''/etc/openvpn/server.conf''':&lt;br /&gt;
 port 443&lt;br /&gt;
 proto tcp-server&lt;br /&gt;
 dev tun0&lt;br /&gt;
 tun-ipv6&lt;br /&gt;
 push tun-ipv6&lt;br /&gt;
 ca ca.crt&lt;br /&gt;
 cert serveris.crt # jeigu reikia pakeičiame pagal aplinkybes&lt;br /&gt;
 key serveris.key # jeigu reikia pakeičiame pagal aplinkybes&lt;br /&gt;
 dh dh2048.pem&lt;br /&gt;
 client-to-client&lt;br /&gt;
 client-config-dir /etc/openvpn/ccd&lt;br /&gt;
 script-security 2&lt;br /&gt;
 client-connect &amp;quot;/usr/bin/sudo -u root /etc/openvpn/server-clientconnect.sh&amp;quot;&lt;br /&gt;
 client-disconnect &amp;quot;/usr/bin/sudo -u root /etc/openvpn/server-clientdisconnect.sh&amp;quot;&lt;br /&gt;
 server 10.8.0.0 255.255.255.0&lt;br /&gt;
 server-ipv6 2a07:5741:0:c:80::/112&lt;br /&gt;
 topology subnet&lt;br /&gt;
 route-ipv6 2a07:5741:0:c:80::/64&lt;br /&gt;
 push &amp;quot;route-ipv6 2000::/4&amp;quot;&lt;br /&gt;
 push &amp;quot;route-ipv6 3000::/4&amp;quot;&lt;br /&gt;
 push &amp;quot;route-ipv6 fc00::/4&amp;quot;&lt;br /&gt;
 push &amp;quot;redirect-gateway ipv6 !ipv4&amp;quot;&lt;br /&gt;
 push &amp;quot;dhcp-option DNS 10.8.0.1&amp;quot;&lt;br /&gt;
 push &amp;quot;dhcp-option DNS 208.67.222.222&amp;quot;&lt;br /&gt;
 push &amp;quot;dhcp-option DNS 208.67.220.220&amp;quot;&lt;br /&gt;
 push &amp;quot;redirect-gateway def1 bypass-dhcp&amp;quot;&lt;br /&gt;
 #push &amp;quot;redirect-gateway ipv6&amp;quot; #For iOS&lt;br /&gt;
 persist-key&lt;br /&gt;
 persist-tun&lt;br /&gt;
 keepalive 10 120&lt;br /&gt;
 comp-lzo&lt;br /&gt;
 user vpn&lt;br /&gt;
 group vpn&lt;br /&gt;
 status openvpn-status.log&lt;br /&gt;
 verb 4&lt;br /&gt;
Dar turime praleisti ipv6 per išorinį adresą, t.y:&lt;br /&gt;
 ip6tables -t nat -A POSTROUTING -s 2a07:5741:0:c:80::/112 -j SNAT --to 2a07:5741:0:c::1&lt;br /&gt;
 ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
Taip pat jeigu naudojame debian ir kitas panašias distribucijas, turime praleisti udp 53 prievadą DNS užklausoms:&lt;br /&gt;
 -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT&lt;br /&gt;
[[Debian_firewall_rules|Plačiau kaip papildomai įdėti ugniasienės taisykles]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prieš paleidžiant openvpn įsitikinkite ar paleistas bind9 (dns name servisas).&lt;br /&gt;
 systemctl status bind9&lt;br /&gt;
Jei ne tuomet reikia jį įjungti ir paleisti, jis bus atsakingas už dns užklausas:&lt;br /&gt;
 systemctl enable bind9&lt;br /&gt;
 systemctl start bind9 &lt;br /&gt;
Dabar galima paleisti openvpn&lt;br /&gt;
 systemctl start openvpn&lt;br /&gt;
arba paleisti debug režimu (jeigu kažkas nesuveikė)&lt;br /&gt;
 openvpn --cd /etc/openvpn --config /etc/openvpn/server.conf&lt;br /&gt;
== Kliento sertifikato konfigūracija ==&lt;br /&gt;
 cd /etc/openvpn/easy-rsa&lt;br /&gt;
 source ./vars&lt;br /&gt;
 ./build-key ipv6-lt&lt;br /&gt;
Turėsime sugeneruotus šiuos failus (tai prisijungimo raktai):&lt;br /&gt;
* /etc/openvpn/easy-rsa/keys/ca.crt&lt;br /&gt;
* /etc/openvpn/easy-rsa/keys/ipv6-lt.crt&lt;br /&gt;
* /etc/openvpn/easy-rsa/keys/ipv6-lt.key&lt;br /&gt;
Kuriuos reiktų parsisiųsti tulimesniam kliento konfigūravimui&lt;br /&gt;
Sukuriame failą su kliento ipv6 konfigūracija '''/etc/openvpn/ccd/ipv6-lt,''' pavadinimas taip pat priklauso kokiu prieš tai pavadinimu kurėte raktus.&lt;br /&gt;
 ifconfig-push 10.8.0.101 255.255.255.0&lt;br /&gt;
 ifconfig-ipv6-push 2a07:5741:0:c:80::1001/112 2a07:5741:0:c:80::1&lt;br /&gt;
=== Kliento kompiuteris ===&lt;br /&gt;
&lt;br /&gt;
[[Vaizdas:Screenshot at Jan 07 13-47-54.png]]&lt;br /&gt;
&lt;br /&gt;
'''Atsisiunčiame kokį nors OpenVPN klientą, priklauso kokią operacijų sistemą naudojate.'''&lt;br /&gt;
* Mac OS X - [https://tunnelblick.net TunnelBlick], [https://www.sparklabs.com/viscosity/ Viscosity].&lt;br /&gt;
* Widows - [https://www.sparklabs.com/viscosity/ Viscosity] [https://openvpn.net/index.php/download/community-downloads.html OpenVPN].&lt;br /&gt;
* Linux - '''sudo openvpn --config /kelias/iki/ipv6-lt.ovpn''', arba visokia GUI fygnia randama standartiškai pagal grafinę aplinką (pvz.: network-manager-openvpn-gnome ir t.t.).&lt;br /&gt;
Sukuriame kliento prisijungimo prie openvpn failą '''ipv6-lt.ovpn''' į jį surašome šį tekstą:&lt;br /&gt;
 client&lt;br /&gt;
 dev tun&lt;br /&gt;
 proto tcp-client&lt;br /&gt;
 remote xxx.xxx.xxx.xxx 443 # '''BŪTINAI PAKEISTI''', vietoje '''xxx.xxx.xxx.xxx''' reikia nurodyti jūsų serverio išorinį ip ant kurio kaba openvpn&lt;br /&gt;
 nobind&lt;br /&gt;
 persist-key&lt;br /&gt;
 persist-tun&lt;br /&gt;
 ;user nobody&lt;br /&gt;
 ;group nobody&lt;br /&gt;
 remote-cert-tls server&lt;br /&gt;
 ns-cert-type server&lt;br /&gt;
 comp-lzo&lt;br /&gt;
 &amp;lt;ca&amp;gt;&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 '''(čia įsirašo tekstas iš ca.crt)'''&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 &amp;lt;/ca&amp;gt;&lt;br /&gt;
 &amp;lt;cert&amp;gt;&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 '''(čia įsirašo tekstas iš ipv6-lt.crt)'''&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 &amp;lt;/cert&amp;gt;&lt;br /&gt;
 &amp;lt;key&amp;gt;&lt;br /&gt;
 -----BEGIN PRIVATE KEY-----&lt;br /&gt;
 '''(čia įsirašo tekstas iš ipv6-lt.key)'''&lt;br /&gt;
 -----END PRIVATE KEY-----&lt;br /&gt;
 &amp;lt;/key&amp;gt;&lt;br /&gt;
Štai ir viskas, galima pratestuoti kliento kompiuteryje paleidus:&lt;br /&gt;
 ping6 www.kame.net&lt;br /&gt;
Taip pat galite laisvai naudotis Google Chrome, kad galėtumėte naršyti platųjį [[ipv6]] tinklą.&lt;br /&gt;
&lt;br /&gt;
{{Template:Distributions}}&lt;br /&gt;
[[Category:IPv6]]&lt;br /&gt;
[[Category:VPN]]&lt;br /&gt;
[[Category:Saugumas]]&lt;br /&gt;
[[Category:Tinklas]]&lt;/div&gt;</summary>
		<author><name>\dev\null</name></author>
	</entry>
</feed>