차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
guide:hpux [2013/07/29 01:40] wiki1122guide:hpux [2024/04/04 05:12] (현재) – 바깥 편집 127.0.0.1
줄 9: 줄 9:
 === 기준 === === 기준 ===
 가. Default 계정(lp,uucp,nuucp) 삭제\\ 가. Default 계정(lp,uucp,nuucp) 삭제\\
-나. 퇴직, 전배, 휴직, 계약 해지자 계정 삭제+나. 퇴직, 전, 휴직, 계약 해지자 계정 삭제
  
 ※ 가, 나 항목 모두 적용 해야 함 ※ 가, 나 항목 모두 적용 해야 함
줄 19: 줄 19:
  
 === 상세설명 === === 상세설명 ===
-시스템에서 이용하지 않는 Default 계정 및 의심스러운 특이한 계정의 존재 유무를 확인하여 삭제해야 하며, 대부분의 시스템에서 사용하지 않는 것이 확실한 아래의 계정들과 의심스러운 계정은 삭제해야 합니다.(단, 서버 테스트 및 작업으로 계정생성이 불가피한 경우 작업 후 이를 삭제하는 것을 원칙으로 합니다.)+시스템에서 이용하지 않는 Default 계정 및 의심스러운 특이한 계정의 존재 여부를 확인하여 삭제해야 하며, 대부분 시스템에서 사용하지 않는 것이 확실한 아래의 계정들과 의심스러운 계정은 삭제해야 합니다. (단, 서버 테스트 및 작업으로 계정생성이 불가피한 경우 작업 후 이를 삭제하는 것을 원칙으로 합니다.)
  
-일반적으로 로그인이 필요치 않은 시스템 계정들은 [[hpux#로그인이 불필요한 계정 shell 제한(중요도 : 중)]]” 항목을 참조하여 로그인을 금지해야 하며, OS나 Package 설치 시 Default로 생성되는 계정은 대부분 Default 패스워드를 사용하는 경우가 많으므로 패스워드 추측공격에 악용될 수 있습니다.+일반적으로 로그인이 필요치 않은 시스템 계정들은 "[[hpux#로그인이 불필요한 계정 shell 제한(중요도 : 중)]]항목을 참조하여 로그인을 금지해야 하며, OS나 Package 설치 시 Default로 생성되는 계정은 대부분 Default 패스워드를 사용하는 경우가 많으므로 패스워드 추측공격에 악용될 수 있습니다.
  
-  * 퇴직, 전배, 휴직, 계약해지자 계정 존재 시 삭제+  * 퇴직, 전, 휴직, 계약해지자 계정 존재 시 삭제
   * lp, uucp, nuucp, 의심스러운 특이한 계정(예. guest, test) 및 미사용 계정 삭제   * lp, uucp, nuucp, 의심스러운 특이한 계정(예. guest, test) 및 미사용 계정 삭제
   * 로그인 쉘을 /bin/false로 수정하는 것은 보안상 문제가 발생할 수 있으므로 삭제 권고   * 로그인 쉘을 /bin/false로 수정하는 것은 보안상 문제가 발생할 수 있으므로 삭제 권고
  
-==== 일반계정 root 권한 관리(중요도 : 상)+==== 일반계정 root 권한 관리(중요도 : 상) ====
 Root 권한을 가지고 있는 일반 계정이 있는지 점검 Root 권한을 가지고 있는 일반 계정이 있는지 점검
  
줄 40: 줄 40:
  
 === 상세설명 === === 상세설명 ===
-시스템 관리자는 root 계정을 포함하여 의심가는 모든 계정의 디렉터리 및 파일을 정기적으로 조사하여 삭제해야 하며, 주기적으로 불필요한 사용자 계정을 조사하여 제거하는 것이 보안상 필요합니다.+시스템 관리자는 root 계정을 포함하여 의심 가는 모든 계정의 디렉터리 및 파일을 정기적으로 조사하여 삭제해야 하며, 주기적으로 불필요한 사용자 계정을 조사하여 제거하는 것이 보안상 필요합니다.
  
   * root 권한을 가진 다른 일반 계정이 있는지 점검   * root 권한을 가진 다른 일반 계정이 있는지 점검
-  * root와 UID가 중복 되어있으면 관리자 권한을 다른 사용자가 사용할 수 있으며, 사용자 간 UID 중복 시에 사용자 감사 추적이 어렵고, 사용자 권한이 중복 +  * root와 UID가 중복되어있으면 관리자 권한을 다른 사용자가 사용할 수 있으며, 사용자 간 UID 중복 시에 사용자 감사 추적이 어렵고, 사용자 권한이 중복 
-  * root 계정을 제외한 일반 계정의 UID가 '0'이면 삭제 또는 적절한 UID 를 부여(100이상의 번호로 변경)하고, root 그룹에 속한 일반 계정은 적절한 권한의 그룹에 등록+  * root 계정을 제외한 일반 계정의 UID가 '0'이면 삭제 또는 적절한 UID 를 부여(100 이상의 번호로 변경)하고, root 그룹에 속한 일반 계정은 적절한 권한의 그룹에 등록
   * 시스템 계정(daemon, bin, adm, uucp, nuucp, lp, hpdb 등)은 제외    * 시스템 계정(daemon, bin, adm, uucp, nuucp, lp, hpdb 등)은 제외 
  
 <일반계정 및 일반계정의 디렉터리 구분 - "/etc/passwd "파일내용에서 구분> <일반계정 및 일반계정의 디렉터리 구분 - "/etc/passwd "파일내용에서 구분>
-아래의 내용은 /etc/passwd 파일의 샘플이며, 필드구분은 :이고 세번째 필드가 0이면 슈퍼유저 권한임. 0이외의 계정은 일반계정으로 볼 수 있으며 여섯번째 필드가 해당 계정의 홈 디렉터리 입니다.+아래의 내용은 /etc/passwd 파일의 샘플이며, 필드구분은 ":"이고 세 번째 필드가 "0"이면 슈퍼유저 권한임. "0"이외의 계정은 일반계정으로 볼 수 있으며 여섯 번째 필드가 해당 계정의 홈 디렉터리입니다.
  
   root:!:0:0::/:/bin/ksh   root:!:0:0::/:/bin/ksh
줄 58: 줄 58:
  
 <passwd 파일 필드> <passwd 파일 필드>
-  loginID:x:UID:GID:comment:home_directory:login_shell+   loginID:x:UID:GID:comment:home_directory:login_shell 
 + 
 +---- 
 ==== /etc/passwd 파일 권한 설정(중요도 : 상) ==== ==== /etc/passwd 파일 권한 설정(중요도 : 상) ====
 시스템 사용자 계정 정보가 있는 /etc/passwd 파일의 권한 점검 시스템 사용자 계정 정보가 있는 /etc/passwd 파일의 권한 점검
줄 83: 줄 86:
 <Trusted Mode> <Trusted Mode>
   * /etc/passwd 파일의 권한을 root 소유의 "644"로 설정   * /etc/passwd 파일의 권한을 root 소유의 "644"로 설정
-  * /tcb/files/auth/계정이니셜/계정명 파일들 중 시스템 계정을 제외한 로그인 가능한 계정의 권한도 root 소유의 400으로 설정+  * /tcb/files/auth/계정이니셜/계정명 파일들 중 시스템 계정을 제외한 로그인 가능한 계정의 권한도 root 소유의 "400"으로 설정
  
 <Shadow Password> <Shadow Password>
   * HP-UX_11.11의 경우 Shadow Password Bundle 설치 후 pwconv를 실행하면 shadow 파일이 생성   * HP-UX_11.11의 경우 Shadow Password Bundle 설치 후 pwconv를 실행하면 shadow 파일이 생성
   * HP-UX_11.23의 경우 Shadow Password product가 기본적으로 설치되어 있음   * HP-UX_11.23의 경우 Shadow Password product가 기본적으로 설치되어 있음
-  * /etc/shadow 파일의 권한을 root 소유의 400으로 설정+  * /etc/shadow 파일의 권한을 root 소유의 "400"으로 설정
 ※ 참조 사이트 ※ 참조 사이트
 https://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=ShadowPassword&lc=EN_US https://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=ShadowPassword&lc=EN_US
줄 105: 줄 108:
 일반사용자가 group 파일에 접근하여 변조하게 되면 인가되지 않은 사용자가 root 그룹으로 등록되어 인가되지 않은 사용자의 root 권한 획득이 가능합니다. 일반사용자가 group 파일에 접근하여 변조하게 되면 인가되지 않은 사용자가 root 그룹으로 등록되어 인가되지 않은 사용자의 root 권한 획득이 가능합니다.
 group 파일을 일반 사용자들이 수정할 수 없도록 제한하고 있는지 점검하여 타 사용자의 쓰기 권한을 제한하여야 합니다. group 파일을 일반 사용자들이 수정할 수 없도록 제한하고 있는지 점검하여 타 사용자의 쓰기 권한을 제한하여야 합니다.
 +
 +----
  
 ==== 패스워드 사용규칙 적용(중요도 : 상) ==== ==== 패스워드 사용규칙 적용(중요도 : 상) ====
줄 112: 줄 117:
 가. 패스워드 사용규칙 설정  가. 패스워드 사용규칙 설정 
   * Control-SA, RedOwl 솔루션 구동 시   * Control-SA, RedOwl 솔루션 구동 시
-  * 솔루션 미 구동 시 설정 +  * 솔루션 미 구동 시 설정\\ 패스워드 최소길이, 최대 사용기간, 최소 사용기간, 계정 잠금 임계값 설정
-패스워드 최소길이, 최대 사용기간, 최소 사용기간, 계정 잠금 임계값 설정+
       # vi /etc/login.defs를 실행하여 아래와 같은 설정 적용 (단위: 일)       # vi /etc/login.defs를 실행하여 아래와 같은 설정 적용 (단위: 일)
   PASS_MIN_LEN  8   PASS_MIN_LEN  8
줄 126: 줄 130:
 [보안 적용 1] 아이덴티티 관리(Identity Management) 솔루션 구동 시 [보안 적용 1] 아이덴티티 관리(Identity Management) 솔루션 구동 시
   * Control-SA 프로그램 가동 시에는 패스워드 규칙 적용됨(현재 적용 현황은 문자, 숫자, 특수문자 1자 이상 사용하도록 되어 있음)   * Control-SA 프로그램 가동 시에는 패스워드 규칙 적용됨(현재 적용 현황은 문자, 숫자, 특수문자 1자 이상 사용하도록 되어 있음)
 +
 -> Control-SA 프로세스 확인  -> Control-SA 프로세스 확인 
   $ ps -ef|grep p_ctsc   $ ps -ef|grep p_ctsc
줄 133: 줄 138:
  
   * 레드아울(RedOwl) 프로그램 가동 시에는 패스워드 규칙 적용됨   * 레드아울(RedOwl) 프로그램 가동 시에는 패스워드 규칙 적용됨
 +
 -> RedOwl 프로세스 확인 -> RedOwl 프로세스 확인
   $ ps -ef|grep cmmd   $ ps -ef|grep cmmd
줄 138: 줄 144:
   ngmseos  847942  417792     Jan 28      -  0:02 /usr/src/cmm/system/cmmd    ngmseos  847942  417792     Jan 28      -  0:02 /usr/src/cmm/system/cmmd 
  
-[보안 적용 2] 아이덴티티 관리(Identity Management) 솔루션 미구동 시 +[보안 적용 2] 아이덴티티 관리(Identity Management) 솔루션 미구동 시\\ 
-1. 패스워드 최소길이 +1. 패스워드 최소길이\\ 
-패스워드 추측공격을 피하기 위하여 패스워드 최소길이가 설정되어 있는지 점검합니다.+패스워드 추측공격을 피하기 위하여 패스워드 최소길이가 설정되어 있는지 점검합니다.\\
 패스워드 최소길이가 설정되어 있지 않거나 짧게 설정되어 있을 경우 취약한 패스워드를 사용함으로 인해 악의적인 사용자가 패스워드를 쉽게 유추할 수 있습니다. 패스워드 최소길이가 설정되어 있지 않거나 짧게 설정되어 있을 경우 취약한 패스워드를 사용함으로 인해 악의적인 사용자가 패스워드를 쉽게 유추할 수 있습니다.
  
-2. 패스워드 최대 사용기간+2. 패스워드 최대 사용기간\\
 패스워드가 임의의 경로를 통해 유출되었을 때, 임의로 접속한 사용자가 언제든 다시 접속할 수 있는 환경을 방지하기 위해 패스워드 날짜 제한을 점검합니다. 패스워드가 임의의 경로를 통해 유출되었을 때, 임의로 접속한 사용자가 언제든 다시 접속할 수 있는 환경을 방지하기 위해 패스워드 날짜 제한을 점검합니다.
  
-3. 패스워드 최소 사용기간+3. 패스워드 최소 사용기간\\
 패스워드가 임의의 경로를 통해 유출되었을 때, 임의로 접속한 사용자가 언제든 다시 접속할 수 있는 환경을 방지하기 위해 패스워드 날짜 제한을 점검합니다. 패스워드가 임의의 경로를 통해 유출되었을 때, 임의로 접속한 사용자가 언제든 다시 접속할 수 있는 환경을 방지하기 위해 패스워드 날짜 제한을 점검합니다.
  
-4. 이전 패스워드 기억+4. 이전 패스워드 기억\\
 이전에 사용하였던 패스워드를 기억하여 패스워드 변경 시 기존에 사용하였던 패스워드 재사용 금지합니다. 이전에 사용하였던 패스워드를 기억하여 패스워드 변경 시 기존에 사용하였던 패스워드 재사용 금지합니다.
   * 패스워드 길이는 8자 이상 설정하는 것을 권고   * 패스워드 길이는 8자 이상 설정하는 것을 권고
줄 156: 줄 162:
   * 기존의 패스워드를 최소 12개 이상으로 설정할 것을 권고   * 기존의 패스워드를 최소 12개 이상으로 설정할 것을 권고
  
-5. 계정 잠금 임계값+5. 계정 잠금 임계값\\
 계정 잠금 임계값이 설정되어 있지 않다면 자동화된 도구에 의한 무차별 공격(Brute-Force Attack)으로 인해 공격자는 별다른 노력 없이 사용자 패스워드를 획득할 수 있는 가능성이 존재합니다. 계정 잠금 임계값이 설정되어 있지 않다면 자동화된 도구에 의한 무차별 공격(Brute-Force Attack)으로 인해 공격자는 별다른 노력 없이 사용자 패스워드를 획득할 수 있는 가능성이 존재합니다.
   * 로그인 실패는 10회 까지만 허용하며, 10회 실패 시 계정 잠금    * 로그인 실패는 10회 까지만 허용하며, 10회 실패 시 계정 잠금 
줄 174: 줄 180:
   # userdbset –d –u username auth_failures   # userdbset –d –u username auth_failures
  
-<Trusted Mode> +<Trusted Mode>\\ 
-1) # /usr/sbin/sam을 실행하여 아래 내용 점검 (Tab 키로 이동) +1) # /usr/sbin/sam을 실행하여 아래 내용 점검 (Tab 키로 이동)\\ 
-(1) Auditing and Security -> System Security Policies -> Password Format Policies 에서 아래 내용    확인 +(1) Auditing and Security -> System Security Policies -> Password Format Policies 에서 아래 내용 확인 
   * Allow Null Passwords 체크 해제 되어 있는지 확인   * Allow Null Passwords 체크 해제 되어 있는지 확인
   * Use Restriction Rules 체크 되어 있는지 확인   * Use Restriction Rules 체크 되어 있는지 확인
줄 197: 줄 203:
 아래 기준과 상이하게 패스워드가 설정되어 있는 경우 암호정책에 따라 패스워드를 변경합니다. 아래 기준과 상이하게 패스워드가 설정되어 있는 경우 암호정책에 따라 패스워드를 변경합니다.
  
-<패스워드 설정 기준> +<패스워드 설정 기준>\\ 
-1) 패스워드는 아래의 4가지 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 또는 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성합니다.+1) 패스워드는 아래의 4가지 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 또는 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성합니다.\\
 (1) 영문 대문자 (26개), 영문 소문자 (26개), 숫자 (10개), 특수문자 (32개) (1) 영문 대문자 (26개), 영문 소문자 (26개), 숫자 (10개), 특수문자 (32개)
  
