사용자 삽입 이미지

크로스게임. 일본의 인기 만화가 아다치 미츠루의 동명 작품을 애니메이션화. 4월부터 방영되고 있다.


Cross Game Ending Song - 恋焦がれてみてた夢/絢香
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

このまま 一人
이대로 홀로
どこか遠くへ行って
어딘가 먼 곳으로 가
しまいたい程
버리고 싶을 만큼
思ってたより 簡單だった
생각보다 간단했어
あなたを失うということ
당신을 잃는다는 건
 
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

明日が見えなくて
내일이 보이지 않아서
 
前に進めない時
앞으로 나아갈 수 없을 때
あなたが私の右手
당신이 내 오른손을
引っ張ってくれなきゃ
당겨주지 않았다면
笑って「早くこいよ」ってほら
웃으며 「어서 와」라며
いつものように
언제나처럼

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

戀焦がれて見た夢は

사랑에 애태우며 꾼 꿈은
あなたとの日日
당신과 함께 보낸 나날

사용자 삽입 이미지
사용자 삽입 이미지

寄り添えないのに 側にいる
하나가 될 순 없지만 곁에 있어
それが一番辛かったの
그게 무엇보다 힘겨웠어

사용자 삽입 이미지

아저씨.. 저 어떻게 해야하죠..

사용자 삽입 이미지
사용자 삽입 이미지

どうして人は恋をするのか ねえ誰か教えて

어째서 사람은 사랑을 하는걸까     있잖아 누가 좀 알려줘
繋がることで生まれるものが世界に愛を歌わせる
이어지는 것에서 생겨나는 것이 세상에 사랑을 노래하게 해

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

아카이시...

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

このまま歩いたら また出会う日が来ると
이대로 걸어가서   다시 만나는 날이 오면
あなたにもう一度ちゃんと伝えなきゃいけない
너에게 다시 한번 제대로 전하지 않으면 안돼

”ごめんね”と”ありがとう”って
"미안해"라고"고마워"라고
ほら今すぐに
지금 당장

사용자 삽입 이미지

울면 되는거야...

사용자 삽입 이미지

恋焦がれて見た夢は 並ぶ二人の影
사랑에 애태우며 꾼 꿈은    나란히 늘어선 두 사람의 그림자
帰り道にそっとキスを それが一番うれしかったの
돌아가는 길에 살짝 키스를    그게 무엇보다 기뻤어

(空は青く晴れてた 悲しいくらいとてもきれいだった
하늘은 맑게 개어      슬플 정도로 정말 아름다웠어
涙が頬をいくら濡らしても 今日も光は射す
눈물이 빰에 아무리 흘러도 오늘도 빛은 밝기만 해) *여기선 안나오는 부분.

恋焦がれて見た夢は あなたとの日々
사랑에 애태우며 봤던 꿈은    너과 함께 보낸 나날
寄り添えないのに側にいる それが一番辛かったの
하나가 될 수는 없지만 곁에 있어    그게 가장 힘겨웠어

恋焦がれて見た夢は あなたとの日々
사랑에 애태우며 꾼 꿈은 너와 함께 보낸 나날
寄り添えるだけで幸せと それが一番伝えたかったの
하나였던 것 만으로 행복했다고   그걸 정말 전하고 싶었어

それが一番伝えたかったの
그걸 정말 전하고 싶었어

どうして人は恋をするのか ねえ誰か教えて

어째서 사람은 사랑을 하는 걸까   있잖아... 누가 좀 알려줘

-

요즘들어 계속 끌리는 애니

특히나 이 엔딩 테마곡이 너무도 좋다^^

노래만 새로 올렸습니다. 1화에 나오는 그대로 흐르는 글이었는데..ㅎ
  1. 이지스 2009.05.20 13:06 신고

    이 애니 재미있나요? 웃음과 감동을 주는 만화인지요?
    애니를 못본 것도 3년은 넘은 거 같아서, 요즘 나오는 애니가 어떤건지 잘 모르겠어요.

    • 띵스 2009.05.20 21:09 신고

      네^^ 제가 정말 기다리면서 보는 애니입니다 ㅎㅎ 크로스게임, 티어스투티아라, 강철의연금술사2기, 세븐고스트 이렇게 재밌게 보구있어요 ㅎㅎ

  2. 지나가던 행인1 2009.10.06 00:49 신고

    '역시 아다치'라는 말이 나오는 좋은 작품이죠. 뭐.. 코믹판에서 볼 수 있었던 아다치만의 절묘한 개그가 다소 약한 감이 없지 않지만 전반적으로 상당히 잘 재현 된 애니라는것은 부정 할 수 없군요. 진지함과 개그가 완벽한 균형을 이루는 코믹판보다는 살짝 무거운 분위기..라고나 할까요?

    • 띵스 2009.10.14 10:02 신고

      매일매일이 기다려지는 애니메이션입니다 ^^
      미시마와의 대결.. 명장면이 나왔네요

