tcp iprelay 스크립트

다즐링의 이미지

가끔 열악한 환경에서 원격으로 tcp 연결을 해주어야할 필요가 있습니다.
예를 들면 오라클이 방화벽 너머너머너머에 있어서 바로는 라우팅이 되지 않을 때
메일을 쏴야하는데 sendmail 을 깔기가 싫을 때 등..

지금 설명하는 프로그램은 간단히 이야기해서 tcp 를 relay 해주는 프로그램입니다.
특정 포트에 띠워두면 그쪽으로 접속한 tcp 연결을 지정한 써버의 특정 포트로 돌려주는 프로그램입니다.

우분투에는 iprelay 패키지가 있고 저는 이걸 설치후에 /usr/bin/iprelay 만을 복사해두었습니다. 펄스크립트라 웬만하면 잘 돌고
펄이 깔려 있는 솔라리스니 이런곳에서도 잘돕니다. 예전에는 tcprelay 라는 프로그램을 컴파일해서 가지고 다녔는데 웬지 간만에 찾으니 소스가 없군요.

사용법은 간단합니다.

iprelay -d 로컬에서열포트명:원격의서버IP:원격의포트명

-d 는 데몬모드 이고 빼버리면 콘솔에서 동작을 하면서 디버깅이 가능합니다.
-b 옵션이 있는데 얼마의 속도로 보낼것인가에 대한 제한입니다. ( 물론 이건 전 쓸일이 없어서 )

보통 방화벽 내부의 장비 통신을 위해선 dnat 를 씁니다. 하지만 iptables 를 잘 모를수도 있고 접근권한이 없을 수도 있죠.
이럴 떄 이렇게 사용해줍니다. ./iprelay -d 3306:10.1.2.99:3306
이러면 3306 포트니 로컬의 유저권한으로 동작하고 접속하면 10.1.2.99번의 3306 포트로 포트 포워딩하게 됩니다.

[root@nat0 ~]# ./iprelay -d 3306:10.1.2.99:3306
  Resolving address (10.1.2.99).....
  .... determined as: 10.1.2.99
Useing command line parameters:
  local_port    3306
  remote_addrs  10.1.2.99
  remote_port   3306
  bandwidth     0
  forwarder 99 set.
 
 
iprelay Version: 0.71
Copyright (C) 1999,2000 Gavin Stewart
 
[root@nat0 ~]#

여러대의 장비를 통해야할경우 relay 도 가능합니다.
방화벽저구석의oracle <-- iprelay 0 --> 방화벽저구석의서버1 <-- iprelay 1 --> 방화벽 <-- iprelay 2 --> 웹써버

첨부된 파일은 받아서 iprelay 로 바꾸시고 실행권한을 주시면 됩니다.

추가 : 부시님께서 언급하신 어플리케이션 링크를 추가합니다.
redir
rinetd

File attachments: 
첨부파일 크기
Plain text icon iprelay.pl_.txt28.83 KB

댓글

bushi의 이미지

전엔 redir, 요새는 rinetd 가 지명도를 얻는 듯 합니다.
음지에서 양지로 나오고, 시스템 서비스로 자리 매김하네요.

perl 스크립트가 가지고 다니기엔 편하겠습니다. perl 이 없는 unix 가 희박할테니.

전 linux 에서 ssh 터널링과 물려서 방화벽에 슬쩍 뒷구멍만드는 데만 쓰는지라 redir 이 더 좋습니다 :)
들킬 가능성을 조금이라도 줄이기 위해...

OTL

다즐링의 이미지


특정 ip 만 바인드 하고 싶을 때는..

소스에서

$main::local_addrs = "0.0.0.0"

에서 0.0.0.0 을 특정 ip 로 바꾸면 됩니다.

------------------------------------------------------------------------------------------------
Life is in 다즐링

------------------------------------------------------------------------------------------------
Life is in 다즐링

mrain7의 이미지

설명이 조금 부족했던 모양인데..

원격등의 접속을 위한 릴레이가 아니라

정확히는 snmpTrap 패킷을 릴레이 하기 위함입니다.

redir 사용법을 익히고 있기는 한데

그러한 패킷 자체도 릴레이가 되는지는 확신이 서지 않네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.