-<패스워드는 비 인가자에 의한 추측이 어렵도록 다음의 사항을 반영하여 설계하여야 함> +<패스워드는 비 인가자에 의한 추측이 어렵도록 다음의 사항을 반영하여 설계하여야 함>\\ 
-(1) Null 패스워드 사용 금지 +(1) Null 패스워드 사용 금지\\ 
-(2) 문자 또는 숫자만으로 구성 금지 +(2) 문자 또는 숫자만으로 구성 금지\\ 
-(3) 사용자 ID와 동일한 패스워드 금지 +(3) 사용자 ID와 동일한 패스워드 금지\\ 
-(4) 연속적인 문자/숫자(예. 1111, 1234, abcd) 사용 금지 +(4) 연속적인 문자/숫자(예. 1111, 1234, abcd) 사용 금지\\ 
-(5) 주기성 패스워드 재사용 금지+(5) 주기성 패스워드 재사용 금지\\
 (6) 전화번호, 생일, 계정명, hostname 같이 추측하기 쉬운 패스워드 사용 금지 (6) 전화번호, 생일, 계정명, hostname 같이 추측하기 쉬운 패스워드 사용 금지
  
줄 219: 줄 225:
 === 설정방법 === === 설정방법 ===
 예) daemon 계정이 로그인 하지 못하도록 설정 예) daemon 계정이 로그인 하지 못하도록 설정
-# vi /etc/passwd  +  # vi /etc/passwd  
-(수정 전) daemon:x:1:1::/:/sbin/ksh +  (수정 전) daemon:x:1:1::/:/sbin/ksh 
-(수정 후) daemon:x:1:1::/:/bin/false+  (수정 후) daemon:x:1:1::/:/bin/false
  
 === 상세설명 === === 상세설명 ===
줄 228: 줄 234:
   * 시스템 계정 중 로그인이 불필요한 계정에 대해 ‘/bin/sh’ 등의 실행 쉘을 제한해야 하며 ‘nologin’ (/bin/false) Shell을 부여하여 로그인을 금지시킵니다.   * 시스템 계정 중 로그인이 불필요한 계정에 대해 ‘/bin/sh’ 등의 실행 쉘을 제한해야 하며 ‘nologin’ (/bin/false) Shell을 부여하여 로그인을 금지시킵니다.
  
-<실행 쉘이 불필요한 계정 대상 - 로그인이 필요하지 않는 계정에 nologin>+<실행 쉘이 불필요한 계정 대상 - 로그인이 필요하지 않는 계정에 "nologin">
 [daemon, bin, sys, adm, listen, nobody, nobody4, noaccess, diag, listen, operator, games, gopher 등 일반적인 시스템 계정명을 가진 모든 계정들] [daemon, bin, sys, adm, listen, nobody, nobody4, noaccess, diag, listen, operator, games, gopher 등 일반적인 시스템 계정명을 가진 모든 계정들]
  
-아래의 내용은 /etc/passwd 파일의 샘플이며, 필드구분은 : +아래의 내용은 /etc/passwd 파일의 샘플이며, 필드구분은 ":" 
-마지막 필드가 nologin(또는 /bin/false) 이면 계정에 대해 기능이 없는 쉘이 적용된 상태입니다.+마지막 필드가 "nologin"(또는 /bin/false) 이면 계정에 대해 기능이 없는 쉘이 적용된 상태입니다.
  
-bin:x:1:1:bin:/bin:/sbin/nologin +  bin:x:1:1:bin:/bin:/sbin/nologin 
-daemon:x:2:2:daemon:/sbin:/sbin/nologin +  daemon:x:2:2:daemon:/sbin:/sbin/nologin 
-adm:x:3:4:adm:/var/adm:/sbin/nologin +  adm:x:3:4:adm:/var/adm:/sbin/nologin 
-operator:x:11:0:operator:/root:/sbin/nologin +  operator:x:11:0:operator:/root:/sbin/nologin 
-games:x:12:100:games:/usr/games:/sbin/nologin +  games:x:12:100:games:/usr/games:/sbin/nologin 
-gopher:x:13:30:gopher:/var/gopher:/sbin/nologin +  gopher:x:13:30:gopher:/var/gopher:/sbin/nologin 
-nobody:x:99:99:Nobody:/:/sbin/nologin+  nobody:x:99:99:Nobody:/:/sbin/nologin
  
 <쉘 로그인이 필요 없는 경우 계정설정>  <쉘 로그인이 필요 없는 경우 계정설정> 
-# useradd 계정 -c "계정 finger정보" -d /home/{계정} -m -s /bin/false+  # useradd 계정 -c "계정 finger정보" -d /home/{계정} -m -s /bin/false
  
 ==== SU(Select User)사용 제한(중요도 : 상) ==== ==== SU(Select User)사용 제한(중요도 : 상) ====
줄 254: 줄 260:
 <방법 1> <방법 1>
 1) vi /etc/default/security 파일에서 su 명령어를 사용할 그룹을 지정 1) vi /etc/default/security 파일에서 su 명령어를 사용할 그룹을 지정
-# vi /etc/default/security +  # vi /etc/default/security 
-SU_ROOT_GROUP=wheel (su 명령어를 사용할 그룹 지정)+  SU_ROOT_GROUP=wheel (su 명령어를 사용할 그룹 지정)
  
 <방법 2> <방법 2>
 1) group 생성(생성할 그룹 요청, 일반적으로 wheel 사용) 1) group 생성(생성할 그룹 요청, 일반적으로 wheel 사용)
-# groupadd wheel+  # groupadd wheel
 2) /usr/bin/su 파일의 그룹을 wheel 그룹으로 변경 2) /usr/bin/su 파일의 그룹을 wheel 그룹으로 변경
-# chgrp wheel /usr/bin/su+  # chgrp wheel /usr/bin/su
 3) /usr/bin/su 파일의 권한변경 (4750) 3) /usr/bin/su 파일의 권한변경 (4750)
-# chmod 4750 /usr/bin/su+  # chmod 4750 /usr/bin/su
 4) su 명령어 사용이 필요한 계정을 wheel 그룹에 추가 4) su 명령어 사용이 필요한 계정을 wheel 그룹에 추가
-# usermod –G wheel [계정명] +  # usermod –G wheel [계정명] 
  
 === 상세설명 === === 상세설명 ===
줄 272: 줄 278:
 따라서, 일반 사용자의 su 명령 사용을 제한해야 합니다. (wheel 그룹만 su 명령 사용을 가능하게 설정합니다.) 따라서, 일반 사용자의 su 명령 사용을 제한해야 합니다. (wheel 그룹만 su 명령 사용을 가능하게 설정합니다.)
  
-===== 파일 시스템 =====+===== 2. 파일 시스템 =====
  
 ==== 사용자 UMASK(User MASK)설정(중요도 : 하) ==== ==== 사용자 UMASK(User MASK)설정(중요도 : 하) ====
줄 282: 줄 288:
 === 설정방법 === === 설정방법 ===
 1) # vi /etc/profile 1) # vi /etc/profile
-umask 022 +  umask 022 
  
 2) # /etc/default/security 2) # /etc/default/security
-UMASK=022+  UMASK=022
  
 === 상세설명 === === 상세설명 ===
 시스템 내에서 사용자가 파일 또는 디렉터리를 생성할 때 적용 받는 퍼미션은 umask 값에 따라 달라지며, 낮은 umask 값으로 인해 관리자만 접근해야 하는 파일 및 디렉터리에 비 인가자가 접근할 수 있습니다. 시스템 내에서 사용자가 파일 또는 디렉터리를 생성할 때 적용 받는 퍼미션은 umask 값에 따라 달라지며, 낮은 umask 값으로 인해 관리자만 접근해야 하는 파일 및 디렉터리에 비 인가자가 접근할 수 있습니다.
  
-현재의 유저에게 설정된 umask 값을 조회하려면 명령 프롬프트에서 umask를 수행 +현재의 유저에게 설정된 umask 값을 조회하려면 명령 프롬프트에서 "umask"를 수행 
-umask 값이 022이기를 권장하며, umask값 022는 rw-r--r--“ 접근권한으로 파일이 생성됩니다.+umask 값이 "022"이기를 권장하며, umask값 "022"는 "rw-r--r--접근권한으로 파일이 생성됩니다.
  
 계정의 Start Profile(/etc/profile, .cshrc .kshrc .bashrc .login .profile등)에 명령을 추가하면, 유저가 로그인 후에도 변경된 umask값을 적용받습니다. 계정의 Start Profile(/etc/profile, .cshrc .kshrc .bashrc .login .profile등)에 명령을 추가하면, 유저가 로그인 후에도 변경된 umask값을 적용받습니다.
줄 305: 줄 311:
 === 설정방법 === === 설정방법 ===
 아래의 표에서 파일명을 확인하여 SUID, SGID를 제거 아래의 표에서 파일명을 확인하여 SUID, SGID를 제거
-# chmod –s [파일명]  +  # chmod –s [파일명]  
-HP-UX +  HP-UX 
-/opt/perf/bin/glance /usr/dt/bin/dtprintinfo /usr/sbin/swreg +  /opt/perf/bin/glance /usr/dt/bin/dtprintinfo /usr/sbin/swreg 
-/opt/perf/bin/gpm /usr/sbin/arp /usr/sbin/swremove +  /opt/perf/bin/gpm /usr/sbin/arp /usr/sbin/swremove 
-/opt/video/lbin/camServer /usr/sbin/lanadmin  +  /opt/video/lbin/camServer /usr/sbin/lanadmin  
-/usr/bin/at /usr/sbin/landiag  +  /usr/bin/at /usr/sbin/landiag  
-/usr/bin/lpalt /usr/sbin/lpsched  +  /usr/bin/lpalt /usr/sbin/lpsched  
-/usr/bin/mediainit /usr/sbin/swacl  +  /usr/bin/mediainit /usr/sbin/swacl  
-/usr/bin/newgrp /usr/sbin/swconfig  +  /usr/bin/newgrp /usr/sbin/swconfig  
-/usr/bin/rdist /usr/sbin/swinstall  +  /usr/bin/rdist /usr/sbin/swinstall  
-/usr/contrib/bin/traceroute /usr/sbin/swmodify  +  /usr/contrib/bin/traceroute /usr/sbin/swmodify  
-/usr/dt/bin/dtappgather /usr/sbin/swpackage +  /usr/dt/bin/dtappgather /usr/sbin/swpackage
  
 === 상세설명 === === 상세설명 ===
줄 329: 줄 335:
 제거 방법의 예 : # chmod -s file-name 제거 방법의 예 : # chmod -s file-name
 주기적인 감사 방법의 예 :  주기적인 감사 방법의 예 : 
-# find / -user root -type f \( -perm -4000 -o -perm -2000 \) -exec ls -lg {} \;+  # find / -user root -type f \( -perm -4000 -o -perm -2000 \) -exec ls -lg {} \;
  
 반드시 사용이 필요한 Setuid 파일의 경우에는 특정 그룹에서만 사용하도록 제한합니다. 반드시 사용이 필요한 Setuid 파일의 경우에는 특정 그룹에서만 사용하도록 제한합니다.
 특정그룹에 사용을 제한하는 예 : 특정그룹에 사용을 제한하는 예 :
 일반 사용자의 Setuid 사용을 제한합니다. (임의의 그룹만 가능) 일반 사용자의 Setuid 사용을 제한합니다. (임의의 그룹만 가능)
-# /usr/bin/chgrp <Group_Name> <Setuid_File_Name> +  # /usr/bin/chgrp <Group_Name> <Setuid_File_Name> 
-# /usr/bin/chmod 4750 <Setuid_File_Name>+  # /usr/bin/chmod 4750 <Setuid_File_Name>
  
 만약 Setuid 사용을 허락하고 싶은 계정인 wiki를 임의의 그룹에 넣고 싶다면 아래와 같이 설정합니다. 만약 Setuid 사용을 허락하고 싶은 계정인 wiki를 임의의 그룹에 넣고 싶다면 아래와 같이 설정합니다.
