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 로 바꾸시고 실행권한을 주시면 됩니다.
첨부 | 파일 크기 |
---|---|
![]() | 28.83 KB |
댓글
전엔 redir, 요새는
전엔 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 다즐링
설명이 조금 부족했던 모양인데.. 원격등의 접속을
설명이 조금 부족했던 모양인데..
원격등의 접속을 위한 릴레이가 아니라
정확히는 snmpTrap 패킷을 릴레이 하기 위함입니다.
redir 사용법을 익히고 있기는 한데
그러한 패킷 자체도 릴레이가 되는지는 확신이 서지 않네요.
댓글 달기