{"id":691,"date":"2010-08-30T14:20:40","date_gmt":"2010-08-30T12:20:40","guid":{"rendered":"http:\/\/blog.walii.es\/2010\/08\/30\/openvpn-en-fonera-bridge\/"},"modified":"2011-01-16T23:34:47","modified_gmt":"2011-01-16T21:34:47","slug":"openvpn-en-fonera-bridge","status":"publish","type":"post","link":"https:\/\/blog.walii.es\/?p=691","title":{"rendered":"OPENVPN en FONERA  BRIDGE"},"content":{"rendered":"<p>HOla\u2026 quer\u00eda dejar nota de esta configuraci\u00f3n para poder recuperarla en cuanto la necesite, y para que la gente la tenga a su alcance.<\/p>\n<p>Es una configuraci\u00f3n BRIDGE, esto quiere decir que se conecta a la VPN, y una vez conectado se le asigna una IP del mismo rango que la red destino, y para todo funcionamiento l\u00f3gico, es como que est\u00e9 conectado con un cable muuuuy largo a su red privada. Pudiendo imprimir en sus impresoras, mirar sus discos de red o tambi\u00e9n jugar en red, desde cualquier parte del mundo como si estuviese conectado con un cable en su red de \u00e1rea local.<\/p>\n<p style=\"text-align: center;\"><img src=\"http:\/\/blog.walii.es\/wp-content\/uploads\/2010\/08\/083010_1220_OPENVPNenFO1.png\" alt=\"\" \/><\/p>\n<p>Se necesitan varias cosas:<\/p>\n<p>Instalamos el OPENVPN:<\/p>\n<p><span style=\"font-family: Courier New; font-size: 8pt;\"><strong>Opkg update<br \/>\n<\/strong><\/span><\/p>\n<p><span style=\"font-family: Courier New; font-size: 8pt;\"><strong>Opkg install openvpn<br \/>\n<\/strong><\/span><\/p>\n<p>Instalamos los manejadores de compresi\u00f3n:<\/p>\n<p><span style=\"font-family: Courier New; font-size: 8pt;\"><strong>opkg install liblzo<br \/>\n<\/strong><\/span><\/p>\n<p>Creamos una llave para ser distribuida entre los clientes que deseen conectarse:<\/p>\n<p>En este caso lo llamaremos \u00absecret.key\u00bb:<\/p>\n<p><span style=\"font-family: Courier New; font-size: 8pt;\"><strong>Openvpn \u2013genkey \u2013secret secret.key<br \/>\n<\/strong><\/span><\/p>\n<p>Y la ponemos en el directorio que corresponda\u2026 (Mirar la configuraci\u00f3n del openvpn)<\/p>\n<p>Creamos un iniciador del t\u00fanel, este archivo lo creamos en el directorio <strong>\/etc\/init.d <\/strong>con cualquier nombre por ejemplo <strong>openw<br \/>\n<\/strong><\/p>\n<p><span style=\"font-family: Courier New; font-size: 10pt;\"> <\/span><\/p>\n<p>[sourcecode language=\u00bbc\u00bb]<\/p>\n<p>Vi \/etc\/init.d\/openw<\/p>\n<p>#!\/bin\/sh \/etc\/rc.common<\/p>\n<p>START=98<\/p>\n<p>STOP=15<\/p>\n<p>start() {<\/p>\n<p>\/etc\/openvpn\/startupscript up<\/p>\n<p>openvpn &#8211;daemon &#8211;config \/etc\/openvpn\/server.ovpn<\/p>\n<p>}<\/p>\n<p>restart() {<\/p>\n<p>$0 stop<\/p>\n<p>sleep 3<\/p>\n<p>$0 start<\/p>\n<p>}<\/p>\n<p>reload() {<\/p>\n<p>killall -SIGHUP openvpn<\/p>\n<p>}<\/p>\n<p>stop() {<\/p>\n<p>killall openvpn<\/p>\n<p>\/etc\/openvpn\/startupscript down<\/p>\n<p>}<\/p>\n<p>[\/sourcecode]<\/p>\n<p>Ahora por ultimo crearemos una configuraci\u00f3n para nuestro t\u00fanel (recordemos que todo lo que est\u00e1 detr\u00e1s de \u00ab;\u00bb no aplica a la config es solo descripci\u00f3n:<\/p>\n<p>[sourcecode language=\u00bbc\u00bb]<br \/>\nvi \/etc\/openvpn\/server.ovpn<\/p>\n<p>port 5000 ; Puerto donde escuchara las conexiones nuestro t\u00fanel<\/p>\n<p>proto udp ;protocolo que utilizara la transmisi\u00f3n<\/p>\n<p>dev tap0 ;Interfaz que utilizaremos para recibir las conexiones clientes<\/p>\n<p>keepalive 10 120 ;configuraciones de tiempo de vida de las sesiones cada 10 segundos pregunta si la conexi\u00f3n est\u00e1 viva y si muere ;espera 120 segundos para cortar la sesi\u00f3n.<\/p>\n<p>comp-lzo ;compresi\u00f3n que utilizara la comunicaci\u00f3n dentro del t\u00fanel<\/p>\n<p>status \/mnt\/usb\/log\/status.log ;archivo de log, para guardar informaci\u00f3n de registro<\/p>\n<p>verb 9 ;configuraci\u00f3n de nivel de informaci\u00f3n del archivo de registro valores entre 3 y 9 siendo 9 el mayor detalle.<\/p>\n<p>;mute 20 ;indica que cantidad de mensajes iguales deja pasar antes de dejar de presentar en logs.<\/p>\n<p>secret \/etc\/secret.key ;llave de intercambio para utilizar de firma de conexi\u00f3n<br \/>\n[\/sourcecode]<\/p>\n<p>Hay que verificar la posici\u00f3n de todo lo necesario\u2026 por ejemplo el archivo de logs y el secret.key tienen que estar en el camino correcto.<\/p>\n<p>Por \u00faltimo lo que necesitamos es crear un script que inicie la interfaz de t\u00fanel, y que cree todo lo necesario para nuestro t\u00fanel.<\/p>\n<p>Este archivo puede llamarse: \u00abstartupscript\u00bb<\/p>\n<p>Lo creamos, y ponemos dentro lo siguiente:<\/p>\n<p>[sourcecode language=\u00bbc\u00bb]<br \/>\n#!\/bin\/sh<br \/>\n#\/etc\/openvpn\/startupscript<br \/>\n# OpenVPN Bridge Config File<br \/>\n# Creates TAP devices for use by OpenVPN and bridges them into OpenWRT Bridge<br \/>\n# Taken from http:\/\/openvpn.net\/bridge.html<br \/>\n# Define Bridge Interface<br \/>\n# Preexisting on OpenWRT<br \/>\nbr=&quot;br0&quot;<br \/>\n# Define list of TAP interfaces to be bridged,<br \/>\n# for example tap=&quot;tap0 tap1 tap2&quot;.<br \/>\ntap=&quot;tap0&quot;<br \/>\ncase &quot;$1&quot; in<br \/>\n        up)<br \/>\n                # Make sure module is loaded<br \/>\n                insmod tun<br \/>\n                # Build tap devices<br \/>\n                for t in $tap; do<br \/>\n                    openvpn &#8211;mktun &#8211;dev $t<br \/>\n                done<br \/>\n                # Add TAP interfaces to OpenWRT bridge<br \/>\n                for t in $tap; do<br \/>\n                    brctl addif $br $t<br \/>\n                done<br \/>\n                #Configure bridged interfaces<br \/>\n                for t in $tap; do<br \/>\n                    ifconfig $t 0.0.0.0 promisc up<br \/>\n                done<br \/>\n        ;;<br \/>\n        down)<br \/>\n                for t in $tap; do<br \/>\n                    ifconfig $t 0.0.0.0 down<br \/>\n                done<br \/>\n                for t in $tap; do<br \/>\n                    brctl delif $br $t<br \/>\n                done<br \/>\n                for t in $tap; do<br \/>\n                    openvpn &#8211;rmtun &#8211;dev $t<br \/>\n                done<br \/>\n                rmmod tun<br \/>\n        ;;<br \/>\n        *)<br \/>\n                echo &quot;$0 {up|down}&quot;<br \/>\n        ;;<br \/>\nesac<br \/>\n[\/sourcecode]<\/p>\n<p><span style=\"font-family: Courier New; font-size: 10pt;\"> <\/span><\/p>\n<p>Son unas pocas l\u00edneas, porque he filtrado todo lo que no necesitamos.<\/p>\n<p>Esto genera que cuando conectemos, verifica la firma digital del archivo secret.key y nos asigna una ip de la red privada.<\/p>\n<p>Para poder conectarnos necesitaremos una configuraci\u00f3n del cliente, y copiar previamente la forma digital al directorio config, de nuestra instalaci\u00f3n (Windows\/Linux)<\/p>\n<p>La config de cliente ser\u00e1 la siguiente:<\/p>\n<p>[sourcecode language=\u00bbc\u00bb]<br \/>\ndev tap<\/p>\n<p>proto udp<\/p>\n<p># The hostname\/IP and port of the server.<\/p>\n<p># You can have multiple remote entries<\/p>\n<p># to load balance between the servers.<\/p>\n<p>remote &quot;servidor donde queremos llegar, sin comillas&quot; 5000<\/p>\n<p># Keep trying indefinitely to resolve the<\/p>\n<p># host name of the OpenVPN server. Very useful<\/p>\n<p># on machines which are not permanently connected<\/p>\n<p># to the internet such as laptops.<\/p>\n<p>resolv-retry infinite<\/p>\n<p># Most clients don&#8217;t need to bind to<\/p>\n<p># a specific local port number.<\/p>\n<p>nobind<\/p>\n<p># Try to preserve some state across restarts.<\/p>\n<p>;persist-key<\/p>\n<p>;persist-tun<\/p>\n<p># Wireless networks often produce a lot<\/p>\n<p># of duplicate packets. Set this flag<\/p>\n<p># to silence duplicate packet warnings.<\/p>\n<p>mute-replay-warnings<\/p>\n<p>secret openvpn.key<\/p>\n<p># Enable compression on the VPN link.<\/p>\n<p># Don&#8217;t enable this unless it is also<\/p>\n<p># enabled in the server config file.<\/p>\n<p>comp-lzo<\/p>\n<p># Set log file verbosity.<\/p>\n<p>verb 3<\/p>\n<p># Silence repeating messages<\/p>\n<p>;mute 20<\/p>\n<p># Allow LAN IP to reply to client<\/p>\n<p>;float<br \/>\n[\/sourcecode]<\/p>\n<p>Listo ya podr\u00edamos conectarnos.  Si necesitamos informaci\u00f3n extra, podemos ver el log del servidor con el comando \u00ablogread\u00bb.  Y consultar la informaci\u00f3n en el link de OPENVPN  <a href=\"http:\/\/openvpn.net\/index.php\/open-source\/documentation\/miscellaneous\/88-1xhowto.html\">http:\/\/openvpn.net\/index.php\/open-source\/documentation\/miscellaneous\/88-1xhowto.html<\/a> Saludos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>HOla\u2026 quer\u00eda dejar nota de esta configuraci\u00f3n para poder recuperarla en cuanto la necesite, y para que la gente la tenga a su alcance. Es una configuraci\u00f3n BRIDGE, esto quiere decir que se conecta a la VPN, y una vez conectado se le asigna una IP del mismo rango que la red destino, y para &hellip;<br \/><a href=\"https:\/\/blog.walii.es\/?p=691\" class=\"more-link pen_button pen_element_default pen_icon_arrow_double\">Seguir leyendo <span class=\"screen-reader-text\">OPENVPN en FONERA  BRIDGE<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/691"}],"collection":[{"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=691"}],"version-history":[{"count":5,"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/691\/revisions"}],"predecessor-version":[{"id":721,"href":"https:\/\/blog.walii.es\/index.php?rest_route=\/wp\/v2\/posts\/691\/revisions\/721"}],"wp:attachment":[{"href":"https:\/\/blog.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=691"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=691"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.walii.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}