-# usermod –G100 wiki +  # usermod –G100 wiki 
-G : a list of Supplementary group 설정 변경 +  G : a list of Supplementary group 설정 변경 
-100 : the numerical value of the <Group>’s ID+  100 : the numerical value of the <Group>’s ID
  
 ==== /etc/inetd.conf 파일 권한 설정(중요도 : 상) ==== ==== /etc/inetd.conf 파일 권한 설정(중요도 : 상) ====
줄 349: 줄 355:
  
 === 설정방법 === === 설정방법 ===
-# chown root /etc/inetd.conf  +  # chown root /etc/inetd.conf  
-# chmod o-w /etc/inetd.conf +  # chmod o-w /etc/inetd.conf 
  
 ※ 해당 파일이 링크되어 있다면 링크된 원본 파일 소유권을 변경 ※ 해당 파일이 링크되어 있다면 링크된 원본 파일 소유권을 변경
줄 366: 줄 372:
  
 === 설정방법 === === 설정방법 ===
-# chmod 600 [사용자 홈 디렉터리 경로]/.history +  # chmod 600 [사용자 홈 디렉터리 경로]/.history 
-# chmod 600 [사용자 홈 디렉터리 경로]/.sh_history+  # chmod 600 [사용자 홈 디렉터리 경로]/.sh_history
  
 === 상세설명 === === 상세설명 ===
 히스토리 파일(.history, .sh_history 등)은 로그인하는 모든 사용자들의 명령어를 저장하는 스크립트이므로 보안상의 관리가 요구됩니다. 히스토리 파일(.history, .sh_history 등)은 로그인하는 모든 사용자들의 명령어를 저장하는 스크립트이므로 보안상의 관리가 요구됩니다.
  
-모든 사용자의 히스토리 파일 권한을 600으로, 소유자는 자신으로 설정합니다.+모든 사용자의 히스토리 파일 권한을 "600"으로, 소유자는 자신으로 설정합니다.
  
 ==== Crontab 파일 권한 설정 및 관리(중요도 : 상) ==== ==== Crontab 파일 권한 설정 및 관리(중요도 : 상) ====
줄 388: 줄 394:
 === 설정방법 === === 설정방법 ===
 1) crontab 관련파일의 타사용자 쓰기 권한 제거 1) crontab 관련파일의 타사용자 쓰기 권한 제거
-# chmod o-w /var/spool/cron/crontabs/*  +  # chmod o-w /var/spool/cron/crontabs/*  
  
 2) 각 파일의 권한 확인 후 변경 2) 각 파일의 권한 확인 후 변경
-# ls –al [file] +  # ls –al [file] 
-# chmod 744 [file] +  # chmod 744 [file] 
-# ls -al /backup/OS_backup.sh +  # ls -al /backup/OS_backup.sh 
--rwxr--r--   1 root       sys             84 Aug 10 05:01 /backup/OS_backup.sh +    -rwxr--r--   1 root       sys             84 Aug 10 05:01 /backup/OS_backup.sh 
-# ls -al /opt/sfm/vacuum +  # ls -al /opt/sfm/vacuum 
--rwxr--r--   1 root       sys             67 Dec 18 14:47 /opt/sfm/vacuum+    -rwxr--r--   1 root       sys             67 Dec 18 14:47 /opt/sfm/vacuum
  
 3) UID로 나오는 파일의 소유자 변경 3) UID로 나오는 파일의 소유자 변경
-# ls -al [file] +  # ls -al [file] 
--rw-r--r--   1 102      other          0 Jun  5 11:00 /tmp/user3 +    -rw-r--r--   1 102      other          0 Jun  5 11:00 /tmp/user3 
-# chown root [file] +  # chown root [file] 
-# ls -al [file] +  # ls -al [file] 
--rw-r--r--   1 root     other          0 Jun  5 11:00 /tmp/user3+    -rw-r--r--   1 root     other          0 Jun  5 11:00 /tmp/user3
  
 ※ Crontab내에 예약 설정되어 있는 file이 실제 경로에 존재하지 않을 경우 Crontab list에서 삭제 ※ Crontab내에 예약 설정되어 있는 file이 실제 경로에 존재하지 않을 경우 Crontab list에서 삭제
줄 423: 줄 429:
   * Crontab 내에 예약 설정 되어 있는 file의 실제 경로에 존재 유무 확인   * Crontab 내에 예약 설정 되어 있는 file의 실제 경로에 존재 유무 확인
  
-# crontab –ㅣ +  # crontab –ㅣ 
-1 15 * * /backup/OS_backup.sh +  1 15 * * /backup/OS_backup.sh 
-30    *    *    *    *    /opt/sfm/vacuum+  30    *    *    *    *    /opt/sfm/vacuum
  
 ==== /etc/profile 파일 권한 설정(중요도 : 중) ==== ==== /etc/profile 파일 권한 설정(중요도 : 중) ====
줄 434: 줄 440:
  
 === 설정방법 === === 설정방법 ===
-# chown root /etc/profile  +  # chown root /etc/profile  
-# chmod o-w /etc/profile+  # chmod o-w /etc/profile
  
 === 상세설명 === === 상세설명 ===
줄 447: 줄 453:
  
 === 설정방법 === === 설정방법 ===
-# chown root /etc/hosts  +  # chown root /etc/hosts  
-# chmod o-w /etc/hosts+  # chmod o-w /etc/hosts
  
   ※ 해당 파일이 링크되어 있다면 링크된 원본 파일 소유권을 변경   ※ 해당 파일이 링크되어 있다면 링크된 원본 파일 소유권을 변경
줄 462: 줄 468:
  
 === 설정방법 === === 설정방법 ===
-# chown root /etc/issue  +  # chown root /etc/issue  
-# chmod o-w /etc/issue+  # chmod o-w /etc/issue
  
 === 상세설명 === === 상세설명 ===
줄 475: 줄 481:
  
 === 설정방법 === === 설정방법 ===
-# chmod o-w [홈 디렉터리] +  # chmod o-w [홈 디렉터리] 
-# chmod o-w [파일명] +  # chmod o-w [파일명] 
-# chmod o-w [홈 디렉터리 경로] [파일명]   +  # chmod o-w [홈 디렉터리 경로] [파일명]   
-(홈 디렉터리의 설정파일에서 권한을 제거할 경우)+  (홈 디렉터리의 설정파일에서 권한을 제거할 경우)
  
 === 상세설명 === === 상세설명 ===
줄 485: 줄 491:
 환경변수 파일의 접근권한 설정이 잘못되어 있을 경우 비 인가자가 다양한 방법으로 사용자 환경을 변경하여 침해사고를 일으킬 수 있습니다. 환경변수 파일의 접근권한 설정이 잘못되어 있을 경우 비 인가자가 다양한 방법으로 사용자 환경을 변경하여 침해사고를 일으킬 수 있습니다.
  
-.profile.kshrc.cshrc.bashrc.bash_profile.login", .exrc.netrc.dtprofile.Xdefaults” 등 환경변수 파일의 타사용자 쓰기 권한을 제거합니다.+".profile"".kshrc"".cshrc"".bashrc"".bash_profile"".login", ".exrc"".netrc"".dtprofile"".Xdefaults등 환경변수 파일의 타사용자 쓰기 권한을 제거합니다.
  
-2.10. 중요 디렉터리 파일 권한 설정(중요도 : 중)+==== 중요 디렉터리 파일 권한 설정(중요도 : 중) ====
 중요 디렉터리 및 디렉터리 내 파일 권한 설정 중요 디렉터리 및 디렉터리 내 파일 권한 설정
  
줄 494: 줄 500:
  
 === 설정방법 === === 설정방법 ===
-# chown root [디렉터리명] +  # chown root [디렉터리명] 
-# chmod o-w [디렉터리명]+  # chmod o-w [디렉터리명]
  
 === 상세설명 === === 상세설명 ===
줄 502: 줄 508:
 /sbin, /etc/, /bin, /usr/bin, /usr/sbin, /usr/lbin 디렉터리의 권한을 root(또는 bin) 소유의 타사용자 쓰기권한제거를 설정합니다. /sbin, /etc/, /bin, /usr/bin, /usr/sbin, /usr/lbin 디렉터리의 권한을 root(또는 bin) 소유의 타사용자 쓰기권한제거를 설정합니다.
  
-# ls -ldb /sbin /etc/ /bin /usr/bin /usr/sbin /usr/lbin +  # ls -ldb /sbin /etc/ /bin /usr/bin /usr/sbin /usr/lbin 
-drwxrwxr-x  13 root       bin           2048 Aug 25 14:53 /sbin +    drwxrwxr-x  13 root       bin           2048 Aug 25 14:53 /sbin 
-drwxrwxr-x  16 root       bin           2048 Aug 26 09:27 /etc/ +    drwxrwxr-x  16 root       bin           2048 Aug 26 09:27 /etc/ 
-drwxrwxr-x  18 root       bin           1024 Jun 10  1996 /bin +    drwxrwxr-x  18 root       bin           1024 Jun 10  1996 /bin 
-drwxrwxr-x   3 root       bin           6144 Aug 25 14:53 /usr/bin +    drwxrwxr-x   3 root       bin           6144 Aug 25 14:53 /usr/bin 
-drwxrwxr-x   7 root       bin           1024 Aug 25 14:53 /usr/sbin +    drwxrwxr-x   7 root       bin           1024 Aug 25 14:53 /usr/sbin 
-drwxrwxr-x   5 root       bin           4096 Aug 25 14:53 /usr/lbin+    drwxrwxr-x   5 root       bin           4096 Aug 25 14:53 /usr/lbin
  
-2.11. PATH 환경변수 설정(중요도 : 중)+==== PATH 환경변수 설정(중요도 : 중) ====
 root 계정 환경변수 파일의 PATH 경로 설정 root 계정 환경변수 파일의 PATH 경로 설정
  
 === 기준 === === 기준 ===
-가. root 계정 환경변수 설정 파일 내 PATH 경로 중 .“ 없거나 맨뒤로 설정+가. root 계정 환경변수 설정 파일 내 PATH 경로 중 ".없거나 맨뒤로 설정
  
 === 설정방법 === === 설정방법 ===
-현재 디렉터리를 의미하는 .이 PATH 맨 앞이나 중간에 위치하면 안되며, 애플리케이션 구성상 .” 을 사용해야 하는 경우에는 .을 PATH 환경변수의 마지막으로 이동+현재 디렉터리를 의미하는 "."이 PATH 맨 앞이나 중간에 위치하면 안되며, 애플리케이션 구성상 ".을 사용해야 하는 경우에는 "."을 PATH 환경변수의 마지막으로 이동
  
 === 상세설명 === === 상세설명 ===
-root 계정의 PATH 환경변수에 .(현재 디렉터리 지칭)이 포함되어 있으면, root 계정의 인가자로 인해 비의도적으로 현재 디렉터리에 위치하고 있는 명령어가 실행될 수 있습니다.+root 계정의 PATH 환경변수에 "."(현재 디렉터리 지칭)이 포함되어 있으면, root 계정의 인가자로 인해 비의도적으로 현재 디렉터리에 위치하고 있는 명령어가 실행될 수 있습니다.
  
-즉, .이 /usr/bin이나 /bin, /sbin 등의 명령어들이 위치하고 있는 디렉터리보다 우선하여 위치하고 있을 경우, root 계정의 인가자가 어떠한 명령을 실행했을 때 비 인가자가 불법적으로 위치시킨 파일을 비의도적으로 실행하여, 예기치 않은 결과를 가져올 수 있습니다. +즉, "."이 /usr/bin이나 /bin, /sbin 등의 명령어들이 위치하고 있는 디렉터리보다 우선하여 위치하고 있을 경우, root 계정의 인가자가 어떠한 명령을 실행했을 때 비 인가자가 불법적으로 위치시킨 파일을 비의도적으로 실행하여, 예기치 않은 결과를 가져올 수 있습니다. 
-또한, .” 뿐만 아니라 비 인가자가 불법적으로 생성한 디렉터리를 우선적으로 가리키게 하여 예기치 않은 결과를 가져올 수 있습니다.+또한, ".뿐만 아니라 비 인가자가 불법적으로 생성한 디렉터리를 우선적으로 가리키게 하여 예기치 않은 결과를 가져올 수 있습니다.
  
-root 계정의 환경변수 설정파일(.profile, .cshrc 등)과 /etc/profile” 등에서 PATH 환경변수에 포함되어 있는 현재 디렉터리를 나타내는 .을 제거합니다.+root 계정의 환경변수 설정파일(.profile, .cshrc 등)과 "/etc/profile등에서 PATH 환경변수에 포함되어 있는 현재 디렉터리를 나타내는 "."을 제거합니다.
  
 ※ echo $PATH 로 확인 (root 계정만 해당됨) ※ echo $PATH 로 확인 (root 계정만 해당됨)
  
-2.12. FTP(File Transfer Protocol)접근제한 파일 권한설정(중요도 : 상)+==== FTP(File Transfer Protocol)접근제한 파일 권한설정(중요도 : 상) ====
 FTP 접근제어 설정파일의 권한을 root 소유의 타사용자 쓰기권한 제거 FTP 접근제어 설정파일의 권한을 root 소유의 타사용자 쓰기권한 제거
  
줄 536: 줄 542:
  
 === 설정방법 === === 설정방법 ===
-# chown root /etc/ftpusers +  # chown root /etc/ftpusers 
-# chown root /etc/ftpd/ftpusers +  # chown root /etc/ftpd/ftpusers 
-# chmod o-w /etc/ftpusers +  # chmod o-w /etc/ftpusers 
-# chmod o-w /etc/ftpd/ftpusers+  # chmod o-w /etc/ftpd/ftpusers
      
 ※ vsftp를 사용할 경우  ※ vsftp를 사용할 경우 
 vsftpd.conf 파일에서 userlist_enable = YES인 경우 : /etc/vsftpd/user_list 또는 /etc/vsftpd.user_list 확인 vsftpd.conf 파일에서 userlist_enable = YES인 경우 : /etc/vsftpd/user_list 또는 /etc/vsftpd.user_list 확인
