이재욱 / salsari@hotmail.com
|
1. 들어가기 전에 - 이 부분을 이해하려면 여러분들은 UNIX system administration에 관한 기본적인 개념을 어느 정도는 알고 있어야 한다. 어려운 부분도 있겠지만 읽으면서 관심을 가지고 UNIX 관리에 관한 공부도 해보자. - 알아두어야 할 용어 및 명령어 Account : 계정, 사용자 명, 로그인 명
2. 안전한 시스템 구축
2.1 Account 보안 2.1.1 사용자가 해야 할 보안 가. 사용자의 계정(USER ID)을 패스워드로
사용하지 않는다. 2.1.2 관리자가 해야 할 보안 가. 주기적으로 패스워드를 변경한다.
2.2 네트워크 보안 2.2.1 R COMMANDS r commands(rsh, rlogin, rcp)라 함은 타겟 호스트의 신뢰 시스템을 이용한 서비스 방식이다. r commands는 기본적으로 사용하지 않는 것이 좋은데 만약 여러 호스트를 두루 사용하고 있다면 일일히 로그인 명과 패스워드를 입력하기 귀찮을 것이다. 이때 많이 사용하는 것이 r commands 인데 중요한 보안의 문제점을 안고 있다. ★ 만약 r commands를 사용해야만 한다면 필요로 하는 곳에서 좀더 보안이 강화된 버젼의 r command들을 사용하라. Wietse Venema의 logdaemon package는 r command daemon의 좀 더 보안이 강화된 버젼을 포함하고 있다. 이러한 버젼들은 $HOME/.rhosts에 대해서가 아닌, 단지 /etc/hosts.equiv 를 강화시키기 위해 설정되어질 수 있다. 또한 여기에는 와일드 카드 (‘+’)를 사용하지 못하게 하는 옵션을 포함하고 있다. 라우터에서 포트번호 512,513,514 (TCP)들을 필터링하라. 이것은 외부에서의 이러한 명령들의 불법 이용뿐 아니라 내부의 이용도 막을 수 있을 것이다. 이렇게 하기 위해서는 이러한 명령들을 disable하 는 것을 필요로 한다. 2.2.2 $HOME/.rhosts r commands를 인증하는 파일로서 대상호스트의 지정 사용자를 아무 인증없이 홈디렉토리에 로그인 할 수 있게 한다. ★ 이 파일이 필요없다면(기본적으로 잘 쓰지 않는다.) 개인 계정의 홈 디렉토리에 .rhosts 파일을 가지고 있지 않도록 확인하라. 이 파일들은 각각의 유저들에 의해 만들어질 수 있기 때문에 /etc/hosts.equiv 파일 보다 더 보안상 위험한 상태에 놓여지게 된다. 그리고 주기적으로 cron을 사용하여 이것을 체크해주고 내용을 정리해서 $HOME/.rhosts 파일을 지워 주도록 하라. 유저들에게 이러한 작업을 주기적으로 당신이 실행한다는 것을 알리도록 하라. ★ 만약 이 파일의 사용이 꼭 필요하다면.. 가. 파일의 첫번째 문자가 ‘-’로 시작하지
않도록 확인하라. 2.2.3 /etc/hosts.equiv rlogin과 같은 프로그램들은 패스워드의
적용없이 어떤 허가된 시스템으로부터 여러분들의 시스템의
동일 계정으로 로그인하는데 사용될 수 있다. 만일 r command를
사용하지 않거나 다른 시스템으로부터의 로그인 허용을 원하지
않을 경우에는 이 파일을 사용하지 않아도 되고 필요하다면
지워도 된다. 이 파일이 존재하지 않는다면 그것은 ★ /etc/hosts.equiv 파일을 가지고 있어야만 한다면 가. 최소한의 신뢰된 호스트의 목록만을
유지하는지 확인하라. 2.2.4 UUCP 가. 만일 당신의 사이트에서 필요로 하지
않는다면 로그인을 위해 실행가능한 shell을 2.2.5 /etc/inetd.conf 가. 이 파일의 퍼미션이 600으로 되어 있는지
확인하라. 2.2.6 tcp_wrapper 가. 당신의 시스템에 이 툴을 설치하고 최적화하라.
2.2.7 tftp tftp가 필요하지 않다면 /etc/inetd.conf 파일에서 주석(#)처리하고 inetd 프로세스를 재 시동하라. 2.2.8 fingerd Finger는 당신의 호스트에 관한 많은 정보를
침입자에게 제공할 수도 있다는 것을 인지하기 바란다. 당신이
제공하는 finger정보를 고려하고 finger를 disable하거나 엄격한
정보에 의해 제공되는 버전으로 대체함으로써 내용을 감소시키는
것을 생각하기 바란다. 2.2.9 httpd 가. root 계정으로 서버를 실행하지 마라. 2.2.10 ftpd 가. 당신이 사용하는 ftp 데몬이 최근의
버전인 것인지 확인하라. 2.2.11 anonymous ftp ★ anonymous ftp가 필요하다면 가. ftp 서버상의 모든 기본 환경설정 옵션을 모두 확인하라. ★ anonymous ftp가 필요하지 않다면 가. 당신의 시스템에 anonymous ftp를 실행
중인지를 확인하기 위해서 anonymous ftp 2.2.12 ftp 서버의 환경설정 가. 당신의 ftp 서버상의 모든 기본 환경설정
옵션을 모두 확인하라. 보든 버전의 ftp가 ftp:*:400:400:Anonymous FTP:/home/ftp:/bin/false 라. ftp의 홈디렉토리(~ftp/)가 모드는 555,
소유자는 root (ftp가 아님)로 되어 있는지 root:*:0:0:Ftp
maintainer::ftp:*:400:400: 이 패스워드
파일은 ls(1) listing 을 위해 유저이름에게 단지 uid를 제공하기
위해 2.2.13 sendmail 가. 항상 최신 버젼의 sendmail을 사용하라.
2.3 시스템 보안 2.3.1 Patch 밴더로부터 패치 목록을 구한 다음 시스템에 추천되는 패치중에 아직 인스톨되어 있지 않은 것을 인스톨 하라. 2.3.2 General 가. 당신의 시스템 상에 불법적인 목적을
가진 .exrc파일들이 있는지를 확인하라. 2.3.3 Passwd shadowing 가. 밴더에서 제공되는 passwd shadowing,
혹은 third party 제품을 enable 시켜라. 2.3.4 Special accounts 가. 보안 정책에 따라 root의 다른 분산된
계정이 없도록 하라. 계정의 비밀번호를 한 2.3.5 root 계정 가. root 패스워드를 알고 있는 사람의 수를
엄격히 제한하라. 이것은 groupid가 0으로 2.3.6 log file log 파일에는 해킹의 흔적들이 남겨져 있을 수 있다. 그러므로 주기적으로 로그 파일을 백업하고 체크하는 습관을 길러라. 가. su(1)시도에 관한 로그들을 주기적으로
모니터링 하라. 2.4 NFS/NIS 보안 2.4.1 NFS 네트워크를 통하여 서로 다른 컴퓨터들이 파일 시스템들을 공유할 수 있도록 한다. NFS를 사용할 때 일반적으로 마운트된 파일들을 관리해주는 NFS 서버의 보안을 전적으로 신뢰하는 경향이 있다. 가. NFS 트래픽을 라우터에서 필터링하고,
port 111상의 TCP/UDP와 port 2049상의 2.4.2 NIS 중요한 시스템 데이터베이스 파일들을 네트워크를 통하여 공유함으로써 관리자와 사용자들에게 일관성 있는 시스템 환경을 제공한다. 가. /etc/passwd 파일에 ‘+’ entry 를
가진 기계가 NIS master 서버가 아닌
3. SECURITY TOOL을 이용한 시스템 구축 보안 툴들은 아래와 같이 몇 가지 형태로 분류할 수 있다. - 패스워드 강화 툴 그럼 몇 가지 보안툴들을 자세히 살펴보자. - COPS 주요 특징 : 단점 : - SATAN 주요 특징 : 단점 : -ISS 주요 특징 : 단점 : -Tiger -Crack -Tripwire - Cmp - Netlog - TCP wrapper - TCPdump - TIS Firewall Toolkit
4. 방화벽(Firewall) 방화벽이란 2개의 네트워크 사이에서 접근제어 정책을 구현할 수 있도록 하는 시스템이나 시스템들의 집합이다. 궁극적으로 이 시스템이 수행하는 기능의 입장에서는 2개의 메카니즘으로 이루어지는데, 즉 네트워크에서의 트래픽을 막는 것과 허용하는 것이다. 방화벽에 따라 2가지중 어떤 하나가 더욱 강조될 수 있으나 아마 가장 중요한 것은 방화벽이 접근제어 정책을 구현한다는 사실이다. - 방화벽의 사용 이유 - 방화벽이 할 수 있는 일
참고한 글 ACERT의 UNIX Computer Security Checklist (Version
1.1) Last Update 19-Dec-1995 ----------------
|