강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

아무런 이유없이 ftp접속이 완전 차단 되었다면....

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.gif 아무런 이유없이 ftp접속이 완전 차단 되었다면....

 

제목 : 아무런 이유없이 ftp접속이 완전 차단 되었다면....
             (리눅스 서버 트러블 슈팅 제1편)

ftp 접속이 안된다는 연락을 받고서 확인하였습니다.

ftp는 xinetd모드로 작동하도록 되어 있었으며, 설정및 xinetd의 기능상의 이상은 전혀 없는 듯 하였습니다 .

 

따라서 rpm으로 동일버전의 ftp를 재설치하고 xinetd를 재시작한 후에 접속을 시도하여 보았습니다

 

하지만 여전히 않되는 것이였습니다 .

 

, 다음과 같은 메시지가 나오는 것이였습니다.

 

 

clip_image002.jpg

 

 

간단한 문제가 아님을 확인하고서 응급조치의 가장 우선순위인 관련 로그파일을 확인해 보았습니다 .

 

이상하게도 관련 로그파일에도 이상이 없었습니다.

 

 

접속허용에 관련된 것일 수도 있다는 판단에 /etc/hosts.allow파일에 다음과 같이 접속 할 수 있는 설정을 해두었습니다.

 

clip_image003.gif

 

서비스의 종류에 관계없이 필자가 사용하는 컴퓨터의 고정IP대에서는 어떤 접속이든 허용하도록 설정을 해보았습니다.

 

~~~이게 웬일입니까?

 

그래도 위의 맨 처음 그림의 예와 같은 에러 메시지와 함께 접속이 안되는 것입니다.

 

이거 환장하는 것 아닙니까?

 

"그렇다면 하는 수 없지"하는 심정으로 ftp를 xinetd모드로 설치하여 사용하는 것을 포기하고 standalone으로 설치하면 되겠지 싶어서 ftp 데몬을 죽인 후에 관련 파일들을 모두 삭제하고 다시 설치하기로 하였습니다.

 

사용 프로그램은 wu-ftpd보다는 좀 더 다양하고 보안에 강한 proftpd를 사용하기로 결정을 하였습니다.

 

 

다음과 같이 설치를 하였습니다.

 

clip_image005.jpg

 

위의 그림은 직접 설치한 내역을 간단히 나타낸 것입니다 .

 

 

 

그리고 proftpd의 실행을 위하여 proftpd.conf파일을 다음과 같이 vi로 열어서 필요한 부분만 수정을 해주었습니다.

 

clip_image007.jpg

 

vi proftpd.conf로 이 파일을 열어서 Group 설정부분에 설정되어 있는 nogroup을 nobody로 설정했습니다.

리눅스의 기본 계정에는 nogroup이라는 그룹계정이 없기 때문에 이 처럼 수정하지 않고 기본값으로 실행을 한다면 실행이 되지 않습니다.

따라서 proftpd.conf 파일내의 nogroup을 nobody로 수정해 주면 정상적인 실행이 되기 때문에 수정한 것입니다.

 

 

그리고 다음은 설치및 수정한 proftpd를 실행시킨 것입니다.

 

clip_image009.jpg

 

아무런 메시지 없이 정상적으로 실행이 되었음을 알 수 있습니다.

 

그리고 다음과 같이 proftpd의 정상적인 실행상태를 체크하기 위하여 ps로 실행되어 있는 proftpd의 상태를 확인한 것입니다.

 

 

clip_image011.jpg

 

그리고 이제 원격에서 접속테스트를 해보았습니다.

 

!~~~이건 또 왠일 입니까?

 

정말 미치고 환장할 뻔 했습니다.

 

처음과 똑 같은 메시지로 ftp 접속이 안되는 게 아닙니까?

 

!! 정말 이런 수도 있습니까?

 

실행도 정상적으로 되고, 데몬도 정상이고,깨끗한 걸로 재설치까지하였는데 왜 이런 메시지가 나오는 걸까요?

 

여러분들이 저라면 어떻게 했겠습니까?

 

저는 잠깐의 휴식이 필요하다는 것과 머리를 좀 식혀서 차분히 뭐가 문제인가를 모든 가능한 경우의 수를 따져서 생각해 보기로 하였습니다.

 

우선, ftp의 왜관상 문제는 전혀 없는 듯 하였습니다.

 

그렇다고 로그파일에 이상한 증상이 발견된 것도 아니었습니다.

 

그리고 해킹이나 다른 장애로 인하여 서버에 이상이 있거나 서버부하가 발생한 것도 아니었습니다.

 

그렇다면, 정녕 그렇다면 뭐가 문제란 말인가?

 

한참을 경우의 수하고 놀고 있는 순간 "띵!!~~~~~~ "하고 저의 머리를 스치고 지나가는 것이 있었습니다.

 