-# chown root /etc/vsftpd/user_list  또는 # chown root /etc/vsftpd.user_list +  # chown root /etc/vsftpd/user_list  또는 # chown root /etc/vsftpd.user_list 
-# chmod o-w /etc/vsftpd/user_list 또는 # chmod o-w /etc/vsftpd.user_list +  # chmod o-w /etc/vsftpd/user_list 또는 # chmod o-w /etc/vsftpd.user_list 
-vsftpd.conf 파일에서 userlist_enable=NO 혹은 옵션이 존재하지 않을 경우 : /etc/vsftpd/ftpusers  +vsftpd.conf 파일에서 userlist_enable=NO 혹은 옵션이 존재하지 않을 경우 : /etc/vsftpd/ftpusers  확인  
-확인  +  # chown root /etc/vsftpd/ftpusers 
-# chown root /etc/vsftpd/ftpusers +  # chmod o-w /etc/vsftpd/ftpusers
-# chmod o-w /etc/vsftpd/ftpusers+
  
 === 상세설명 === === 상세설명 ===
 FTP 접근제어 설정파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 이를 통해 비 인가된 사용자를 등록하고 서버에 접속하여 불법적인 행동을 하는 등의 침해사고가 발생 가능하므로, FTP접근제어 설정 파일을 일반 사용자들이 수정할 수 없도록 제한하고 있는지 점검해야 합니다. FTP 접근제어 설정파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 이를 통해 비 인가된 사용자를 등록하고 서버에 접속하여 불법적인 행동을 하는 등의 침해사고가 발생 가능하므로, FTP접근제어 설정 파일을 일반 사용자들이 수정할 수 없도록 제한하고 있는지 점검해야 합니다.
  
-2.13. root원격 접근제어 파일 권한 설정(중요도 : 중)+==== root원격 접근제어 파일 권한 설정(중요도 : 중) ====
 root 원격 접근 제어 설정 파일인 /etc/security 권한 root 소유의 타사용자 쓰기 권한 제거 root 원격 접근 제어 설정 파일인 /etc/security 권한 root 소유의 타사용자 쓰기 권한 제거
  
줄 560: 줄 565:
  
 === 설정방법 === === 설정방법 ===
-# chown root /etc/security +  # chown root /etc/security 
-# chmod o-w /etc/security+  # chmod o-w /etc/security
  
 === 상세설명 === === 상세설명 ===
 root 접근제어 설정파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 root로의 접근이 제한되는 등 서비스 장애 발생이 가능하므로, root 접근제어 설정파일을 일반사용자들이 수정할 수 없도록 제한하고 있는지 점검해야 합니다. root 접근제어 설정파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 root로의 접근이 제한되는 등 서비스 장애 발생이 가능하므로, root 접근제어 설정파일을 일반사용자들이 수정할 수 없도록 제한하고 있는지 점검해야 합니다.
  
-2.14. NFS(Network File System) 접근제어 파일 권한 설정(중요도 : 상)+==== NFS(Network File System) 접근제어 파일 권한 설정(중요도 : 상) ====
 NFS 접근제어 파일의 root 소유의 타사용자 쓰기 권한 제거 NFS 접근제어 파일의 root 소유의 타사용자 쓰기 권한 제거
  
줄 573: 줄 578:
  
 === 설정방법 === === 설정방법 ===
-# chown root /etc/exports +  # chown root /etc/exports 
-# chmod o-w /etc/exports+  # chmod o-w /etc/exports
  
 === 상세설명 === === 상세설명 ===
 NFS(Network File System) 접근제어 설정파일을 관리자가 아닌 일반 사용자들이 접근 및 변경 가능하면 이를 통해 비 인가된 사용자를 등록하고, 파일시스템을 마운트하여 불법적인 변조를 시도할 수 있으므로, NFS접근제어 설정파일을 일반 사용자들이 수정할 수 없도록 제한하고 있는지 점검합니다. NFS(Network File System) 접근제어 설정파일을 관리자가 아닌 일반 사용자들이 접근 및 변경 가능하면 이를 통해 비 인가된 사용자를 등록하고, 파일시스템을 마운트하여 불법적인 변조를 시도할 수 있으므로, NFS접근제어 설정파일을 일반 사용자들이 수정할 수 없도록 제한하고 있는지 점검합니다.
  
-2.15. /etc/services파일 권한 설정(중요도 : 중)+==== /etc/services파일 권한 설정(중요도 : 중) ====
 service 파일의 root 소유의 타사용자 쓰기 권한 제거 service 파일의 root 소유의 타사용자 쓰기 권한 제거
  
줄 586: 줄 591:
  
 === 설정방법 === === 설정방법 ===
-# chown root w /etc/services +  # chown root w /etc/services 
-# chmod o-w /etc/services+  # chmod o-w /etc/services
  
 === 상세설명 === === 상세설명 ===
 Service 파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 이를 통해 정상적인 서비스를 제한하거나 허용되지 않은 서비스를 실행시켜 침해사고의 위험이 있습니다. Service 파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 이를 통해 정상적인 서비스를 제한하거나 허용되지 않은 서비스를 실행시켜 침해사고의 위험이 있습니다.
  
-2.16. 부팅 스크립트 파일 권한 설정(중요도 : 상)+==== 부팅 스크립트 파일 권한 설정(중요도 : 상) ====
 OS상에서 사용하는 부팅 스크립트 파일에 대하여 접근 권한 제한 설정 OS상에서 사용하는 부팅 스크립트 파일에 대하여 접근 권한 제한 설정
  
줄 600: 줄 605:
 === 설정방법 === === 설정방법 ===
 부팅 스크립트 관여 파일 중에서 취약하게 나온 파일명을 아래의 명령어를 사용하여 조치 부팅 스크립트 관여 파일 중에서 취약하게 나온 파일명을 아래의 명령어를 사용하여 조치
-# chmod o-w [파일명 또는 디렉터리명] +  # chmod o-w [파일명 또는 디렉터리명] 
  
 === 상세설명 === === 상세설명 ===
 시스템 운영상 중요한 부팅스크립트 파일들의 접근권한은 반드시 필요한 사용자만 접근 할 수 있도록 해야 하며, 권한 중 타사용자 쓰기 권한이 부여되어 있는 경우에 제거합니다. 시스템 운영상 중요한 부팅스크립트 파일들의 접근권한은 반드시 필요한 사용자만 접근 할 수 있도록 해야 하며, 권한 중 타사용자 쓰기 권한이 부여되어 있는 경우에 제거합니다.
  
-/etc/rc*.d/+  /etc/rc*.d/
-/etc/inittab 등 +  /etc/inittab 등 
  
 ===== 3. 네트워크 서비스 ===== ===== 3. 네트워크 서비스 =====
줄 624: 줄 629:
   * 부팅스크립트에서 rpc 서비스 완전 삭제   * 부팅스크립트에서 rpc 서비스 완전 삭제
  
-# vi /etc/inetd.conf +  # vi /etc/inetd.conf 
-(수정 전) rpc dgram  udp  wait root /usr/lib/netsvc/rstat/rpc.rstatd  100001 2-4  rpc.rstatd  +  (수정 전) rpc dgram  udp  wait root /usr/lib/netsvc/rstat/rpc.rstatd  100001 2-4  rpc.rstatd  
-(수정 후) # rpc dgram  udp  wait root  /usr/lib/netsvc/rstat/rpc.rstatd  100001 2-4  rpc.rstatd +  (수정 후) # rpc dgram  udp  wait root  /usr/lib/netsvc/rstat/rpc.rstatd  100001 2-4  rpc.rstatd 
  
-# ps -ef | grep inetd +  # ps -ef | grep inetd 
-root   141      0 15:03:22 ?        0:01 /usr/sbin/inetd -s +    root   141      0 15:03:22 ?        0:01 /usr/sbin/inetd -s 
-# inetd  -c (재구동) +  # inetd  -c (재구동) 
-# kill -HUP 141  +  # kill -HUP 141  
  
 ※ 시스템 재시작이 어려운 경우 rpc.statd 프로세스 중지  ※ 시스템 재시작이 어려운 경우 rpc.statd 프로세스 중지 
-# ps –ef |grep rpc  +  # ps –ef |grep rpc  
-rpc 3136 1 0 Oct11 ? 00:00:01 rpc.statd +    rpc 3136 1 0 Oct11 ? 00:00:01 rpc.statd 
-# kill –HUP 3136+  # kill –HUP 3136
  
 === 상세설명 === === 상세설명 ===
줄 697: 줄 702:
 # showmount -e hostname 명령어를 실행하여 everyone으로 시스템이 마운트 되어 있는지 확인 # showmount -e hostname 명령어를 실행하여 everyone으로 시스템이 마운트 되어 있는지 확인
  
-# showmount +  # showmount 
-Umount +    Umount 
-# umount 파일시스템 이름+  # umount "파일시스템 이름"
  
-NFS 서비스를 사용하면 /etc/exports 파일에 꼭 필요한 공유 디렉터리만 나열하고, everyone으로 시스템이 마운트 되어서는 안되며, NFS 관련 보안패치를 수행해야 함+NFS 서비스를 사용하면 "/etc/exports 파일에 꼭 필요한 공유 디렉터리만 나열하고, everyone으로 시스템이 마운트 되어서는 안되며, NFS 관련 보안패치를 수행해야 함
  
 <서비스 미사용> <서비스 미사용>
 1) 실행중인 서비스 중지 1) 실행중인 서비스 중지
 NFS 데몬(nfsd)을 중지 NFS 데몬(nfsd)을 중지
-# ps -ef | grep mountd +  # ps -ef | grep mountd 
-    root   163      0   Sep 27 ?        0:04 /usr/lib/autofs/automountd +      root   163      0   Sep 27 ?        0:04 /usr/lib/autofs/automountd 
-# kill –9 163 +  # kill –9 163 
-# ps -ef | grep nfs +  # ps -ef | grep nfs 
-  root   146      0   Sep 27 ?        0:16 /usr/lib/nfs/nfs +    root   146      0   Sep 27 ?        0:16 /usr/lib/nfs/nfs 
-# kill –9 146+  # kill –9 146
  
 2) NFS 리스트 제거하고 재시작시 NFS Server 가 시작되지 않도록 함 2) NFS 리스트 제거하고 재시작시 NFS Server 가 시작되지 않도록 함
-# vi /etc/rc.config.d/nfsconf 파일 실행하여 NFS_SERVER=0 으로 수정 +  # vi /etc/rc.config.d/nfsconf 파일 실행하여 NFS_SERVER=0 으로 수정 
-# mv  /sbin/rc2.d/S900nfs.Server  /sbin/rc2.d/_S900nfs.Server+  # mv  /sbin/rc2.d/S900nfs.Server  /sbin/rc2.d/_S900nfs.Server
  
 === 상세설명 === === 상세설명 ===
줄 732: 줄 737:
 === 설정방법 === === 설정방법 ===
 1) 실행중인 서비스 중지 1) 실행중인 서비스 중지
-# ps -ef | grep automount +  # ps -ef | grep automount 
-root  650  1  0  3월 30  ? 0:30 /usr/lib/netsvc/fs/automount/automount -f /etc/auto_master +    root  650  1  0  3월 30  ? 0:30 /usr/lib/netsvc/fs/automount/automount -f /etc/auto_master 
-# kill –9 650+  # kill –9 650
  
 2) 시스템 재시작시 automount 가 시작되지 않도록 함 (정확한 파일 위치는 O/S 마다 다름) 2) 시스템 재시작시 automount 가 시작되지 않도록 함 (정확한 파일 위치는 O/S 마다 다름)
-# vi /etc/rc.config.d/nfsconf +  # vi /etc/rc.config.d/nfsconf 
-(수정 전) AUTOFS=1  +    (수정 전) AUTOFS=1  
-(수정 후) AUTOFS=0 +    (수정 후) AUTOFS=0 
  
 === 상세설명 === === 상세설명 ===
줄 756: 줄 761:
 === 설정방법 === === 설정방법 ===
 1) NIS 서비스 중지 1) NIS 서비스 중지
-# /usr/lib/netsvc/yp/ypstop+  # /usr/lib/netsvc/yp/ypstop
  
 2) 부팅 스크립트 제거   2) 부팅 스크립트 제거  
-# cd /etc/rc*/ +  # cd /etc/rc*/ 
-# mv S88ypserv _S88ypserv+  # mv S88ypserv _S88ypserv
  
 === 상세설명 === === 상세설명 ===
줄 790: 줄 795:
 b. 조치방법 b. 조치방법
 <‘r’ command를 사용하는 경우> <‘r’ command를 사용하는 경우>
-/etc/hosts.equiv 파일과 $HOME/.rhosts 파일 내 호스트 및 계정부분에서 +를 반드시 제거하고, 아래 예시처럼 필요한 호스트 및 계정만 등록+/etc/hosts.equiv 파일과 $HOME/.rhosts 파일 내 호스트 및 계정부분에서 "+"를 반드시 제거하고, 아래 예시처럼 필요한 호스트 및 계정만 등록
 예) # vi /etc/hosts.equiv ( or $HOME/.rhosts) 예) # vi /etc/hosts.equiv ( or $HOME/.rhosts)
    Wiki security    Wiki security
  
-/etc/hosts.equiv$HOME/.rhosts” 파일의 권한과 소유 지정 +"/etc/hosts.equiv""$HOME/.rhosts파일의 권한과 소유 지정 
-# chown root /etc/hosts.equiv  +  # chown root /etc/hosts.equiv  
-# chmod 400 /etc/hosts.equiv +  # chmod 400 /etc/hosts.equiv 
-# chown root /root/.rhosts +  # chown root /root/.rhosts 
-# chmod 400 /root/.rhosts+  # chmod 400 /root/.rhosts
  
 ※ Symbolic Link를 사용을 권장하며, 퍼미션 변경은 필요 없음 ※ Symbolic Link를 사용을 권장하며, 퍼미션 변경은 필요 없음
  
-cron에 넣어서 주기적으로 관리하는 것과 /etc/hosts.equiv” 파일은 아래와 같이 설정하는 것을 권장 +cron에 넣어서 주기적으로 관리하는 것과 "/etc/hosts.equiv파일은 아래와 같이 설정하는 것을 권장 
-# /bin/touch /.netrc /etc/hosts.equiv +  # /bin/touch /.netrc /etc/hosts.equiv 
-# /bin/chmod 400 /.netrc /etc/hosts.equiv+  # /bin/chmod 400 /.netrc /etc/hosts.equiv
  
 <‘r’ command를 사용하지 않을 경우> <‘r’ command를 사용하지 않을 경우>