톨스토이는 항상 다음과 같은 세 가지 질문과 대답을 가슴에 담고 살았다고 한다.


가장 중요한 사람은 누구인가?? 지금 내 앞에 있는 사람.

가장 중요한 일은 무엇인가?? 지금 내가 하고 있는 일.

가장 소중한 시간은 언제인가?? 바로 지금 이 순간.

        -프린세스 마법의 주문중에서-


친구 일기를 읽다가 나에게도 중요하고 소중한 것이 무엇인지 생각을 하게 만들었다.

  1. 밍꾸 2008.12.12 00:19 신고

    '사람은 무엇으로 사는가' 였나;; 이 단편도 좋던데~

    • 띵스 2008.12.12 09:45 신고

      톨스토이 단편선만 읽어봤는데
      기억잘안나 ㅋ
      단편선 읽은것도 오래됐넹;;ㅎ
      나중에 함 찾아서 읽어볼께 ㅎㅎ



오늘은 youtube에서 김광석 노래를 찾아보았다.

역시 주옥같은 곡들이 많아서 들어와서 듣고간 사람 모두

반응이 좋은 것 같았다.

하지만 그가 지금 이세상에 없다는 것에 대한 아쉬움과 함께..

대학교 1학년때 통기타와 함께 편집실에서 밤을 지새우며

김광석 노래를 그렇게나 즐겨 부르던 것이 떠올랐다.

벌써 7년이지나 추억이 되는 것인가보다...

그렇게 한곡 한곡 듣다가

너무나 아름다운 사랑노래를 한곡 찾아내었다..



너에게 - 김광석

나의 하늘을 본 적이 있을까
조각 구름과 빛나는 별들이
끝없이 펼쳐 있는
구석진 그 하늘 어디선가
내노래는 널 부르고 있음을
넌 알고 있는지 음...

나의 정원을 본 적이 있을까
국화와 장미 예쁜 사루비아가
끝없이 피어 있는
언제든 그 문은 열려 있고
그 향기는 널 부르고 있음을
넌 알고 있는지

나의 어릴 적 내 꿈 만큼이나
아름다운 가을 하늘이랑
오 네가 그것들과 손잡고
고요한 달빛으로 내게 오면
내 여린 맘으로
피어낸 나의 사랑을
너에게 꺽어 줄께

나의 어릴 적 내꿈 만큼이나
아름다운 가을 하늘이랑
오 네가 그것들과 손잡고
고요한 달빛으로 내게 오면
내 여린 맘으로
피어낸 나의 사랑을
너에게 꺽어 줄께

취직하고 출퇴근 시간이 길어지자 그 시간이 너무 아까운 나머지

한가지 마음먹은 것이 있었지요

책을 읽는것..

9월말까진 그래도 꾸준히 읽어서 일주일에 세권도 읽었는데 갑자기

목디스크 비슷하게 생기면서 지하철에서 눈감고 머리 흔들기 바빴는데

어제 퇴근길에 간만에 책을 한권 들었습니다.ㅎㅎ

사용자 삽입 이미지





'아비' - 소재원 르포소설..



어느날인가 평소와 마찬가지로 인터넷 기사를 (.. )( ..) 두리번 대다가 클릭질을 열심히하며

재밌는 기사를 찾고 또 찾았지요

하루는 100분토론에 나와 조성민을 응원한다는 한 여작가를 비판하면서

그 작가가 쓴 책을 책방에서 뒤져가면서 찾아 읽어보았는데

한마디로 작품이라고 말하기 힘들고 같은 글을쓰는 사람이라기 부끄러울 정도라면서

비판을 하던 사람이 있더군요



자신은 책 하나를 쓰기위해 3년정도를 고심해가면서

발품을 팔아가며 사람들을 만나고 이야기를 듣는다며

그렇게 글 하나를 쓰기에도 이런 노력을 한다며

리플을 단 그 작가의 책..

물론 자신의 책을 광고하는 리플정도로만 생각도 했지만

그런 자세가 참 맘에 들어 지난주에 그책을 주문하였지요

일주일만에 도착한 그 책을 퇴근길에 읽던중

계속 흐르는 눈물..

지하철안에서 얼마나 창피하던지..ㅎㅎ

책을 읽는 내내 눈물 꾹참으려 했지만

뻥뻥 터져주는 감동의 이야기들..ㅠ



작가가 담으려는 것.

지금 아버지가 되어버린 사람들, 아버지가 있는 자식들에게서

아버지에 대한 이야기를 취재하여 독자에게 전하려 하는 것은

쉽게 하는 말이지만 실천하기 어려운

지금이 아니면 늦는다는 것입니다.

아버지의 자식에 대한 끝없는 희생과 한없는 사랑에 대해

그리고 자식들이라는 철없는 존재에 대해 메시지를 전하고 있는데

저처럼 공감가는 사람들이 많을 것 같습니다.

책을 보며 지금의 제 모습과 그 책에서

자신들의 아버지를 이야기 하는 사람들의 모습이 어찌나 닮아있던지..