, ftp는 tcp 21번 포트와 데이터전송을 위해 20번 포트를 사용합니다.

 

21번 포트로는 ftp명령어를 주고 받고, 20번으로는 get이나 mget, 그리고 put이나 mput등의 명령에 의한 데이타를 주고받는 포트입니다 .

 

만약, 21번포트를 다른 프로그램에서 사용하고 있다면 데몬이 떠 있을 수 있으나 서비스를 되지않을 것이 아닙니까?

 

하지만 필자의 경험에 의하면 특정한 포트가 사용중일 경우에 그 포트를 사용하기 위하여 데몬을 실행시키면 실행이 되지않는 다는 것을 이미 필자는 알고 있었습니다.

 

하지만, 이 순간 그 외에는 이유가 없는 듯하여

 

lsof와 netstat등의 명령어를 이용하여 용하는 포트를 확인해 보았습니다.

 

 

그런데, 정말 불행하게도 21번뿐아니라 20번까지도 다른 응용프로그램에서 사용하는 것은 확인하지 못했습니다.

 

, 서버내에서 tcp의 21번과 20번포트를 ftp왜에 다른 응용 프로그램에서 사용하지 않는다는 것을 확인한 것이죠.

 

저는 미치는 줄 알았습니다.

 

그래서 거의 이성을 잃은 채로 평소 체크하든 모든 체크를 하기로 결정하였습니다.

 

system_check라는 제가 만든 서버 점검 스크립트를 돌려서 백도어, rootkit, 디스크상태, 메모리 상태, 포트점검등 거의 모든 것을 확인해 보았으나 의심가거나 확인해 봐야할 만한 것은 없었습니다.

 

저는 뭔가의 문제에 봉착하여 알고있는 거의 모든 방법으로 확인이 되지않을 때에는 모든 경우의 수를 다 따져봅니다.

 

이것으로도 확인이 않될 경우에는 잠시 시간을 갖습니다.

 

그래서 저는 담배 한개피와 커피 한잔을 들고 사무실 밖으로 나와서 생각에 잠겼습니다.

 

그리고 가능한 모든 경우의 수를 다시한번 생각해 보았습니다. 순간 저는 ftp로그 외에 시스템관련 로그파일을 확인하지 않았다는 것을 알게 되었습니다 .

 

당연히 ftp에 관련된 로그를 확인하였지만 시스템에서 남겨지는 모든 로그를 확인하는 작업은 하지않았습니다 .

 

혹시나 하는 심정으로 서버에 기록되는 모든 로그를 차근차근 살펴보기로 하였습니다.

 

모든 로그를 살펴보는 과정에서 다음과 같은 로그가 messages파일에 기록이 되어있는 것을 확인하였습니다.

 

 

clip_image013.jpg

 

위의 메시지를 보시면 proftpd가 standalone으로 시작이 되었다는 메시지와 함께 /etc/shutmsg파일에 있는 메시지를 출력하면서 모든 접속이 거부한다는 것을 확인 한 것이죠.

 

따라서 /etc/shutmsg를 삭제하고 proftpd를 재시작하여 접속을 재시도 하였습니다 .

 

그순간~~~~저는  다음과 같이 아주 잘되는 것을 확인 할 수 있었습니다.

 

clip_image015.jpg

 

/etc/shutmsg라는 파일은 ftp접속을 일시적으로 끊기 위하여 생성해 두는 것으로 /etc/nologin이 telnet의 원격접속을 일시적으로 차단하는 역할과 동일하다고 볼 수 있습니다.

 

물론, 다른 서버에서도 /etc/shutmsg라는 파일내에 메시지를 저장하여 두고서 proftpd를 재시작한 후에 ftp접속을 시도하여 그 결과를 확인하여 보았습니다.

 

역시 /etc/shutmsg 파일에 있는 메시지를 보여주면서 ftp접속을 차단한다는 것을 확인하였습니다.

 

이번 장애상황을 해결하면서 저는 다음과 같은 두가지를 다시한번 확인할 수 있었습니다.

 

어떤 장애상황이든 관련데몬의 로그 뿐아니라 가능한 모든 로그파일을 살펴보아야한다는 것과 /etc/shutmsg의 역할이 telnet의 /etc/nologin과 거의 같은 역할을 한다는 것을 확인 할 수 있었습니다.

 

다들 아시겠지만 /etc/nologin에 대한 설명은 "리눅스 서버관리 실무바이블"을 참조해 주시기 바랍니다.

 

가벼운 것부터 한걸음씩 간다는 마음으로 .이상으로 "리눅스 서버트러블 슈팅"  그 첫번째 테마를 간단히 마무리 합니다.

 

다음 2번째 테마를 기대하면서…………  ~~~헐렁~~~

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,017 명
  • 현재 강좌수 :  35,690 개
  • 현재 접속자 :  238 명