줄 810: 줄 815:
  
 <서비스 제거 방법의 예> <서비스 제거 방법의 예>
-/etc/inetd.conf” 파일에서 해당 라인 # 처리(주석처리) 후 inetd 재구동 +"/etc/inetd.conf파일에서 해당 라인 # 처리(주석처리) 후 inetd 재구동 
-# vi /etc/inetd.conf +  # vi /etc/inetd.conf 
-(수정 전) +  (수정 전) 
-shell  stream  tcp     nowait  root    /usr/sbin/in.rshd       in.rshd +    shell  stream  tcp     nowait  root    /usr/sbin/in.rshd       in.rshd 
-shell  stream  tcp6    nowait  root    /usr/sbin/in.rshd       in.rshd +    shell  stream  tcp6    nowait  root    /usr/sbin/in.rshd       in.rshd 
-login  stream  tcp6    nowait  root    /usr/sbin/in.rlogind    in.rlogind +    login  stream  tcp6    nowait  root    /usr/sbin/in.rlogind    in.rlogind 
-exec   stream  tcp     nowait  root    /usr/sbin/in.rexecd     in.rexecd +    exec   stream  tcp     nowait  root    /usr/sbin/in.rexecd     in.rexecd 
-exec   stream  tcp6    nowait  root    /usr/sbin/in.rexecd     in.rexecd +    exec   stream  tcp6    nowait  root    /usr/sbin/in.rexecd     in.rexecd 
- +     
-(수정 후) +    (수정 후) 
-# shell  stream  tcp     nowait  root    /usr/sbin/in.rshd       in.rshd  +    # shell  stream  tcp     nowait  root    /usr/sbin/in.rshd       in.rshd  
-# shell  stream  tcp     nowait  root    /usr/sbin/in.rshd       in.rshd +    # shell  stream  tcp     nowait  root    /usr/sbin/in.rshd       in.rshd 
-# shell  stream  tcp6    nowait  root    /usr/sbin/in.rshd       in.rshd +    # shell  stream  tcp6    nowait  root    /usr/sbin/in.rshd       in.rshd 
-# login  stream  tcp6    nowait  root    /usr/sbin/in.rlogind    in.rlogind +    # login  stream  tcp6    nowait  root    /usr/sbin/in.rlogind    in.rlogind 
-# exec   stream  tcp     nowait  root    /usr/sbin/in.rexecd     in.rexecd +    # exec   stream  tcp     nowait  root    /usr/sbin/in.rexecd     in.rexecd 
-# exec   stream  tcp6    nowait  root    /usr/sbin/in.rexecd     in.rexecd +    # exec   stream  tcp6    nowait  root    /usr/sbin/in.rexecd     in.rexecd 
- +     
-# ps -ef | grep inetd +  # ps -ef | grep inetd 
-root   141      0 15:03:22 ?        0:01 /usr/sbin/inetd -s +    root   141      0 15:03:22 ?        0:01 /usr/sbin/inetd -s 
-# kill -HUP 141+  # kill -HUP 141
  
 </etc/hosts.equiv, /$HOME/.rhosts 파일 권한 변경 방법 1> </etc/hosts.equiv, /$HOME/.rhosts 파일 권한 변경 방법 1>
-# chown root /etc/hosts.equiv +  # chown root /etc/hosts.equiv 
-# chmod 000 /etc/hosts.equiv +  # chmod 000 /etc/hosts.equiv 
-# chown root /root/.rhosts +  # chown root /root/.rhosts 
-# chmod 000 /root/.rhosts+  # chmod 000 /root/.rhosts
  
 </etc/hosts.equiv, /$HOME/.rhosts 파일 권한 변경 방법 2> </etc/hosts.equiv, /$HOME/.rhosts 파일 권한 변경 방법 2>
-# ln –s  /dev/null  /etc/hosts.equiv (/etc/hosts.equiv 파일 삭제 후) +  # ln –s  /dev/null  /etc/hosts.equiv (/etc/hosts.equiv 파일 삭제 후) 
-# ln –s  /dev/null  /root/.rhosts (/root/.rhosts 파일 삭제 후)+  # ln –s  /dev/null  /root/.rhosts (/root/.rhosts 파일 삭제 후)
  
 ※.rhosts 파일은 root 홈 디렉터리에 root 권한의 000 또는 /dev/null 링크로 반드시 생성 ※.rhosts 파일은 root 홈 디렉터리에 root 권한의 000 또는 /dev/null 링크로 반드시 생성
  
-cron에 넣어서 주기적으로 관리하는 것과 /etc/hosts.equiv/etc/.rhosts” 파일은 아래와 같이 설정하는 것을 권장 +cron에 넣어서 주기적으로 관리하는 것과 "/etc/hosts.equiv""/etc/.rhosts파일은 아래와 같이 설정하는 것을 권장 
-# /bin/touch /root/.netrc /etc/hosts.equiv +  # /bin/touch /root/.netrc /etc/hosts.equiv 
-# /bin/chmod 0 /root/.netrc /etc/hosts.equiv +  # /bin/chmod 0 /root/.netrc /etc/hosts.equiv 
-# /bin/touch /.netrc /root/.rhosts +  # /bin/touch /.netrc /root/.rhosts 
-# /bin/chmod 0 /.netrc /root/.rhosts+  # /bin/chmod 0 /.netrc /root/.rhosts
  
 === 상세설명 === === 상세설명 ===
줄 856: 줄 861:
 shell(514) login(513) exec(512) shell(514) login(513) exec(512)
  
-서비스를 사용해야 하는 경우 반드시 필요한 서버에 대해서만 접근을 허용하고, 관련 설정파일의 퍼미션을 적절히 설정해야 합니다. (3.6. 신뢰관계 설정” 참조)+서비스를 사용해야 하는 경우 반드시 필요한 서버에 대해서만 접근을 허용하고, 관련 설정파일의 퍼미션을 적절히 설정해야 합니다. ("3.6. 신뢰관계 설정참조)
   * /etc/inetd.conf에서 Berkeley R-Command 서비스 제거   * /etc/inetd.conf에서 Berkeley R-Command 서비스 제거
 : rsh, rlogin, rexec 서비스 제거 : rsh, rlogin, rexec 서비스 제거
  
-/etc/hosts.equiv” 파일은 TRUSTED 시스템들을 등록하고 ‘r’ command를 이용하여 인증 없이 접근하는 것을 가능하게 하는 설정 파일이며, .rhosts” 파일은 /etc/hosts.equiv” 파일과 거의 동일한 기능을 수행하지만 .rhosts” 파일은 사용자 별로 ‘r’ command 를 통해 접속 가능하도록 설정할 수 있습니다.+"/etc/hosts.equiv파일은 TRUSTED 시스템들을 등록하고 ‘r’ command를 이용하여 인증 없이 접근하는 것을 가능하게 하는 설정 파일이며, ".rhosts파일은 "/etc/hosts.equiv파일과 거의 동일한 기능을 수행하지만 ".rhosts파일은 사용자 별로 ‘r’ command 를 통해 접속 가능하도록 설정할 수 있습니다.
  
-'r' command를 사용할 경우에는 특정 서버만 신중히 적어두고, +와 같이 모든 서버가 접근 가능하도록 하는 것은 보안 상 매우 위험하므로 주의하여 설정해야 합니다.+'r' command를 사용할 경우에는 특정 서버만 신중히 적어두고, "+"와 같이 모든 서버가 접근 가능하도록 하는 것은 보안 상 매우 위험하므로 주의하여 설정해야 합니다.
  
-사용할 경우에는 특정 서버만 신중히 적어두고, +와 같이 모든 서버가 접근 가능하도록 하는 것은 매우 위험하므로 주의하여 설정해야 합니다.+사용할 경우에는 특정 서버만 신중히 적어두고, "+"와 같이 모든 서버가 접근 가능하도록 하는 것은 매우 위험하므로 주의하여 설정해야 합니다.
  
-사용할 경우에는 root 소유의 400으로 설정합니다.+사용할 경우에는 root 소유의 "400"으로 설정합니다.
  
   * /etc/hosts.equiv 파일 내에 '+' 설정금지   * /etc/hosts.equiv 파일 내에 '+' 설정금지
줄 887: 줄 892:
   * 부팅스크립트에서 불필요 서비스 완전 삭제   * 부팅스크립트에서 불필요 서비스 완전 삭제
  
-# vi /etc/inetd.conf +  # vi /etc/inetd.conf 
-(수정 전) 100068/2-5 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd  +    (수정 전) 100068/2-5 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd  
-(수정 후) # 100068/2-5 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd  +    (수정 후) # 100068/2-5 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd  
-# inetd -c+  # inetd -c
  
 사용해야 하는 서비스가 있을 경우 단기적으로는 네트워크 장비, 방화벽에서 1차적으로 접근제어를 강화하고 장기적으로는 서비스 제공의 타당성을 재검토하여 Application을 변경합니다. 사용해야 하는 서비스가 있을 경우 단기적으로는 네트워크 장비, 방화벽에서 1차적으로 접근제어를 강화하고 장기적으로는 서비스 제공의 타당성을 재검토하여 Application을 변경합니다.
줄 937: 줄 942:
 [Telnet Banner] [Telnet Banner]
   * 배너설정 / hostname 제거   * 배너설정 / hostname 제거
-# vi /etc/inetd.conf에 다음 내용 추가 +  # vi /etc/inetd.conf에 다음 내용 추가 
-telnet   stream   tcp6   nowait   root   /usr/lbin/telnetd   telnetd   -b /etc/issue +    telnet   stream   tcp6   nowait   root   /usr/lbin/telnetd   telnetd   -b /etc/issue 
-(/etc/issue 파일은 banner가 작성되어 있는 파일) +    (/etc/issue 파일은 banner가 작성되어 있는 파일) 
-(-b : 뒤에 따라오는 banner 파일을 사용하겠다는 옵션)+    (-b : 뒤에 따라오는 banner 파일을 사용하겠다는 옵션)
  
 /etc/issue 파일에 banner내용 삽입 /etc/issue 파일에 banner내용 삽입
줄 947: 줄 952:
   * 배너설정 / hostname 제거   * 배너설정 / hostname 제거
 1) # vi /etc/inetd.conf에 다음 내용 추가 1) # vi /etc/inetd.conf에 다음 내용 추가
-ftp   stream   tcp   nowait   root   /usr/lbin/ftpd   ftpd   -a /etc/ftpd/ftpaccess +  ftp   stream   tcp   nowait   root   /usr/lbin/ftpd   ftpd   -a /etc/ftpd/ftpaccess 
-(- a : 뒤에 따라오는 설정파일을 사용하겠다는 옵션)+  (- a : 뒤에 따라오는 설정파일을 사용하겠다는 옵션)
  
 2) wu-ftpd v2.4 미만 2) wu-ftpd v2.4 미만
-# vi /etc/ftpd/ftpaccess 파일 내 아래 내용 추가 +  # vi /etc/ftpd/ftpaccess 파일 내 아래 내용 추가 
-suppresshostname yes (hostname 숨김) +    suppresshostname yes (hostname 숨김) 
-suppressversion yes (version 정보 숨김) +    suppressversion yes (version 정보 숨김) 
-banner /etc/ftpd/ftp_banner(FTP 배너가 작성된 파일)+    banner /etc/ftpd/ftp_banner(FTP 배너가 작성된 파일)
  
 3) wu-ftpd v2.4 이상 3) wu-ftpd v2.4 이상
-# vi /etc/ftpd/ftpaccess 파일 내에 아래 내용 추가 +  # vi /etc/ftpd/ftpaccess 파일 내에 아래 내용 추가 
-greeting    terse (hostname 및 version 정보숨김)+  greeting    terse (hostname 및 version 정보숨김)
  
-※ /etc/ftpd/ftpaccess 파일이 없을 경우 아래와 같이 복사 +  ※ /etc/ftpd/ftpaccess 파일이 없을 경우 아래와 같이 복사 
-cp /usr/newconfig/etc/ftpd/examples/ftpaccess /etc/ftpd/ftpaccess+    cp /usr/newconfig/etc/ftpd/examples/ftpaccess /etc/ftpd/ftpaccess
  
 [SMTP Banner] [SMTP Banner]
-# vi /etc/mail/sendmail.cf +  # vi /etc/mail/sendmail.cf 
-# SMTP initial login message (old $e macro) +  # SMTP initial login message (old $e macro) 
-(수정 전) O SmtpGreetingMessage=$j Sendmail $v/$Z; $b +    (수정 전) O SmtpGreetingMessage=$j Sendmail $v/$Z; $b 
-(수정 후) O SmtpGreetingMessage= WARNING:Authorized use only   +    (수정 후) O SmtpGreetingMessage= WARNING:Authorized use only   
-※ SMTP 설정에 따라 sendmail.cf 파일 위치가 다를 수 있음+  ※ SMTP 설정에 따라 sendmail.cf 파일 위치가 다를 수 있음
  
 [DNS Banner] [DNS Banner]
-# vi /etc/named.conf +  # vi /etc/named.conf 
-version "Contact Another Administrator!";+  version "Contact Another Administrator!";
  
 === 상세설명 === === 상세설명 ===
줄 990: 줄 995:
 1) sh(born shell) 및 ksh(korn shell) 에서는 /etc/profile 또는 .profile 수정 1) sh(born shell) 및 ksh(korn shell) 에서는 /etc/profile 또는 .profile 수정
 TMOUT=300, export TMOUT 삽입 TMOUT=300, export TMOUT 삽입
-# vi /etc/profile +  # vi /etc/profile 
-(수정 후) TMOUT = 300 +  (수정 후) TMOUT = 300 
-          export TMOUT+            export TMOUT
  
 2) csh 에서는 /etc/csh.login 파일 내에 set TMOUT=300을 추가 2) csh 에서는 /etc/csh.login 파일 내에 set TMOUT=300을 추가
