사이트 내 전체검색
[[linux]] Win2000 Server 기본적 보안을 위한 설정
로빈아빠
https://cmd.kr/server/459 URL이 복사되었습니다.

본문

Win2000 Server 기본적 보안을 위한 설정 

0. 들어가며

Windows 2000 Server는 마치 Windows 9x와 같은 편안한 GUI 환경을 제공하면서도 서버로서 갖추어야 할 여러 가지 능력들을 갖추고 있습니다. 특히, 조금은 복잡하긴 하지만 몇 번의 마우스와 키보드의 조작으로 다양한, 그리고 특정 부분에 있어서는 막강한 성능을 자랑하는 서비스를 제공할 수 있다는 것은 정말 큰 강점입니다. 그러나 이러한 강점에도 불구하고 Windows 서버는 Cracker들이 가장 애용하는 공격대상이 되고 있습니다. 그런 만큼 다양한 취약성을 가지고 있다는 말이 되는 것입니다.
하지만, 최소한 생각해야할 몇 가지만 제대로 점검한다면 그런 취약성들은 충분히 막을 수 있습니다. 사실, 시스템이 크래킹 당하는 것은 시스템 관리자의 무관심이 가장 큰 원인이 될 수 있으니까요.
이번에는 Windows 2000 Server 설치 후 고려해야 할 ‘보안 Base Line’에 대해 순차적으로 알아보겠습니다. 제 기준으로 정리한 것이라 부족한 부분이 많이 있겠지만, 한 번 살펴보시고 모자란 부분은 지적해 주시기 바랍니다.


1. 시스템 설정

1-1. 사용하지 않는 서비스 정지

Windows 2000 Server를 처음 설치한 이후에 [시작 -> 프로그램 -> 관리도구 -> 서비스]로 들어가 보면 엄청나게 많은 서비스들이 시작되고 있다는 것을 알 수 있습니다. 자신이 관리하는 서버가 어떠한 용도인가에 따라 꼭 필요한 서비스들만 구동을 시키면 될 것입니다.
사실 대부분의 서비스들은 필요하지 않는 것들입니다. 이런 것들로 인해서 시스템에 취약성이 발생할 수도 있고, 설사 그렇지 않다 하더라도 시스템의 자원을 잡아먹고 있다는 것은 어쩔 수 없는 일이 됩니다. 따라서 종료시켜 주는 것이 좋습니다.
아래의 예는 어떠한 서비스도 제공하지 않는다는 가정 하에 구동시킬만한 서비스들입니다. 그동안 제가 이리저리 건드려보면서 나름대로 꼭 필요한 것이라 생각한 것들만 모아봤습니다.

COM+ Event System
Distributed Link Tracking Client
Distributed Transaction Coordinator
DNS Client
Event Log
IPSEC Policy Agent
License Logging Service
Logical Disk Manager
Microsoft Search
Network Connections
NT LM Security Support Provider
Protected Storage
Security Accounts Manager
System Event Notification
Task Scheduler
Windows Management Instrumentation
Windows Management Instrumentation Driver Extensions
Workstation

1-2. 최신 서비스팩 및 취약성에 대한 HotFix 설치

http://www.securityfocus.com’ 혹은 ‘http://www.microsoft.com/technet/security/Default.asp’에 한 번 가보십시오. Windows 2000 Server와 관련한 많은 취약성들이 끊임없이 올라오고 있습니다. 사실 이렇게 공개되고 있는 취약성들이 존재하고 있음에도 불구하고 여유를 부리다가 시스템이 크래킹 당하는 일이 비일비재합니다. 조금만 부지런하게 움직여서 최신 서비스팩과 최근의 알려진 취약성들에 대한 HotFix를 설치해주면 적어도 알려진 취약성으로 인한 크래킹 정도는 막을 수 있습니다.

* Windows 2000 Server 최신 서비스팩
  http://www.microsoft.com/windows2000/downloads/servicepacks/sp2/

* Windows 2000 Server 취약성 HotFix
  http://www.microsoft.com/technet/security/Default.asp

1-3. 사용하지 않는 Sub System 제거

모두 알고 있듯이 Windows 2000 Server는 모두 3개의 Sub System을 가지고 있습니다. 가장 대표적인 것이 Win32 Sub System, 다음으로 Posix Sub System, 마지막으로 OS/2 Sub System 등입니다. 이들 중 실제로 Posix와 OS/2 Sub System은 시스템에서 사용하지 않습니다. 따라서 이들 Sub System은 제거하는 것이 좋습니다.

① %system root%/system32/에서 os2.*, posix*, psx* 삭제

② 레지스트리 키 값 삭제

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OS/2 Subsystem for NT를 제거
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Environment 내에서 Os2LibPath를 제거
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\SubSystems 내에서 Optional, Posix, OS/2를 삭제