앞으로 아버지에게 잘하렵니다.ㅎㅎ

주말엔 술이라도 집에 사들고와서 아버지와 한잔해야할듯 합니다^^



혹시라도 책에 관심있는분들께,

그리고 아버지에게 잘하고 싶은 마음은 있는데 선뜻안되는 분들께 추천합니다.

"인생을 사시면서 가장 남은 것은 무엇입니까?" 피천득 선생님은 대답하셨다. "모든 걸 버려도 나를 버릴 수는 없다는 그 자신에 대한 자존감, 물질은 포기해도 나는 포기할 수 없다는 마음일세."

놀랐다..

어떻게 한사람이 연주하는 것 처럼 들리지

The Beatles 의 'All you need is love' 를 멋지게 연주하는 정성하군

7개월 전의 이 영상이 오늘 갑자기 뉴스에 나왔다.

이밖에도 정성하군의 놀라운 연주가 많아서 댓글을 보면 내가 다 뿌듯하다^^;;

개인적으로 음악을 좋아하고 비틀즈를 좋아하고 기타를 좋아하는 한 사람으로써

감동받았다.

들으려 하지 않는 사람에게

말하기를 좋아하는 사람은 없다.

화살은 결코 돌에 꽃히지 않는다.

그것은 때로 그것을 쏜 사람에게로

도로 튀어 간다.

- 제롬 -
시간의 흐름에는 세 가지가 있다.

미래는 주저하면서 다가오고

현재는 화살처럼 날아가고

과거는 영원히 정지하고 있다는 것이다.

- Friedrich von Schiller -



Friedrich von Schiller(1759.11.10 ~ 1805.5.9)

독일의 극작가, 시인. 마르바흐 출생.

독실한 그리스도교 신자였던 부모의 영향으로

어릴 때부터 성직자를 희망하여 그 과정을 밟았으나,

13세 때 영주인 카를 오이겐공의 간섭으로 진로를 바꾸고

명령에 따라 군학교에 입학했다.


군대식 규율과 감독이 엄한 이 학교에서

처음 2년 동안 법학을 배운 뒤 의학으로 바꾸었다.

1. port forwarding 을 왜 필요로 하게 되었는가?

포트 포워딩(port forwarding)이 왜 필요하게 되었는지를 설명하는게 좋겠다. 아래 설명은 리눅스 초보자를 위해 자세히 썼으므로 리눅스에서 IP masquerade를 설정하여 사용하는 사람들은 다음 2 번으로 건너가도 된다.

필자가 관리하는 네트워크 중 한 곳이 한국통신의 co-lan을 통해 인터넷을 사용하고 있다. co-lan은 VDM(Voice Data Multiplexer) 이란 장비를 사용하여 라우터를 사용 않고 피시의 시리얼포트에 직접 연결하므로 호스트 접속이다. 즉 IP 주소(공인)는 한 개만 나온다.

co-lan이 연결된 피시에는 리눅스를 깔아 IP Masq를 설정하였으므로 리눅스와 랜으로 연결한 윈95 피시는 내부 어드레스(192.168.1.X)를 부여해 리눅스의 IP 주소를 공유해 인터넷을 사용한다.

그리고 이 리눅스 호스트는 윈95의 파일서버, 프린터서버 등으로 사용되며 486이다. 그 외에 telnet, ftp 서버, DNS 서버로도 사용되고 있다. 웹서버는 설치되어 있지 않다.
연결은 아래와 같다.
이런 설정은 요즘 흔히 사용되므로 리눅스에서 IP masquerade만  알면 설치가 가능하다. 케이블모뎀이나 ADSL로 인터넷을 연결한 경우도 이런 형태로 구성해 여러 대의 피시에서 동시에 인터넷 사용이 가능하다.

그런데 이 네트워크에 웹서버를 설치할 필요가 발생했다. 필자가 아는 업체서 전자상거래 프로그램 개발을 필자에게 의뢰했는데 개발용 서버를 이 네트워크에 설치하기로 했다. 개발에는 여러 사람이 참여하는데 집에서 인터넷을 통해 이 서버로 접속해 개발을 진행하기로 했다.

전자상거래 개발에는 MySQL 및 PHP 등이 사용되고 접속도 많으므로 펜티엄급을 필요로 하는데 기존의 리눅스 서버는 486 급이다. IP는 한 개 밖에 없으므로 전자상거래용 웹서버를 펜티엄 피시에 설치하려면 기존의 486을 없애고 새로운 펜티엄 피시로 대치 후 기존의 486에서 사용되던 각종 데이터 및 서버 프로그램을 펜티엄 피시에 다시 설치해야 했다. 이 정도라면 별로 시간이 걸리지는 않지만 다른 문제가 발생한다.

펜티엄 피시는 개발용이므로 외부에서 다른 사람들이 수시로 root 권한으로 들어오는데 여기에 다른 데이터를 넣는 건 보안에 문제가 발생한다.