줄 1009: 줄 1014:
 === 설정방법 === === 설정방법 ===
 [telnet] [telnet]
-# vi /etc/securetty 파일 생성 후 console 삽입 +  # vi /etc/securetty 파일 생성 후 console 삽입 
-# echo console > /etc/securetty +  # echo console > /etc/securetty 
  
 [ssh] [ssh]
-# vi /opt/ssh/etc/sshd_config 파일 수정 후 sshd 재구동 +  # vi /opt/ssh/etc/sshd_config 파일 수정 후 sshd 재구동 
-(수정 전) #PermitRootLogin no +  (수정 전) #PermitRootLogin no 
-(수정 후)  PermitRootLogin no+  (수정 후)  PermitRootLogin no
  
 ※ 재구동 시 반드시 연결된 세션을 모두 종료한 다음 /sbin/init.d/secsh stop 명령어 실행 후 start 해야 함 ※ 재구동 시 반드시 연결된 세션을 모두 종료한 다음 /sbin/init.d/secsh stop 명령어 실행 후 start 해야 함
줄 1023: 줄 1028:
 아래 옵션을 설정하여 일반 사용자를 통해 root 계정으로 전환될 수 있도록 하는 것이 보안상 필요합니다. 아래 옵션을 설정하여 일반 사용자를 통해 root 계정으로 전환될 수 있도록 하는 것이 보안상 필요합니다.
  
-3.10. 방화벽 정책 적용(중요도 : 상)+==== 방화벽 정책 적용(중요도 : 상) ====
 외부 공격 차단을 위한 방화벽 정책 적용 외부 공격 차단을 위한 방화벽 정책 적용
  
줄 1053: 줄 1058:
 === 설정방법 === === 설정방법 ===
 1. su 로그 설정 1. su 로그 설정
-# vi /etc/syslog.conf 파일에 아래의 내용이 없으면 설정 +  # vi /etc/syslog.conf 파일에 아래의 내용이 없으면 설정 
-auth.notice   /var/adm/sulog/syslog.log +    auth.notice   /var/adm/sulog/syslog.log 
-or +  or 
-*.notice      /var/adm/sulog/syslog.log +    *.notice      /var/adm/sulog/syslog.log 
-(auth.notice와 /var/adm/sulog/syslog.log 사이는 tap키를 이용)+    (auth.notice와 /var/adm/sulog/syslog.log 사이는 tap키를 이용)
  
 2. syslog 설정  2. syslog 설정 
 1) # vi /etc/syslog.conf 파일을 점검 1) # vi /etc/syslog.conf 파일을 점검
-*.notice         /var/log/messages +  *.notice         /var/log/messages 
-*.alert          /dev/console +  *.alert          /dev/console 
-*.emerg        *+  *.emerg        *
  
 2) 위와 같이 /etc/syslog.conf 파일을 수정한 후에는 이것이 적용되도록 아래의 명령을 사용하여  syslogd를 restart  2) 위와 같이 /etc/syslog.conf 파일을 수정한 후에는 이것이 적용되도록 아래의 명령을 사용하여  syslogd를 restart 
-# ps –ef | grep syslogd +  # ps –ef | grep syslogd 
-root  7524  6970     Apr 23      -  0:02 /usr/sbin/syslogd +    root  7524  6970     Apr 23      -  0:02 /usr/sbin/syslogd 
-# kill –HUP 7524+  # kill –HUP 7524
  
 3. 로그 파일 권한 설정 3. 로그 파일 권한 설정
줄 1087: 줄 1092:
 기타 - - 기타 - -
  
-# chown root [로그파일명] +  # chown root [로그파일명] 
-# chmod o-w [로그파일명]+  # chmod o-w [로그파일명]
  
 === 상세설명 === === 상세설명 ===
-1. su로그 설정+1. su로그 설정\\
 기본적으로 일반 사용자에서 Super User로 사용되는 기록을 남기기 위해서 su 사용로그를 남기도록 하는 보안 설정이 필요하며, 시스템의 가용성 및 무결성 등을 침해하는 사건이 발생할 경우 일반적으로 Super User 권한으로 사건이 진행되기 때문에 su의 로깅이 필요합니다. 기본적으로 일반 사용자에서 Super User로 사용되는 기록을 남기기 위해서 su 사용로그를 남기도록 하는 보안 설정이 필요하며, 시스템의 가용성 및 무결성 등을 침해하는 사건이 발생할 경우 일반적으로 Super User 권한으로 사건이 진행되기 때문에 su의 로깅이 필요합니다.
  
 su 로그를 기록하도록 syslog 설정 파일을 수정해야 하며, auth.notice에 관련된 로그를 파일로 남기고 있어야 합니다. su 로그를 기록하도록 syslog 설정 파일을 수정해야 하며, auth.notice에 관련된 로그를 파일로 남기고 있어야 합니다.
  
-2. syslog 설정+2. syslog 설정\\
 기본적으로 시스템 운영 중 발생하는 Info 및 alert 등에 대한 기록을 남기기 위한 "syslog.conf" 파일의 보안 설정이 되었는지 점검합니다. 기본적으로 시스템 운영 중 발생하는 Info 및 alert 등에 대한 기록을 남기기 위한 "syslog.conf" 파일의 보안 설정이 되었는지 점검합니다.
  
 syslog 데몬은 시스템의 로그를 기록하는 전용 데몬으로 원격 또는 로컬 시스템의 커널 메시지 및 시스템로그를 감시하는 역할을 하며, 해당 설정이 제대로 되어 있지 않을 경우 적절한 로그가 시스템 로그파일에 남지 않아 침입자의 흔적이나 시스템 오류사항에 대해 분석 할 수 없습니다. syslog 데몬은 시스템의 로그를 기록하는 전용 데몬으로 원격 또는 로컬 시스템의 커널 메시지 및 시스템로그를 감시하는 역할을 하며, 해당 설정이 제대로 되어 있지 않을 경우 적절한 로그가 시스템 로그파일에 남지 않아 침입자의 흔적이나 시스템 오류사항에 대해 분석 할 수 없습니다.
  
-3. 로그파일 권한 설정+3. 로그파일 권한 설정\\
 시스템의 기본 로깅 기록은 관리자 이외에 다른 일반 사용자에게 열람할 수 있는 권한을 부여할 필요가 없기 때문에 로깅 기록을 저장하는 파일의 소유자 및 읽기권한을 제한함으로써 보안을 강화하는 것이 필요합니다. 시스템의 기본 로깅 기록은 관리자 이외에 다른 일반 사용자에게 열람할 수 있는 권한을 부여할 필요가 없기 때문에 로깅 기록을 저장하는 파일의 소유자 및 읽기권한을 제한함으로써 보안을 강화하는 것이 필요합니다.
  
줄 1108: 줄 1113:
  
 === 기준 === === 기준 ===
-가. 로그 파일의 최소 저장 기간 적용 +가. 로그 파일의 최소 저장 기간 적용\\ 
-나. 로그 기록을 정기적으로 확인•감독+나. 로그 기록을 정기적으로 확인•감독\\
 다. 로그 파일을 별도 저장 장치에 백업 보관 및 쓰기 권한 제한 다. 로그 파일을 별도 저장 장치에 백업 보관 및 쓰기 권한 제한
  
줄 1115: 줄 1120:
 로그파일의 보유기관은 사업 환경에 따라 조정할 수 있으나, ‘정보통신망 이용촉진 및 정보보호 등에 관한 법률’, ‘개인정보보호법’, ‘회사 사규’ 등에 따라 최소 아래 기간 이상을 보관해야 함 로그파일의 보유기관은 사업 환경에 따라 조정할 수 있으나, ‘정보통신망 이용촉진 및 정보보호 등에 관한 법률’, ‘개인정보보호법’, ‘회사 사규’ 등에 따라 최소 아래 기간 이상을 보관해야 함
  
-1) 사용자 접속정보 기록 +1) 사용자 접속정보 기록\\ 
-사용자 로그인/로그아웃/정보변경 6개월 이상+사용자 로그인/로그아웃/정보변경 6개월 이상
  
-2) 개인정보취급자의 개인정보처리 시스템 접속 기록 +2) 개인정보취급자의 개인정보처리 시스템 접속 기록\\ 
-정보주체 식별정보/개인정보취급자 식별정보/ +정보주체 식별정보/개인정보취급자 식별정보/접속일시/접속지 정보/ 부여된 권한 유형에 따른 수행업무 등 2년 이상
-접속일시/접속지 정보/ 부여된 권한 유형에 따른 수행업무 등 2년 이상+
  
-3) 개인정보취급자 권한 변경 기록+3) 개인정보취급자 권한 변경 기록\\
 개인정보취급자 권한생성/변경/삭제 3년 이상 개인정보취급자 권한생성/변경/삭제 3년 이상
  
줄 1195: 줄 1199:
 === 설정방법 === === 설정방법 ===
 <SNMP 서비스 불필요 시> <SNMP 서비스 불필요 시>
-# ps -ef | grep snmp +  # ps -ef | grep snmp 
-root  9546  6970     Dec 05      -  1:11 /usr/sbin/snmpd +    root  9546  6970     Dec 05      -  1:11 /usr/sbin/snmpd 
-# kill –9 9546  or  # /sbin/SnmpAgtStart.d/S560SnmpMaster stop +  # kill –9 9546  or  # /sbin/SnmpAgtStart.d/S560SnmpMaster stop 
-# mv /sbin/ /sbin/SnmpAgtStart.d/S560SnmpMaster /sbin/SnmpAgtStart.d/_S560SnmpMaster+  # mv /sbin/ /sbin/SnmpAgtStart.d/S560SnmpMaster /sbin/SnmpAgtStart.d/_S560SnmpMaster
  
 <SNMP 서비스 필요 시> <SNMP 서비스 필요 시>
-/etc/snmp/snmpd.conf” 파일 내 community string을 타인이 추측할 수 없도록 변경  +"/etc/snmp/snmpd.conf파일 내 community string을 타인이 추측할 수 없도록 변경 \\ 
-‘read-community  public‘ 부분의 public 을 <임의의 명>으로 변경 후 서비스 재구동 +‘read-community  public‘ 부분의 public 을 <임의의 명>으로 변경 후 서비스 재구동\\ 
-‘set-community-name:‘ 부분 사용시에는 주의 요망 +‘set-community-name:‘ 부분 사용시에는 주의 요망\\ 
-(public, admin, private 등 쉬운 community name은 사용 제한)+(public, admin, private 등 쉬운 community name은 사용 제한)\\
  
-항목 내용 대책 +^  항목  ^  내용  ^  대책  ^ 
-SNMP Agent 에 디폴트 Community String 사용 SNMP의 Community String이 각각 public, private으로 설정되어 있어서 이를 변경하지 않을 경우, 크래커는 해당 시스템의 중요한 정보를 가져갈 수 있음 권한을 수정하거나 제거하여 하는 것이 좋으며, 특별한 경우엔 정책에 따라 권한을 다르게 부여해야 함 +|SNMP Agent 에 디폴트 Community String 사용  |SNMP의 Community String이 각각 public, private으로 설정되어 있어서 이를 변경하지 않을 경우, 크래커는 해당 시스템의 중요한 정보를 가져갈 수 있음  |권한을 수정하거나 제거하여 하는 것이 좋으며, 특별한 경우엔 정책에 따라 권한을 다르게 부여해야 함  | 
-SNMP를 이용한 네트워크인터페이스 정보 획득 SNMP를 통해서 원격 호스트의 네트워크 인터페이스의 리스트를 얻을 수 있음 SNMP를 사용할 경우에는 community string 을 추측하기 어려운 것으로 설정하도록 함 +|SNMP를 이용한 네트워크인터페이스 정보 획득  |SNMP를 통해서 원격 호스트의 네트워크 인터페이스의 리스트를 얻을 수 있음|  SNMP를 사용할 경우에는 community string 을 추측하기 어려운 것으로 설정하도록 함  | 
-SNMP RPC 서비스 community string 이 public 이나 private 과 같이 디폴트 상태로 되어 있는 경우 시스템 및 네트워크 장비의 정보를 원격에서 알아낼 수 있으며, 시스템의 설정을 변경할 수 있음  SNMP를 사용할 경우 community string를 추측하기 어려운 것으로 변경해야 함 +|SNMP RPC 서비스  |community string 이 public 이나 private 과 같이 디폴트 상태로 되어 있는 경우 시스템 및 네트워크 장비의 정보를 원격에서 알아낼 수 있으며, 시스템의 설정을 변경할 수 있음  |SNMP를 사용할 경우 community string를 추측하기 어려운 것으로 변경해야 함  | 
-SNMP 사용하여 OS type 획득 SNMP를 사용하여 서버의 OS 및 버전정보를 알아낼 수 있음 권한을 수정하거나 제거하여 하는 것이 좋으며, 특별한 경우엔 정책에 따라 권한을 다르게 부여해야 함+|SNMP 사용하여 OS type 획득  |SNMP를 사용하여 서버의 OS 및 버전정보를 알아낼 수 있음  |권한을 수정하거나 제거하여 하는 것이 좋으며, 특별한 경우엔 정책에 따라 권한을 다르게 부여해야 함  |
  
 === 상세설명 === === 상세설명 ===
-SNMP 서비스는 시스템 상태를 실시간으로 파악하는 NMS를 위하여 UNIX 시스템에서 기본적으로 제공하는 서비스이며, 해당 정보를 받기 위한 일종의 패스워드인 Community String이 Default 값인 public, private으로 설정되어 있는 경우가 많기 때문에 이를 변경하지 않으면 이 String을 악용하여 비인가 사용자가 시스템의 주요 정보 및 설정 상황을 파악 할 수 있는 취약성이 존재합니다.+SNMP 서비스는 시스템 상태를 실시간으로 파악하는 NMS를 위하여 UNIX 시스템에서 기본적으로 제공하는 서비스이며, 해당 정보를 받기 위한 일종의 패스워드인 Community String이 Default 값인 public, private으로 설정되어 있는 경우가 많기 때문에 이를 변경하지 않으면 이 String을 악용하여 비인가 사용자가 시스템의 주요 정보 및 설정 상황을 파악 할 수 있는 취약성이 존재합니다.\\
  