1-4. 관리용 공유폴더 제거

Windows 2000 Server를 설치하고 나면 기본적으로 공유되는 폴더가 있습니다.
이 공유된 폴더들은 시스템의 외부와 RPC 통신을 하면서 관리할 수 있는데, 그런 공유폴더들은 다음과 같습니다.

  C$, D$
  IPC$
  ADMIN$

이 폴더들은 기본적으로 관리폴더라 해서 공유되어 있습니다. 이런 폴더들은 되도록 제거해주는 것이 시스템의 보안에 좋습니다.

HKEY_LOCAL_MACHINE\SYSTTEM\CurrentControlSet\Services\LanmanServer\Parameters에서 AutoShareServer라는 항목을 REG_DwORD, 값을 0으로 해서 추가

1-5. 주요 시스템 명령어 이동 및 ACLs 설정

주요 시스템 명령어들의 위치를 이동하고 각각에 대한 ACLs를 재설정 해주는 것은 당연히 기본적으로 해주어야 할 일일 것입니다. 누구나 사용할 수 있도록 한다면 문제가 되겠죠.
해서 주요 명령어들의 위치를 되도록이면 바꾸어주고, ACLs는 Administrator만이 모든 권한을 가지게 수정합니다.

[예]
파일들의 이동 전 위치: C:\winnt\system32\ 혹은 C:\winnt\
        이동 후 위치: D:\backup\commands\

arp.exe      at.exe      cacls.exe  cmd.exe  cscript.exe  edit.exe
edlin.exe    finger.exe  format.com  ftp.exe  ipconfig.exe  nbtstat.exe
net.exe      nslookup.exe  ping.exe  qbasic.exe  rpc.exe  regedit.exe 
rexec.exe    route.exe    rsh.exe  runonce.exe  syskey.exe 
telnet.exe  tracert.exe  wscript.exe  xcopy.exe

=========================================================================

이전에는 Active Directory에 대해 다루었었는데, 사실 어느 한 순간에 알 수 있는 내용이 아니라서 차근차근 해나가는 의미에서 일단 설치후에 고려할 수 있는 기본적인 보안들에대해 다루어 나가겠습니다. 공부를 하다보니 정말 많은 내용들이 있더군요.
그 내용들을 이 게시판에 차근차근 정리해 나가겠습니다. 이번주 내로 새로운 내용을 올릴것을 약속드립니다.
많은 참여 부탁 드립니다.
그럼...

________________________________________________________________________
관리 폴더 제거 방법( IPC$ , ADMIN$) 

 
A . 일반적으로 관리 폴더라고 해서 숨은 공유 폴더들이 제공 되고 있으
며, 관리 목적상 사용된다.
예) ADMIN$ , IPC$ , C$ ,D$

아래와 같은 레지스트리 정보에서 변경 작업이 가능 하다.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Par
ameters
- Value name : AutoShareServer
- Data Type : DWORD
- Value : 0 (zero).
위 값을 새롭게 생성 해야 한다

재부팅 전에 커맨드에서 먼저 제거 후 재 부팅을 한다.

#net share d$ /delete ( D$ 을 제거시 방법)

출처 : http://kert.knu.ac.kr/board/read.php?table=lecture&no=178
__________________________________________________________________________


1-6. 마지막 로그온 사용자명 감추기

마지막으로 로그온 한 사용자의 계정을 감춘다면, 적어도 시스템의 사용자 계정의 누출 정도는 어느정도 막을 수 있습니다. 다음과 같이 레지스트리 값을 변경하면 마지막 사용자명을 감출 수 있습니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current
Version\Winlogon\]에서 [DontDisplayLastUserName]의 값을 [1]로 변경하면 됩니다.

1-7. Administrator의 명칭 변경

Unix 시스템 하면 root, Windows 시스템 하면 Administrator!!
이것은 누구나 알고 있는 사실입니다. 그래서 Administrator 계정은 사실 시스템의 보안에 위협을 줄 수 있는 가능성을 가지고 있습니다. 따라서, 이 계정명을 추측 불가능한 다른 이름으로 변경해서 사용하는 것이 좋습니다.

[시작] -> [프로그램] -> [관리도구] -> [로컬 보안 설정]

이곳에 들어가면 [로컬 정책] 하위에 [보안 옵션]이 있습니다. 그곳에서
Administrator 계정명을 변경할 수 있습니다.

1-8. 원격 레지스트리 접속 차단

Windows 2000 Server에서 레지스트리에 대한 기본적인 설정은 [regedit]을 통해 원격으로 접속하여 레지스트리 내의 값을 변경할 수 있게 되어있습니다. 이것은 당연히 시스템의 주요 내용에 접근할 수 있는 설정이기 때문에 이를 차단해주어야 합니다.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]내의
[RestrictAnonymous] 항목의 값을 [1]로 변경해줍니다.


