{"id":234,"date":"2010-06-22T16:08:21","date_gmt":"2010-06-22T13:08:21","guid":{"rendered":"http:\/\/skeletor.org.ua\/?p=234"},"modified":"2021-01-15T10:26:08","modified_gmt":"2021-01-15T08:26:08","slug":"openvpn-%d0%be%d0%b4%d0%bd%d0%b0-%d0%bf%d0%be%d0%b4%d1%81%d0%b5%d1%82%d1%8c-%d0%bf%d0%be-%d1%80%d0%b0%d0%b7%d0%bd%d1%8b%d0%b5-%d1%81%d1%82%d0%be%d1%80%d0%be%d0%bd%d1%8b","status":"publish","type":"post","link":"https:\/\/skeletor.org.ua\/?p=234","title":{"rendered":"openvpn: \u043e\u0434\u043d\u0430 \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b"},"content":{"rendered":"<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u043e\u0434\u043a\u0438\u043d\u0443\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u043a\u0443: \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043f\u043e\u00a0<strong>vpn&#8217;y<\/strong> 2 \u043e\u0444\u0438\u0441\u0430, \u043f\u0440\u0438\u0447\u0451\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0443 \u043d\u0438\u0445 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <strong>vpn&#8217;a<\/strong> \u0432\u044b\u0431\u0440\u0430\u043b <strong>openvpn<\/strong>. \u0428\u043b\u044e\u0437\u044b \u043a\u0440\u0443\u0442\u0438\u043b\u0438\u0441\u044c \u043d\u0430\u00a0<strong>FreeBSD 7.2<\/strong>. \u0414\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u00a0<strong>vpn<\/strong> \u0431\u044b\u043b\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0441\u0435\u0442\u044c <strong>10.15.0.0\/30<\/strong>, \u0442\u043e \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 2 \u0430\u0434\u0440\u0435\u0441\u0430: <strong>10.15.0.1, 10.15.0.2<\/strong><\/p>\n<p><!--more--><\/p>\n<p><strong><span style=\"color: #ff0000;\">1) \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430.<\/span><\/strong><\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u043e\u043d\u0438 \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0418\u0434\u0435\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0432\u0430: \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u00a0<strong>vpn&#8217;y<\/strong>, \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043c\u043e\u0441\u0442 \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c<strong>vpn<\/strong> \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u044c\u044e.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0440\u0438\u0434\u0436\u043e\u043c (\u043c\u043e\u0441\u0442\u043e\u043c), \u043d\u0443\u0436\u043d\u043e \u043b\u0438\u0431\u043e<\/p>\n<p><em><span style=\"color: #ff6600;\">&#8211; \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432 \u044f\u0434\u0440\u0435: \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u044f\u0434\u0440\u043e \u0441 \u043e\u043f\u0446\u0438\u0435\u0439<\/span><\/em><\/p>\n<p><code>device if_bridge<\/code><\/p>\n<p><em><span style=\"color: #ff6600;\">&#8211; \u043b\u0438\u0431\u043e \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u043c: \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u00a0<strong>\/boot\/loader.conf<\/strong><\/span><\/em><\/p>\n<p><code>if_bridge_load=\"YES\"<\/code><\/p>\n<p>\u0415\u0449\u0451 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043c\u0430\u043b\u043e\u0432\u0430\u0436\u043d\u044b\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u00a0<strong>tap<\/strong> \u0432\u043c\u0435\u0441\u0442\u043e\u00a0<strong>tun<\/strong> \u0432\u00a0<strong>openvpn<\/strong>. \u0412\u00a0<strong>tap<\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u044f\u0446\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435\u00a0<strong>OSI<\/strong> 2, \u0430 \u0432\u00a0<strong>tun<\/strong> &#8211; 3. \u041d\u0430\u043c \u0436\u0435 \u043d\u0443\u0436\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e 2-\u043e\u0439. \u0414\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <strong>tap<\/strong> \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u043c: \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u00a0<strong>\/boot\/loader.conf<\/strong>:<\/p>\n<p><code>if_tap_load=\"YES\"<\/code><\/p>\n<p><strong><span style=\"color: #ff0000;\">2)\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 openvpn&#8217;a.<\/span><\/strong><\/p>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u00a0<strong>openvpn&#8217;a<\/strong> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 (<em>\u0441\u0435\u0440\u0432\u0435\u0440<\/em>):<\/p>\n<p><code>dev tap<br \/>\nport 2284<br \/>\nifconfig 10.15.0.1 255.255.255.252<br \/>\nping 10<br \/>\nping-restart 120<br \/>\ncompress lzo<br \/>\nverb 3<br \/>\nca ca.crt<br \/>\ncert server.crt<br \/>\nkey server.key<br \/>\ndh dh1024.pem<br \/>\ntls-server<br \/>\nuser nobody<br \/>\ngroup nobody<br \/>\nlog-append \/var\/log\/vpn\/server.log<br \/>\nstatus \/var\/log\/vpn\/status.log<\/code><\/p>\n<p>\u043a\u043e\u043d\u0444\u0438\u0433\u00a0<em>\u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/em>:<\/p>\n<p><code>dev tap<br \/>\nport 2284<br \/>\nremote XX.XX.XX.XX<br \/>\nifconfig 10.15.0.2 255.255.255.252<br \/>\nping 10<br \/>\nping-restart 120<br \/>\nuser nobody<br \/>\ngroup nobody<br \/>\ncompress lzo<br \/>\nverb 3<br \/>\nca ca.crt<br \/>\ncert client1.crt<br \/>\nkey client1.key<br \/>\ndh dh1024.pem<br \/>\ntls-client<br \/>\nexplicit-exit-notify 2<br \/>\nlog-append \/var\/log\/vpn\/server.log<br \/>\nstatus \/var\/log\/vpn\/status.log<\/code><\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043a\u0440\u0438\u043f\u0442, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0438\u0439\u00a0<strong>vpn<\/strong>-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p><code>#!\/bin\/sh<br \/>\nwhile :; do<br \/>\n\/usr\/local\/sbin\/openvpn --cd \/usr\/local\/etc\/openvpn --config \/usr\/local\/etc\/openvpn\/openvpn.conf &gt;&gt; \/var\/log\/vpn.log<br \/>\ndone<br \/>\n<\/code><br \/>\n\u0421\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u043c\u0435\u0449\u0430\u044e \u0432 \u043f\u0430\u043f\u043a\u0443\u00a0<strong>\/scripts<\/strong>, \u0430 \u0434\u043b\u044f \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 (\u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e\u00a0<strong>vpn<\/strong>) \u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0435\u0433\u043e \u0432\u00a0<strong>\/usr\/local\/etc\/rc.d<\/strong>:<\/p>\n<p><code>#!\/bin\/sh<br \/>\n# PROVIDE: vpn<br \/>\n# REQUIRE: DAEMON<br \/>\n# KEYWORD: shutdown<br \/>\n. \/etc\/rc.subr<br \/>\n: ${vpn_enable=\"YES\"}<br \/>\nname=\"vpn\"<br \/>\nrcvar=`set_rcvar`<br \/>\nload_rc_config $name<br \/>\ncommand_args=\"&amp;\"<br \/>\ncommand=\"\/scripts\/${name}\"<br \/>\nrun_rc_command \"$1\"<br \/>\n<\/code><br \/>\n<strong><span style=\"color: #ff0000;\">3)\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.<\/span><\/strong><\/p>\n<p>\u0414\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0432\u00a0<strong>\/etc\/rc.conf<\/strong> \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<p><code>cloned_interfaces=\"bridge0 tap0\"<br \/>\nifconfig_bridge0=\"addm fxp0 addm tap0 up\"<br \/>\n<\/code><br \/>\n\u0433\u0434\u0435,\u00a0<strong>fxp0<\/strong> &#8211; \u0441\u0435\u0442\u0435\u0432\u0430\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u043b\u043e\u043a\u0430\u043b\u043a\u0443.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u0440\u0438\u0434\u0436, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b\u00a0<strong>vpn&#8217;a,<\/strong> \u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440. \u0410 \u0435\u0441\u043b\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440, \u0442\u043e \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439:<\/p>\n<p><em><span style=\"color: #ff6600;\">&#8211; \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u0438 tap, bridge:<\/span><\/em><\/p>\n<p><code>#kldload if_bridge<br \/>\n#kldload if_tap<\/code><\/p>\n<p><em><span style=\"color: #ff6600;\">&#8211; \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u043b\u0438\u0441\u044c \u043b\u0438 \u043e\u043d\u0438:<\/span><\/em><\/p>\n<p><code># kldstat<br \/>\nId Refs Address\u00a0\u00a0\u00a0 Size\u00a0\u00a0\u00a0\u00a0 Name<br \/>\n1\u00a0\u00a0\u00a0 9 0xc0400000 8a0a58\u00a0\u00a0 kernel<br \/>\n2\u00a0\u00a0\u00a0 1 0xc0ca1000 585c\u00a0\u00a0\u00a0\u00a0 if_tap.ko<br \/>\n3\u00a0\u00a0\u00a0 1 0xc0ca7000 a30c\u00a0\u00a0\u00a0\u00a0 if_bridge.ko<br \/>\n4\u00a0\u00a0\u00a0 2 0xc0cb2000 62b0\u00a0\u00a0\u00a0\u00a0 bridgestp.ko<\/code><\/p>\n<p><em><span style=\"color: #ff6600;\">&#8211; \u0441\u043e\u0437\u0434\u0430\u0451\u043c bridge:<\/span><\/em><\/p>\n<p><code>#ifconfig bridge0 create<br \/>\n#ifconfig bridge0 addm fxp0 addm tap0 up<br \/>\n<\/code><br \/>\n<em><span style=\"color: #ff6600;\">&#8211; \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043b\u0441\u044f \u043b\u0438:<\/span><\/em><\/p>\n<p><code>#ifconfig bridge0<br \/>\nbridge0: flags=8843 metric 0 mtu 1500<br \/>\nether 2e:f5:7d:09:07:15<br \/>\nid 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15<br \/>\nmaxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200<br \/>\nroot id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0<br \/>\nmember: tap0 flags=143<br \/>\nifmaxaddr 0 port 8 priority 128 path cost 2000000<br \/>\nmember: fxp0 flags=143<br \/>\nifmaxaddr 0 port 5 priority 128 path cost 2000000<\/code><\/p>\n<p><em><span style=\"color: #ff6600;\">&#8211; \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u043f\u043e\u0434\u043d\u044f\u0442\u0438\u044f vpn&#8217;a:<\/span><\/em><\/p>\n<p><code>#\/scripts\/vpn &amp;<\/code><\/p>\n<p><em><span style=\"color: #ff6600;\">&#8211; \u043d\u0443 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u0430\u043c\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435:<\/span><\/em><br \/>\n<code><br \/>\n# ifconfig tap0<br \/>\ntap0: flags=8943 metric 0 mtu 1500<br \/>\nether 00:bd:26:0f:00:00<br \/>\ninet 10.15.0.1 netmask 0xfffffffc broadcast 10.15.0.3<br \/>\nOpened by PID 1278<\/code><\/p>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0432\u0441\u0451 :).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u043e\u0434\u043a\u0438\u043d\u0443\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u043a\u0443: \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043f\u043e\u00a0vpn&#8217;y 2 \u043e\u0444\u0438\u0441\u0430, \u043f\u0440\u0438\u0447\u0451\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0443 \u043d\u0438\u0445 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 vpn&#8217;a \u0432\u044b\u0431\u0440\u0430\u043b openvpn. \u0428\u043b\u044e\u0437\u044b \u043a\u0440\u0443\u0442\u0438\u043b\u0438\u0441\u044c \u043d\u0430\u00a0FreeBSD 7.2. \u0414\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u00a0vpn \u0431\u044b\u043b\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0441\u0435\u0442\u044c 10.15.0.0\/30, \u0442\u043e \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 2 \u0430\u0434\u0440\u0435\u0441\u0430: 10.15.0.1, 10.15.0.2<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,13],"tags":[],"class_list":["post-234","post","type-post","status-publish","format-standard","hentry","category-freebsd","category-security"],"_links":{"self":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=234"}],"version-history":[{"count":6,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/234\/revisions"}],"predecessor-version":[{"id":5692,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/234\/revisions\/5692"}],"wp:attachment":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}