-서버에서 SNMP 서비스를 사용하지 않는다면, 즉 NMS에서 해당 서버를 모니터링 하지 않는 등 이라면 SNMP 서비스를 제거하는 것이 바람직합니다. +서버에서 SNMP 서비스를 사용하지 않는다면, 즉 NMS에서 해당 서버를 모니터링 하지 않는 등 이라면 SNMP 서비스를 제거하는 것이 바람직합니다.\\ 
-SNMP 서비스를 사용할 때는 /etc/snmp/conf/snmpd.conf 혹은 /etc/snmp/snmpd.conf” 파일에서 community string을 어렵게 변경하는 것이 필요합니다.+SNMP 서비스를 사용할 때는 "/etc/snmp/conf/snmpd.conf 혹은 /etc/snmp/snmpd.conf파일에서 community string을 어렵게 변경하는 것이 필요합니다.
  
 ==== SMTP(Send Mail Transfer Protocol)서비스 설정(중요도 : 중) ==== ==== SMTP(Send Mail Transfer Protocol)서비스 설정(중요도 : 중) ====
줄 1230: 줄 1234:
  
 === 설정방법 === === 설정방법 ===
-<SMTP 서비스 필요 시 >+<SMTP 서비스 필요 시 >\\
 1) Sendmail Abuse 방지 방법 및 일반 사용자 q옵션 사용 제한 1) Sendmail Abuse 방지 방법 및 일반 사용자 q옵션 사용 제한
   * Sendmail의 기본적인 서비스인 VRFY, EXPN을 다음과 같이 설정 하고 q옵션 제한   * Sendmail의 기본적인 서비스인 VRFY, EXPN을 다음과 같이 설정 하고 q옵션 제한
-# vi /etc/mail/sendmail.cf 파일을 아래와 같이 수정+ 
 +  # vi /etc/mail/sendmail.cf 파일을 아래와 같이 수정
       O PrivacyOptions=authwarnings, noexpn, novrfy, restricqrun       O PrivacyOptions=authwarnings, noexpn, novrfy, restricqrun
  
-2) 취약한 Senmail 버전 사용 제한+2) 취약한 Senmail 버전 사용 제한\\
 1) Sendmail 서비스가 실행되고 있는지 점검 1) Sendmail 서비스가 실행되고 있는지 점검
-# ps –ef | grep sendmail+  # ps –ef | grep sendmail
 2) Sendmail 버전 점검 2) Sendmail 버전 점검
-# telnet localhost 25 +  # telnet localhost 25 
-3) Sendmail의 버전을 확인하고, ftp://ftp.sendmail.org/pub/sendmail 에서 보안 패치가 존재하는지 확인 +3) Sendmail의 버전을 확인하고, ftp://ftp.sendmail.org/pub/sendmail 에서 보안 패치가 존재하는지 확인\\ 
-4) O/S에 따라 설정하는 방법이 다를 수 있으므로, 홈페이지(http://www.sendmail.org/) 에서 해당 OS에 관한 정보를 확인 후 업그레이드 +4) O/S에 따라 설정하는 방법이 다를 수 있으므로, 홈페이지(http://www.sendmail.org/) 에서 해당 OS에 관한 정보를 확인 후 업그레이드 \\
  
-<SMTP 서비스 불필요 시> +<SMTP 서비스 불필요 시>\\ 
-1) 실행중인 서비스 중지 +1) 실행중인 서비스 중지\\ 
-# ps –ef | grep sendmail +  # ps –ef | grep sendmail 
-root  441 1  0 Sep19 ?    00:00:00 sendmail: accepting connections +    root  441 1  0 Sep19 ?    00:00:00 sendmail: accepting connections 
-# kill -9 441+  # kill -9 441
  
 2) 시스템 재 시작시 SMTP Server 가 시작되지 않게 하기 위해서 아래와 같이 수행 2) 시스템 재 시작시 SMTP Server 가 시작되지 않게 하기 위해서 아래와 같이 수행
-# mv  /etc/rc2.d/S88sendmail  /etc/rc2.d/_S88sendmail+  # mv  /etc/rc2.d/S88sendmail  /etc/rc2.d/_S88sendmail
  
 === 상세설명 === === 상세설명 ===
줄 1265: 줄 1270:
 특별한 목적으로 사용하지 않는다면 SMTP 서비스를 제거합니다. 특별한 목적으로 사용하지 않는다면 SMTP 서비스를 제거합니다.
   * sendmail 최신 버전 및 설정 적용 확인   * sendmail 최신 버전 및 설정 적용 확인
-① vrfy, expn 명령어 제거 및 일반 사용자의 q 옵션을 사용한 실행 방지 +① vrfy, expn 명령어 제거 및 일반 사용자의 q 옵션을 사용한 실행 방지\\ 
-② sendmail 8.14.4 이상 사용  +② sendmail 8.14.4 이상 사용 \\ 
-③ 메일 릴레이 기능 제한 +③ 메일 릴레이 기능 제한\\ 
-④ Address Parser 취약점에 대한 패치 필요+④ Address Parser 취약점에 대한 패치 필요\\ 
 ※ SMTP 설정에 따라 sendmail.cf 파일 위치가 상이할 수 있습니다. ※ SMTP 설정에 따라 sendmail.cf 파일 위치가 상이할 수 있습니다.
  
줄 1284: 줄 1290:
 === 설정방법 === === 설정방법 ===
 <DNS 서비스 필요 시> <DNS 서비스 필요 시>
-<BIND8 DNS 설정(/etc/named.conf) 수정 예> +  <BIND8 DNS 설정(/etc/named.conf) 수정 예> 
-options { +    options { 
-            allow-transfer {존 파일 전송을 허용하고자 하는 IP;}; +                allow-transfer {존 파일 전송을 허용하고자 하는 IP;}; 
-};+    };
  
-<BIND4.9 DNS 설정(/etc/named.boot) 수정 예> +  <BIND4.9 DNS 설정(/etc/named.boot) 수정 예> 
-Options +    Options 
- xfrnets 허용하고자 하는 IP+     xfrnets 허용하고자 하는 IP
  
 <서비스 불필요 시> <서비스 불필요 시>
 1) 실행중인 서비스 중지 1) 실행중인 서비스 중지
-# ps -ef | grep named +  # ps -ef | grep named 
-  root   279      0   Sep 22 ?        1:17 /usr/sbin/in.named +    root   279      0   Sep 22 ?        1:17 /usr/sbin/in.named 
-# kill -9 279+  # kill -9 279
  
 2) 시스템 재시작시 DNS Server 가 시작되지 않도록 함 2) 시스템 재시작시 DNS Server 가 시작되지 않도록 함
-# mv  /etc/rc3.d/ S79named  /etc/rc3.d/_S79named+  # mv  /etc/rc3.d/ S79named  /etc/rc3.d/_S79named 
 +  
 === 상세설명 === === 상세설명 ===
 일반적으로 Zone Transfer는 Primary Name Server와 Secondary Name Server의 Zone 정보를 일관성 있게 유지하기 위해 이루어지기 때문에 Secondary Name Server로만 Zone Transfer를 할 수 있도록 하면 됩니다. 일반적으로 Zone Transfer는 Primary Name Server와 Secondary Name Server의 Zone 정보를 일관성 있게 유지하기 위해 이루어지기 때문에 Secondary Name Server로만 Zone Transfer를 할 수 있도록 하면 됩니다.
줄 1306: 줄 1313:
 만약, 허가되지 않는 사용자에게 Zone Transfer를 허용할 경우 공격자는 전송 받은 Zone 정보를 이용하여 호스트 정보, 네트워크 구성 형태 등의 많은 정보를 파악할 수 있게 되며, DNS 서버를 디폴트로 설치할 경우 임의의 사용자가 Zone Transfer 를 할 수 있도록 설정됩니다. 만약, 허가되지 않는 사용자에게 Zone Transfer를 허용할 경우 공격자는 전송 받은 Zone 정보를 이용하여 호스트 정보, 네트워크 구성 형태 등의 많은 정보를 파악할 수 있게 되며, DNS 서버를 디폴트로 설치할 경우 임의의 사용자가 Zone Transfer 를 할 수 있도록 설정됩니다.
  
-시스템 초기 설치 후, Default 구성을 그대로 사용한다면 DNS서비스를 사용하지 않음에도 불구하고 DNS 서비스가 기동되어 있는 경우가 있으므로, 불필요한 DNS 서비스는 제거해야 합니다.+시스템 초기 설치 후, Default 구성을 그대로 사용한다면 DNS서비스를 사용하지 않음에도 불구하고 DNS 서비스가 기동되어 있는 경우가 있으므로, 불필요한 DNS 서비스는 제거해야 합니다.\\
 만약, DNS 서비스를 사용한다면, DNS설정을 통해 내부 Zone 파일을 임의의 외부 서버에서 전송 받지 못하게 하고, 아무나 쿼리 응답을 받을 수 없도록 수정해야 하고 보안을 위한 버전 패치를 해야 합니다. 만약, DNS 서비스를 사용한다면, DNS설정을 통해 내부 Zone 파일을 임의의 외부 서버에서 전송 받지 못하게 하고, 아무나 쿼리 응답을 받을 수 없도록 수정해야 하고 보안을 위한 버전 패치를 해야 합니다.
  
 BIND(Berkeley Internet Name Domain)는 현재(2012. 11)기준으로 BIND 9.9.2-P1 버전이 나왔으며, 이하 버전에서는 거의 모든 취약점이 존재하고 있습니다. BIND(Berkeley Internet Name Domain)는 현재(2012. 11)기준으로 BIND 9.9.2-P1 버전이 나왔으며, 이하 버전에서는 거의 모든 취약점이 존재하고 있습니다.
  
-ISC의 BIND 8 버전에 대한 보안 및 시스템 업데이트 지원이 2007.8.27부터 중단됨에 따라, 향후에 발생할 수 있는 보안 취약점에 대비하고, 시스템 성능 향상을 위하여 BIND 9 버전으로의     업그레이드를 권고합니다. (https://www.isc.org/downloads)+ISC의 BIND 8 버전에 대한 보안 및 시스템 업데이트 지원이 2007.8.27부터 중단됨에 따라, 향후에 발생할 수 있는 보안 취약점에 대비하고, 시스템 성능 향상을 위하여 BIND 9 버전으로의 업그레이드를 권고합니다. (https://www.isc.org/downloads)
  
   * BIND는 거의 모든 버전이 취약한 상태로서 BIND 9.9.2-P1 이상 버전으로 업데이트 필요   * BIND는 거의 모든 버전이 취약한 상태로서 BIND 9.9.2-P1 이상 버전으로 업데이트 필요
   * 다음은 최근 BIND 취약점들이며, 취약점 버전을 사용하는 시스템은 업그레이드 필요   * 다음은 최근 BIND 취약점들이며, 취약점 버전을 사용하는 시스템은 업그레이드 필요
 +
 서비스 거부(Denial-of-Service)(CVE-2009-4022) 취약점 : 9.6.0이전 버전 서비스 거부(Denial-of-Service)(CVE-2009-4022) 취약점 : 9.6.0이전 버전
  
줄 1333: 줄 1341:
 <SWAT 서비스 불필요 시> <SWAT 서비스 불필요 시>
 1) SWAT을 사용할 필요가 없다면 아래와 같이 구동 중지 1) SWAT을 사용할 필요가 없다면 아래와 같이 구동 중지
-# vi /etc/inetd.conf 파일 실행하여 아래와 같이 내용 수정 +  # vi /etc/inetd.conf 파일 실행하여 아래와 같이 내용 수정 
-(수정 전)  swat    stream tcp   nowait.400 root /opt/samba/bin/swat swat  +  (수정 전)  swat    stream tcp   nowait.400 root /opt/samba/bin/swat swat  
-(수정 후) #swat    stream tcp   nowait.400 root /opt/samba/bin/swat swat +  (수정 후) #swat    stream tcp   nowait.400 root /opt/samba/bin/swat swat 
  
 2) inetd 재구동 2) inetd 재구동
-# inetd –c +  # inetd –c 
  
 === 상세설명 === === 상세설명 ===
 SWAT(Samba Web Administration Tool)은 잘못된 사용자와 비밀번호를 입력하였을 때 아래와 같이 서로 다른 메시지를 출력합니다. SWAT(Samba Web Administration Tool)은 잘못된 사용자와 비밀번호를 입력하였을 때 아래와 같이 서로 다른 메시지를 출력합니다.
  
-사용자 ID는 맞고 비밀번호만 틀렸을 때 : +  사용자 ID는 맞고 비밀번호만 틀렸을 때 : 
-401 Authorization Required. +    401 Authorization Required. 
-You must be authenticated to use this service. +    You must be authenticated to use this service. 
- +   
-사용자 ID, 비밀번호 모두 틀렸을 때 : +  사용자 ID, 비밀번호 모두 틀렸을 때 : 
-401 Bad Authorization +    401 Bad Authorization 
-username/password must be supplied+    username/password must be supplied
  
 이렇게 서로 다른 메시지를 이용하여 일률적으로 사용자 ID와 비밀번호를 대입하는 강제 공격(brute-force)으로 그 메시지에 따라 사용자 ID를 알아낼 수 있습니다. 이렇게 서로 다른 메시지를 이용하여 일률적으로 사용자 ID와 비밀번호를 대입하는 강제 공격(brute-force)으로 그 메시지에 따라 사용자 ID를 알아낼 수 있습니다.
줄 1364: 줄 1372:
  
 === 설정방법 === === 설정방법 ===
-<Samba 서비스 필요 시> +<Samba 서비스 필요 시> \\
 서비스를 위해 사용시에는 Version 3.6.2 업그레이드 서비스를 위해 사용시에는 Version 3.6.2 업그레이드
  
-<Samba 서비스 불필요 시> +<Samba 서비스 불필요 시> \\
 1) Samba를 사용할 필요가 없다면 아래와 같이 구동중지 1) Samba를 사용할 필요가 없다면 아래와 같이 구동중지
-# ps –ef | grep smb +  # ps –ef | grep smb 
-538 ? 00:00:00 smbd +    538 ? 00:00:00 smbd 
-# kill -9 538+  # kill -9 538
  
 2) 부팅스크립트 삭제 2) 부팅스크립트 삭제
