안녕하세요.
제가 처한 상황이랑 약간 비슷하군요.
저도 아직 문제 해결 중이라 뭐라고 확답은 못드리겠네요. 또 거기 상황은 다를 수도 있으
니... 저의 상황은...
회사의 방화벽이 일단 외부에서 내부로 들어오는 모든 tcp syn 패킷을 걸러버리는것 같더군
요. 따라서 밖에서 안으로 tcp connection은 안되고요.
내부에서 외부로 나가는 것은 몇몇 포트를 제외한(80,23,110,25등) 것들은 또 모두
걸러 버리더군요.
즉, 외부에서 내부로의 연결 설정은 안돠고, 내부에서 외부로는 몇몇개만 된다는거죠.
따라서 내부의 리눅스에 80번으로 텔넷을 bind하고 listen 해도 외부에서는 접근이 안됩니다.
(외부에서 내부로 오는 syn을 걸러버리니까요.)
이것 저것 해보다 udp 패킷은 어떤지 실험을 해보았는데, udp도 마찬가지더군요.
그런데, 며칠전에 길을 알아냈습니다.
그 방화벽이 소스 ip 주소가 내부 ip로 변조된 (즉 ip spoofing 된) 패킷은 통과시키더라구요.
결론적으로 방법은...
외부 (집)에서 회사로 보내는 패킷은 udp 패킷의 destination을 회사의 리눅스로 만들고
source 도 역시 회사의 리눅스로 만들어서 보냅니다.
그럼 회사의 리눅스 컴퓨터는 일단 집에서 보낸 패킷을 받을 수가 있죠.
그리고 반대로도 마찬가지로 destination은 집의 컴으로 source는 회사의 컴으로 보내면
집에서도 회사 리눅스컴의 응답을 받을수 있겠죠..
음.. 문제는 텔넷을 위에서 말한 것대로 구현하는 건데요. 그게 시간도 없고 귀찮으니까
있는걸 이용하기로 했습니다.
일단 서버쪽에서 돌아가는 데몬을 하나 만듭니다. 그건 외부에서 들어오는 udp 패킷을 받아
서 정해진 곳으로 redirect해주는 역할을 해주겠죠. 이경우는 localhost의 23번 포트로 rediect합
니다. 또 집의 컴도 위의 데몬의 전용 클라이언트를 하나 만들어서 돌리는거죠.
redirect하는 건 공개되어 있는 소스가 있으니 그걸 좀 고쳐서 (udp 기반으로) 쓰면 되겠고.
현재는 클라이언트를 만드는 중에 있습니다.
성공하면 드릴께요.
: 학교에서 방화벽을 설치해서, 80포트제외한(웹서버)다른 몽땅 포트는
: 막아버렸습니다. 어떻게 외부에서 접속할 방법이 없나요?
:
: 참고로 방화벽컴퓨터에는 제가 학교에서 들어갈수가 없습니다.
: 그래서 제가 쓰는 리눅스컴퓨터를 80포트로 telnet이 들어가게
: 했는데, 역시나 외부에서 접속불가합니다. 리눅스컴만 어떻게
: 설정해서 밖에서 접속되게 할수없나요????
:
: --
: 이 곳에 서명을 적어주십시오.
: Hi there!!--return true