/etc/inetd.conf 파일을 안전하게 구성하는 방법
작성자 관리자 작성시간 2003-10-08 23:57:58
 

쉘의 rsh는 TCP를 사용하며 잘 알려진 514번 포트에 연결합니다.
이 데몬은 원격 사용자가 시스템에 연결하고 인증을 받고 시스템에서 명령을 실행할
수 있도록 하기 위해 사용됩니다. telnet과 약간 유사하지만 명령 수행이 완료되면
쉘도 종료됩니다. 어떤 면에서 보면 rsh는 훌륭한 유틸리티라 할 수 있습니다. 하지만
이 유틸리티의 단점은취약한 보안 문제입니다. 이 서비스는 두 가지 유형의 접근 제어
목록에 의존하고 있습니다.이 목록은 /etc/hosts.equiv와 $HOMEDIR/.rhosts 파일입니다.
사용자가 rsh를 사용하여 시스템에 연결하는 경우 사용자는 /etc/hosts.equiv에 있는
호스트 이름에 대한 엔트리를 가지고 있어야 합니다. 그렇지 않으면 사용자 수준에서
확인 절차가 이루어집니다. 사용자 수준의 확인 절차는 연결하는 시스템에서 사용자
이름 및 사용자가 연결하려는 시스템의 호스트 이름에 대해 .rhost 파일을 검사하여
수행됩니다. 여기서 문제가 발생합니다.
첫째, 네트워크의 한 시스템이 보안이 침해된 경우, 이 시스템에 다른 시스템에 있는
host.equiv 또는 .rhosts 엔트리가 있으면 이와 일치하는 엔트리가 있는 다른 모든
시스템의 보안도 침해됩니다.
둘째, 스푸핑이 매우 쉽다는 사실입니다. 악의적인 사용자가 시스템 주소를 도용하여
침투해도 대응할 방법이 거의 없습니다.
셋째, rsh는 호스트간에 어떤 종류의 암호화도 사용하지 않습니다. 따라서 해커가
네트워크에 침투하여 터미널을 공격할 기회를 잡거나 사용자 암호를 입수하게 되면
시스템에 액세스 할 수 있게 됩니다.
네째, 모든 인증 정보가 일반 텍스트로 전송됩니다.
이러한 네 가지의 취약한 보안 문제가 있기 때문에 rsh는 적합한 유틸리티로 볼 수
없습니다.

다음으로 다룰 부분은 로그인(login) 또는 원격 로그인(rlogind)입니다. rlogin은
rsh와 같은 원칙을 사용합니다./etc/hosts.equiv에 원격 시스템을 추가하거나 사용자가
홈 디렉토리에 있는 .rhost 파일을 설정할 수 있습니다. 그러나 rsh와 마찬가지로
취약한 인증, 스푸핑, 트러스트된 호스트를 악의적으로 이용, 암호화 결여 등의 문제가
있습니다.

rexec는 잘 알려진 512번 포트를 통해 TCP 서비스를 제공합니다. 이 서비스는 명령을
데몬에게 요청하여 원격 실행할 수 있게 해줍니다. rexec는 다음 두 가지 방법 중
하나를 사용하여 연결 및 명령 실행에 대한 인증을 수행합니다. 즉, 사용자의 정보를
포함하고 있는 .netrc 파일을 사용자가 지정하거나 연결이 설정되면 데몬 프로세스에
의해 사용자 이름 및 암호를 요구합니다. 이 데몬은 rsh와 rlogin과 같은 보안 문제가
있습니다.

comsat는 메일 통지 데몬입니다.이 데몬은 UDP를 사용하며 512번 포트에서 실행됩니다.
이 서비스는 모든 작업에 대한 게이트웨이로 이용되는 시스템이나 사용자의 모든 메일을
전송하는 워크스테이션에서 유용하게 사용할 수 있습니다. 반드시 필요한 서비스는
아니지만 유용한 서비스입니다. 이 데몬은 512번 포트에서 들어오는 메일을 수신하며
메일이 도착하면 헤더를 제외한 메일 본문의 첫 7행을 터미널에 출력합니다.

talk 또는 talkd는 또 다른 UDP 서비스로 517번 포트를 사용합니다.
이 서비스를 이용하면 사용자가 시스템에 원격으로 연결하여 다른 시스템에 로그인
하고 있는 사용자와 대화 세션을 시작할 수 있습니다. 이 서비스에는 직접적인 보안
문제는 없습니다. 실질적인 문제는 로컬 시스템의 외부에서 연결한 사용자가 로컬
시스템의 사용자와 대화가 가능하다는 점에 있습니다. 원격으로 연결한 사용자는 로컬
시스템 사용자를 설득하여 로그인 및 암호를 알아낼 수도 있으며 원격 사용자는 이러한
로컬 사용자 계정으로 시스템에 액세스할 가능성이 있습니다.

