{"id":267,"date":"2013-09-13T09:17:47","date_gmt":"2013-09-13T08:17:47","guid":{"rendered":"http:\/\/zsteva.info\/?p=267"},"modified":"2013-09-13T09:23:51","modified_gmt":"2013-09-13T08:23:51","slug":"reverzni-ssh-tunel","status":"publish","type":"post","link":"http:\/\/zsteva.info\/blog\/2013\/09\/reverzni-ssh-tunel\/","title":{"rendered":"Reverzni SSH tunel"},"content":{"rendered":"<p>Na svom ra\u010dunaru imate serversku aplikaciju koja zahteva da se konekcija napravi na njoj, a nemate javnu IP adresu, ili mogu\u0107nost da uradite port forward. Jedan od na\u010dina da obezbedite pristup &#8220;od spolja&#8221; do aplikacije je putem reverznog SSH tunela.<\/p>\n<p>Potrebno nam je da imamo server koji ima javnu IP i slobodne portove koji su vidljivi (nisu zatvoreni firewallom), sa instaliranim OpenSSHom (linux serveri po defaultu ga imaju) i naravno admin account na njemu. U slu\u010daju da nemate postoje\u0107i server, mo\u017eete iskoristi neki jeftin VPS za te potrebe (ve\u0107 od 10-15 dolara godi\u0161nje).<\/p>\n<p>Po defaultu remote port forward na serveru binduje localhost adresu, \u010dime smo uskra\u0107eni za pristup od spolja. Da bi smo to izbegli potrebno je na serveru modifikovati \/etc\/ssh\/sshd_config.<\/p>\n<pre>\r\nGatewayPorts yes\r\n<\/pre>\n<p>I potom restartovati sshd: <\/p>\n<pre>\r\n\/etc\/init.d\/sshd restart\r\n<\/pre>\n<p>Za potrebe tunela mo\u017eemo koristiti neki od postoje\u0107ih accounta na serveru ili napraviti novi sa:<\/p>\n<pre>\r\nadduser tunel\r\n<\/pre>\n<p>Sa client strane nam je potreban ssh client. I ako naprimer \u017eelimo da lokalni 5555 port forwardujemo na port 5555 na serveru. Sa Linuxa (u jednoj liniji):<\/p>\n<pre>\r\nssh -g -R 5555:127.0.0.1:5555 -N -o ServerAliveInterval=10 \r\n-o ServerAliveCountMax=2 tunel@server.domen.com\r\n<\/pre>\n<p>Argumenat -R 5555:127.0.0.1:5555 defini\u0161e \u0161ta forwardujemo. Prvi 5555 je port na serveru na kojem \u010de \u010dekati konekcije, 127.0.0.1 je adresa na koju \u0107e biti forwardovana konekcija ali sa lokalne strane (sa strane klienta) i drugi broj 5555 je port sa lokalne strane na koji \u0107e biti forwardovana.<\/p>\n<p>Ako koristite windows, mo\u017eete korititi <a href=\"http:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/download.html\" title=\"putty download page\">plink.exe<\/a> (u jednoj liniji):<\/p>\n<pre>\r\nplink.exe -N -keepalive 10 -R 0.0.0.0:5555:127.0.0.1:5555\r\ntunel@server.domain.com\r\n<\/pre>\n<p>Argument -R 0.0.0.0:5555:127.0.0.1:5555 ozna\u010dava \u0161ta \u0107e biti forwardovano, 0.0.0.0 je bind adresa sa serverske strane, prva 5555 je port sa serverske strane na kojoj \u0107e se \u010dekati konekcije. 127.0.0.1 adesa na koju ce se preusmeravati konekcija ali sa klientske strane, i drugi broj 5555 na koji port se preusmerava sa lokalne strane.<\/p>\n<p>Krajnji rezultat, server.domen.com:5555 je vidljivo sa bilo kojeg ra\u010dunara na internetu, klienti koji treba da se naka\u010de se ka\u010de na tu adresu, a SSH tunelom to preusmerava do na\u0161eg ra\u010dunara i pravi konekciju ka 127.0.0.1:5555. Dokle god je tunel otvoren to \u0107e funkcionisati tako. Imajte obzira na ograni\u010denje brzine konekcije.<\/p>\n<p>U slu\u010daju da je port 5555 zauzet na serveru, ne\u0107ete dobiti nikakvo upozorenje, a tunel ne\u0107e raditi. Tako da ako ne\u0161to ne funkcioni\u0161e, probajte sa drugim portom.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na svom ra\u010dunaru imate serversku aplikaciju koja zahteva da se konekcija napravi na njoj, a nemate javnu IP adresu, ili mogu\u0107nost da uradite port forward. Jedan od na\u010dina da obezbedite pristup &#8220;od spolja&#8221; do aplikacije je putem reverznog SSH tunela. &hellip; <a href=\"http:\/\/zsteva.info\/blog\/2013\/09\/reverzni-ssh-tunel\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[136,6,135],"tags":[130,48,115,37,114],"_links":{"self":[{"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/posts\/267"}],"collection":[{"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/comments?post=267"}],"version-history":[{"count":9,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/posts\/267\/revisions"}],"predecessor-version":[{"id":275,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/posts\/267\/revisions\/275"}],"wp:attachment":[{"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/media?parent=267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/categories?post=267"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/tags?post=267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}