또 개발용이므로 여러 파일들을 수시로 설치 및 제거하므로 서버가 다운될 가능성도 있다. 그러면 그 네트워크의 전체 인터넷 사용이 중단된다. 개발이 끝나면 그 서버는 의뢰인에게 돌려 주어야 하므로 그때 또 데이터를 원래의 486으로 옮겨야 하는 문제도 있다.

결론은 서버를 한 대 더 설치하여 서비스 종류(즉 포트 번호)에 따라 다른 서버로 연결되도록 하는 기능이 필요하다. 여기서는 인터넷에서 웹(포트 80)과 telnet(포트 23), ftp(포트 20, 21) 서비스 요청이 들어오면 펜티엄 피시에서, 그리고 메일이나 DNS 등 기타는 기존의 486에서 서비스하도록 설정해야 한다. 단 ip 즉 도메인네임(정확히는 FQDN)은 같아야 한다.


2. port forwarding 의 원리

필요한 이유가 설명되었으니 아래는 port forwarding의 작동 원리를 간단한 그림으로 보자.

IP Masquerade 가 클라이언트 쪽에서의 IP 공유라면 port forwarding은 서버에서의 IP 공유이다.

리눅스A(486 피시)에 port forwarding을 구현한다면 네트워크는 아래와 같다.

기본적인 구성은 위의 경우와 같다. 단지 내부 네트워크에(192.168.1.X) 리눅스 서버를 한대 더 추가해 내부 주소(192.168.1.11)를 부여한다. 이 서버는 내부 어드레스를 갖고 있으므로 인터넷에서 직접 연결할 수 없다.

그러나 위의 리눅스 A에 port forwarding 기능을 부여하면 인터넷에 연결된 피시의 웹브라우저에서  http://168.126.127.6 으로 연결하면 192.168.1.11 내부 주소를 갖는 리눅스 B의 웹서버로 연결된다.

이유는 간단하다. http 연결은 80번 포트를 사용하므로(별도의 지정이 없을 경우) 리눅스 A의 port forwar ding 프로그램이 인터넷에서 80번 포트로 연결 요청이 들어오면 그 패킷을 내부 주소를 갖는 리눅스 B(192.168.1.11)의 80번 포트로 방향을 바꾸어 주는 것이다.

이 원리를 적용하면 telnet 은 192.168.13 번 서버로 ftp는 192.168.1.15번 서버로 등등 서비스별로 다른 내부 주소를 갖는 서버가 응답하게 할 수 있다. 한 대의 서버를 사용할 경우보다 시스템의 부하를 분산할 수 있는 이점이 있다.

또 내부 서버의 포트 번호는 임의로 지정이 가능하다. 내부 서버에서 아파치 웹서버를 가동할 때 꼭 80번으로 할 필요는 없다. 아파치의 실행 포트 번호를 80번 외의 다른 번호로 httpd.conf에서 지정하고 port forwarding 설정에서 그 포트를 지정해 주면 된다. 외부 사용자는 여전히 웹브라우저에서 80번으로 연결하면 되므로 포트 변경 사실을 알 필요도 없다.

(인터넷에서 http://192.168.1.11 명령은 사용할 수 없다는 것을 알아야 한다. 192.168.1.101 주소를 갖는 윈95에서만 가능하다. 그 이유를 알지 못한다면 이 글이 별 소용이 없다.)

주의]  포트포워딩을 리눅스 A(168.126.127.6)에 설치했다 하더라도 내부 랜(192.168.1.0)
          에서는 port forwarding이 작동하지 않는다.
          즉 내부 랜에 연결된 윈95 피시 (192.168.1.101) 에서 http://168.126.127.6 명령을
          해도 192.168.1.11에 설치된 웹서버가 응답하지 않는다. 내부 랜에서는
          http://192.168.1.11 로 연결해야 한다. 이는 port forwading의 한계라기 보다 tcp/ip
          네트워킹에서 이러한 라우팅을 허용하지 않기 때문이다.

따라서 port forwarding 작동 여부를 확인하려면 인터넷의 다른 호스트에서 168.126.127.6 호스트로 연결해야 한다.

앞으로 아래 글에서 포워딩서버는 포트포워딩 코드가 설치되는 서버(그림 2에서 리눅스 A)를 말하고 리시빙서버는 실제로 인터넷 서비스를 제공하는 내부랜에 설치된 서버(그림 2에서 리눅스 B)를 말한다.


3. 포트 포워딩 활용

3.1 방화벽

요즘 웹서버 보안이 중요한 문제로 대두되고 있는바 가장 설치가 간편한 웹서버 보안 대책으로 포트포워딩을 사용할 수 있다.

리시빙 서버에 웹서버(apache)를 올려주고 포워딩서버의 포워딩 설정에 웹(http)만 리시빙 서버로 연결하고 telnet, ftp, mail 등 다른 모든 서비스는 포워딩서버나 다른 서버로 지정하든가, 또는 차단하면 웹서버로의 접근은 웹 자체를 제외한 다른 방법으로는 거의 불가능할 것이다. 즉 해킹에 필요한 웹서버의 정보를 알아내기가 힘들기 때문이다.