uucp(Unix to Unix copy protocol)는 TCP 서비스로 540번 포트를 사용합니다.
이것은 이제는 약간 구식이 된 서비스로 대부분 SMPT와 NNTP로 대체되고 있습니다.
이 서비스의 실질적인 문제도 역시 데이터 암호화의 결여로 인해 암호를 훔칠 수 있는
가능성이 있다는 것입니다.

다음은 tftp(trivial file transfer protocol)입니다.
이 서비스는 UDP를 사용하며 69번 포트에서 실행됩니다. 일부 사이트에서는 diskless
클라이언트가 부팅할 때 필요하므로 이 서비스가 필요합니다. tftpd는 보안이 매우
열악한 여러 가지 이유가 있습니다.
첫째로 tftp 서버는 인증 방법을 제공하지 않습니다. 또한 홈 디렉토리가 없어도 tftp
서버의 홈 디렉토리를 /tftpboot로 변경하므로 결과를 예측할 수가 없습니다. tftpd는
nobody 사용자 계정으로 실행하며, 공개적으로 읽기 가능한 파일을 사용자가 읽을 수
있도록 허용할 뿐 아니라 공개적으로 쓰기 가능한 파일에 대해서도 쓸 수 있도록
허용합니다.이 서버를 사용해야 하는 경우에는 디렉토리 변경을 강제로 수행하는 명령
인 -s 플래그를 사용하여 실행하는 것을 고려해 보십시오. 자세한 내용은 해당 매뉴얼
페이지를 참조하십시오.

다음은 finger, systat 및 netstat입니다.
finger는 시스템 외부의 사용자가 로컬 시스템의 다른 사용자의 정보를 찾을 수 있도록
허용하며 79번 포트를 사용합니다. systat는 시스템에서 현재 실행중인 프로세스 목록
을 원격 사용자에게 제공하며, TCP를 사용하여 11번 포트에서 동작합니다. netstat는
15번 포트에서 TCP를 사용하며 시스템에 연결된 모든 네트워크에 대한 자세한 정보를
제공합니다. 세 가지 서비스 모두 보안이 침해될 위험성이 매우 높습니다. 이러한
서비스는 시스템 외부의 사용자에게 자세한 정보를 제공하므로,이 중 일부는 해커에게
유용한 정보가 됩니다.

Time은 시스템에 포맷된 시간에 따라 내부 시스템을 실행하는 데몬 프로세스로 37번
포트에서 TCP와 UDP 모두 사용합니다. 시간은 1900년 1월 1일 자정부터 초로 계산됩니다.
운영하고 있는 사업장을 고려해 보십시오.하루 24시간 매일 운영합니까? 새벽 1시에도
직원이 근무합니까?
원격 사용자에게 이러한 종류의 정보가 허용된다면 사업장의 시스템을 침투하기 위한
적합한 시간을 찾을 것입니다.

Echo는 TCP와 UDP 소통을 위해 7번 포트를 사용하며 RFC 862에 근원을 두고 있습니다.
이것은 디버깅 및 측량 도구로 구현되었으며 수신한 데이터를 송신한 호스트로 돌려
보내는 작업을 수행합니다. 따라서 서비스 거부(Denial of Service) 공격을 받을
가능성이 매우 높습니다.

Discard는 9번 포트를 통해 TCP 및 UDP에서 동작합니다. 이것은 RFC 863에 근원을
두고 있으며 디버깅 도구로서 개발되었습니다. 이 서비스의 용도는 수신하는 모든
데이터를 버리는 것입니다.

Daytime은 time과 같은 기능을 수행하지만 사람이 읽기 쉬운 형태로 제공하는 것이
다릅니다. 이 서비스는 13번 포트에서 실행됩니다.

chargen은 19번 포트에서 동작하며 TCP와 UDP를 사용합니다.
Chargen은 TCP에서 동작하는 동안 연결을 기다리다가 연결이 되면 연결을 요청한
곳에서 연결을 끊을 때까지 데이터 스트림을 계속 송신합니다. UDP상에서 동작할
경우에는 데이터 그램이 수신되기를 기다립니다. 하나의 데이터 그램이 수신되면
0 ~ 512개 문자로 이루어진 데이터 그램으로 응답합니다. 이것은 서비스 거부 공격에
자주 사용됩니다.

