E D R , A S I H C RSS

FrontPage solaris_security_2

15. 네트워크 서비스 보안

네트워크 서비스는 다른 곳, 또는 유저와 통신을 위해 제공되는 서비스 입니다. 이러한 서비스의 종류에는 웹 서비스(apache), 파일 전송(ftp), 메일 전송(sendmail), 네트워크를 이용한 네트워크 프린팅 서비스, 그리고 원격 접속 서비스 등등... 많은 서비스가 존재합니다.
그리고 일반적인 솔라리스 OS 설치시 이러한 서비스가 제공되도록 설정되어 있습니다. 그리고 Third-party로 제공되는 여러 어플리케이션으로 서비스가 제공되도록 할 수 있습니다.

일반적인 솔라리스 설치시 이러한 서비스가 제공되도록 \"기본적\"으로 설정되어 있다는 것에 우리는 관심을 두어야 합니다. 이러한 정보들은 제공하려는 서비스 이외에 여러가지 정보를 제공해주는 방법이 되며, 이러한 정보들은 해킹을 시도하는 해커들에거 아주 유용한 정보들이 됩니다.

이러한 이유에서 솔라리스 OS의 최소 설치는 아주 중요한 것이 됩니다. 그렇다고 방법이 없는 것은 아닙니다. 시스템 관리자가 알아서 제공되는 서비스를 제외한 서비스를 중지해주면 됩니다.

15-1 네트워크 보안에 사용가능한 여러 툴

이와 같이 네트워크 보안에 사용할 수 있는 여러가지 툴이 존재합니다. 이러한 툴을 먼저 소개하려 합니다.

우선 SunScreen이라는 제품이 있습니다. 이 제품은 네트워크 레벨에서 제공되어 질 수 있는 보안을 제공합니다. 네트워크 로깅, Access에 대한 control이 제공되어 질 수 있습니다.
이 제품은 shareware로, 2개의 NIC까지 서비스가 가 가능하다는 단점이 있습니다. 이 이상의 제품은 구입을 통해서 가능합니다.

sun screen 은 솔라리스 8까지는 2번째 시디에 들어 있고 이버전은 라이트 버전으로 기능제한이 있는 버전입니다.
그러나 솔라리스 9 부터는 정책이 바뀌어 sun screen 은 오픈으로 전환되어 무료로 사용할 수 있습니다.
라이트 버전이 아니고 full 버전입니다.
그럼..^^

p.s 예전에는 14000 달러 였나 ....그랬다죠...아마...^^
쿨럭. 저도 만능은 아닙니다. -ㅁ-;