왜냐하면 다른 모든 서비스는 포워딩서버에서 응답하므로 웹서버는 외부에 전혀 노출이 안된다. 비록 포워딩서버로 해킹에 성공해도 다시 웹서버로 접근하려면 웹서버의 보안망을 돌파해야 한다.

3.2 게이트웨이

요즘 랜카드는 100메가가 일반화되고 있지만 라우터는 아직 10메가를 사용하고 있다. 그래서 라우터와 웹서버(리눅스) 및 클라이언트(윈9x)를 같은 랜에 설치해 10메가로 연결하면 인터넷에서 서버로의 접근은 랜의 트래픽이 많으면 상당히 지체된다.

자세히 설명하겠다.

리눅스에 웹서버가 설치되어 있고 랜은 이더넷을 사용한다고 가정한다. 인터넷과 연결된 라우터도 같은 랜에 있다고 가정한다

예를들어 윈95피시에서 웹서버나 윈98 피시로 큰 파일을 전송한다면 인터넷에서 웹서버로의 접근은 상당한 지체가 발생할 것이다. 이더넷의 원리를 안다면 그 이유를 짐작할 것이다. 랜에 피시가 많이 연결돼 있고 상호간에 데이터 전송이 빈번하다면 이로 인해 인터넷에서 웹서버로의 연결은 상당한 장애를 받는다.

웹서버가 속도를 중시하는 전자상거래나 실시간으로 연결하는 예약 시스템 등으로 사용된다면 이러한 지체도 별로 바람직하지 못하다. 이걸 해결하는 방법은 3 가지 정도 존재한다.

첫 번 방법은 랜 구조를 변경해 사내의 랜에서의 트래픽과 인터넷에서 웹서버로의 트래픽이 충돌하지 않도록 랜을 두 개로 분리하는 것이다. 가장 좋은 방법은 브리지를 사용해 랜을 두 개로 분리하는 것이다.(라우터로도 가능하나 복잡하다. 성능은 브리지가 낫다.)

두 번째 방법은 스위칭허브를 사용하는 것인데 위의 브리지와 효과는 비슷하나 돈이 더 많이 든다.

세 번째 방법은 가장 쉽고 간편하다. 즉 랜의 속도를 100메가로 올리는 것이다. 그런데 여기에 한가지 문제가 존재한다. 허브나 랜카드, 케이블은 100메가로 올리는게 쉬우나 라우터가 문제다.

100메가를 지원하는 라우터가 있으나 무척 고가이고 또 우리나라의 ISP 들이 임대해 주는 라우터는 다 10메가 용이다.

이 고민을 포트포위딩이 쉽게 해결해 줄 수 있다. 즉 포워딩서버에 랜카드를 두 개 꼽아 인터넷과 연결된 라우터 쪽은 10메가로 하고 웹서버가 연결된 내부 랜은 100메가로 하면 된다. 즉 포워딩서버가 10메가 100메가 게이트웨이 구실을 하는 것이다.

인터넷에서 웹서버로 연결할 때는 라우터에서 리눅스 까지는 10메가로 연결되나 라우터와 리눅스를 연결하는 랜에는 다른 피시가 전혀 없으므로 아무런 지체가 발생하지 않는다. 내부 랜에는 여러 피시가 연결되어 있지만 속도가 100메가 이므로 지체는 훨씬 줄어들 것이다.

3.3 시스템 부하 분산

한 대의 서버에 한 개의 도메인네임(정확히는 FQDN, 예를들면 www.linuxlab.co.kr)을 부여해 웹, 메일, telnet. ftp 등 여러 서비스를 다 제공하는 경우 사용이 너무 많아 서버의 용량이 부족하면 그 기계를 버리고 새로운 기계로 대치해야 한다.

만약 최고급 사양의 피시로 대체해도 감당할 수 없다면 그 때는 워크스테이션급으로 교체해야 하는데 비용도 문제지만 기존의 데이터나 소프트웨어를 새로운 기계로 옮기는게 만만치 않은 비용과 시간을 요한다.

여기에 포트포워딩을 이용하면 한 대의 서버가 담당하던 서비스를 여러 대로 분산할 수 있다. 한 대는 웹서버, 다른 한 대는 메일 및 bbs(telnet) 서버, 또 다른  한 대는 ftp 서버 등 등이다.

서비스 종류에 따라 여러 대의 기계로 분산할 수 있어 기존 서버를 교체하지 않고도 간편히 성능을 수 배로 늘릴 수 있다. 워크스테이션을 필요로 하는 용량을 피시 몇대로 가능케 해주는 좋은 해결책이다.


4. port forwarding 설치 절차

port forwarding은 ip masquerade와 관련이 있다. 실제 구현에는 IP masq 코드를 상당 부분 그대로 사용한다. 단지 그 반대의 기능을 수행해 줄 따름이다. 따라서 port forwarding을 설치하려면 우선 ip masq를 설치할 줄 알아야 한다.