마지막으로 다룰 서비스는 프린터 데몬입니다. 프린터 데몬은 TCP 연결을 사용하여
512번 포트에서 동작합니다. 프린터 데몬은 유용한 도구로, 워크스테이션에서 원격
프린터로 인쇄할 수 있도록 해줍니다. 이 서비스의 문제는 보안입니다. 사이트의 보안
을 강화하려면 로컬 네트워크에 인쇄 리소스를 배치하거나 액세스 제어 목록(ACL)
구조를 이용하여 프린터 서버를 보호해야 합니다.

RPC 기반 서비스

rexd :원격 사용자가 호스트의 RPC 프로그램을 실행할 수 있도록 해줍니다. 호스트에서
      임의의 쉘을 실행할 수 있기 때문에 보안이 침해될 위험성이 매우 높습니다.
      이 서비스는 사용할 수 없도록 설정하는 것이 좋습니다.

rquotad :NFS를 통해 원격 시스템에 의해 마운트된 파일 시스템에 대한 사용자 할당량을
        반환합니다. 이 서비스는 사용할 수 없도록 설정하는 것이 좋습니다.

rstatd :perfmeter와 같은 프로그램이 사용할 수 있도록 커널에서 작업 통계 정보를
  가져옵니다.이 서비스는 사용할 수 없도록 설정하는 것이 좋습니다.

ruserd :네트워크에 있는 사용자 목록을 반환하는데 사용합니다. 이 서비스는 사용할
수 없도록 설정하는 것이 좋습니다.

sprayd :spray가 보낸 패킷을 기록하고 이 패킷을 보낸 곳으로 회신합니다. 이 서비스는
  사용할 수 없도록 설정하는 것이 좋습니다.

walld :rwall 및 shutdown 요청을 처리하기 위해 사용합니다.이 서비스는 사용할 수
      없도록 설정하는 것이 좋습니다.

ypupdated :NIS 정보를 업데이트하기 위해 사용합니다. 일반적으로 NIS 사용을 권장하지
  않으므로 이 서비스를 사용할 수 없도록 설정하십시오.


----------------------------------------------------

java --> 이건 써야 겠죠. 웹서비스 쓰시는 것 같은니까.
in.ftpd --> 이거 써야 겠죠 . 파일 올려야 하니까.
in.telnetd --> 필요 없다면 닫아 주세요. ssh 쓰세요.
mibiisa
ttymon --> 시리얼 통신 할때 쓰는 것입니다. 포트 모니터죠.
fbconsole
dmispd
dtlogin --> 그래픽 환경 여기서 dt 는 CDE를 나타내요. 그래픽 쓰고 있다면 있어야 하구요.
snmpXdmid
snmpdx --> snmp 를 쓰고 있다면 써야 하지만. SMC 툴을 쓰지 않는다면 굳이 쓰실 필요는 없습니다.
ttymon
efdaemon
Xsun --> 그래픽 데몬이라고 생각 하시면 됩니다. 그래픽 쓰시면 써야 겠죠.(CDE) 그럼 위의 dtlogin도 같이 써야 겠죠.
htt_server --> 이거 써야 겠죠.
smcboot --> SMC 툴 쓰지 않는 다면 굳이 필요는 없습니다.
htt --> 이거 써야 겠죠.
smcboot
utmpd --> 이거 있어야 합니다. 로그기록에 관한 부분이구요. 시스템에 로그인한 사람들 모니터링 하는 것이라고 생각 하시면 됩니다. /var/adm/utmpx 파일과 관련이 있는 것입니다.
powerd --> 이거 있어야 하구요.
vold --> 일반 사용자로 시디롬이나 디스켓 사용하지 않는다면 굳이 쓰실 필요는 없습니다.
statd --> 이건 있어야 합니다. NFS 부분에서 필요 합니다.
inetd --> 있어야 겠죠.
syslogd --> 있어야 겠죠.
lpsched --> 프린트 서버로 쓰지 않는 다면 필요 없습니다.
automountd --> 오토 마운트 하지 않는 다면 필요 없습니다.
nscd
lockd --> 이거 필요 합니다.
devfsadm --> 이거 필요 합니다. 새로운 디바이스 인식 할때 쓰는 것입니다.
picld


목록 | 입력 | 수정 | 답변 | 삭제