리눅스 시스템에 열려 있는 포트로 어떠한 서비스 또는 프로세서가 작동하고 있는지 알아내고
이 정보를 기반으로 해당 프로세서를 제어함으로써 불법적이거나 잘못된 프로세서를 제어한다.
1.실행
일반적으로 리눅스 시스템에 어떠한 포트가 열려 있는 포트를 보기 위해서는 아래와 같은 명령어를 사용한다.
|
위에서 보듯이 여러 포트가 열려 있다. 그리고 이 포트들에 대한 정보들은
/etc/services 파일에 정의 되어 있다. 하지만 이곳에 정의 되지 않거나 혹은 잘못연결된 포트가 존재할 수 있다.
이때 관리자는 어떠한 방법으로 해당 포트가 어떤 서비스 혹은 프로세서에 연결되어 있는지 항상 감시 해야만 한다.
만약 불법적인 접근에 위한 포트 이거나 잘못된 포트 혹은 정상적인 포트가 열리지 않을 경우 이에 대비하여야 한다.
다음과 같은 방법으로 해당 포트의 정보를 알아낼수 있습니다.
(이 방법이 아니더라도 여려가지 방법이 있을 수 있다.)
우선 해당 포트가 어떠한 프로세서 넘버로 작동하는지 알아 낸다.
위 netstat 정보에서 포트 51234 번이 궁금하다면 아래와 같이 한다.
fuser 라는 명령어를 통해서 알아낼 수 있다.
( fuser - identify processes using files or sockets )
|
위 명령어를 통해서 51234 포트가 프로세서 넘버 17578 17579 17580 17581... 등으로 작동하고 있는것을 알 수 있다.
그러면 해당 프로세서가 어떤 파일(서비스)에 연결되어 있는지 알아보자
proc 파일시스템에서 프로세서 넘버 검색으로 알아 낼 수 있다.
( proc - process information pseudo-filesystem )
<shell> |
위와 같이 해당 프로세서가 팀스피크-서버 서비스를 하고 있는 것을 알아 낼 수 있었다.
결과적으로 팀스피크 서버가 51234 포트를 통해 서비스 하고 있다는 것을 알 수 있는 것이다.
이 같은 방법으로 의심이 가는 포트나 궁금한 포트의 서비스 내역을 알아 낼수 있었다.
만약 해당 포트가 잘못된 서비스 이거나 불법적인 서비스 혹은 외부로 부터의 불법적인 접근이라면
해당 포트의 관련 프로세서를 kill 함으로써 시스템을 보호하고 보완해 갈 수 있을 것이다.
cf) 위의 다소 복잡한 방법 말고 간단한 방법도 있다.
netstat -nptl 같이 포트번호와 프로세서 정보까지 동시에 출력하는 기능이 있다.
하지만 위 명령어를 사용하지 못할때 같은 위와 같은 방법이 필요할 때가 있을것이다.
======================================