우선 간략한 절차를 설명하고 다음에 각 절차별로 상세히 설명한다. 모든 셋업은 공인 IP 주소를 갖는 게이트웨이 서버(위의 그림에서 리눅스 A)에서 이루어 지고 서비스를 제공하는 내부 랜의 서버(리눅스 B)는 서버 프로그램만 올려주면 된다.

1) 커널 소스 설치

커널 소스는 꼭 필요치는 않다. 그러나 ipmasqadm 패키지를 소스를 받아 컴파일해서 설치하고자 한다면 커널 소스가 /usr/src/linux에 설치돼 있어야 한다. 또 커널 내에 IP masq와 port forwarding 코드를 넣어 컴파일할 경우도 필요하다.

2) ipchains 패키지 설치

ip masquerading에 필요하다. 모든 배포본이 리눅스 설치시 기본으로 이 패키지를 설치하므로 별도의 설치 절차가 필요 없다. port forwarding 을 구현하려면 우선 ip masq가 먼저 작동 되야 한다.

혹시 설치되지 않았으면 레드햇의 경우 CD에서 rpm -i 명령으로 설치한다.

3) ipmasqadm 설치

port forwarding에 필요한 패키지다. 아직 시험용이지만 필자가 사용해 본 결론은 당장 사용해도 별 문제가 없다. 소스를 받아 설치할 수도 있고 배포본 CD에 있는 것을 설치할 수도 있다. CD에는 들어 있으나(레드햇의 경우 ipmasqadm-0.4.2-3.i386.rpm) 설치에는 빠져 있을 수 있다.

4) 커널 컴파일

커널 컴파일도 필수는 아니다. ipmasquerade 와 port forwarding 코드를 모듈로 올려 주어도 된다. 커널 코드에 내장하는 경우와 모듈로 올리는 경우 장단점이 있다. 그러나 자주 사용하는 기능이라면 커널코드에 포함시켜 컴파일 하는게 좋다.

5) port forwarding 구현

port forwarding 을 해 주는 서버(리눅스 A)에  ipmasq uerading, port forwarding, 네트워크 파일 설정 과정이다.

6) 내부 서버 셋업

내부에 설치되는 서버(리눅스 B) 즉 실제로 외부에서 연결이 되는 서버의 셋업 이다. 특별한 패키지는 필요 없다. 네트워크 설정에서 디폴트게이트웨이를 port forwarding을 해주는 서버의 이더넷카드 ip 주소(192.168.1.1)로 지정해주면 된다. 그러나 이 서버가 웹서버로 사용된다면 웹서버를 올려주어야 하고 telnet, ftp 를 제공해 준다면 telnet, ftp 연결이 가능하도록 설정 되야 한다. 위의 그림의 윈95 피시에서 192.168.1.11 주소로 웹, telnet, ftp 연결이 되면 셋업에 문제가 없다. 이 부분은 별도의 설명을 않는다.


5. port forwarding 설치 실제 예

필자가 port forwarding을 실제로 설치한 사례를 여기에 상세히 설명한다.

여기서는 2 대의 서버를 갖는 네트워크를 구성했다. 포워딩서버(port forwarding 이 설치되는 서버)는 데비안(2.1 R2),  리시빙 서버는 수세 (6.3)을 사용했고  웹(http)과 telnet, ftp만 리시빙서버로 포워딩하는 설정이다.

위에 말한 것처럼 모든 설치는 데비안에서 이루어 진다. 수세에서의 네트워크 설정은 설명하지 않는다.

5.1  커널 소스 설치

커널소스는 ipmasqadm 패키지를 직접 컴파일해서 설치하는 경우와 ip masquerade 및 ip port forwarding 코드를 모듈로 올리지 않고 커널코드에 포함시킬 때 필요하다.

그러나 ipmasqadm 패키지는 레드햇(6.1)의 경우 CD에 있으므로 rpm으로 설치하면 되고 masquerade 및 port forwarding 코드는 모듈로 만들어져 있으므로 modprobe 명령으로 추가 시켜 주면 된다.

필자는 데비안 2.1 R2 버전을 사용하고 있으므로 커널을 최신 커널인 2.2.14 로 바꾸면서 커널을 새로 컴파일해  커널 내에 masquerade 및 port forwarding 코드를 넣었다. ipmasqadm 패키지도 소스를 받아 컴파일해 만들었다.

커널 소스를 새로 설치하는 방법은 아래와 같다.(2.2.14 버전을 기준으로 한다)

(커널 컴파일 방법은 여러가지가 가능하나 여기서는 가장 일반적인 방법만 설명한다)

1) 웹브라우저에서 ftp://ftp.kernel.org/pub/linux/kernel/v2.2/를 실행해서
    linux-2.2.13.tar.gz 파일을 받는다.

2) 이 파일을 /usr/src 디렉토리에 넣는다.

3) 이미 다른 버전의 커널 소스가 설치되어 있을 수 있으므로 아래 명령으로 기존의
    커널 소스를 제거한다.