-# mv /etc/rc3.d/S90samba /etc/rc3.d/_S90samba+  # mv /etc/rc3.d/S90samba /etc/rc3.d/_S90samba
  
 === 상세설명 === === 상세설명 ===
줄 1382: 줄 1390:
   * 다음은 최근 Samba 취약점들이며, 취약점 버전을 사용하는 시스템은 업그레이드 필요합니다.   * 다음은 최근 Samba 취약점들이며, 취약점 버전을 사용하는 시스템은 업그레이드 필요합니다.
  
-Samba Information Disclosure and Denial of Service (CVE-2009-2906) 취약점 : 3.4 이전 버전 +Samba Information Disclosure and Denial of Service (CVE-2009-2906) 취약점 : 3.4 이전 버전\\ 
-※ Samba 취약점 버전에 대해서 패치를 제공하므로 취약점에 대해서 패치 할 것을 권고 +※ Samba 취약점 버전에 대해서 패치를 제공하므로 취약점에 대해서 패치 할 것을 권고(http://www.samba.org/samba/history/security.html)
-   (http://www.samba.org/samba/history/security.html)+
  
 ==== SSH(Secure Shell)버전 취약성(중요도 : 중) ==== ==== SSH(Secure Shell)버전 취약성(중요도 : 중) ====
줄 1397: 줄 1404:
  
 === 설정방법 === === 설정방법 ===
-<SSH 서비스 필요시> +<SSH 서비스 필요시>\\ 
-1) 최신버전의 SSH를 설치하여 운영하는 것을 권고+1) 최신버전의 SSH를 설치하여 운영하는 것을 권고\\
 최신 SSH버전은 현재(2012/11/31)기준으로 openSSH 6.1이며, openSSH 6.1이상의 버전을 사용할 것을 권장 (openSSH는 http://www.openssh.org에서 다운 가능) 최신 SSH버전은 현재(2012/11/31)기준으로 openSSH 6.1이며, openSSH 6.1이상의 버전을 사용할 것을 권장 (openSSH는 http://www.openssh.org에서 다운 가능)
  
-<서비스 불필요시> +<서비스 불필요시>\\ 
-1) 실행중인 서비스를 중지 +1) 실행중인 서비스를 중지\\ 
-# ps –ef | grep sshd +  # ps –ef | grep sshd 
-root    414  0.0  0.7  2672 1692  /usr/sbin/sshd +    root    414  0.0  0.7  2672 1692  /usr/sbin/sshd 
-# kill -9 414+  # kill -9 414
  
 2) SSH가 시작되지 않도록 시작스크립트의 파일명 변경 (OS 마다 시작스크립트 위치 다름) 2) SSH가 시작되지 않도록 시작스크립트의 파일명 변경 (OS 마다 시작스크립트 위치 다름)
-# ls –al /etc/rc*.d/* | grep sshd   (시작스크립트 파일 위치 확인) +  # ls –al /etc/rc*.d/* | grep sshd   (시작스크립트 파일 위치 확인) 
-# mv  /etc/rc2.d/S55sshd  /etc/rc2.d/_S55sshd+  # mv  /etc/rc2.d/S55sshd  /etc/rc2.d/_S55sshd
  
 ※ SSH 설정에 따라 /opt/ssh/etc/sshd_config 파일 위치가 상이할 수 있음 ※ SSH 설정에 따라 /opt/ssh/etc/sshd_config 파일 위치가 상이할 수 있음
줄 1419: 줄 1426:
  
   * 다음은 OpenSSH 취약점들이며, 취약점 버전을 사용하는 시스템은 업그레이드가 필요합니다.   * 다음은 OpenSSH 취약점들이며, 취약점 버전을 사용하는 시스템은 업그레이드가 필요합니다.
-Plaintext Recovery Attack Against SSH 취약점 : 5.1 이전 버전 +Plaintext Recovery Attack Against SSH 취약점 : 5.1 이전 버전\\ 
-X11UseLocalhost=no hijacking attack(CVE-2008-1483) 취약점 : OpenSSH 5.0 이전 버전+X11UseLocalhost=no hijacking attack(CVE-2008-1483) 취약점 : OpenSSH 5.0 이전 버전\\
  
 ==== x-server접속 제한 설정(중요도 : 상) ==== ==== x-server접속 제한 설정(중요도 : 상) ====
줄 1451: 줄 1458:
 최신 보안패치 및 버그 Fix 된 패치 설치 최신 보안패치 및 버그 Fix 된 패치 설치
  
-"swlist –l fileset | grep patch"로 서버에 적용되어 있는 패치 리스트를 확인+"swlist –l fileset | grep patch"로 서버에 적용되어 있는 패치 리스트를 확인\\
 HPUX 는 다양한 하드웨어 플랫폼과 OS로 인해 General한 Security Patch가 공개되어 있지 않음 그리고, security_patch_check 라는 프로그램(펄 스크립트)을 서버에 설치/실행하여 서버의 취약한 Security Patch 리스트를 얻을 수 있음 HPUX 는 다양한 하드웨어 플랫폼과 OS로 인해 General한 Security Patch가 공개되어 있지 않음 그리고, security_patch_check 라는 프로그램(펄 스크립트)을 서버에 설치/실행하여 서버의 취약한 Security Patch 리스트를 얻을 수 있음
  
줄 1458: 줄 1465:
 security_patch_check 를 사용하기 위해서는 Service Control Manager 라는 도구를 서버에 설치하여야 하며, security_patch_check 사용관련 내용은 비고란을 참조 바람 security_patch_check 를 사용하기 위해서는 Service Control Manager 라는 도구를 서버에 설치하여야 하며, security_patch_check 사용관련 내용은 비고란을 참조 바람
  
-<패치 적용의 예>+<패치 적용의 예>\\
 1) 수작업에 의한 패치 적용 1) 수작업에 의한 패치 적용
  
-운영자에 의한 패치 적용 방법은 아래와 같은 단계에 의해 설정 +운영자에 의한 패치 적용 방법은 아래와 같은 단계에 의해 설정\\ 
-(1) http://www11.itrc.hp.com/service/patch/mainPage.do 접속 +(1) http://www11.itrc.hp.com/service/patch/mainPage.do 접속\\ 
-(2) HPUX 선택하여 해당 페이지 이동 +(2) HPUX 선택하여 해당 페이지 이동\\ 
-(3) 해당되는 H/W, OS 를 선택 +(3) 해당되는 H/W, OS 를 선택\\ 
-(4) 키워드, Patch-ID, Patch 리스트 옵션을 선택하여 검색 +(4) 키워드, Patch-ID, Patch 리스트 옵션을 선택하여 검색\\ 
-(5) 검색 결과를 받음 +(5) 검색 결과를 받음\\ 
-(6) 필요한 패치를 선택하여 다운로드 받음 +(6) 필요한 패치를 선택하여 다운로드 받음\\ 
-(7) 패치간의 dependency를 고려하여 적용할 패치를 결정+(7) 패치간의 dependency를 고려하여 적용할 패치를 결정\\
  
 2) Custom Patch Manager에 의한 패치 적용 2) Custom Patch Manager에 의한 패치 적용
줄 1474: 줄 1481:
 CPM(Custom Patch Manager)는 해당 시스템에 적합한 패치를 선택하고 다운로드 받을 수 있도록 하는 툴임. CPM을 이용하여 환경에서 설정된 일정기간 간격 별로 패치를 자동 적용할 수 있으며, dependency관계나 conflict 관계를 자동 분석하여 적용할 패치를 결정해줌. CPM을 이용하는 단계는 다음과 같음 CPM(Custom Patch Manager)는 해당 시스템에 적합한 패치를 선택하고 다운로드 받을 수 있도록 하는 툴임. CPM을 이용하여 환경에서 설정된 일정기간 간격 별로 패치를 자동 적용할 수 있으며, dependency관계나 conflict 관계를 자동 분석하여 적용할 패치를 결정해줌. CPM을 이용하는 단계는 다음과 같음
  
-(1) ITRC 웹사이트에 (http://itrc.hp.com)이동하여 로그인 +(1) ITRC 웹사이트에 (http://itrc.hp.com)이동하여 로그인\\ 
-(2) maintenance/support 링크를 클릭한 후 customized patch bundles를 선택 +(2) maintenance/support 링크를 클릭한 후 customized patch bundles를 선택\\ 
-(3) cpm_collect.sh 스크립트를 다운로드 받아 실행하여 현재 configuration에 대한 정보를 취합 +(3) cpm_collect.sh 스크립트를 다운로드 받아 실행하여 현재 configuration에 대한 정보를 취합\\ 
-(4) cpm_collect.sh 스크립트를 돌려 얻은 configuration에 대해 얻은 결과를 ITRC페이지에 업로드 +(4) cpm_collect.sh 스크립트를 돌려 얻은 configuration에 대해 얻은 결과를 ITRC페이지에 업로드\\ 
-(5) Perform Patch Analysis를 클릭함으로써 필요한 candidate patch list를 얻음 +(5) Perform Patch Analysis를 클릭함으로써 필요한 candidate patch list를 얻음\\ 
-(6) 선택한 패치간의 conflict가 없는지 점검 +(6) 선택한 패치간의 conflict가 없는지 점검\\ 
-(7) 선택한 패치를 Package버튼을 선택함으로써 다운로드 받은 후 패치를 설치+(7) 선택한 패치를 Package버튼을 선택함으로써 다운로드 받은 후 패치를 설치\\
  
 <패치적용> <패치적용>
   * "swlist –l product" 로 서버에 적용되어 있는 패치 리스트를 확인   * "swlist –l product" 로 서버에 적용되어 있는 패치 리스트를 확인
-  * OS별, 제품별, 보안관련 분류되어 패치파일을 제공 : http://itrc.hp.com/ +  * OS별, 제품별, 보안관련 분류되어 패치파일을 제공 : http://itrc.hp.com/\\ : http://www.software.hp.com/cgi-bin/swdepot_parser.cgi/cgi/displayProductInfo.pl?productNumber=B6834AA
-: http://www.software.hp.com/cgi-bin/swdepot_parser.cgi/cgi/displayProductInfo.pl? +
-productNumber=B6834AA+
  
 <패치적용의 예> <패치적용의 예>
-# mkdir /var/spool/patch +  # mkdir /var/spool/patch 
 위와 같은 디렉터리를 만들어 Patch 파일을 관리 위와 같은 디렉터리를 만들어 Patch 파일을 관리
  
   * 패치 설치 순서   * 패치 설치 순서
 (예) : Patch: PHCO_16341: HP AutoRAID Manager cumulative patch 를 적용 (예) : Patch: PHCO_16341: HP AutoRAID Manager cumulative patch 를 적용
-# swlist –l fileset | grep PHCO_16341 (System에 patch가 설치 되어 있는 지 확인) +  # swlist –l fileset | grep PHCO_16341 (System에 patch가 설치 되어 있는 지 확인) 
-PHCO_16341.txt +    PHCO_16341.txt 
-# sh PHCO_16341.txt +  # sh PHCO_16341.txt 
-# ls  +  # ls  
-PHCO_16341.txt   PHCO_16341.depot  PHCO_16341.text +    PHCO_16341.txt   PHCO_16341.depot  PHCO_16341.text 
-# swinstall –s /var/spool/patch /PHCO_16341.depot +  # swinstall –s /var/spool/patch /PHCO_16341.depot 
-#swlist –l fileset | grep PHCO_16341 (설치된 patch 확인)+  #swlist –l fileset | grep PHCO_16341 (설치된 patch 확인)
  
-<설치 시 주의사항>+<설치 시 주의사항>\\
 ※ Patch적용 후에 Rebooting이 필요한 경우가 있으므로 README-Patch-ID 파일을 주의 깊게 보아야 함 ※ Patch적용 후에 Rebooting이 필요한 경우가 있으므로 README-Patch-ID 파일을 주의 깊게 보아야 함
  
줄 1510: 줄 1515:
 시스템의 보안성 및 안전성을 위하여 주기적으로 패치를 적용하는 것이 바람직하나, 아래의 사항을 고려하여 OS벤더 엔지니어의 충분한 검토 후 서버에서 운용중인 서비스에 아무런 영향이 없다고 판단될 때 OS벤더 엔지니어의 작업 하에 패치를 적용해야 합니다. 시스템의 보안성 및 안전성을 위하여 주기적으로 패치를 적용하는 것이 바람직하나, 아래의 사항을 고려하여 OS벤더 엔지니어의 충분한 검토 후 서버에서 운용중인 서비스에 아무런 영향이 없다고 판단될 때 OS벤더 엔지니어의 작업 하에 패치를 적용해야 합니다.
  
-No 패치 적용시 고려 및 준수해야 할 사항 +^  No   패치 적용시 고려 및 준수해야 할 사항  ^ 
-1 해당 패치가 시스템 자체에 미칠 수 있는 영향을 OS 벤더측에서 검토 후, 이상이 없을 때 패치를 적용 +|   |해당 패치가 시스템 자체에 미칠 수 있는 영향을 OS 벤더측에서 검토 후, 이상이 없을 때 패치를 적용     | 
-2 해당 패치가 시스템에서 운용중인 서비스 프로그램에 미칠 수 있는 영향을 OS벤더측과 서비스 프로그램(즉 응용프로그램) 개발자측과 함께 검토 후, 이상이 없을 때 패치를 적용 +|   |해당 패치가 시스템에서 운용중인 서비스 프로그램에 미칠 수 있는 영향을 OS벤더측과 서비스 프로그램(즉 응용프로그램) 개발자측과 함께 검토 후, 이상이 없을 때 패치를 적용   | 
-3 패치 적용 후 예기치 않은 서비스의 중지에 대비하여, 패치 작업을 실시하기 전에 Roll-Back 및 비상복구 절차 수립 및 테스트 필요 +|   |패치 적용 후 예기치 않은 서비스의 중지에 대비하여, 패치 작업을 실시하기 전에 Roll-Back 및 비상복구 절차 수립 및 테스트 필요   | 
-4 패치 적용 전/후 시스템에 대한 Full Backup을 실시+|   |패치 적용 전/후 시스템에 대한 Full Backup을 실시.    |