차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판마지막 판양쪽 다음 판 | ||
guide:hpux [2013/07/29 01:26] – 새로 만듦 wiki1122 | guide:hpux [2013/12/23 03:19] – [보안 패치 적용(중요도 : 중)] 113.216.91.242 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
- | HP-UX 보안가이드라인 | + | ====== |
- | ===== 계정관리 ===== | ||
- | ==== Default 계정 삭제(중요도 : 상) | + | ===== 1. 계정관리 ===== |
+ | |||
+ | ==== Default 계정 삭제(중요도 : 상) ==== | ||
시스템 Default 계정 및 사용하지 않는 계정의 삭제 | 시스템 Default 계정 및 사용하지 않는 계정의 삭제 | ||
=== 기준 === | === 기준 === | ||
- | 가. Default 계정(lp, | + | 가. Default 계정(lp, |
- | 나. 퇴직, 전배, 휴직, 계약 해지자 계정 삭제 | + | 나. 퇴직, 전환배치, 휴직, 계약 해지자 계정 삭제 |
※ 가, 나 항목 모두 적용 해야 함 | ※ 가, 나 항목 모두 적용 해야 함 | ||
=== 설정방법 === | === 설정방법 === | ||
- | # userdel lp | + | |
- | # userdel uucp | + | # userdel uucp |
- | # userdel nuucp | + | # userdel nuucp |
=== 상세설명 === | === 상세설명 === | ||
- | 시스템에서 이용하지 않는 Default 계정 및 의심스러운 특이한 계정의 존재 | + | 시스템에서 이용하지 않는 Default 계정 및 의심스러운 특이한 계정의 존재 |
- | (단, 서버 테스트 및 작업으로 계정생성이 불가피한 경우 작업 후 이를 삭제하는 것을 원칙으로 합니다.) | + | |
- | 일반적으로 로그인이 필요치 않은 시스템 계정들은 | + | 일반적으로 로그인이 필요치 않은 시스템 계정들은 |
- | - 퇴직, 전배, 휴직, 계약해지자 계정 존재 시 삭제 | + | * 퇴직, 전환배치, 휴직, 계약해지자 계정 존재 시 삭제 |
- | - lp, uucp, nuucp, 의심스러운 특이한 계정(예. guest, test) 및 미사용 계정 삭제 | + | |
- | - 로그인 쉘을 / | + | |
- | ==== 일반계정 root 권한 관리(중요도 : 상) | + | ==== 일반계정 root 권한 관리(중요도 : 상) ==== |
Root 권한을 가지고 있는 일반 계정이 있는지 점검 | Root 권한을 가지고 있는 일반 계정이 있는지 점검 | ||
줄 40: | 줄 40: | ||
=== 상세설명 === | === 상세설명 === | ||
- | 시스템 관리자는 root 계정을 포함하여 의심가는 모든 계정의 디렉터리 및 파일을 정기적으로 | + | 시스템 관리자는 root 계정을 포함하여 의심 가는 모든 계정의 디렉터리 및 파일을 정기적으로 조사하여 삭제해야 하며, 주기적으로 불필요한 사용자 계정을 조사하여 제거하는 것이 보안상 필요합니다. |
- | - root 권한을 가진 다른 일반 계정이 있는지 점검 | + | * root 권한을 가진 다른 일반 계정이 있는지 점검 |
- | - root와 UID가 중복 되어있으면 관리자 권한을 다른 사용자가 사용할 수 있으며, 사용자 간 UID 중복 시에 사용자 감사 추적이 어렵고, 사용자 권한이 중복 | + | |
- | - root 계정을 제외한 일반 계정의 UID가 ' | + | |
- | - 시스템 계정(daemon, | + | |
< | < | ||
- | 아래의 내용은 /etc/passwd 파일의 샘플이며, | + | 아래의 내용은 /etc/passwd 파일의 샘플이며, |
- | root: | + | |
- | daemon: | + | daemon: |
- | bin: | + | bin: |
- | sys: | + | sys: |
- | adm: | + | adm: |
- | lpd: | + | lpd: |
<passwd 파일 필드> | <passwd 파일 필드> | ||
- | loginID: | + | loginID: |
- | ==== /etc/passwd 파일 권한 설정(중요도 : 상) | + | ---- |
+ | |||
+ | ==== /etc/passwd 파일 권한 설정(중요도 : 상) ==== | ||
시스템 사용자 계정 정보가 있는 /etc/passwd 파일의 권한 점검 | 시스템 사용자 계정 정보가 있는 /etc/passwd 파일의 권한 점검 | ||
줄 67: | 줄 69: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chmod 644 / | + | |
- | # chown root /etc/passwd | + | # chown root /etc/passwd |
- | # chmod 400 / | + | |
- | # chown root / | + | # chown root / |
- | # chmod 400 / | + | |
- | # chown root /etc/shadow | + | # chown root /etc/shadow |
=== 상세설명 === | === 상세설명 === | ||
줄 80: | 줄 82: | ||
| | ||
< | < | ||
- | | + | * /etc/passwd 파일의 권한을 root 소유의 " |
<Trusted Mode> | <Trusted Mode> | ||
- | - /etc/passwd 파일의 권한을 root 소유의 " | + | * /etc/passwd 파일의 권한을 root 소유의 " |
- | / | + | |
<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가 기본적으로 설치되어 있음 | + | |
- | - /etc/shadow 파일의 권한을 root 소유의 | + | |
※ 참조 사이트 | ※ 참조 사이트 | ||
https:// | https:// | ||
- | ==== /etc/group 파일 권한 설정(중요도 : 상) | + | ==== /etc/group 파일 권한 설정(중요도 : 상) ==== |
사용자 그룹에 대한 정보가 있는 /etc/group 파일의 권한 점검 | 사용자 그룹에 대한 정보가 있는 /etc/group 파일의 권한 점검 | ||
줄 100: | 줄 102: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chmod 644 /etc/group | + | |
- | # chown root /etc/group | + | # chown root /etc/group |
=== 상세설명 === | === 상세설명 === | ||
줄 107: | 줄 109: | ||
group 파일을 일반 사용자들이 수정할 수 없도록 제한하고 있는지 점검하여 타 사용자의 쓰기 권한을 제한하여야 합니다. | group 파일을 일반 사용자들이 수정할 수 없도록 제한하고 있는지 점검하여 타 사용자의 쓰기 권한을 제한하여야 합니다. | ||
- | ==== 패스워드 사용규칙 적용(중요도 : 상) | + | ---- |
+ | |||
+ | ==== 패스워드 사용규칙 적용(중요도 : 상) ==== | ||
사용자 계정(root 및 일반 계정 모두)의 Password 설정 시 취약한 패스워드 사용 금지 | 사용자 계정(root 및 일반 계정 모두)의 Password 설정 시 취약한 패스워드 사용 금지 | ||
=== 기준 === | === 기준 === | ||
가. 패스워드 사용규칙 설정 | 가. 패스워드 사용규칙 설정 | ||
- | - Control-SA, RedOwl 솔루션 구동 시 | + | * Control-SA, RedOwl 솔루션 구동 시 |
- | - 솔루션 미 구동 시 설정 | + | |
- | 패스워드 최소길이, | + | |
# vi / | # vi / | ||
- | PASS_MIN_LEN | + | |
- | PASS_MAX_DAYS | + | PASS_MAX_DAYS |
- | PASS_MIN_DAYS | + | PASS_MIN_DAYS |
- | 나. 패스워드 설정 | + | 나. 패스워드 설정 |
- | - 문자/ | + | |
※ 가, 나 항목 모두 적용 해야 함 | ※ 가, 나 항목 모두 적용 해야 함 | ||
줄 126: | 줄 129: | ||
=== 설정방법 === | === 설정방법 === | ||
[보안 적용 1] 아이덴티티 관리(Identity Management) 솔루션 구동 시 | [보안 적용 1] 아이덴티티 관리(Identity Management) 솔루션 구동 시 | ||
- | - Control-SA 프로그램 가동 시에는 패스워드 규칙 적용됨 | + | * Control-SA 프로그램 가동 시에는 패스워드 규칙 적용됨(현재 적용 현황은 문자, 숫자, 특수문자 1자 이상 사용하도록 되어 있음) |
- | | + | |
- | Control-SA 프로세스 확인 | + | |
- | $ ps -ef|grep p_ctsc | + | |
- | / | + | |
- | /bmc/ctsa/ control-sa/ | + | |
- | / | + | |
- | - 레드아울(RedOwl) 프로그램 가동 시에는 패스워드 규칙 적용됨 | + | -> Control-SA |
- | RedOwl | + | $ ps -ef|grep |
- | $ ps -ef|grep | + | |
- | ngmseos | + | /bmc/ctsa/ control-sa/exe/HP-UX-11/ |
- | ngmseos | + | /bmc/ctsa/control-sa/ |
- | [보안 적용 2] 아이덴티티 관리(Identity Management) 솔루션 미구동 시 | + | * 레드아울(RedOwl) 프로그램 가동 시에는 패스워드 규칙 적용됨 |
- | 1. 패스워드 최소길이 | + | |
- | 패스워드 추측공격을 피하기 위하여 패스워드 최소길이가 설정되어 있는지 점검합니다. | + | -> RedOwl 프로세스 확인 |
+ | $ ps -ef|grep cmmd | ||
+ | ngmseos | ||
+ | ngmseos | ||
+ | |||
+ | [보안 적용 2] 아이덴티티 관리(Identity Management) 솔루션 미구동 시\\ | ||
+ | 1. 패스워드 최소길이\\ | ||
+ | 패스워드 추측공격을 피하기 위하여 패스워드 최소길이가 설정되어 있는지 점검합니다.\\ | ||
패스워드 최소길이가 설정되어 있지 않거나 짧게 설정되어 있을 경우 취약한 패스워드를 사용함으로 인해 악의적인 사용자가 패스워드를 쉽게 유추할 수 있습니다. | 패스워드 최소길이가 설정되어 있지 않거나 짧게 설정되어 있을 경우 취약한 패스워드를 사용함으로 인해 악의적인 사용자가 패스워드를 쉽게 유추할 수 있습니다. | ||
- | 2. 패스워드 최대 사용기간 | + | 2. 패스워드 최대 사용기간\\ |
패스워드가 임의의 경로를 통해 유출되었을 때, 임의로 접속한 사용자가 언제든 다시 접속할 수 있는 환경을 방지하기 위해 패스워드 날짜 제한을 점검합니다. | 패스워드가 임의의 경로를 통해 유출되었을 때, 임의로 접속한 사용자가 언제든 다시 접속할 수 있는 환경을 방지하기 위해 패스워드 날짜 제한을 점검합니다. | ||
- | 3. 패스워드 최소 사용기간 | + | 3. 패스워드 최소 사용기간\\ |
패스워드가 임의의 경로를 통해 유출되었을 때, 임의로 접속한 사용자가 언제든 다시 접속할 수 있는 환경을 방지하기 위해 패스워드 날짜 제한을 점검합니다. | 패스워드가 임의의 경로를 통해 유출되었을 때, 임의로 접속한 사용자가 언제든 다시 접속할 수 있는 환경을 방지하기 위해 패스워드 날짜 제한을 점검합니다. | ||
- | 4. 이전 패스워드 기억 | + | 4. 이전 패스워드 기억\\ |
이전에 사용하였던 패스워드를 기억하여 패스워드 변경 시 기존에 사용하였던 패스워드 재사용 금지합니다. | 이전에 사용하였던 패스워드를 기억하여 패스워드 변경 시 기존에 사용하였던 패스워드 재사용 금지합니다. | ||
- | - 패스워드 길이는 8자 이상 설정하는 것을 권고 | + | * 패스워드 길이는 8자 이상 설정하는 것을 권고 |
- | - 패스워드 최대 사용 기간을 70일(10주) 이하로 설정할 것을 권고 | + | |
- | - 패스워드 최소 사용 기간을 7일(1주) 이상으로 설정할 것을 권고 | + | |
- | - 기존의 패스워드를 최소 12개 이상으로 설정할 것을 권고 | + | |
- | 5. 계정 잠금 임계값 | + | 5. 계정 잠금 임계값\\ |
계정 잠금 임계값이 설정되어 있지 않다면 자동화된 도구에 의한 무차별 공격(Brute-Force Attack)으로 인해 공격자는 별다른 노력 없이 사용자 패스워드를 획득할 수 있는 가능성이 존재합니다. | 계정 잠금 임계값이 설정되어 있지 않다면 자동화된 도구에 의한 무차별 공격(Brute-Force Attack)으로 인해 공격자는 별다른 노력 없이 사용자 패스워드를 획득할 수 있는 가능성이 존재합니다. | ||
- | - 로그인 실패는 10회 까지만 허용하며, | + | * 로그인 실패는 10회 까지만 허용하며, |
<계정 잠금 임계값 설정, HP-UX 11.v3 이상 적용 가능> | <계정 잠금 임계값 설정, HP-UX 11.v3 이상 적용 가능> | ||
- | # vi / | + | |
- | AUTH_MAXTRIES=10 | + | AUTH_MAXTRIES=10 |
< | < | ||
- | 1) # vi / | + | 1) # vi / |
- | | + | MIN_PASSWORD_LENGTH=8 |
PASSWORD_MAXDAYS=70 | PASSWORD_MAXDAYS=70 | ||
- | PASSWORD_MINDAYS=7 | + | |
- | PASSWORD_HISTORY_DEPTH=12 | + | PASSWORD_HISTORY_DEPTH=12 |
2) 잠긴 계정을 해제하려고 하는 경우 root 계정으로 접속하여 아래 명령어 수행 | 2) 잠긴 계정을 해제하려고 하는 경우 root 계정으로 접속하여 아래 명령어 수행 | ||
- | # userdbset –d –u username auth_failures | + | |
- | <Trusted Mode> | + | <Trusted Mode>\\ |
- | 1) # / | + | 1) # / |
- | (1) Auditing and Security -> System Security Policies -> Password Format Policies 에서 아래 내용 | + | (1) Auditing and Security -> System Security Policies -> Password Format Policies 에서 아래 내용 확인 |
- | - Allow Null Passwords 체크 해제 되어 있는지 확인 | + | |
- | - Use Restriction Rules 체크 되어 있는지 확인 | + | |
(2) Auditing and Security -> System Security Policies -> Password Aging Policies 에서 아래 내용 확인 | (2) Auditing and Security -> System Security Policies -> Password Aging Policies 에서 아래 내용 확인 | ||
- | - Password Aging : Enable | + | * Password Aging : Enable |
- | - Time Between Password Changes (days) : 7 | + | |
- | - Password Life Time (days) :70 | + | |
(3) # vi / | (3) # vi / | ||
- | MIN_PASSWORD_LENGTH=8 | + | |
- | PASSWORD_HISTORY_DEPTH=12 | + | PASSWORD_HISTORY_DEPTH=12 |
2) 잠긴 계정을 해제하려고 하는 경우 root 계정으로 접속하여 아래 명령어 수행 | 2) 잠긴 계정을 해제하려고 하는 경우 root 계정으로 접속하여 아래 명령어 수행 | ||
- | # audusr | + | |
+ | | ||
=== 상세설명 === | === 상세설명 === | ||
사용자 계정(root 및 일반계정 모두)의 암호 설정 시, 일반적으로 유추하기 쉬운 암호를 설정하는 경우 비 인가된 사용자는 일반계정 또는 root 권한 획득을 통하여 시스템에 접근할 수 있습니다. | 사용자 계정(root 및 일반계정 모두)의 암호 설정 시, 일반적으로 유추하기 쉬운 암호를 설정하는 경우 비 인가된 사용자는 일반계정 또는 root 권한 획득을 통하여 시스템에 접근할 수 있습니다. | ||
줄 198: | 줄 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) 연속적인 문자/ | + | (4) 연속적인 문자/ |
- | (5) 주기성 패스워드 재사용 금지 | + | (5) 주기성 패스워드 재사용 금지\\ |
(6) 전화번호, | (6) 전화번호, | ||
- | - "John The Ripper" | + | * "John The Ripper" |
- | ==== 로그인이 불필요한 계정 shell 제한(중요도 : 중) | + | ==== 로그인이 불필요한 계정 shell 제한(중요도 : 중) ==== |
시스템 계정 중 로그인이 불필요한 계정에 대해 shell 제한 | 시스템 계정 중 로그인이 불필요한 계정에 대해 shell 제한 | ||
줄 220: | 줄 225: | ||
=== 설정방법 === | === 설정방법 === | ||
예) daemon 계정이 로그인 하지 못하도록 설정 | 예) daemon 계정이 로그인 하지 못하도록 설정 | ||
- | # vi /etc/passwd | + | |
- | (수정 전) daemon: | + | (수정 전) daemon: |
- | (수정 후) daemon: | + | (수정 후) daemon: |
=== 상세설명 === | === 상세설명 === | ||
접근이 거의 필요하지 않은 사용자들에게는 쉘을 제한 함으로써 인가 받지 않은 사용자가 시스템을 이용하는 것을 방지해야 합니다. | 접근이 거의 필요하지 않은 사용자들에게는 쉘을 제한 함으로써 인가 받지 않은 사용자가 시스템을 이용하는 것을 방지해야 합니다. | ||
- | - 시스템 계정 중 로그인이 불필요한 계정에 대해 ‘/ | + | * 시스템 계정 중 로그인이 불필요한 계정에 대해 ‘/ |
- | <실행 쉘이 불필요한 계정 대상 - 로그인이 필요하지 않는 계정에 | + | <실행 쉘이 불필요한 계정 대상 - 로그인이 필요하지 않는 계정에 |
[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 파일의 샘플이며, |
- | 마지막 필드가 | + | 마지막 필드가 |
- | bin: | + | |
- | daemon: | + | daemon: |
- | adm: | + | adm: |
- | operator: | + | operator: |
- | games: | + | games: |
- | gopher: | + | gopher: |
- | nobody: | + | nobody: |
<쉘 로그인이 필요 없는 경우 계정설정> | <쉘 로그인이 필요 없는 경우 계정설정> | ||
- | # useradd 계정 -c " | + | |
- | ==== SU(Select User)사용 제한(중요도 : 상) | + | ==== SU(Select User)사용 제한(중요도 : 상) ==== |
권한 없는 사용자의 su 명령어 제한 | 권한 없는 사용자의 su 명령어 제한 | ||
줄 255: | 줄 260: | ||
<방법 1> | <방법 1> | ||
1) vi / | 1) vi / | ||
- | # vi / | + | |
- | SU_ROOT_GROUP=wheel (su 명령어를 사용할 그룹 지정) | + | SU_ROOT_GROUP=wheel (su 명령어를 사용할 그룹 지정) |
<방법 2> | <방법 2> | ||
1) group 생성(생성할 그룹 요청, 일반적으로 wheel 사용) | 1) group 생성(생성할 그룹 요청, 일반적으로 wheel 사용) | ||
- | # groupadd wheel | + | |
2) /usr/bin/su 파일의 그룹을 wheel 그룹으로 변경 | 2) /usr/bin/su 파일의 그룹을 wheel 그룹으로 변경 | ||
- | # chgrp wheel /usr/bin/su | + | |
3) /usr/bin/su 파일의 권한변경 (4750) | 3) /usr/bin/su 파일의 권한변경 (4750) | ||
- | # chmod 4750 /usr/bin/su | + | |
4) su 명령어 사용이 필요한 계정을 wheel 그룹에 추가 | 4) su 명령어 사용이 필요한 계정을 wheel 그룹에 추가 | ||
- | # usermod –G wheel [계정명] | + | |
=== 상세설명 === | === 상세설명 === | ||
줄 273: | 줄 278: | ||
따라서, 일반 사용자의 su 명령 사용을 제한해야 합니다. (wheel 그룹만 su 명령 사용을 가능하게 설정합니다.) | 따라서, 일반 사용자의 su 명령 사용을 제한해야 합니다. (wheel 그룹만 su 명령 사용을 가능하게 설정합니다.) | ||
- | 2. 파일 시스템 | + | ===== 2. 파일 시스템 |
- | ==== 사용자 UMASK(User MASK)설정(중요도 : 하) | + | ==== 사용자 UMASK(User MASK)설정(중요도 : 하) ==== |
시스템 내 사용자가 생성하는 파일 및 디렉터리 퍼미션 적용을 위한 UMASK 설정 | 시스템 내 사용자가 생성하는 파일 및 디렉터리 퍼미션 적용을 위한 UMASK 설정 | ||
줄 283: | 줄 288: | ||
=== 설정방법 === | === 설정방법 === | ||
1) # vi / | 1) # vi / | ||
- | umask 022 | + | |
2) # / | 2) # / | ||
- | UMASK=022 | + | |
=== 상세설명 === | === 상세설명 === | ||
시스템 내에서 사용자가 파일 또는 디렉터리를 생성할 때 적용 받는 퍼미션은 umask 값에 따라 달라지며, | 시스템 내에서 사용자가 파일 또는 디렉터리를 생성할 때 적용 받는 퍼미션은 umask 값에 따라 달라지며, | ||
- | 현재의 유저에게 설정된 umask 값을 조회하려면 명령 프롬프트에서 | + | 현재의 유저에게 설정된 umask 값을 조회하려면 명령 프롬프트에서 |
- | umask 값이 | + | umask 값이 |
계정의 Start Profile(/ | 계정의 Start Profile(/ | ||
- | ==== SUID(Set User-ID), SGID(Set Group-ID)설정(중요도 : 하) | + | ==== SUID(Set User-ID), SGID(Set Group-ID)설정(중요도 : 하) ==== |
보안의 취약한 root 소유의 SUID, SGID 설정된 파일의 제한 | 보안의 취약한 root 소유의 SUID, SGID 설정된 파일의 제한 | ||
줄 306: | 줄 311: | ||
=== 설정방법 === | === 설정방법 === | ||
아래의 표에서 파일명을 확인하여 SUID, SGID를 제거 | 아래의 표에서 파일명을 확인하여 SUID, SGID를 제거 | ||
- | # chmod –s [파일명] | + | |
- | HP-UX | + | HP-UX |
- | / | + | / |
- | / | + | / |
- | / | + | / |
- | / | + | / |
- | / | + | / |
- | / | + | / |
- | / | + | / |
- | / | + | / |
- | / | + | / |
- | / | + | / |
=== 상세설명 === | === 상세설명 === | ||
줄 330: | 줄 335: | ||
제거 방법의 예 : # chmod -s file-name | 제거 방법의 예 : # chmod -s file-name | ||
주기적인 감사 방법의 예 : | 주기적인 감사 방법의 예 : | ||
- | # find / -user root -type f \( -perm -4000 -o -perm -2000 \) -exec ls -lg {} \; | + | |
반드시 사용이 필요한 Setuid 파일의 경우에는 특정 그룹에서만 사용하도록 제한합니다. | 반드시 사용이 필요한 Setuid 파일의 경우에는 특정 그룹에서만 사용하도록 제한합니다. | ||
특정그룹에 사용을 제한하는 예 : | 특정그룹에 사용을 제한하는 예 : | ||
일반 사용자의 Setuid 사용을 제한합니다. (임의의 그룹만 가능) | 일반 사용자의 Setuid 사용을 제한합니다. (임의의 그룹만 가능) | ||
- | # / | + | |
- | # / | + | # / |
만약 Setuid 사용을 허락하고 싶은 계정인 wiki를 임의의 그룹에 넣고 싶다면 아래와 같이 설정합니다. | 만약 Setuid 사용을 허락하고 싶은 계정인 wiki를 임의의 그룹에 넣고 싶다면 아래와 같이 설정합니다. | ||
- | # usermod –G100 wiki | + | |
- | G : a list of Supplementary group 설정 변경 | + | G : a list of Supplementary group 설정 변경 |
- | 100 : the numerical value of the < | + | 100 : the numerical value of the < |
- | ==== / | + | ==== / |
데몬 설정파일 (/ | 데몬 설정파일 (/ | ||
줄 350: | 줄 355: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root / | + | |
- | # chmod o-w / | + | # chmod o-w / |
※ 해당 파일이 링크되어 있다면 링크된 원본 파일 소유권을 변경 | ※ 해당 파일이 링크되어 있다면 링크된 원본 파일 소유권을 변경 | ||
줄 360: | 줄 365: | ||
인터넷 슈퍼데몬은 외부 네트워크의 요청이 있을 때 / | 인터넷 슈퍼데몬은 외부 네트워크의 요청이 있을 때 / | ||
- | ==== history 파일 권한 설정(중요도 : 중) | + | ==== history 파일 권한 설정(중요도 : 중) ==== |
시스템에 로그인한 모든 사용자들의 명령어를 저장하는 스크립트 파일 권한 관리 | 시스템에 로그인한 모든 사용자들의 명령어를 저장하는 스크립트 파일 권한 관리 | ||
줄 367: | 줄 372: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chmod 600 [사용자 홈 디렉터리 경로]/ | + | |
- | # chmod 600 [사용자 홈 디렉터리 경로]/ | + | # chmod 600 [사용자 홈 디렉터리 경로]/ |
=== 상세설명 === | === 상세설명 === | ||
히스토리 파일(.history, | 히스토리 파일(.history, | ||
- | 모든 사용자의 히스토리 파일 권한을 | + | 모든 사용자의 히스토리 파일 권한을 |
- | ==== Crontab 파일 권한 설정 및 관리(중요도 : 상) | + | ==== Crontab 파일 권한 설정 및 관리(중요도 : 상) ==== |
Crontab 관련 파일 권한 및 Crontab 내 root 권한으로 예약 설정되어 실행되는 파일의 권한의 점검 | Crontab 관련 파일 권한 및 Crontab 내 root 권한으로 예약 설정되어 실행되는 파일의 권한의 점검 | ||
줄 381: | 줄 386: | ||
가. crontab 관련파일의 타사용자 쓰기 권한 제거 | 가. crontab 관련파일의 타사용자 쓰기 권한 제거 | ||
나. crontab 파일 권한 설정 | 나. crontab 파일 권한 설정 | ||
- | - 파일권한 744, 소유자 root 설정 | + | * 파일권한 744, 소유자 root 설정 |
- | - 예약 설정된 파일 절대 경로 설정 | + | |
- | - crontab 설정된 파일이 모두 존재 | + | |
※ 가, 나 항목 모두 적용 해야 함 | ※ 가, 나 항목 모두 적용 해야 함 | ||
줄 389: | 줄 394: | ||
=== 설정방법 === | === 설정방법 === | ||
1) crontab 관련파일의 타사용자 쓰기 권한 제거 | 1) crontab 관련파일의 타사용자 쓰기 권한 제거 | ||
- | # chmod o-w / | + | |
2) 각 파일의 권한 확인 후 변경 | 2) 각 파일의 권한 확인 후 변경 | ||
- | # ls –al [file] | + | |
- | # chmod 744 [file] | + | # chmod 744 [file] |
- | # ls -al / | + | # ls -al / |
- | -rwxr--r-- | + | -rwxr--r-- |
- | # ls -al / | + | # ls -al / |
- | -rwxr--r-- | + | -rwxr--r-- |
3) UID로 나오는 파일의 소유자 변경 | 3) UID로 나오는 파일의 소유자 변경 | ||
- | # ls -al [file] | + | |
- | -rw-r--r-- | + | -rw-r--r-- |
- | # chown root [file] | + | # chown root [file] |
- | # ls -al [file] | + | # ls -al [file] |
- | -rw-r--r-- | + | -rw-r--r-- |
※ Crontab내에 예약 설정되어 있는 file이 실제 경로에 존재하지 않을 경우 Crontab list에서 삭제 | ※ Crontab내에 예약 설정되어 있는 file이 실제 경로에 존재하지 않을 경우 Crontab list에서 삭제 | ||
줄 419: | 줄 424: | ||
Crontab에 등록된 파일의 퍼미션을 확인하면서 기존에는 존재했던 유저를 삭제하면서 삭제한 유저가 만든 여러 파일들의 소유자가 그 유저의 UID로 남아있는 문제가 발생함으로 이러한 파일의 적절한 유저를 부여해야 합니다. | Crontab에 등록된 파일의 퍼미션을 확인하면서 기존에는 존재했던 유저를 삭제하면서 삭제한 유저가 만든 여러 파일들의 소유자가 그 유저의 UID로 남아있는 문제가 발생함으로 이러한 파일의 적절한 유저를 부여해야 합니다. | ||
- | - root 권한으로 Crontab에서 실행토록 설정되어 있는 실행 파일들의 권한은 744, 소유자는 root로 설정 | + | * root 권한으로 Crontab에서 실행토록 설정되어 있는 실행 파일들의 권한은 744, 소유자는 root로 설정 |
- | - Crontab 내에 예약 설정 되어 있는 파일 등 중에 상대 PATH로 설정되어 되어 있는 경우 절대 PATH로 수정 | + | |
- | - Crontab 내에 예약 설정 되어 있는 파일의 소유자가 UID로 남아있는 경우, 적절한 소유자(root)를 부여 | + | |
- | - Crontab 내에 예약 설정 되어 있는 file의 실제 경로에 존재 유무 확인 | + | |
- | # crontab –ㅣ | + | |
- | 1 15 * * / | + | 1 15 * * / |
- | 30 * * * * / | + | 30 * * * * / |
- | ==== / | + | ==== / |
사용자 설정파일인 / | 사용자 설정파일인 / | ||
줄 435: | 줄 440: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root / | + | |
- | # chmod o-w / | + | # chmod o-w / |
=== 상세설명 === | === 상세설명 === | ||
/ | / | ||
- | ==== /etc/hosts 파일 권한 설정(중요도 : 중) | + | ==== /etc/hosts 파일 권한 설정(중요도 : 중) ==== |
호스트네임 등록파일인 /etc/hosts 파일에 대한 접근 권한 제한 | 호스트네임 등록파일인 /etc/hosts 파일에 대한 접근 권한 제한 | ||
줄 448: | 줄 453: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root /etc/hosts | + | |
- | # chmod o-w /etc/hosts | + | # chmod o-w /etc/hosts |
※ 해당 파일이 링크되어 있다면 링크된 원본 파일 소유권을 변경 | ※ 해당 파일이 링크되어 있다면 링크된 원본 파일 소유권을 변경 | ||
줄 456: | 줄 461: | ||
/etc/hosts 파일은 IP address와 hostname을 매핑하는데 사용되는 파일이며, | /etc/hosts 파일은 IP address와 hostname을 매핑하는데 사용되는 파일이며, | ||
- | ==== /etc/issue 파일 권한 설정(중요도 : 중) | + | ==== /etc/issue 파일 권한 설정(중요도 : 중) ==== |
터미널 설정과 관련된 /etc/issue 파일에 대한 접근 권한 제한 | 터미널 설정과 관련된 /etc/issue 파일에 대한 접근 권한 제한 | ||
줄 463: | 줄 468: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root /etc/issue | + | |
- | # chmod o-w /etc/issue | + | # chmod o-w /etc/issue |
=== 상세설명 === | === 상세설명 === | ||
/etc/issue 파일은 터미널이나 Telnet Session 또는 Console을 통해 접속하는 사용자에게 메시지를 보여주기 때문에 보안상의 관리가 필요합니다. | /etc/issue 파일은 터미널이나 Telnet Session 또는 Console을 통해 접속하는 사용자에게 메시지를 보여주기 때문에 보안상의 관리가 필요합니다. | ||
- | ==== 사용자 홈 디렉터리 및 파일관리(중요도 : 중) | + | ==== 사용자 홈 디렉터리 및 파일관리(중요도 : 중) ==== |
사용자 홈 디렉터리 및 홈 디렉터리 내 환경변수 파일 권한 제한 | 사용자 홈 디렉터리 및 홈 디렉터리 내 환경변수 파일 권한 제한 | ||
줄 476: | 줄 481: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chmod o-w [홈 디렉터리] | + | |
- | # chmod o-w [파일명] | + | # chmod o-w [파일명] |
- | # chmod o-w [홈 디렉터리 경로] [파일명] | + | # chmod o-w [홈 디렉터리 경로] [파일명] |
- | (홈 디렉터리의 설정파일에서 권한을 제거할 경우) | + | (홈 디렉터리의 설정파일에서 권한을 제거할 경우) |
=== 상세설명 === | === 상세설명 === | ||
줄 486: | 줄 491: | ||
환경변수 파일의 접근권한 설정이 잘못되어 있을 경우 비 인가자가 다양한 방법으로 사용자 환경을 변경하여 침해사고를 일으킬 수 있습니다. | 환경변수 파일의 접근권한 설정이 잘못되어 있을 경우 비 인가자가 다양한 방법으로 사용자 환경을 변경하여 침해사고를 일으킬 수 있습니다. | ||
- | “.profile”, “.kshrc”, “.cshrc”, “.bashrc”, “.bash_profile”, “.login", | + | ".profile", ".kshrc", ".cshrc", ".bashrc", ".bash_profile", ".login", |
- | 2.10. 중요 디렉터리 파일 권한 설정(중요도 : 중) | + | ==== 중요 디렉터리 파일 권한 설정(중요도 : 중) ==== |
중요 디렉터리 및 디렉터리 내 파일 권한 설정 | 중요 디렉터리 및 디렉터리 내 파일 권한 설정 | ||
줄 495: | 줄 500: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root [디렉터리명] | + | |
- | # chmod o-w [디렉터리명] | + | # chmod o-w [디렉터리명] |
=== 상세설명 === | === 상세설명 === | ||
줄 503: | 줄 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 | + | |
- | drwxrwxr-x | + | drwxrwxr-x |
- | drwxrwxr-x | + | drwxrwxr-x |
- | drwxrwxr-x | + | drwxrwxr-x |
- | drwxrwxr-x | + | drwxrwxr-x |
- | drwxrwxr-x | + | drwxrwxr-x |
- | drwxrwxr-x | + | drwxrwxr-x |
- | 2.11. PATH 환경변수 설정(중요도 : 중) | + | ==== PATH 환경변수 설정(중요도 : 중) ==== |
root 계정 환경변수 파일의 PATH 경로 설정 | root 계정 환경변수 파일의 PATH 경로 설정 | ||
=== 기준 === | === 기준 === | ||
- | 가. root 계정 환경변수 설정 파일 내 PATH 경로 중 “.“ 없거나 맨뒤로 설정 | + | 가. root 계정 환경변수 설정 파일 내 PATH 경로 중 "." |
=== 설정방법 === | === 설정방법 === | ||
- | 현재 디렉터리를 의미하는 | + | 현재 디렉터리를 의미하는 |
=== 상세설명 === | === 상세설명 === | ||
- | root 계정의 PATH 환경변수에 | + | root 계정의 PATH 환경변수에 |
- | 즉, “.”이 / | + | 즉, "."이 / |
- | 또한, | + | 또한, |
- | root 계정의 환경변수 설정파일(.profile, | + | root 계정의 환경변수 설정파일(.profile, |
※ echo $PATH 로 확인 (root 계정만 해당됨) | ※ echo $PATH 로 확인 (root 계정만 해당됨) | ||
- | 2.12. FTP(File Transfer Protocol)접근제한 파일 권한설정(중요도 : 상) | + | ==== FTP(File Transfer Protocol)접근제한 파일 권한설정(중요도 : 상) ==== |
FTP 접근제어 설정파일의 권한을 root 소유의 타사용자 쓰기권한 제거 | FTP 접근제어 설정파일의 권한을 root 소유의 타사용자 쓰기권한 제거 | ||
줄 537: | 줄 542: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root / | + | |
- | # chown root / | + | # chown root / |
- | # chmod o-w / | + | # chmod o-w / |
- | # chmod o-w / | + | # chmod o-w / |
| | ||
※ vsftp를 사용할 경우 | ※ vsftp를 사용할 경우 | ||
vsftpd.conf 파일에서 userlist_enable = YES인 경우 : / | vsftpd.conf 파일에서 userlist_enable = YES인 경우 : / | ||
- | # chown root / | + | |
- | # chmod o-w / | + | # chmod o-w / |
- | vsftpd.conf 파일에서 userlist_enable=NO 혹은 옵션이 존재하지 않을 경우 : / | + | vsftpd.conf 파일에서 userlist_enable=NO 혹은 옵션이 존재하지 않을 경우 : / |
- | 확인 | + | # chown root / |
- | # chown root / | + | # chmod o-w / |
- | # chmod o-w / | + | |
=== 상세설명 === | === 상세설명 === | ||
FTP 접근제어 설정파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 이를 통해 비 인가된 사용자를 등록하고 서버에 접속하여 불법적인 행동을 하는 등의 침해사고가 발생 가능하므로, | FTP 접근제어 설정파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 이를 통해 비 인가된 사용자를 등록하고 서버에 접속하여 불법적인 행동을 하는 등의 침해사고가 발생 가능하므로, | ||
- | 2.13. root원격 접근제어 파일 권한 설정(중요도 : 중) | + | ==== root원격 접근제어 파일 권한 설정(중요도 : 중) ==== |
root 원격 접근 제어 설정 파일인 / | root 원격 접근 제어 설정 파일인 / | ||
줄 561: | 줄 565: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root / | + | |
- | # chmod o-w / | + | # chmod o-w / |
=== 상세설명 === | === 상세설명 === | ||
root 접근제어 설정파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 root로의 접근이 제한되는 등 서비스 장애 발생이 가능하므로, | root 접근제어 설정파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 root로의 접근이 제한되는 등 서비스 장애 발생이 가능하므로, | ||
- | 2.14. NFS(Network File System) 접근제어 파일 권한 설정(중요도 : 상) | + | ==== NFS(Network File System) 접근제어 파일 권한 설정(중요도 : 상) ==== |
NFS 접근제어 파일의 root 소유의 타사용자 쓰기 권한 제거 | NFS 접근제어 파일의 root 소유의 타사용자 쓰기 권한 제거 | ||
줄 574: | 줄 578: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root / | + | |
- | # chmod o-w / | + | # chmod o-w / |
=== 상세설명 === | === 상세설명 === | ||
NFS(Network File System) 접근제어 설정파일을 관리자가 아닌 일반 사용자들이 접근 및 변경 가능하면 이를 통해 비 인가된 사용자를 등록하고, | NFS(Network File System) 접근제어 설정파일을 관리자가 아닌 일반 사용자들이 접근 및 변경 가능하면 이를 통해 비 인가된 사용자를 등록하고, | ||
- | 2.15. / | + | ==== / |
service 파일의 root 소유의 타사용자 쓰기 권한 제거 | service 파일의 root 소유의 타사용자 쓰기 권한 제거 | ||
줄 587: | 줄 591: | ||
=== 설정방법 === | === 설정방법 === | ||
- | # chown root w / | + | |
- | # chmod o-w / | + | # chmod o-w / |
=== 상세설명 === | === 상세설명 === | ||
Service 파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 이를 통해 정상적인 서비스를 제한하거나 허용되지 않은 서비스를 실행시켜 침해사고의 위험이 있습니다. | Service 파일을 관리자가 아닌 일반사용자들이 접근 및 변경 가능하면 이를 통해 정상적인 서비스를 제한하거나 허용되지 않은 서비스를 실행시켜 침해사고의 위험이 있습니다. | ||
- | 2.16. 부팅 스크립트 파일 권한 설정(중요도 : 상) | + | ==== 부팅 스크립트 파일 권한 설정(중요도 : 상) ==== |
OS상에서 사용하는 부팅 스크립트 파일에 대하여 접근 권한 제한 설정 | OS상에서 사용하는 부팅 스크립트 파일에 대하여 접근 권한 제한 설정 | ||
줄 601: | 줄 605: | ||
=== 설정방법 === | === 설정방법 === | ||
부팅 스크립트 관여 파일 중에서 취약하게 나온 파일명을 아래의 명령어를 사용하여 조치 | 부팅 스크립트 관여 파일 중에서 취약하게 나온 파일명을 아래의 명령어를 사용하여 조치 | ||
- | # chmod o-w [파일명 또는 디렉터리명] | + | |
=== 상세설명 === | === 상세설명 === | ||
시스템 운영상 중요한 부팅스크립트 파일들의 접근권한은 반드시 필요한 사용자만 접근 할 수 있도록 해야 하며, 권한 중 타사용자 쓰기 권한이 부여되어 있는 경우에 제거합니다. | 시스템 운영상 중요한 부팅스크립트 파일들의 접근권한은 반드시 필요한 사용자만 접근 할 수 있도록 해야 하며, 권한 중 타사용자 쓰기 권한이 부여되어 있는 경우에 제거합니다. | ||
- | / | + | |
- | / | + | / |
- | 3. 네트워크 서비스 | + | ===== 3. 네트워크 서비스 |
- | ==== RPC(Remote Procedure Call)서비스 제한(중요도 : 중) | + | |
+ | ==== RPC(Remote Procedure Call)서비스 제한(중요도 : 중) ==== | ||
보안상 취약한 RPC(Remote Procedure Call) 서비스 제거 | 보안상 취약한 RPC(Remote Procedure Call) 서비스 제거 | ||
줄 621: | 줄 626: | ||
=== 설정방법 === | === 설정방법 === | ||
<inetd 일 경우 서비스 제거 방법의 예> | <inetd 일 경우 서비스 제거 방법의 예> | ||
- | - "/ | + | * "/ |
- | - 부팅스크립트에서 rpc 서비스 완전 삭제 | + | |
- | # vi / | + | |
- | (수정 전) rpc dgram udp wait root / | + | (수정 전) rpc dgram udp wait root / |
- | (수정 후) # rpc dgram udp wait root / | + | (수정 후) # rpc dgram udp wait root / |
- | # ps -ef | grep inetd | + | |
- | root | + | root |
- | # inetd -c (재구동) | + | # inetd -c (재구동) |
- | # kill -HUP 141 | + | # kill -HUP 141 |
※ 시스템 재시작이 어려운 경우 rpc.statd 프로세스 중지 | ※ 시스템 재시작이 어려운 경우 rpc.statd 프로세스 중지 | ||
- | # 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 |
=== 상세설명 === | === 상세설명 === | ||
줄 677: | 줄 682: | ||
한 로컬 머신에서의 할당 제한치를 돌려줌 | 한 로컬 머신에서의 할당 제한치를 돌려줌 | ||
- | - / | + | * / |
ttdb, cmsd, rstatd, sadmind, rusersd, rexd, rwalld, sprayd, kcms_server, | ttdb, cmsd, rstatd, sadmind, rusersd, rexd, rwalld, sprayd, kcms_server, | ||
- | ==== NFS(Network File System) 제한(중요도 : 상) | + | ==== NFS(Network File System) 제한(중요도 : 상) ==== |
특별한 목적으로 사용하지 않는 NFS(Network File System) 서비스 제거 | 특별한 목적으로 사용하지 않는 NFS(Network File System) 서비스 제거 | ||
=== 기준 === | === 기준 === | ||
가. 서비스 필요 시 | 가. 서비스 필요 시 | ||
- | - 인가되지 않는 시스템 mount 해제 | + | * 인가되지 않는 시스템 mount 해제 |
- | - everyone 으로 시스템 mount 제한 | + | |
나. 서비스 불필요 시 | 나. 서비스 불필요 시 | ||
- | - NFS데몬(nfsd, | + | * NFS데몬(nfsd, |
=== 설정방법 === | === 설정방법 === | ||
줄 697: | 줄 702: | ||
# showmount -e hostname 명령어를 실행하여 everyone으로 시스템이 마운트 되어 있는지 확인 | # showmount -e hostname 명령어를 실행하여 everyone으로 시스템이 마운트 되어 있는지 확인 | ||
- | # showmount | + | |
- | Umount | + | Umount |
- | # umount | + | # umount |
- | NFS 서비스를 사용하면 | + | NFS 서비스를 사용하면 |
< | < | ||
1) 실행중인 서비스 중지 | 1) 실행중인 서비스 중지 | ||
NFS 데몬(nfsd)을 중지 | NFS 데몬(nfsd)을 중지 | ||
- | # ps -ef | grep mountd | + | |
- | root | + | root |
- | # kill –9 163 | + | # kill –9 163 |
- | # ps -ef | grep nfs | + | # ps -ef | grep nfs |
- | root | + | root |
- | # kill –9 146 | + | # kill –9 146 |
2) NFS 리스트 제거하고 재시작시 NFS Server 가 시작되지 않도록 함 | 2) NFS 리스트 제거하고 재시작시 NFS Server 가 시작되지 않도록 함 | ||
- | # vi / | + | |
- | # mv / | + | # mv / |
=== 상세설명 === | === 상세설명 === | ||
줄 724: | 줄 729: | ||
NFS 서비스가 불가피하게 사용할 시에는 인가되지 않은 시스템이 NFS 시스템 마운트 하여 비 인가된 시스템 접근 및 파일변조가 발생하지 않도록 확인해야 합니다. | NFS 서비스가 불가피하게 사용할 시에는 인가되지 않은 시스템이 NFS 시스템 마운트 하여 비 인가된 시스템 접근 및 파일변조가 발생하지 않도록 확인해야 합니다. | ||
- | ==== Automountd 서비스 제거(중요도 : 하) | + | ==== Automountd 서비스 제거(중요도 : 하) ==== |
특별한 목적으로 사용하지 않는 Automount 서비스 제거 | 특별한 목적으로 사용하지 않는 Automount 서비스 제거 | ||
줄 732: | 줄 737: | ||
=== 설정방법 === | === 설정방법 === | ||
1) 실행중인 서비스 중지 | 1) 실행중인 서비스 중지 | ||
- | # ps -ef | grep automount | + | |
- | root 650 1 0 3월 30 ? 0:30 / | + | root 650 1 0 3월 30 ? 0:30 / |
- | # kill –9 650 | + | # kill –9 650 |
2) 시스템 재시작시 automount 가 시작되지 않도록 함 (정확한 파일 위치는 O/S 마다 다름) | 2) 시스템 재시작시 automount 가 시작되지 않도록 함 (정확한 파일 위치는 O/S 마다 다름) | ||
- | # vi / | + | |
- | (수정 전) AUTOFS=1 | + | (수정 전) AUTOFS=1 |
- | (수정 후) AUTOFS=0 | + | (수정 후) AUTOFS=0 |
=== 상세설명 === | === 상세설명 === | ||
줄 746: | 줄 751: | ||
Autofs 데몬인 automountd는 RPC를 통해 autofs으로부터 파일 시스템의 mount와 unmount 요청을 처리하며, | Autofs 데몬인 automountd는 RPC를 통해 autofs으로부터 파일 시스템의 mount와 unmount 요청을 처리하며, | ||
- | ==== NIS(Network Information Service)제한(중요도 : 상) | + | ==== NIS(Network Information Service)제한(중요도 : 상) ==== |
특별한 목적으로 사용하지 않는 NIS 서비스 제거 | 특별한 목적으로 사용하지 않는 NIS 서비스 제거 | ||
줄 756: | 줄 761: | ||
=== 설정방법 === | === 설정방법 === | ||
1) NIS 서비스 중지 | 1) NIS 서비스 중지 | ||
- | # / | + | |
2) 부팅 스크립트 제거 | 2) 부팅 스크립트 제거 | ||
- | # cd /etc/rc*/ | + | |
- | # mv S88ypserv _S88ypserv | + | # mv S88ypserv _S88ypserv |
=== 상세설명 === | === 상세설명 === | ||
줄 775: | 줄 780: | ||
rpc.ypupdated NIS 마스터 서버에서만 실행되며 고속으로 암호화하여 NIS 맵을 전송 | rpc.ypupdated NIS 마스터 서버에서만 실행되며 고속으로 암호화하여 NIS 맵을 전송 | ||
- | ==== ‘r’commands 서비스 제거(중요도 : 상) | + | ==== ‘r’commands 서비스 제거(중요도 : 상) ==== |
특별한 목적으로 사용하지 않는 ‘r’ commands 서비스 제거 | 특별한 목적으로 사용하지 않는 ‘r’ commands 서비스 제거 | ||
=== 기준 === | === 기준 === | ||
가. 서비스 필요 시 | 가. 서비스 필요 시 | ||
- | - / | + | * / |
- | - / | + | |
나. 서비스 불필요 시 | 나. 서비스 불필요 시 | ||
- | - rsh, rlogin, rexec 등 ‘r’ commands 서비스 제거 | + | * rsh, rlogin, rexec 등 ‘r’ commands 서비스 제거 |
- | - / | + | |
※.rhosts 파일은 root 홈 디렉터리에 반드시 생성 | ※.rhosts 파일은 root 홈 디렉터리에 반드시 생성 | ||
b. 조치방법 | b. 조치방법 | ||
<‘r’ command를 사용하는 경우> | <‘r’ command를 사용하는 경우> | ||
- | / | + | / |
예) # vi / | 예) # vi / | ||
Wiki security | Wiki security | ||
- | “/ | + | "/ |
- | # chown root / | + | # chown root / |
- | # chmod 400 / | + | # chmod 400 / |
- | # chown root / | + | # chown root / |
- | # chmod 400 / | + | # chmod 400 / |
※ Symbolic Link를 사용을 권장하며, | ※ Symbolic Link를 사용을 권장하며, | ||
- | cron에 넣어서 주기적으로 관리하는 것과 | + | cron에 넣어서 주기적으로 관리하는 것과 |
- | # /bin/touch /.netrc / | + | # /bin/touch /.netrc / |
- | # /bin/chmod 400 /.netrc / | + | # /bin/chmod 400 /.netrc / |
<‘r’ command를 사용하지 않을 경우> | <‘r’ command를 사용하지 않을 경우> | ||
줄 810: | 줄 815: | ||
< | < | ||
- | “/ | + | "/ |
- | # vi / | + | # vi / |
- | (수정 전) | + | (수정 전) |
- | shell stream | + | shell stream |
- | shell stream | + | shell stream |
- | login stream | + | login stream |
- | exec | + | exec |
- | exec | + | exec |
- | + | ||
- | (수정 후) | + | (수정 후) |
- | # shell stream | + | # shell stream |
- | # shell stream | + | # shell stream |
- | # shell stream | + | # shell stream |
- | # login stream | + | # login stream |
- | # exec | + | # exec |
- | # exec | + | # exec |
- | + | ||
- | # ps -ef | grep inetd | + | # ps -ef | grep inetd |
- | root | + | root |
- | # kill -HUP 141 | + | # kill -HUP 141 |
</ | </ | ||
- | # chown root / | + | |
- | # chmod 000 / | + | # chmod 000 / |
- | # chown root / | + | # chown root / |
- | # chmod 000 / | + | # chmod 000 / |
</ | </ | ||
- | # ln –s / | + | |
- | # ln –s / | + | # ln –s / |
※.rhosts 파일은 root 홈 디렉터리에 root 권한의 000 또는 /dev/null 링크로 반드시 생성 | ※.rhosts 파일은 root 홈 디렉터리에 root 권한의 000 또는 /dev/null 링크로 반드시 생성 | ||
- | cron에 넣어서 주기적으로 관리하는 것과 | + | cron에 넣어서 주기적으로 관리하는 것과 |
- | # /bin/touch / | + | # /bin/touch / |
- | # /bin/chmod 0 / | + | # /bin/chmod 0 / |
- | # /bin/touch /.netrc / | + | # /bin/touch /.netrc / |
- | # /bin/chmod 0 /.netrc / | + | # /bin/chmod 0 /.netrc / |
=== 상세설명 === | === 상세설명 === | ||
줄 856: | 줄 861: | ||
shell(514) login(513) exec(512) | shell(514) login(513) exec(512) | ||
- | 서비스를 사용해야 하는 경우 반드시 필요한 서버에 대해서만 접근을 허용하고, | + | 서비스를 사용해야 하는 경우 반드시 필요한 서버에 대해서만 접근을 허용하고, |
- | - / | + | |
: rsh, rlogin, rexec 서비스 제거 | : rsh, rlogin, rexec 서비스 제거 | ||
- | “/ | + | "/ |
- | ' | + | ' |
- | 사용할 경우에는 특정 서버만 신중히 적어두고, | + | 사용할 경우에는 특정 서버만 신중히 적어두고, |
- | 사용할 경우에는 root 소유의 | + | 사용할 경우에는 root 소유의 |
- | - / | + | * / |
: 파일 미 사용시 퍼미션 000 또는 null로 링크 | : 파일 미 사용시 퍼미션 000 또는 null로 링크 | ||
: 파일 사용시 소유자 : root, 권한 : 400 | : 파일 사용시 소유자 : root, 권한 : 400 | ||
줄 876: | 줄 881: | ||
Wiki + : Wiki 호스트의 모든 계정을 신뢰 | Wiki + : Wiki 호스트의 모든 계정을 신뢰 | ||
- | ==== 불필요한 서비스 제거(중요도 : 상) | + | ==== 불필요한 서비스 제거(중요도 : 상) ==== |
보안상 불필요한 서비스 제거 | 보안상 불필요한 서비스 제거 | ||
줄 884: | 줄 889: | ||
=== 설정방법 === | === 설정방법 === | ||
< 서비스 제거 방법의 예 > | < 서비스 제거 방법의 예 > | ||
- | - "/ | + | * "/ |
- | - 부팅스크립트에서 불필요 서비스 완전 삭제 | + | |
- | # vi / | + | |
- | (수정 전) 100068/2-5 dgram rpc/udp wait root / | + | (수정 전) # 100068/2-5 dgram rpc/udp wait root / |
- | (수정 후) # 100068/2-5 dgram rpc/udp wait root / | + | (수정 후) # 100068/2-5 dgram rpc/udp wait root / |
- | # inetd -c | + | # inetd -c |
사용해야 하는 서비스가 있을 경우 단기적으로는 네트워크 장비, 방화벽에서 1차적으로 접근제어를 강화하고 장기적으로는 서비스 제공의 타당성을 재검토하여 Application을 변경합니다. | 사용해야 하는 서비스가 있을 경우 단기적으로는 네트워크 장비, 방화벽에서 1차적으로 접근제어를 강화하고 장기적으로는 서비스 제공의 타당성을 재검토하여 Application을 변경합니다. | ||
줄 928: | 줄 933: | ||
www-ldap-gw(1760) HTTP to LDAP gateway, LDAP 이 웹서버로 데이터베이스의 정보를 전송할 때 사용 | www-ldap-gw(1760) HTTP to LDAP gateway, LDAP 이 웹서버로 데이터베이스의 정보를 전송할 때 사용 | ||
- | ==== 서비스 Banner관리(중요도 : 중) | + | ==== 서비스 Banner관리(중요도 : 중) ==== |
시스템에 일반적인 서비스(TELNET, | 시스템에 일반적인 서비스(TELNET, | ||
줄 936: | 줄 941: | ||
=== 설정방법 === | === 설정방법 === | ||
[Telnet Banner] | [Telnet Banner] | ||
- | - 배너설정 / hostname 제거 | + | * 배너설정 / hostname 제거 |
- | # vi / | + | # vi / |
- | telnet | + | telnet |
- | (/etc/issue 파일은 banner가 작성되어 있는 파일) | + | (/etc/issue 파일은 banner가 작성되어 있는 파일) |
- | (-b : 뒤에 따라오는 banner 파일을 사용하겠다는 옵션) | + | (-b : 뒤에 따라오는 banner 파일을 사용하겠다는 옵션) |
/etc/issue 파일에 banner내용 삽입 | /etc/issue 파일에 banner내용 삽입 | ||
[FTP Banner] | [FTP Banner] | ||
- | - 배너설정 / hostname 제거 | + | * 배너설정 / hostname 제거 |
1) # vi / | 1) # vi / | ||
- | ftp | + | |
- | (- a : 뒤에 따라오는 설정파일을 사용하겠다는 옵션) | + | (- a : 뒤에 따라오는 설정파일을 사용하겠다는 옵션) |
2) wu-ftpd v2.4 미만 | 2) wu-ftpd v2.4 미만 | ||
- | # vi / | + | |
- | suppresshostname yes (hostname 숨김) | + | suppresshostname yes (hostname 숨김) |
- | suppressversion yes (version 정보 숨김) | + | suppressversion yes (version 정보 숨김) |
- | banner / | + | banner / |
3) wu-ftpd v2.4 이상 | 3) wu-ftpd v2.4 이상 | ||
- | # vi / | + | |
- | greeting | + | greeting |
- | ※ / | + | |
- | cp / | + | cp / |
[SMTP Banner] | [SMTP Banner] | ||
- | # vi / | + | |
- | # 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: | + | (수정 후) O SmtpGreetingMessage= WARNING: |
- | ※ SMTP 설정에 따라 sendmail.cf 파일 위치가 다를 수 있음 | + | ※ SMTP 설정에 따라 sendmail.cf 파일 위치가 다를 수 있음 |
[DNS Banner] | [DNS Banner] | ||
- | # vi / | + | |
- | version " | + | version " |
=== 상세설명 === | === 상세설명 === | ||
시스템에 일반적인 서비스(TELNET, | 시스템에 일반적인 서비스(TELNET, | ||
- | - 서버 사용자 범위를 명시하고, | + | * 서버 사용자 범위를 명시하고, |
- | - 각 데몬 설정 파일에서 Default Banner 삭제 또는 경고 메시지를 삽입 | + | |
- | - 해당 프로세스의 버전과 시스템의 호스트명이 노출되지 않도록 배너 설정 | + | |
- | ==== session timeout설정(중요도 : 하) | + | ==== session timeout설정(중요도 : 하) ==== |
지정된 시간 동안 사용하지 않을 경우 접속된 session timeout 설정 | 지정된 시간 동안 사용하지 않을 경우 접속된 session timeout 설정 | ||
줄 990: | 줄 995: | ||
1) sh(born shell) 및 ksh(korn shell) 에서는 / | 1) sh(born shell) 및 ksh(korn shell) 에서는 / | ||
TMOUT=300, export TMOUT 삽입 | TMOUT=300, export TMOUT 삽입 | ||
- | # vi / | + | |
- | (수정 후) TMOUT = 300 | + | (수정 후) TMOUT = 300 |
- | export TMOUT | + | export TMOUT |
2) csh 에서는 / | 2) csh 에서는 / | ||
줄 1001: | 줄 1006: | ||
지정된 시간 동안 사용하지 않을 경우 접속된 session을 해당 서버에서 끊도록 설정하는 것이 필요합니다. (300초 경과 시 timeout) | 지정된 시간 동안 사용하지 않을 경우 접속된 session을 해당 서버에서 끊도록 설정하는 것이 필요합니다. (300초 경과 시 timeout) | ||
- | ==== root계정 telnet, ssh접근 제한(중요도 : 상) | + | ==== root계정 telnet, ssh접근 제한(중요도 : 상) ==== |
root 계정으로 telnet 및 ssh 직접 접근 제한 설정 | root 계정으로 telnet 및 ssh 직접 접근 제한 설정 | ||
줄 1009: | 줄 1014: | ||
=== 설정방법 === | === 설정방법 === | ||
[telnet] | [telnet] | ||
- | # vi / | + | |
- | # echo console > / | + | # echo console > / |
[ssh] | [ssh] | ||
- | # vi / | + | |
- | (수정 전) # | + | (수정 전) # |
- | (수정 후) PermitRootLogin no | + | (수정 후) PermitRootLogin no |
※ 재구동 시 반드시 연결된 세션을 모두 종료한 다음 / | ※ 재구동 시 반드시 연결된 세션을 모두 종료한 다음 / | ||
줄 1023: | 줄 1028: | ||
아래 옵션을 설정하여 일반 사용자를 통해 root 계정으로 전환될 수 있도록 하는 것이 보안상 필요합니다. | 아래 옵션을 설정하여 일반 사용자를 통해 root 계정으로 전환될 수 있도록 하는 것이 보안상 필요합니다. | ||
- | 3.10. 방화벽 정책 적용(중요도 : 상) | + | ==== 방화벽 정책 적용(중요도 : 상) ==== |
외부 공격 차단을 위한 방화벽 정책 적용 | 외부 공격 차단을 위한 방화벽 정책 적용 | ||
줄 1036: | 줄 1041: | ||
신규 서비스 오픈시 보안진단 신청을 완료해야 방화벽 오픈이 가능하며, | 신규 서비스 오픈시 보안진단 신청을 완료해야 방화벽 오픈이 가능하며, | ||
- | 4. 로그관리 | + | ===== 4. 로그관리 |
- | ==== 시스템 로그 설정(중요도 : 상) | + | ==== 시스템 로그 설정(중요도 : 상) ==== |
su 로그 및 syslog 의 설정과 로그 파일과 디렉터리의 권한 설정 | su 로그 및 syslog 의 설정과 로그 파일과 디렉터리의 권한 설정 | ||
=== 기준 === | === 기준 === | ||
가. su 로깅 기록 | 가. su 로깅 기록 | ||
- | - / | + | * / |
나. syslog.conf 로그 설정 | 나. syslog.conf 로그 설정 | ||
- | - *.notice, *.alert, *.emerg | + | * *.notice, *.alert, *.emerg |
다. 로그 파일 및 디렉터리에 대한 권한 설정 | 다. 로그 파일 및 디렉터리에 대한 권한 설정 | ||
- | - root(또는 bin) 소유의 타사용자 쓰기 제거 | + | * root(또는 bin) 소유의 타사용자 쓰기 제거 |
※ 가, 나, 다 모든 항목 적용 해야 함 | ※ 가, 나, 다 모든 항목 적용 해야 함 | ||
줄 1053: | 줄 1058: | ||
=== 설정방법 === | === 설정방법 === | ||
1. su 로그 설정 | 1. su 로그 설정 | ||
- | # vi / | + | |
- | auth.notice | + | auth.notice |
- | or | + | or |
- | *.notice | + | *.notice |
- | (auth.notice와 / | + | (auth.notice와 / |
2. syslog 설정 | 2. syslog 설정 | ||
1) # vi / | 1) # vi / | ||
- | *.notice | + | |
- | *.alert | + | *.alert |
- | *.emerg | + | *.emerg |
2) 위와 같이 / | 2) 위와 같이 / | ||
- | # ps –ef | grep syslogd | + | |
- | root 7524 6970 | + | root 7524 6970 |
- | # kill –HUP 7524 | + | # kill –HUP 7524 |
3. 로그 파일 권한 설정 | 3. 로그 파일 권한 설정 | ||
- | - 아래의 로그 파일 권한은 시스템 사용자(root, | + | * 아래의 로그 파일 권한은 시스템 사용자(root, |
<보안 강화 적용 대상> | <보안 강화 적용 대상> | ||
줄 1087: | 줄 1092: | ||
기타 - - | 기타 - - | ||
- | # chown root [로그파일명] | + | |
- | # chmod o-w [로그파일명] | + | # chmod o-w [로그파일명] |
=== 상세설명 === | === 상세설명 === | ||
- | 1. su로그 설정 | + | 1. su로그 설정\\ |
기본적으로 일반 사용자에서 Super User로 사용되는 기록을 남기기 위해서 su 사용로그를 남기도록 하는 보안 설정이 필요하며, | 기본적으로 일반 사용자에서 Super User로 사용되는 기록을 남기기 위해서 su 사용로그를 남기도록 하는 보안 설정이 필요하며, | ||
su 로그를 기록하도록 syslog 설정 파일을 수정해야 하며, auth.notice에 관련된 로그를 파일로 남기고 있어야 합니다. | su 로그를 기록하도록 syslog 설정 파일을 수정해야 하며, auth.notice에 관련된 로그를 파일로 남기고 있어야 합니다. | ||
- | 2. syslog 설정 | + | 2. syslog 설정\\ |
기본적으로 시스템 운영 중 발생하는 Info 및 alert 등에 대한 기록을 남기기 위한 " | 기본적으로 시스템 운영 중 발생하는 Info 및 alert 등에 대한 기록을 남기기 위한 " | ||
syslog 데몬은 시스템의 로그를 기록하는 전용 데몬으로 원격 또는 로컬 시스템의 커널 메시지 및 시스템로그를 감시하는 역할을 하며, 해당 설정이 제대로 되어 있지 않을 경우 적절한 로그가 시스템 로그파일에 남지 않아 침입자의 흔적이나 시스템 오류사항에 대해 분석 할 수 없습니다. | syslog 데몬은 시스템의 로그를 기록하는 전용 데몬으로 원격 또는 로컬 시스템의 커널 메시지 및 시스템로그를 감시하는 역할을 하며, 해당 설정이 제대로 되어 있지 않을 경우 적절한 로그가 시스템 로그파일에 남지 않아 침입자의 흔적이나 시스템 오류사항에 대해 분석 할 수 없습니다. | ||
- | 3. 로그파일 권한 설정 | + | 3. 로그파일 권한 설정\\ |
시스템의 기본 로깅 기록은 관리자 이외에 다른 일반 사용자에게 열람할 수 있는 권한을 부여할 필요가 없기 때문에 로깅 기록을 저장하는 파일의 소유자 및 읽기권한을 제한함으로써 보안을 강화하는 것이 필요합니다. | 시스템의 기본 로깅 기록은 관리자 이외에 다른 일반 사용자에게 열람할 수 있는 권한을 부여할 필요가 없기 때문에 로깅 기록을 저장하는 파일의 소유자 및 읽기권한을 제한함으로써 보안을 강화하는 것이 필요합니다. | ||
- | ==== 로그 저장주기(중요도 : 상) | + | ==== 로그 저장주기(중요도 : 상) ==== |
법에 정해진 최소 로그 저장 기간 적용 | 법에 정해진 최소 로그 저장 기간 적용 | ||
=== 기준 === | === 기준 === | ||
- | 가. 로그 파일의 최소 저장 기간 적용 | + | 가. 로그 파일의 최소 저장 기간 적용\\ |
- | 나. 로그 기록을 정기적으로 확인•감독 | + | 나. 로그 기록을 정기적으로 확인•감독\\ |
다. 로그 파일을 별도 저장 장치에 백업 보관 및 쓰기 권한 제한 | 다. 로그 파일을 별도 저장 장치에 백업 보관 및 쓰기 권한 제한 | ||
줄 1115: | 줄 1120: | ||
로그파일의 보유기관은 사업 환경에 따라 조정할 수 있으나, ‘정보통신망 이용촉진 및 정보보호 등에 관한 법률’, ‘개인정보보호법’, | 로그파일의 보유기관은 사업 환경에 따라 조정할 수 있으나, ‘정보통신망 이용촉진 및 정보보호 등에 관한 법률’, ‘개인정보보호법’, | ||
- | 1) 사용자 접속정보 기록 | + | 1) 사용자 접속정보 기록\\ |
- | 사용자 로그인/ | + | 사용자 로그인/ |
- | 2) 개인정보취급자의 개인정보처리 시스템 접속 기록 | + | 2) 개인정보취급자의 개인정보처리 시스템 접속 기록\\ |
- | 정보주체 식별정보/ | + | 정보주체 식별정보/ |
- | 접속일시/ | + | |
- | 3) 개인정보취급자 권한 변경 기록 | + | 3) 개인정보취급자 권한 변경 기록\\ |
개인정보취급자 권한생성/ | 개인정보취급자 권한생성/ | ||
줄 1132: | 줄 1136: | ||
‘정보통신망 이용 촉진 및 정보보호 등에 관한 법률’, ‘개인정보보호법’, | ‘정보통신망 이용 촉진 및 정보보호 등에 관한 법률’, ‘개인정보보호법’, | ||
- | 5. 주요 응용 설정 | + | ===== 5. 주요 응용 설정 |
- | ==== FTP(File Transfer Protocol)서비스 사용자 제한(중요도 : 상) | + | ==== FTP(File Transfer Protocol)서비스 사용자 제한(중요도 : 상) ==== |
FTP 서비스 사용 여부와 사용시 사용자 UMASK, Anonymous FTP 설정 | FTP 서비스 사용 여부와 사용시 사용자 UMASK, Anonymous FTP 설정 | ||
줄 1149: | 줄 1153: | ||
설정파일 : / | 설정파일 : / | ||
- | - / | + | * / |
# vi / | # vi / | ||
root | root | ||
줄 1157: | 줄 1161: | ||
vi로 "/ | vi로 "/ | ||
- | - vsftp를 사용하는 경우 | + | * vsftp를 사용하는 경우 |
vsftpd.conf 파일에서 userlist_enable=YES인 경우 : vsftpd.userlist | vsftpd.conf 파일에서 userlist_enable=YES인 경우 : vsftpd.userlist | ||
vsftpd.conf 파일에서 userlist_enable=NO 혹은 옵션이 존재하지 않을 경우 : vsftpd.ftpusers | vsftpd.conf 파일에서 userlist_enable=NO 혹은 옵션이 존재하지 않을 경우 : vsftpd.ftpusers | ||
줄 1167: | 줄 1171: | ||
3. Anonymous FTP 제한 | 3. Anonymous FTP 제한 | ||
- | - /etc/passwd 파일에 ftp 계정이 삭제되어 있는지 확인하여 있을 경우에 삭제 | + | * /etc/passwd 파일에 ftp 계정이 삭제되어 있는지 확인하여 있을 경우에 삭제 |
# cat /etc/passwd | grep ftp | # cat /etc/passwd | grep ftp | ||
# cat /etc/shadow | grep ftp | # cat /etc/shadow | grep ftp | ||
줄 1182: | 줄 1186: | ||
또한 Anonymous 사용자 제한을 해야 합니다. Anonymous FTP를 사용할 경우 비 인가자가 시스템에 관한 정보를 획득할 수 있으며 디렉터리에 쓰기 권한이 설정되어 있을 경우 local exploit 을 사용하여 다양한 공격이 가능합니다. 반드시 필요한 사용자만 접속을 할 수 있도록 설정하며 이는 시스템 가용성 면에서도 바람직합니다. | 또한 Anonymous 사용자 제한을 해야 합니다. Anonymous FTP를 사용할 경우 비 인가자가 시스템에 관한 정보를 획득할 수 있으며 디렉터리에 쓰기 권한이 설정되어 있을 경우 local exploit 을 사용하여 다양한 공격이 가능합니다. 반드시 필요한 사용자만 접속을 할 수 있도록 설정하며 이는 시스템 가용성 면에서도 바람직합니다. | ||
- | ==== SNMP(Simple Network Management Protocol)서비스 설정(중요도 : 중) | + | ==== SNMP(Simple Network Management Protocol)서비스 설정(중요도 : 중) ==== |
SNMP 서비스 확인 및 Community String 보안 설정 | SNMP 서비스 확인 및 Community String 보안 설정 | ||
=== 기준 === | === 기준 === | ||
가. 서비스 필요 시 | 가. 서비스 필요 시 | ||
- | - SNMP의 Community String 이 public private 아님 | + | * SNMP의 Community String 이 public private 아님 |
(SNMP Brute-Force Attack 또는 SNMP Dictionary Attack이 가능하므로 반드시 8자리 이상의 자릿수와 숫자, 기호를 혼합하여 강력한 패스워드 형식으로 설정) | (SNMP Brute-Force Attack 또는 SNMP Dictionary Attack이 가능하므로 반드시 8자리 이상의 자릿수와 숫자, 기호를 혼합하여 강력한 패스워드 형식으로 설정) | ||
나. 서비스 불필요 시 | 나. 서비스 불필요 시 | ||
- | - 서비스 중지 및 시스템 재시작시 서비스가 실행되지 않도록 설정 | + | * 서비스 중지 및 시스템 재시작시 서비스가 실행되지 않도록 설정 |
=== 설정방법 === | === 설정방법 === | ||
<SNMP 서비스 불필요 시> | <SNMP 서비스 불필요 시> | ||
- | # ps -ef | grep snmp | + | |
- | root 9546 6970 | + | root 9546 6970 |
- | # kill –9 9546 or # / | + | # kill –9 9546 or # / |
- | # mv /sbin/ / | + | # mv /sbin/ / |
<SNMP 서비스 필요 시> | <SNMP 서비스 필요 시> | ||
- | : “/ | + | : "/ |
- | ‘read-community | + | ‘read-community |
- | ‘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를 이용한 네트워크인터페이스 정보 획득 SNMP를 통해서 원격 호스트의 네트워크 인터페이스의 리스트를 얻을 수 있음 SNMP를 사용할 경우에는 community string 을 추측하기 어려운 것으로 설정하도록 함 | + | |SNMP를 이용한 네트워크인터페이스 정보 획득 |
- | SNMP RPC 서비스 community string 이 public 이나 private 과 같이 디폴트 상태로 되어 있는 경우 시스템 및 네트워크 장비의 정보를 원격에서 알아낼 수 있으며, 시스템의 설정을 변경할 수 있음 | + | |SNMP RPC 서비스 |
- | SNMP 사용하여 OS type 획득 SNMP를 사용하여 서버의 OS 및 버전정보를 알아낼 수 있음 권한을 수정하거나 제거하여 하는 것이 좋으며, 특별한 경우엔 정책에 따라 권한을 다르게 부여해야 함 | + | |SNMP 사용하여 OS type 획득 |
=== 상세설명 === | === 상세설명 === | ||
- | SNMP 서비스는 시스템 상태를 실시간으로 파악하는 NMS를 위하여 UNIX 시스템에서 기본적으로 제공하는 서비스이며, | + | SNMP 서비스는 시스템 상태를 실시간으로 파악하는 NMS를 위하여 UNIX 시스템에서 기본적으로 제공하는 서비스이며, |
- | 서버에서 SNMP 서비스를 사용하지 않는다면, | + | 서버에서 SNMP 서비스를 사용하지 않는다면, |
- | SNMP 서비스를 사용할 때는 | + | SNMP 서비스를 사용할 때는 |
- | ==== SMTP(Send Mail Transfer Protocol)서비스 설정(중요도 : 중) | + | ==== SMTP(Send Mail Transfer Protocol)서비스 설정(중요도 : 중) ==== |
SMTP 서비스 사용유무 및 설정 | SMTP 서비스 사용유무 및 설정 | ||
=== 기준 === | === 기준 === | ||
가. 서비스 필요 시 | 가. 서비스 필요 시 | ||
- | - Sendmail Abuse 방지 방법 및 일반 사용자 q옵션 사용제한 | + | * Sendmail Abuse 방지 방법 및 일반 사용자 q옵션 사용제한 |
- | - Sendmail 8.14.4 이상의 버전 사용 | + | |
나. 서비스 불필요 시 | 나. 서비스 불필요 시 | ||
- | - 서비스 중지 및 시스템 재시작시 서비스가 실행되지 않도록 설정 | + | * 서비스 중지 및 시스템 재시작시 서비스가 실행되지 않도록 설정 |
=== 설정방법 === | === 설정방법 === | ||
- | <SMTP 서비스 필요 시 > | + | <SMTP 서비스 필요 시 >\\ |
1) Sendmail Abuse 방지 방법 및 일반 사용자 q옵션 사용 제한 | 1) Sendmail Abuse 방지 방법 및 일반 사용자 q옵션 사용 제한 | ||
- | - Sendmail의 기본적인 서비스인 VRFY, EXPN을 다음과 같이 설정 하고 q옵션 제한 | + | * Sendmail의 기본적인 서비스인 VRFY, EXPN을 다음과 같이 설정 하고 q옵션 제한 |
- | # vi / | + | |
+ | | ||
O PrivacyOptions=authwarnings, | O PrivacyOptions=authwarnings, | ||
- | 2) 취약한 Senmail 버전 사용 제한 | + | 2) 취약한 Senmail 버전 사용 제한\\ |
1) Sendmail 서비스가 실행되고 있는지 점검 | 1) Sendmail 서비스가 실행되고 있는지 점검 | ||
- | # ps –ef | grep sendmail | + | |
2) Sendmail 버전 점검 | 2) Sendmail 버전 점검 | ||
- | # telnet localhost 25 | + | |
- | 3) Sendmail의 버전을 확인하고, | + | 3) Sendmail의 버전을 확인하고, |
- | 4) O/S에 따라 설정하는 방법이 다를 수 있으므로, | + | 4) O/S에 따라 설정하는 방법이 다를 수 있으므로, |
- | <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 / | + | |
=== 상세설명 === | === 상세설명 === | ||
줄 1264: | 줄 1269: | ||
특별한 목적으로 사용하지 않는다면 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 파일 위치가 상이할 수 있습니다. | ||
- | ==== DNS(Domain Name Service)보안 설정(중요도 : 중) | + | ==== DNS(Domain Name Service)보안 설정(중요도 : 중) ==== |
DNS 서비스 사용유무 및 설정 | DNS 서비스 사용유무 및 설정 | ||
=== 기준 === | === 기준 === | ||
가. 서비스 필요 시 | 가. 서비스 필요 시 | ||
- | - 특정서버로만 전송 가능하도록 IP 제한 | + | * 특정서버로만 전송 가능하도록 IP 제한 |
- | - BIND 9.9.2-P1 이상의 최신 버전 업데이트 권고 | + | |
나. 서비스 불필요 시 | 나. 서비스 불필요 시 | ||
- | - 서비스 중지 및 시스템 재 시작 시 서비스 시작되지 않도록 설정 | + | * 서비스 중지 및 시스템 재 시작 시 서비스 시작되지 않도록 설정 |
=== 설정방법 === | === 설정방법 === | ||
<DNS 서비스 필요 시> | <DNS 서비스 필요 시> | ||
- | <BIND8 DNS 설정(/ | + | |
- | options { | + | options { |
- | allow-transfer {존 파일 전송을 허용하고자 하는 IP;}; | + | allow-transfer {존 파일 전송을 허용하고자 하는 IP;}; |
- | }; | + | }; |
- | <BIND4.9 DNS 설정(/ | + | |
- | Options | + | Options |
- | xfrnets 허용하고자 하는 IP | + | |
< | < | ||
1) 실행중인 서비스 중지 | 1) 실행중인 서비스 중지 | ||
- | # ps -ef | grep named | + | |
- | root | + | root |
- | # kill -9 279 | + | # kill -9 279 |
2) 시스템 재시작시 DNS Server 가 시작되지 않도록 함 | 2) 시스템 재시작시 DNS Server 가 시작되지 않도록 함 | ||
- | # mv /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 서비스가 기동되어 있는 경우가 있으므로, | + | 시스템 초기 설치 후, Default 구성을 그대로 사용한다면 DNS서비스를 사용하지 않음에도 불구하고 DNS 서비스가 기동되어 있는 경우가 있으므로, |
만약, DNS 서비스를 사용한다면, | 만약, DNS 서비스를 사용한다면, | ||
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부터 중단됨에 따라, 향후에 발생할 수 있는 보안 취약점에 대비하고, | + | ISC의 BIND 8 버전에 대한 보안 및 시스템 업데이트 지원이 2007.8.27부터 중단됨에 따라, 향후에 발생할 수 있는 보안 취약점에 대비하고, |
+ | |||
+ | * BIND는 거의 모든 버전이 취약한 상태로서 BIND 9.9.2-P1 이상 버전으로 업데이트 필요 | ||
+ | * 다음은 최근 BIND 취약점들이며, | ||
- | - BIND는 거의 모든 버전이 취약한 상태로서 BIND 9.9.2-P1 이상 버전으로 업데이트 필요 | ||
- | - 다음은 최근 BIND 취약점들이며, | ||
서비스 거부(Denial-of-Service)(CVE-2009-4022) 취약점 : 9.6.0이전 버전 | 서비스 거부(Denial-of-Service)(CVE-2009-4022) 취약점 : 9.6.0이전 버전 | ||
특별한 목적으로 사용하지 않는다면 DNS 서비스 제거합니다. | 특별한 목적으로 사용하지 않는다면 DNS 서비스 제거합니다. | ||
- | ==== SWAT(Samba Web Administrator Tool)보안 설정(중요도 : 상) | + | ==== SWAT(Samba Web Administrator Tool)보안 설정(중요도 : 상) ==== |
SWAT 서비스 사용유무 및 설정 | SWAT 서비스 사용유무 및 설정 | ||
줄 1333: | 줄 1341: | ||
<SWAT 서비스 불필요 시> | <SWAT 서비스 불필요 시> | ||
1) SWAT을 사용할 필요가 없다면 아래와 같이 구동 중지 | 1) SWAT을 사용할 필요가 없다면 아래와 같이 구동 중지 | ||
- | # vi / | + | |
- | (수정 전) swat stream tcp | + | (수정 전) swat stream tcp |
- | (수정 후) #swat stream tcp | + | (수정 후) #swat stream tcp |
2) inetd 재구동 | 2) inetd 재구동 | ||
- | # inetd –c | + | |
=== 상세설명 === | === 상세설명 === | ||
SWAT(Samba Web Administration Tool)은 잘못된 사용자와 비밀번호를 입력하였을 때 아래와 같이 서로 다른 메시지를 출력합니다. | SWAT(Samba Web Administration Tool)은 잘못된 사용자와 비밀번호를 입력하였을 때 아래와 같이 서로 다른 메시지를 출력합니다. | ||
- | 사용자 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/ | + | username/ |
이렇게 서로 다른 메시지를 이용하여 일률적으로 사용자 ID와 비밀번호를 대입하는 강제 공격(brute-force)으로 그 메시지에 따라 사용자 ID를 알아낼 수 있습니다. | 이렇게 서로 다른 메시지를 이용하여 일률적으로 사용자 ID와 비밀번호를 대입하는 강제 공격(brute-force)으로 그 메시지에 따라 사용자 ID를 알아낼 수 있습니다. | ||
- | ==== Samba 버전 취약성 | + | ==== Samba 버전 취약성 |
Samba 서비스 사용여부 및 버전 확인 | Samba 서비스 사용여부 및 버전 확인 | ||
=== 기준 === | === 기준 === | ||
가. 서비스 필요 시 | 가. 서비스 필요 시 | ||
- | - Version 4.0.1 업그레이드 | + | * Version 4.0.1 업그레이드 |
나. 서비스 불필요 시 | 나. 서비스 불필요 시 | ||
- | - 서비스 제거 | + | * 서비스 제거 |
=== 설정방법 === | === 설정방법 === | ||
- | <Samba 서비스 필요 시> | + | <Samba 서비스 필요 시> |
서비스를 위해 사용시에는 Version 3.6.2 업그레이드 | 서비스를 위해 사용시에는 Version 3.6.2 업그레이드 | ||
- | <Samba 서비스 불필요 시> | + | <Samba 서비스 불필요 시> |
1) Samba를 사용할 필요가 없다면 아래와 같이 구동중지 | 1) Samba를 사용할 필요가 없다면 아래와 같이 구동중지 | ||
- | # ps –ef | grep smb | + | |
- | 538 ? 00:00:00 smbd | + | 538 ? 00:00:00 smbd |
- | # kill -9 538 | + | # kill -9 538 |
2) 부팅스크립트 삭제 | 2) 부팅스크립트 삭제 | ||
- | # mv / | + | |
=== 상세설명 === | === 상세설명 === | ||
Samba 서버는 다수의 취약점이 발견되고 있으며, 하위버전의 Samba를 사용할 경우 강제공격, | Samba 서버는 다수의 취약점이 발견되고 있으며, 하위버전의 Samba를 사용할 경우 강제공격, | ||
- | - Samba 경우 3.4 이하 버전에서 취약성이 대부분 발견되었으며, | + | * Samba 경우 3.4 이하 버전에서 취약성이 대부분 발견되었으며, |
- | - 다음은 최근 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:// |
- | (http:// | + | |
- | ==== SSH(Secure Shell)버전 취약성(중요도 : 중) | + | ==== SSH(Secure Shell)버전 취약성(중요도 : 중) ==== |
SSH 사용여부 따른 버전 확인 | SSH 사용여부 따른 버전 확인 | ||
=== 기준 === | === 기준 === | ||
가. 서비스 필요 시 | 가. 서비스 필요 시 | ||
- | | + | * 최신버전의 SSH 를 설치하여 운영 (openSSH 6.1 2012.11) |
나. 서비스 불필요 시 | 나. 서비스 불필요 시 | ||
- | | + | * 실행중인 SSH 서비스 제거 |
=== 설정방법 === | === 설정방법 === | ||
- | <SSH 서비스 필요시> | + | <SSH 서비스 필요시> |
- | 1) 최신버전의 SSH를 설치하여 운영하는 것을 권고 | + | 1) 최신버전의 SSH를 설치하여 운영하는 것을 권고\\ |
최신 SSH버전은 현재(2012/ | 최신 SSH버전은 현재(2012/ | ||
- | < | + | < |
- | 1) 실행중인 서비스를 중지 | + | 1) 실행중인 서비스를 중지\\ |
- | # ps –ef | grep sshd | + | # ps –ef | grep sshd |
- | root 414 0.0 0.7 2672 1692 / | + | root 414 0.0 0.7 2672 1692 / |
- | # kill -9 414 | + | # kill -9 414 |
2) SSH가 시작되지 않도록 시작스크립트의 파일명 변경 (OS 마다 시작스크립트 위치 다름) | 2) SSH가 시작되지 않도록 시작스크립트의 파일명 변경 (OS 마다 시작스크립트 위치 다름) | ||
- | # ls –al / | + | |
- | # mv / | + | # mv / |
※ SSH 설정에 따라 / | ※ SSH 설정에 따라 / | ||
줄 1418: | 줄 1425: | ||
그러나, OpenSSH의 낮은 버전에서는 다수의 취약점이 발견되고 있으며, 이러한 취약점으로 인해 | 그러나, OpenSSH의 낮은 버전에서는 다수의 취약점이 발견되고 있으며, 이러한 취약점으로 인해 | ||
- | - 다음은 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접속 제한 설정(중요도 : 상) ==== |
임의의 호스트에서 해킹 대상 시스템의 x-server 접속 제한 설정 | 임의의 호스트에서 해킹 대상 시스템의 x-server 접속 제한 설정 | ||
줄 1434: | 줄 1441: | ||
유닉스 시스템의 GUI 프로그램은 X-Window를 기반으로 수행되므로 이 X-Window를 사용하는 시스템의 경우에 임의의 호스트에서 해킹 대상 시스템의 X-Server에의 접속을 허용할 경우에 공격자는 대상 시스템의 X-Server에 접속한 뒤 다음과 같은 작업을 할 수 있습니다. | 유닉스 시스템의 GUI 프로그램은 X-Window를 기반으로 수행되므로 이 X-Window를 사용하는 시스템의 경우에 임의의 호스트에서 해킹 대상 시스템의 X-Server에의 접속을 허용할 경우에 공격자는 대상 시스템의 X-Server에 접속한 뒤 다음과 같은 작업을 할 수 있습니다. | ||
- | - 사용자가 타이핑하는 여러 가지 정보(예 : password 등)들을 키보드로부터 읽을 수 있는 것이 가능 | + | * 사용자가 타이핑하는 여러 가지 정보(예 : password 등)들을 키보드로부터 읽을 수 있는 것이 가능 |
- | - 스크린으로 출력되는 모든 정보를 볼 수 있는 것이 가능 | + | |
- | - 임의의 정보를 스크린에 출력 가능 | + | |
- | - 임의의 응용 프로그램을 실행시키거나 중지 가능 | + | |
- | - 사용자의 세션을 제어 가능 | + | |
- | 6. 주요 응용 설정 | + | ===== 6. 주요 응용 설정 |
- | ==== 보안 패치 적용(중요도 : 중) | + | ==== 보안 패치 적용(중요도 : 중) ==== |
서버 침해 방지를 위해 주기적으로 보안 패치 적용 | 서버 침해 방지를 위해 주기적으로 보안 패치 적용 | ||
줄 1451: | 줄 1458: | ||
최신 보안패치 및 버그 Fix 된 패치 설치 | 최신 보안패치 및 버그 Fix 된 패치 설치 | ||
- | " | + | " |
HPUX 는 다양한 하드웨어 플랫폼과 OS로 인해 General한 Security Patch가 공개되어 있지 않음 그리고, security_patch_check 라는 프로그램(펄 스크립트)을 서버에 설치/ | HPUX 는 다양한 하드웨어 플랫폼과 OS로 인해 General한 Security Patch가 공개되어 있지 않음 그리고, security_patch_check 라는 프로그램(펄 스크립트)을 서버에 설치/ | ||
줄 1458: | 줄 1465: | ||
security_patch_check 를 사용하기 위해서는 Service Control Manager 라는 도구를 서버에 설치하여야 하며, security_patch_check 사용관련 내용은 비고란을 참조 바람 | security_patch_check 를 사용하기 위해서는 Service Control Manager 라는 도구를 서버에 설치하여야 하며, security_patch_check 사용관련 내용은 비고란을 참조 바람 | ||
- | <패치 적용의 예> | + | <패치 적용의 예>\\ |
1) 수작업에 의한 패치 적용 | 1) 수작업에 의한 패치 적용 | ||
- | 운영자에 의한 패치 적용 방법은 아래와 같은 단계에 의해 설정 | + | 운영자에 의한 패치 적용 방법은 아래와 같은 단계에 의해 설정\\ |
- | (1) http:// | + | (1) http:// |
- | (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:// | + | (1) ITRC 웹사이트에 (http:// |
- | (2) maintenance/ | + | (2) maintenance/ |
- | (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버튼을 선택함으로써 다운로드 받은 후 패치를 설치\\ |
< | < | ||
- | - " | + | * " |
- | - OS별, 제품별, 보안관련 분류되어 패치파일을 제공 : http:// | + | |
- | : http:// | + | |
- | productNumber=B6834AA | + | |
< | < | ||
- | # mkdir / | + | |
위와 같은 디렉터리를 만들어 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가 설치 되어 있는 지 확인) | + | |
- | PHCO_16341.txt | + | PHCO_16341.txt |
- | # sh PHCO_16341.txt | + | # sh PHCO_16341.txt |
- | # ls | + | # ls |
- | PHCO_16341.txt | + | PHCO_16341.txt |
- | # swinstall –s / | + | # swinstall –s / |
- | #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: | ||
시스템의 보안성 및 안전성을 위하여 주기적으로 패치를 적용하는 것이 바람직하나, | 시스템의 보안성 및 안전성을 위하여 주기적으로 패치를 적용하는 것이 바람직하나, | ||
- | No 패치 적용시 고려 및 준수해야 할 사항 | + | ^ |
- | 1 해당 패치가 시스템 자체에 미칠 수 있는 영향을 OS 벤더측에서 검토 후, 이상이 없을 때 패치를 적용 | + | | |
- | 2 해당 패치가 시스템에서 운용중인 서비스 프로그램에 미칠 수 있는 영향을 OS벤더측과 서비스 프로그램(즉 응용프로그램) 개발자측과 함께 검토 후, 이상이 없을 때 패치를 적용 | + | | |
- | 3 패치 적용 후 예기치 않은 서비스의 중지에 대비하여, | + | | |
- | 4 패치 적용 전/후 시스템에 대한 Full Backup을 실시 | + | | |