cd /usr/src
rm -rf linux

4) 커널 소스 압축을 푼다.

tar   zxvf   linux-2.2.14.tar.gz

5) 필요한 링크를 해 준다.

cd  /usr/include
rm -rf asm linux scsi
ln -s /usr/src/linux/include/asm-i386  asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi

아래처럼 나와야 한다

hansol!root:/usr/src$ cd /usr/include/
hansol!root:/usr/include$ ls -l asm linux scsi
lrwxrwxrwx   1 root     root   32 Feb  5 13:09 asm -> /usr/src/linux/include/asm-i386/
lrwxrwxrwx   1 root     root   29 Feb  5 13:09 linux -> /usr/src/linux/include/linux/
lrwxrwxrwx   1 root     root   27 Feb  5 13:09 scsi -> /usr/src/linux/include/scsi

6) cd  /usr/src/linux

7) make menuconfig
    커널에 ip masquerade와 ip port fortforwarding 코드를 넣어 컴파일하려면 아래 선택에서
    yes를 해 준다.(모듈로 올려도 된다)

Code maturity level options  --->
[*] Prompt for development and/or incomplete code/drivers
General setup  --->
[*] Networking support
Block devices  --->
    <*> Loopback device support
Networking options  --->
[*] Network firewalls
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: advanced router
[*] IP: firewalling (NEW)
[*] IP: masquerading (NEW)
[*] IP: ICMP masquerading (NEW)
[*] IP: masquerading special modules support (NEW)
<*> IP: ipportfw masq support (EXPERIMENTAL) (NEW)

여기에 나열한 것은 포트포워딩과 직접 관련된 것만 예시했다. 이외에도 랜 및 랜카드 관련 옵션들은 시스템에 맞게 설정해야 한다.

8)  make dep
9)  make clean
10)  make bzImage

컴파일이 실행된다. 피시 기종에 따라 5 ~ 30분이 소요된다.

아래는 커널 모듈을 컴파일 및 설치해 준다.

11)  make modules
12) make modules_install
13) 만들어진 커널을 /boot에 넣고 lilo를 실행한다.

5.2  ipchains 패키지 설치

모든 배포본이 기본으로 설치해 주므로 별도의 설치 절차가 필요 없다. 데비안의 경우 /sbin/ipchains 파일이다.

5.3  ipmasqadm 패키지 설치

rpm으로 설치하는게 간편하나 소스를 받아 직접 설치하면 그 안에 각종 문서가 있으므로 자세한 사항을 알 수 있다.

5.3.1 소스 있는 곳

http://juanjox.linuxhq.com에 있다고 하나 찾지를 못해서 sunsite.unc.edu 의 slackware 에서 소스를 가져왔다. 파일명은  ipmasqadm-0.4.2.tar.gz이다.

5.3.2 소스 설치

아무 디렉토리에서 tar  zxvf  ipmasqadm-0.4.2.tar.gz 명령을 주면 ipmasqadm-0.4.2 디렉토리가 만들어 지며 그 안에 소스 및 도큐먼트 파일이 위치함.

아래는 디렉토리의 내용임

[root]/apps/ipmasqadm-0.4.2$
-rw-r--r--   1 240      714           801 Nov 26  1998 ChangeLog
-rw-r--r--   1 240      714           428 Nov 26  1998 Common.mk
-rw-r--r--   1 240      240          1040 Dec  5  1998 Makefile
drwxr-xr-x    2 240      714          1024 Dec  5  1998 doc
drwxr-xr-x    2 240      714          1024 Nov 17  1998 include
drwxr-xr-x    2 240      714          1024 Dec  5  1998 ipmasqadm
-rw-r--r--   1 240      240          1055 Dec  5  1998 ipmasqadm-0.4.spec
drwxr-xr-x    2 240      714          1024 Dec  5  1998 lib
drwxr-xr-x    2 240      714          1024 Dec  5  1998 man
drwxr-xr-x    2 240      714          1024 Dec  5  1998 modules

doc 디렉토리에 도큐먼트가 있다.

5.3.3 컴파일 및 관련 파일 설치

*. 컴파일 전에 리눅스 커널 소스가 /usr/src/linux에 있어야 한다.

1)  cd ipmasqadm-0.4.2

2) Makefile 을 수정함.

20번 라인의
@test -f $(KSRC)/include/linux/ip_masq.h 라인을
@test -f /usr/src/linux/include/linux/ip_masq.h 으로 수정

3) make

4) make install

관련 파일들이 해당 디렉토리에 설치된다.
실행 파일(ipmasqadm)은 /usr/sbin에 위치함.

5.4 ip masquerade 설정

포트포워딩은 ip masq를 먼저 잡아주어야 한다.

Ip masq를 설정하기 위해 우선 두 개의 모듈을 올려 준다. 필자는 필요한 모든 코드를 커널에 넣었지만 모듈로만 가능한 부분이 있어 아래처럼 데비안의 /etc/rc.boot 디렉토리에 파일을 만들어 넣었다.