2. 보안 정책

2-1. Guest 계정

Guest 계정은 Users 그룹으로 접근할 수 있는 모든 디렉토리에 접근할 수 있습니다. 그래서 Guest 계정이 사용 가능하게 되어 있다면 누구든지 시스템에 정상적으로 접근할 수 있습니다. 따라서, Guest 계정은 항상 사용이 불가능하게 만들어 주어야 합니다.

2-2. 계정 정책 설정

① 암호 정책
암호 정책은 Windows 2000 Server에서 실질적으로 사용자 계정 패스워드를 어떻게 다룰 것인지에 대해 설정을 하는 곳입니다. 여기에는 모두 6가지의 정책이 있는데, 정리하면 다음과 같습니다.

·도메인 내의 모든 사용자에.... : 이 기능을 사용하면 Digest 인증방식을 사용. [사용안함]으로 설정한다면 패스워드는 복원이 불가능한 hash 함수를 사용하여 저장됨

·암호는 복잡성을 만족해야 함 : 패스워드 입력 필터를 사용해서 복잡하고 추측 불가능한 패스워드를 사용할 수 있게 함.(passfile.dll)

·최근 암호 기억 : 사용자가 즐겨서 사용하는 패스워드를 사용하지 못하게 하는 방법.(이전에 사용했던 패스워드들에 대한 History)

·최대 암호 사용 기간 : 패스워드의 유효기간으로, 이 기간이 되면 패스워드를 변경해야 함(기본적으로 42일로 설정되어 있음). 이부분은 42일을 넘지 않게 설정해 두는 것이 좋다.

·최소 암호 길이 : 패스워드의 최소 길이를 지정. (최소한 8자 이상을 하자.)

·최소 암호 사용 기간 : 패스워드 변경 후 일정 기간동안 변경이 불가능하게 하는 방법.(최근 암호 기억 부분을 보완)

② 계정 잠금 정책
계정 잠금 정책은 무차별 대입 등을 통한 패스워드 크래킹이나 추측에 의한 패스워드 알아내기를 방지하기 위한 방법이다. Windows 2000 Server에서는 기본적으로 이 정책은 사용하고 있지 않기 때문에 이 부분에 신경을 써야 할 것이다.

·계정 잠금 기간 : 30분
=> 계정이 잠긴 다음 다시 풀릴때까지 걸리는 시간.(최대값은 99,999)

·계정 잠금 입계값 : 3번
=> 로그온 시도 실패 한계 설정(최대값은 999)

·다음 시간 후 계정 잠금 수를...: 1분
=> 로그온 실패가 일어난 후 몇분 후에 계정이 잠기는지 정의(이 시간 안에 성공적인 계정 로그온이 있으면 계정 잠김은 일어나지 않음. 99,999가 최대)

계정 정책을 세운 이후 Syskey명령을 사용하여 계정 데이터 베이스를 암호화하여 보호하면 된다.

2-3. 감사 정책 설정

Windows 2000 Server는 기본적으로 어떠한 감사(보안관련) 정책도 정의되어 있지 않습니다. 실제 감사 정책은 시스템을 보호하기 위한 실질적인 방법을 제공하고 있지는 않습니다. 하지만, 중요한 이벤트들에 대한 로그를 남겨서 그것을 분석한다면 적어도 어디서, 누가, 어떠한 경로를 통해서, 어떠한 작업을 했는지 정도는 알 수가 있습니다. 즉, 대응책 마련을 위한 수단으로서 활용이 가능하다는 것입니다.
시스템에 대한 감사 정책을 설정하려면 [시작] -> [프로그램] -> [관리도구] -> [로컬 보안 설정] 으로 들어가서 [로컬 정책] 섹션을 선택해야 합니다.
이 곳에는 모두 세 가지의 정책을 설정할 수 있습니다. 감사 정책과 사용자 권한 할당, 보안 옵션이 바로 그것들인데, 여기서는 이들 중 감사 정책에 대해서만 다룰 것입니다.

  이벤트                    성공                실패
---------------------------------------------------------
개체 엑세스 감사                                  ㅇ
계정 관리 감사                ㅇ                  ㅇ
계정 로그온 이벤트 감사        ㅇ                  ㅇ
권한 사용 감사                                    ㅇ
디렉터리 서비스 액세스 감사                          ㅇ
로그온 이벤트 감사            ㅇ                  ㅇ
시스템 이벤트 감사                                ㅇ
정책 변경 감사                ㅇ                  ㅇ
프로세스 추적 감사
---------------------------------------------------------

댓글목록

등록된 댓글이 없습니다.

1,139 (10/23P)

Search

Copyright © Cmd 명령어 13.59.134.65