그와 반대로 IP Filter(http://coombs.anu.edu.au/ipfilter)라는 Freeware 방화벽 툴이 있습니다. 이 제품은 솔라리스 2.3 부터 10까지 지원합니다. 그리고 여러가지 형태로 방화벽 구성이 용의하여, 네트워크 보안에 아주 좋은 툴입니다. 여러 형태의 로깅, Access에 대한 control을 지원합니다.

그리고 TCP Warpper라는 open source tool이 있습니다. 이 제품은 TCP 레벨에서 Access, 로깅을 지원합니다.

마지막으로 OpenSSH와 SSH를 들 수 있습니다. SSH의 경우 상용 제품입니다. 이 두개의 툴은 안전하지 않은 telnet, ftp, rlogin. rsh,그리고 rcp등을 대체할 수 있는 제품으로 강력한 인증 보안을 지원합니다.

15-2 서비스들의 간단한 소개

telnet

telnet는 유용한 유틸이지만 보안에 대해 상당한 문제점이 있습니다. 간단한 예로, 텔넷을 통한 접속의 경우, telnet의 TCP를 살펴볼 경우 모든 것이 들어납니다. 이러한 것은 보안에 아주 심각한 영향을 줄 수도 있습니다.
예를들어 같은 네트워크 망에서 sniff툴을 이용해 TCP를 모니터링 할 경우, telnet 을 이용한 접속의 경우 ID, passwd, telnet를 통해서 하는 작업이 그대로 들어납니다. 이것은 보안에 있어 아주 치명적인 결과를 초래할 수 있습니다.
대체가 가능한 서비스(Openssh, ssh)가 있다면 이서비스는 중지하는 것이 좋습니다.

Remote Access Services (rsh, rlogin, and rcp)

이러한 유틸리티들은 해당 서비스에 passwd 없이 접속할 수 있는 도구로 사용됩니다. 그러나 이런 것들은 보안에 아주 심각한 원인을 유발 할 수 있는 것들입니다.
예로 서버에서 모든 호스트들의 접속을 허용하고, rsh 또는 rlogin을 허용할 경우, 외부에서 passwd 없이 바로 root나 해당 계정으로 접속이 가능합니다.
이러한 서비스에 대한 보안으로 Kerberos를 이용한 방법이 대두되고 있습니다만, 이러한 서비스는 해당 시스템에 심각한 보안적 헛점을 유발한다고 항상 염두에 두어야합니다.
가능하면 이 서비스도 중지하는 것이 좋습니다.

Remote Execution Service (rexec)

recec 데몬 서버의 이름은 in.rexecd 이며, /etc/initd.conf를 통해서 실행됩니다. 이 데몬은 계정과 password 정보를 기본으로 실행이 됩니다. 그러나 이 데몬은 in.telnetd 데몬을 통해서 계정과 password를 주고 받습니다. 이중 가장 문제가 되는 부분이 in.telnetd 데몬을 통해서 정보를 주고 받는다는 것인데, 위에서 설명이 나왔다 싶이 telnet 서비스는 보안이 가장 허술한 면모를 보이는 서비스입니다.
이서비스는 반드시 중지해야할 서비스 입니다.

FTP

ftp 또한 telent과 마찬가지로 TCP를 통해 계정과 비밀번호를 전달 받지만, TCP를 살펴보면 계정과 비밀번호가 그대로 들어나는 단점이 있습니다.
만약 ftp를 운영해야 한다면 2가지 방법이 있습니다. 하나는 특정 계정에 대한 접속을 제한하도록 해야합니다. 솔라리스에서 제공되는 ftp를 사용할 경우 /etc/ftpusers 파일에 ftp를 통해서 서비스에 접근할 수 없는 계정을 등록해서 ftp를 통해서 등록하지 말아야하는 계정을 꼭 등록해 놓기 바랍니다. 다른 방법으로는 모든 connecting와 해당 서비스에서 하는 commands를 로깅하는 방법입니다. 이러한 로깅은 syslog 서비스를 통해서 가능합니다.

Trivial FTP

Trivial FTP 서비스는 disk-less 시스템에서 네트워크를 통한 파일에 대한 접근이 가능하도록 하는 서비스입니다. 이 in.tftpd 데몬은 인증이 필요 없고, 단지 일반적으로 읽기가 가능하도록 설정해 엄격한 디렉토리에 대한 접근이 가능하도록 설정되어져 있습니다.
기본으로 이서비스도 중지하는 것이 좋습니다.

15-3. inetd Manaaged Services

inetd 데몬은 시스템에서 사용가능한 minor network service에 대한 대부분의 콘트롤을 하는 서비스 입니다. 이 데몬에 대한 설정 파일은 /etc/inetd.conf입니다.
/etc/inetd.conf 파일이 없다면 inetd 데몬이 실행되지 않으며, /etc/inetd.conf는 자주 읽어 지는 파일이 아니라 실행시 한번 읽어 들여 inetd 데몬이 실행합니다. 즉 /etc/inetd.conf 파일이 변경되어 진다면 inetd 데몬이 재 실행해야 합니다.
만약 /etc/inetd.conf 에 존재하는 서비스를 중지시키려면 첫줄에 comment(#)를 붙이면 됩니다.

이미 TELNET, Remote Access Services, Remote Execution Sservice, FTP, TFTP에 대한 서비스에 대해서 위에서 설명했습니다. 그 외의 서비스에 대해서 살펴보도록 하겠습니다.

* in.tnamed - DARPA 네임 서비스 프로토콜을 지원하는 서비스입니다. 이 서비스는 중지되어야 합니다.

* in.uucpd - 네트워크를 통한 UUCP 접속을 지원하는 서비스입니다. UUCP 서비스가 제공되어 지지 않는다면 중지되어야 합니다.

* in.fingerd - 해당 시스템의 계정의 정보를 제공하는 서비스 입니다. 이 서비스가 필요 없다면 중지하십시요.

* systat - 시스템에 접속한 어떤 계정이나 사람이라도 ps -ef에 대한 OUTPUT에 대해 정보를 제공합니다. 이 서비스는 너무 많은 시스템 정보를 제공하므로 반드시 중지해야 합니다.

* netstat - 이 서비스 netstat command에 대해 외부 네트워크 접속에 대한 정보를 제공합니다. 이 서비스는 반드시 중지되어야 합니다. 이 서비스가 제공하는 정보는 시스템에 대한 공격의 정보가 될 수 있습니다.

* time 현재 시간을 표시해 주는 서비스입니다. 솔라리스 2.6 부터 xntp 함수는 시간에 대해 Synchronization 해주는 함수가 있습니다. 그러므로 xntp 데몬이 rdate와 time보다는 더 나은 보안을 제공합니다. 그러니 xntp를 사용하는 것이 좋습니다.

* echo - 들어오는 data stream에 대해서 제 출력 해주는 데몬입니다. 이 서비스도 중지해야 합니다.

* discard - 들어오는 data stream에 대해 버리는 데몬입니다. 이 서비스도 중지해주십시요.

* chargen - stream chracters를 발생시키는 데몬입니다. 이 서비스도 중지해주십시요.

이 서비스들에 대해서 /etc/inetd.conf에서 대부분의 시스템에서 제거해주는 것이 좋습니다. 그리고 /etc/inetd.conf에서 제공되는 서비스들은 접속이 들어올 시 로깅이 되도록 설정해주는 것이 좋습니다. 덧붙이 inetd 데몬이 실행하는 start script는 /etc/init.d/inetsvc입니다.

15-3. RPC Service

RPC는 원격 시스템에 대한 요청에 procedure를 만드는 것입니다. (process가 아니다.)
RPC 서비스는 많은 유닉스 서비스에서 사용되고 있습니다. 예를들어서 NFS, NIS, NIS++, 그리고 Kerberos 입니다. 또한 Solstice, DiskSuite 소프트웨어, 선 클러스터 소프트웨어등에서 사용됩니다. RPC 서비스가 시작된다면, 이 서비스들은 rpcbind 데몬에 어떤 주소로 어떻게 네트워크 요청을 들어야 할지 요청합니다. 그리고 클라이언트에서 RPC 프로그램 번호에 대한 요청이 들어왔을 때, rpcbind는 어느 주소로 어떤 번호로 요청을 보내야 할지를 전해 줍니다.

RPC(rpcbind)는 자체적으로 해커에게 시스템의 정보를 줄 수 있습니다. 사실 이것은 보안문제에 있어 문제가 아닙니다. 그러나 강력한 인증 메카니즘이 없는 서비스를 제공할 경우. 이러한 RPC는 보안 문제로 대두될 수 있습니다.

솔라리스 시스템은 다음과 같은 데몬 또는 서비스가 제공되어 집니다.

* testsvc
* kcms.server
* sadmind
* ufsd
* rquotad
* cachefsd
* kerbd
* xaudio
* rpc.rusersd
* rpc.sprayd
* rpc.rwalld
* rpc.rstatd
* rpc.cmsd
* rpc.ttdbserver
* rpc.rexd

* rpcbind
* nis_cachemgr
* keyserv
* rpc.nispasswdd
* rpc.nisd

* rpc.bootparamd

대부분의 서버에서는 /etc/inetd.conf 상의 RPC 서비스들은 제거하는 것이 좋다.
그리고 NIS의 경우 보안 모델이 취약한 관계로 제공하지 않는 것이 좋다.
이러한 서비스를 제공하고 싶다면 몇가지 문서를 참고로 해서 보안 모델을 적용해서 실행하는 것이 좋다.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-06-08 15:35:21
Processing time 0.0436 sec