데비안의 경우 rc.boot 디렉토리의 스크립트들이 부팅 때 실행하고자 하는 사용자 쉘스크립트를 넣는 곳인데 여기에 나열된 순서대로 실행된다.

1) 모듈 올리기

hansol!root:/etc/rc.boot$ cat 10module
#!/bin/bash
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp.o

ip masq 관련 다른 모듈이 여럿 있으나 필자는 쓰지 않으므로 넣지 않았다.

2) ip forwarding 및 ipchains 실행

데비안은 외부 네트워크 와 내부 네트워크를 연결하는 게이트웨이 구실을 하므로 ip forwarding을 가능케 해야 한다.

레드햇은 /etc/sysconfig/network 파일에서 FORWARD_IPV4=true 로 해주면 된다.

필자는  /etc/rc.boot/20ipchain 파일에 ip forwarding과 ipchains 를 같이 넣었다.

#!/bin/bash
echo “1” > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.1.0/24 -j MASQ

3) 포트포워딩 설정

아래는 웹(httpd), telnet, ftp 세가지 서비스를 192.168.1.11 어드레스를 갖는 내부 서버로 포워딩해주는 설정이다.

23은 telnet, 80은 httpd, 20,21은 ftp 에서 사용하는 포트 번호다.

hansol!root:/etc/rc.boot$ cat 30port_forwd
#!/bin/bash
/usr/sbin/ipmasqadm portfw -a -P tcp -L 168.126.127.6 23 -R 192.168.1.11 23
/usr/sbin/ipmasqadm portfw -a -P tcp -L 168.126.127.6 80 -R 192.168.1.11 80
/usr/sbin/ipmasqadm portfw -a -P tcp -L 168.126.127.6 20 -R 192.168.1.11 20
/usr/sbin/ipmasqadm portfw -a -P tcp -L 168.126.127.6 21 -R 192.168.1.11 21

5.5 점검

포트포워딩 설정이 정확한지를 확인하는 절차다.

1) ip masq 설정 점검

netstat  -nM 명령을 주면 ip masq 상태를 알 수 있다.
단, 실제로 사용 중이어야 아래 출력이 나온다.

netstat -nM
IP masquerading entries
prot   expire source                     destination            ports
udp   4:46.96 192.168.1.105        168.126.63.1         1582 -> 53 (64273)
udp   2:41.26 192.168.1.105        168.126.63.1         1571 -> 53 (64262)
udp   1:46.70 192.168.1.105        168.126.63.1         1567 -> 53 (64258)
udp   0:52.03 192.168.1.105        168.126.63.1         1565 -> 53 (64256)

2) 포트포워딩 점검

hansol!root:~$ ipmasqadm portfw -ln
prot    localaddr               rediraddr              lport    rport   pcnt   pref
TCP  168.126.127.6        192.168.1.11           21       21      10     10
TCP  168.126.127.6        192.168.1.11           20       20      10     10
TCP  168.126.127.6        192.168.1.11           80       80      10     10
TCP  168.126.127.6        192.168.1.11           23       23      10     10

위에서 168.126.127.6은 공인어드레스 (www.linux journal.co.kr)이고 192.168.1.1은 내부어드레스이다.

이제 외부에서 http://www.linuxjournal.co.kr 명령을 주거나 telnet www.linuxjournal.co.kr ftp www.linuxjournal.co.kr 명령을 주면 192.168.1.11 주소를 갖는 서버가 응답을 한다.

그러나 주의할 건 연결하는 측에서 볼 때 연결된 서버의 어드레스는 168.126.127.6 어드레스로 나타난다는 것이다. (당연한 이야기인데 왜 하느냐고요?)

아래는 210.126.21.62 호스트(리눅스)에서 telnet 168.126.127.6 명령을 준 경우 세 호스트의 netstat 출력 내용이다.

1) 210.126.21.62 (연결하는 측)

[root@ppp /root]# netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q   Local Address         Foreign Address          State
tcp        0          0      210.126.21.62:1044   168.126.127.6:23    ESTABLISHED

2) 168.126.127.6(포워딩서버)

hansol!root:~$ netstat -nM
IP masquerading entries
prot   expire      source                destination             ports
tcp  13:34.78 192.168.1.11         210.126.21.62        23 -> 1044 (23)
tcp  10:36.35 192.168.1.101       210.126.21.62        1106 -> 23 (61119)
tcp  13:34.97 192.168.1.101       210.126.21.62        1103 -> 23 (61070)

3) 192.168.1.1(리시빙서버)

joa:~ # netstat -n
Active Internet connections (w/o servers)
Proto   Recv-Q Send-Q  Local Address     Foreign Address           State
tcp          0         126     92.168.1.11:23    210.126.21.62:1044    ESTABLISHED

주의] 포트포워딩을 테스트할 때는 인터넷의 다른 호스트에서 해야 함을 명심할 것


출처 : http://www.linuxlab.co.kr/docs/00-03-1.htm

+ Recent posts