차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
서비스_관리 [2022/01/14 02:30] – [일반사용자의 Sendmail 실행 방지] fatp11th | 서비스_관리 [2022/01/18 00:59] (현재) – [Apache 웹 서비스 정보 숨김] fatp11th | ||
---|---|---|---|
줄 651: | 줄 651: | ||
====DNS 보안 버전 패치==== | ====DNS 보안 버전 패치==== | ||
+ | |||
점검목적 | 점검목적 | ||
취약점이 발표되지 않은 BIND 버전의 사용을 목적으로 함 | 취약점이 발표되지 않은 BIND 버전의 사용을 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
최신버전(2016.01 기준 9.10.3-P2) 이하의 버전에서는 서비스거부 공격, 버퍼 오버플로우(Buffer Overflow) 및 DNS 서버 원격 침입 등의 취약성이 존재함 | 최신버전(2016.01 기준 9.10.3-P2) 이하의 버전에서는 서비스거부 공격, 버퍼 오버플로우(Buffer Overflow) 및 DNS 서버 원격 침입 등의 취약성이 존재함 | ||
+ | |||
점검방법 | 점검방법 | ||
DNS 서비스 사용 및 BIND 버전 확인 | DNS 서비스 사용 및 BIND 버전 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ps -ef | grep named | #ps -ef | grep named | ||
named -v | named -v | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | DNS 서비스를 사용하지 않는 경우 서비스 중지 | ||
+ | DNS 서비스 사용 시 BIND 버전 확인 후 아래의 보안설정방법에 따라 최신 버전으로 업데이트 | ||
+ | 1. BIND는 거의 모든 버전이 취약한 상태로서 최신 버전으로 업데이트가 요구됨 | ||
+ | 2. 다음은 구체적인 BIND 취약점들이며, | ||
+ | 업그레이드를 하여야 함 | ||
+ | • Inverse Query 취약점 (Buffer Overflow) : BIND 4.9.7이전 버전과 BIND 8.1.2 이전 버전 | ||
+ | • NXT버그 (buffer overflow) : BIND 8.2, 8.2 p1, 8.2.1버전 | ||
+ | • solinger버그 (Denial of Service) : BIND 8.1 이상버전 | ||
+ | • fdmax 버그 (Denial of Service) : BIND 8.1 이상버전 | ||
+ | • Remote Execution of Code(Buffer Overflow) : BIND 4.9.5 to 4.9.10, 8.1, 8.2 to 8.2.6, 8.3.0 to 8.3.3 버전 | ||
+ | • Multiple Denial of Service: BIND 8.3.0 - 8.3.3, 8.2 - 8.2.6 버전 | ||
+ | • LIBRESOLV: buffer overrun(Buffer Overflow) : BIND 4.9.2 to 4.9.10 버전 | ||
+ | • OpenSSL (buffer overflow) : BIND 9.1, BIND 9.2 if built with OpenSSL(configure --with-openssl) | ||
+ | • libbind (buffer overflow) : BIND 4.9.11, 8.2.7, 8.3.4, 9.2.2 이외의 모든 버전 | ||
+ | • DoS internal consistency check (Denial of Service) : BIND 9 ~ 9.2.0 버전 | ||
+ | • tsig bug (Access possible) : BIND 8.2 ~ 8.2.3 버전 | ||
+ | • complain bug (Stack corruption, possible remote access) : BIND 4.9.x 거의 모든 버전 | ||
+ | • zxfr bug (Denial of service) : BIND 8.2.2, 8.2.2 patchlevels 1 through 6 버전 | ||
+ | • sigdiv0 bug (Denial of service) : BIND 8.2, 8.2 patchlevel 1, 8.2.2 버전 | ||
+ | • srv bug(Denial of service): BIND 8.2, 8.2 patchlevel 1, 8.2.1, 8.2.2, 8.2.2 patchlevels 1-6버전 | ||
+ | • nxt bug (Access possible) : BIND 8.2, 8.2 patchlevel 1, 8.2.1 버전 | ||
+ | • BIND 4.9.8 이전 버전, 8.2.3 이전 버전과 관련된 취약점 | ||
+ | - TSIG 핸들링 버퍼오버플로우 취약점 | ||
+ | - nslookupComplain() 버퍼오버플로우 취약점 | ||
+ | - nslookupComplain() input validation 취약점 | ||
+ | - information leak 취약점 | ||
+ | - sig bug Denial of service 취약점 | ||
+ | - naptr bug Denial of service 취약점 | ||
+ | - maxdname bug enial of service 취약점 | ||
- | " | ||
- | " | ||
\\ | \\ | ||
+ | |||
====DNS Zone Transfer 설정==== | ====DNS Zone Transfer 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
허가되지 않는 사용자에게 Zone Transfer를 제한함으로써 호스트 정보, 시스템 정보 등 정보 유출의 방지를 목적으로 함 | 허가되지 않는 사용자에게 Zone Transfer를 제한함으로써 호스트 정보, 시스템 정보 등 정보 유출의 방지를 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
비인가자 Zone Transfer를 이용해 Zone 정보를 전송받아 호스트 정보, 시스템 정보, 네트워크 구성 형태 등의 많은 정보를 파악할 수 있음 | 비인가자 Zone Transfer를 이용해 Zone 정보를 전송받아 호스트 정보, 시스템 정보, 네트워크 구성 형태 등의 많은 정보를 파악할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
DNS 서비스 사용 시 / | DNS 서비스 사용 시 / | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ps -ef | grep named | grep -v " | #ps -ef | grep named | grep -v " | ||
#cat / | #cat / | ||
#cat / | #cat / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < DNS 서비스를 사용하는 경우 > | ||
+ | ■ BIND8 DNS 설정(named.conf) 수정 예 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | Options { | ||
+ | | ||
+ | }; | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ■ BIND4.9 DNS 설정(named.conf) 수정 예 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | Options | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | |||
< DNS 서비스를 사용하지 않는 경우 > | < DNS 서비스를 사용하지 않는 경우 > | ||
DNS 서비스 데몬 확인 (DNS 동작 SID 확인) | DNS 서비스 데몬 확인 (DNS 동작 SID 확인) | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ps -ef | grep named | #ps -ef | grep named | ||
root 3809 3721 0 08:44:40 ? 0:00 / | root 3809 3721 0 08:44:40 ? 0:00 / | ||
- | “DNS” 서비스를 사용하지 않는 경우 서비스 데몬 중지 | + | </ |
+ | </ | ||
+ | |||
+ | DNS 서비스를 사용하지 않는 경우 서비스 데몬 중지 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#kill -9 [PID] | #kill -9 [PID] | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
+ | |||
====웹서비스 디렉토리 리스팅 제거==== | ====웹서비스 디렉토리 리스팅 제거==== | ||
+ | |||
점검목적 | 점검목적 | ||
외부에서 디렉터리 내의 모든 파일에 대한 접근 및 열람을 제한함을 목적으로 함 | 외부에서 디렉터리 내의 모든 파일에 대한 접근 및 열람을 제한함을 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
디렉터리 검색 기능이 활성화 되어 있을 경우, 사용자에게 디렉터리내 파일이 표시되어 WEB 서버 구조 노출뿐만 아니라 백업 파일이나 소스파일, | 디렉터리 검색 기능이 활성화 되어 있을 경우, 사용자에게 디렉터리내 파일이 표시되어 WEB 서버 구조 노출뿐만 아니라 백업 파일이나 소스파일, | ||
+ | |||
점검방법 | 점검방법 | ||
Indexes 옵션 사용 여부 확인 | Indexes 옵션 사용 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
Options Indexes FollowSymLinks | Options Indexes FollowSymLinks | ||
+ | </ | ||
+ | </ | ||
+ | |||
위에 제시한 파일에 " | 위에 제시한 파일에 " | ||
+ | |||
Step 1) vi 편집기를 이용하여 / | Step 1) vi 편집기를 이용하여 / | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 2) 설정된 모든 디렉터리의 Options 지시자에서 Indexes 옵션 제거 | Step 2) 설정된 모든 디렉터리의 Options 지시자에서 Indexes 옵션 제거 | ||
| | ||
+ | <WRAP prewrap> | ||
+ | <code vim> | ||
< | < | ||
- | Options Indexes FollowSymLinks | + | Options Indexes FollowSymLinks |
- | | + | |
- | Order allow, deny | + | |
- | Allow from all | + | |
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
| | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
< | < | ||
- | Options Indexes 삭제 (또는 -Indexes) | + | Options Indexes 삭제 (또는 -Indexes) |
- | | + | |
- | Order allow, deny | + | |
- | Allow from all | + | |
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
+ | |||
====웹서비스 웹 프로세스 권한 제한==== | ====웹서비스 웹 프로세스 권한 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
Apache 데몬을 root 권한으로 구동하지 않고 별도의 권한으로 구동함으로써 침해사고 발생 시 피해범위 확산 방지를 목적으로 함 | Apache 데몬을 root 권한으로 구동하지 않고 별도의 권한으로 구동함으로써 침해사고 발생 시 피해범위 확산 방지를 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
웹서비스 데몬을 root 권한으로 실행시 웹서비스가 파일을 생성, 수정하는 과정에서 웹서비스에 해당하지 않는 파일도 root 권한에 의해 쓰기가 가능하며 해킹 발생시 root 권한이 노출 될 수 있음 | 웹서비스 데몬을 root 권한으로 실행시 웹서비스가 파일을 생성, 수정하는 과정에서 웹서비스에 해당하지 않는 파일도 root 권한에 의해 쓰기가 가능하며 해킹 발생시 root 권한이 노출 될 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
Apache 데몬 구동 권한(User 및 Group) 확인 | Apache 데몬 구동 권한(User 및 Group) 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
User [root가 아닌 별도 계정명] | User [root가 아닌 별도 계정명] | ||
Group [root가 아닌 별도 계정명] | Group [root가 아닌 별도 계정명] | ||
+ | </ | ||
+ | </ | ||
+ | |||
위에 제시한 설정이 적용되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | 위에 제시한 설정이 적용되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | ||
+ | |||
Step 1) 데몬 User & Group 변경 | Step 1) 데몬 User & Group 변경 | ||
User & Group 부분에 root가 아닌 별도 계정으로 변경 | User & Group 부분에 root가 아닌 별도 계정으로 변경 | ||
※ 웹서비스 실행 계정은 로그인이 불가능하도록 쉘 제한 필수 | ※ 웹서비스 실행 계정은 로그인이 불가능하도록 쉘 제한 필수 | ||
+ | |||
User [root가 아닌 별도 계정명] | User [root가 아닌 별도 계정명] | ||
Group [root가 아닌 별도 계정명] | Group [root가 아닌 별도 계정명] | ||
+ | |||
Step 2) Apache 서비스 재시작 | Step 2) Apache 서비스 재시작 | ||
+ | |||
\\ | \\ | ||
+ | |||
====웹서비스 상위 디렉토리 접근 금지==== | ====웹서비스 상위 디렉토리 접근 금지==== | ||
+ | |||
점검목적 | 점검목적 | ||
상위 경로 이동 명령으로 비인가자의 특정 디렉터리에 대한 접근 및 열람을 제한하여 중요 파일 및 데이터 보호를 목적으로 함 | 상위 경로 이동 명령으로 비인가자의 특정 디렉터리에 대한 접근 및 열람을 제한하여 중요 파일 및 데이터 보호를 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
상위 경로로 이동하는 것이 가능할 경우 접근하고자 하는 디렉터리의 하위경로에 접속하여 상위경로로 이동함으로써 악의적인 목적을 가진 사용자의 접근이 가능함 | 상위 경로로 이동하는 것이 가능할 경우 접근하고자 하는 디렉터리의 하위경로에 접속하여 상위경로로 이동함으로써 악의적인 목적을 가진 사용자의 접근이 가능함 | ||
+ | |||
점검방법 | 점검방법 | ||
AllowOverride 지시자 Authconfig 옵션 확인 | AllowOverride 지시자 Authconfig 옵션 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
AllowOverride None | AllowOverride None | ||
- | "AllowOverride" | + | </ |
- | Step 1) vi 편집기를 이용하여 / | + | </ |
- | #vi / | + | |
+ | '' | ||
+ | |||
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) 설정된 모든 디렉터리의 AllowOverride 지시자에서 AuthConfig 옵션 설정 | Step 2) 설정된 모든 디렉터리의 AllowOverride 지시자에서 AuthConfig 옵션 설정 | ||
- | (수정 전) AllowOverride 지시자에 None 옵션이 설정되어 있음 | + | <WRAP prewrap> |
+ | <code vim> | ||
+ | (수정 전) AllowOverride 지시자에 | ||
< | < | ||
| | ||
Allow from all | Allow from all | ||
</ | </ | ||
- | (수정 후) AllowOverride 지시자에 AuthConfig 옵션이 설정되어 있음 | + | |
+ | (수정 후) AllowOverride 지시자에 | ||
< | < | ||
| | ||
Allow from all | Allow from all | ||
</ | </ | ||
- | Step 3) 사용자 인증을 설정할 디렉터리에 .htaccess 파일 생성 (아래 내용 삽입) | + | </ |
+ | </ | ||
+ | |||
+ | |||
+ | Step 3) 사용자 인증을 설정할 디렉터리에 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
AuthName " | AuthName " | ||
AuthType Basic | AuthType Basic | ||
AuthUserFile / | AuthUserFile / | ||
Require valid-user | Require valid-user | ||
+ | </ | ||
+ | </ | ||
+ | |||
지시자 설명 | 지시자 설명 | ||
AuthName 인증 영역(웹 브라우저의 인증 창에 표시되는 문구) | AuthName 인증 영역(웹 브라우저의 인증 창에 표시되는 문구) | ||
줄 760: | 줄 897: | ||
AuthGroupFile 그룹 파일의 위치(옵션) | AuthGroupFile 그룹 파일의 위치(옵션) | ||
Require 접근을 허용할 사용자 또는, 그룹 정의 | Require 접근을 허용할 사용자 또는, 그룹 정의 | ||
+ | |||
Step 4) 사용자 인증에 사용할 아이디 및 패스워드 생성 | Step 4) 사용자 인증에 사용할 아이디 및 패스워드 생성 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
htpasswd -c / | htpasswd -c / | ||
New password: | New password: | ||
줄 766: | 줄 906: | ||
| | ||
[root@localhost apache]# | [root@localhost apache]# | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 5) 변경된 설정 내용을 적용하기 위하여 Apache 데몬 재시작 | Step 5) 변경된 설정 내용을 적용하기 위하여 Apache 데몬 재시작 | ||
+ | |||
\\ | \\ | ||
+ | |||
====웹서비스 불필요한 파일 제거==== | ====웹서비스 불필요한 파일 제거==== | ||
+ | |||
점검목적 | 점검목적 | ||
Apache 설치 시 디폴트로 설치되는 불필요한 파일을 제거함을 목적으로 함 | Apache 설치 시 디폴트로 설치되는 불필요한 파일을 제거함을 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
Apache 설치 시 htdocs 디렉터리 내에 매뉴얼 파일은 시스템 관련정보를 노출하거나 해킹에 악용될 수 있음 | Apache 설치 시 htdocs 디렉터리 내에 매뉴얼 파일은 시스템 관련정보를 노출하거나 해킹에 악용될 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
불필요한 파일 및 디렉터리 존재 여부 확인 | 불필요한 파일 및 디렉터리 존재 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ls -ld / | #ls -ld / | ||
#ls -ld / | #ls -ld / | ||
+ | </ | ||
+ | </ | ||
+ | |||
위에 제시한 불필요한 파일 및 디렉터리가 존재하는 경우 아래의 보안설정방법에 따라 불필요한 파일 및 디렉터리 제거 또는, 설정을 변경함 | 위에 제시한 불필요한 파일 및 디렉터리가 존재하는 경우 아래의 보안설정방법에 따라 불필요한 파일 및 디렉터리 제거 또는, 설정을 변경함 | ||
+ | |||
Step 1) #ls 명령어로 확인된 매뉴얼 디렉터리 및 파일 제거 | Step 1) #ls 명령어로 확인된 매뉴얼 디렉터리 및 파일 제거 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#rm -rf / | #rm -rf / | ||
#rm -rf / | #rm -rf / | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 2) #ls 명령어로 정상적인 제거 확인 | Step 2) #ls 명령어로 정상적인 제거 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ls -ld / | #ls -ld / | ||
#ls –ld / | #ls –ld / | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 3) 추가적으로 웹서비스 운영에 불필요한 파일이나 디렉터리가 있을 시 제거 | Step 3) 추가적으로 웹서비스 운영에 불필요한 파일이나 디렉터리가 있을 시 제거 | ||
+ | |||
\\ | \\ | ||
+ | |||
====웹서비스 링크 사용 금지==== | ====웹서비스 링크 사용 금지==== | ||
+ | |||
점검목적 | 점검목적 | ||
무분별한 심볼릭 링크, aliases 사용제한으로 시스템 권한의 탈취 방지를 목적으로 함 | 무분별한 심볼릭 링크, aliases 사용제한으로 시스템 권한의 탈취 방지를 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
웹 루트 폴더(DocumentRoot)에 root 디렉터리(/ | 웹 루트 폴더(DocumentRoot)에 root 디렉터리(/ | ||
+ | |||
점검방법 | 점검방법 | ||
Options 지시자 FollowSymLinks 옵션 제거 여부 확인 | Options 지시자 FollowSymLinks 옵션 제거 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
Options Indexes FollowSymLinks | Options Indexes FollowSymLinks | ||
+ | </ | ||
+ | </ | ||
+ | |||
위에 제시한 옵션이 적용되어 있는 경우 아래의 보안설정방법에 따라 옵션을 제거함 | 위에 제시한 옵션이 적용되어 있는 경우 아래의 보안설정방법에 따라 옵션을 제거함 | ||
- | Step 1) vi 편집기를 이용하여 / | + | |
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 2) 설정된 모든 디렉터리의 Options 지시자에서 FollowSymLinks 옵션 제거 | Step 2) 설정된 모든 디렉터리의 Options 지시자에서 FollowSymLinks 옵션 제거 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
| | ||
< | < | ||
- | Options Indexes FollowSymLinks | + | Options Indexes FollowSymLinks |
- | | + | |
- | Order allow, deny | + | |
- | Allow from all | + | |
</ | </ | ||
+ | |||
(수정 후) Options 지시자에 FollowSymLinks 삭제 또는 -FollowSymLinks 변경 후 저장 | (수정 후) Options 지시자에 FollowSymLinks 삭제 또는 -FollowSymLinks 변경 후 저장 | ||
< | < | ||
- | Options FollowSymLinks 삭제 또는 -FollowSymLinks | + | Options FollowSymLinks 삭제 또는 -FollowSymLinks |
- | | + | |
- | Order allow, deny | + | |
- | Allow from all | + | |
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====웹서비스 파일 업로드 및 다운로드 제한==== | ====웹서비스 파일 업로드 및 다운로드 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
기반시설 특성상 원칙적으로 파일 업로드 및 다운로드를 금지하고 있지만 불가피하게 필요시 용량 사이즈를 제한함으로써 불필요한 업로드와 다운로드를 방지해 서버의 과부하 예방 및 자원을 효율적으로 관리하기 위함 | 기반시설 특성상 원칙적으로 파일 업로드 및 다운로드를 금지하고 있지만 불가피하게 필요시 용량 사이즈를 제한함으로써 불필요한 업로드와 다운로드를 방지해 서버의 과부하 예방 및 자원을 효율적으로 관리하기 위함 | ||
+ | |||
보안위협 | 보안위협 | ||
악의적 목적을 가진 사용자가 반복 업로드 및 웹 쉘 공격 등으로 시스템 권한을 탈취하거나 대용량 파일의 반복 업로드로 서버자원을 고갈시키는 공격의 위험이 있음 | 악의적 목적을 가진 사용자가 반복 업로드 및 웹 쉘 공격 등으로 시스템 권한을 탈취하거나 대용량 파일의 반복 업로드로 서버자원을 고갈시키는 공격의 위험이 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
LimitRequestBody 파일 사이즈 용량 제한 설정 여부 확인 | LimitRequestBody 파일 사이즈 용량 제한 설정 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
LimitRequestBody 5000000 | LimitRequestBody 5000000 | ||
(※ 업로드 및 다운로드 파일이 5M를 넘지 않도록 설정 권고함) | (※ 업로드 및 다운로드 파일이 5M를 넘지 않도록 설정 권고함) | ||
+ | </ | ||
+ | </ | ||
+ | |||
위에 제시한 설정이 적용되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | 위에 제시한 설정이 적용되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | ||
- | Step 1) vi 편집기를 이용하여 / | + | |
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 2) 설정된 모든 디렉터리의 LimitRequestBody 지시자에서 파일 사이즈 용량 제한 설정 | Step 2) 설정된 모든 디렉터리의 LimitRequestBody 지시자에서 파일 사이즈 용량 제한 설정 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
예) | 예) | ||
< | < | ||
LimitRequestBody 5000000 (※ “/” 는 모든 파일 사이즈를 5M로 제한하는 설정 단위: | LimitRequestBody 5000000 (※ “/” 는 모든 파일 사이즈를 5M로 제한하는 설정 단위: | ||
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====웹서비스 영역의 분리==== | ====웹서비스 영역의 분리==== | ||
+ | |||
점검목적 | 점검목적 | ||
웹 서비스 영역과 시스템 영역을 분리시켜서 웹 서비스의 침해가 시스템 영역으로 확장될 가능성을 최소화하기 위함 | 웹 서비스 영역과 시스템 영역을 분리시켜서 웹 서비스의 침해가 시스템 영역으로 확장될 가능성을 최소화하기 위함 | ||
+ | |||
보안위협 | 보안위협 | ||
웹 서버의 루트 디렉터리와 OS의 루트 디렉터리를 다르게 지정하지 않았을 경우, 비인가자가 웹 서비스를 통해 해킹이 성공할 경우 시스템 영역까지 접근이 가능하여 피해가 확장될 수 있음 | 웹 서버의 루트 디렉터리와 OS의 루트 디렉터리를 다르게 지정하지 않았을 경우, 비인가자가 웹 서비스를 통해 해킹이 성공할 경우 시스템 영역까지 접근이 가능하여 피해가 확장될 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
DocumentRoot의 별도 디렉터리 지정 여부 확인 | DocumentRoot의 별도 디렉터리 지정 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code vim> | ||
#vi / | #vi / | ||
DocumentRoot "/ | DocumentRoot "/ | ||
DocumentRoot "/ | DocumentRoot "/ | ||
DocumentRoot "/ | DocumentRoot "/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
DocumentRoot가 별도의 디렉터리로 지정되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | DocumentRoot가 별도의 디렉터리로 지정되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | ||
- | Step 1) vi 편집기를 이용하여 / | + | |
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
- | Step 2) DocumentRoot 설정 부분에 | + | </ |
- | "/ | + | </ |
+ | |||
+ | Step 2) DocumentRoot 설정 부분에 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | DocumentRoot " | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====ssh 원격접속 허용==== | ====ssh 원격접속 허용==== | ||
+ | |||
점검목적 | 점검목적 | ||
- | 비교적 안전한 SSH 프로토콜을 사용함으로써 스니핑 등 아이디/ | + | 비교적 안전한 SSH 프로토콜을 사용함으로써 스니핑 등 아이디/ |
보안위협 | 보안위협 | ||
원격 접속 시 Telnet, FTP 등은 암호화되지 않은 상태로 데이터를 전송하기 때문에 아이디/ | 원격 접속 시 Telnet, FTP 등은 암호화되지 않은 상태로 데이터를 전송하기 때문에 아이디/ | ||
+ | |||
점검방법 | 점검방법 | ||
+ | |||
Step 1) SSH 서비스 활성화 명령어 실행 | Step 1) SSH 서비스 활성화 명령어 실행 | ||
- | # | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #service sshd start | ||
+ | 또는 | ||
+ | #service ssh start | ||
+ | 또는 | ||
+ | #systemctl start sshd | ||
+ | </ | ||
+ | </ | ||
Step 2) SSH 설치가 필요할 경우 각 OS 벤더사로부터 SSH 서비스 설치 방법을 문의한 후 서버에 설치 | Step 2) SSH 설치가 필요할 경우 각 OS 벤더사로부터 SSH 서비스 설치 방법을 문의한 후 서버에 설치 | ||
\\ | \\ | ||
====ftp 서비스 확인==== | ====ftp 서비스 확인==== | ||
+ | |||
점검목적 | 점검목적 | ||
취약한 서비스인 FTP서비스를 가급적 제한함을 목적으로 함 | 취약한 서비스인 FTP서비스를 가급적 제한함을 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
FTP 서비스는 통신구간이 평문으로 전송되어 계정정보(아이디, | FTP 서비스는 통신구간이 평문으로 전송되어 계정정보(아이디, | ||
+ | |||
점검방법 | 점검방법 | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
일반 ftp 서비스 비활성화 여부 확인 | 일반 ftp 서비스 비활성화 여부 확인 | ||
#ps -ef | grep ftp | #ps -ef | grep ftp | ||
- | vsftpd 또는 ProFTP 서비스 데몬 확인(vsftpd, | + | |
- | 확인) | + | vsftpd 또는 ProFTP 서비스 데몬 확인(vsftpd, |
#ps -ef | egrep " | #ps -ef | egrep " | ||
root 3809 3721 0 08:44:40 ? 0:00 / | root 3809 3721 0 08:44:40 ? 0:00 / | ||
+ | </ | ||
+ | </ | ||
+ | |||
불필요한 " | 불필요한 " | ||
+ | |||
vsftpd 또는 ProFTP 서비스 데몬 중지 | vsftpd 또는 ProFTP 서비스 데몬 중지 | ||
- | # service vsftpd(proftp) stop 또는 / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | # service vsftpd(proftp) stop | ||
+ | 또는 | ||
+ | #/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====ftp 계정 shell 제한==== | ====ftp 계정 shell 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
FTP 서비스 설치 시 기본으로 생성되는 ftp 계정은 로그인이 필요하지 않은 계정으로 쉘을 제한하여 해당 계정으로의 시스템 접근을 차단하기 위함 | FTP 서비스 설치 시 기본으로 생성되는 ftp 계정은 로그인이 필요하지 않은 계정으로 쉘을 제한하여 해당 계정으로의 시스템 접근을 차단하기 위함 | ||
+ | |||
보안위협 | 보안위협 | ||
불필요한 기본 계정에 쉘(Shell)을 부여할 경우, 공격자에게 해당 계정이 노출되어 ftp 기본 계정으로 시스템 접근하여 공격이 가능해짐 | 불필요한 기본 계정에 쉘(Shell)을 부여할 경우, 공격자에게 해당 계정이 노출되어 ftp 기본 계정으로 시스템 접근하여 공격이 가능해짐 | ||
+ | |||
점검방법 | 점검방법 | ||
- | ftp 계정에 대한 /bin/false 부여 확인 | + | ftp 계정에 대한 |
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat /etc/passwd | #cat /etc/passwd | ||
ftp: | ftp: | ||
USER:/ | USER:/ | ||
- | "passwd" | + | </ |
- | Step 1) vi 편집기를 이용하여 | + | </ |
- | Step 2) ftp 계정의 로그인 쉘 부분인 계정 맨 마지막에 /bin/false 부여 및 변경 | + | |
+ | '' | ||
+ | |||
+ | Step 1) vi 편집기를 이용하여 | ||
+ | |||
+ | Step 2) ftp 계정의 로그인 쉘 부분인 계정 맨 마지막에 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
| | ||
| | ||
- | Step 3) # usermod –s /bin/false [계정ID] 부여로 변경 가능 | + | </code> |
- | * Step 2 로 적용이 되지 않을 경우는 | + | </WRAP> |
+ | |||
+ | Step 3) Step 2 로 적용이 되지 않을 경우는 usermod 명령어를 사용하여 쉘 변경 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # usermod –s /bin/false [계정ID] 부여로 변경 가능 | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====Ftpusers 파일 소유자 및 권한 설정==== | ====Ftpusers 파일 소유자 및 권한 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
- | 비인가자들의 ftp 접속을 차단하기 위해 ftpusers 파일 소유자 및 권한을 관리해야함 | + | 비인가자들의 ftp 접속을 차단하기 위해 ftpusers 파일 소유자 및 권한을 관리해야함 |
보안위협 | 보안위협 | ||
ftpusers 파일에 인가되지 않은 사용자를 등록하여 해당 계정을 이용, 불법적인 FTP 서비스에 접근이 가능함 | ftpusers 파일에 인가되지 않은 사용자를 등록하여 해당 계정을 이용, 불법적인 FTP 서비스에 접근이 가능함 | ||
+ | |||
점검방법 | 점검방법 | ||
ftpusers 파일에 대한 일반사용자 쓰기권한 확인 | ftpusers 파일에 대한 일반사용자 쓰기권한 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ls -al / | #ls -al / | ||
#ls -al / | #ls -al / | ||
rw-r----- root < | rw-r----- root < | ||
+ | </ | ||
+ | </ | ||
+ | |||
“ftpusers" | “ftpusers" | ||
+ | |||
FTP 종류 별 ftpusers 파일 위치 | FTP 종류 별 ftpusers 파일 위치 | ||
- | 기본 FTP / | + | 기본 FTP '' |
- | ProFTP / | + | ProFTP |
- | vsFTP / | + | vsFTP '' |
- | Step 1) “/ | + | |
- | #ls -l / | + | Step 1) '' |
- | Step 2) “/ | + | <WRAP prewrap> |
- | # | + | <code bash> |
- | # | + | #ls -l / |
+ | </ | ||
+ | </ | ||
+ | |||
+ | Step 2) '' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #chown root / | ||
+ | #chmod 640 / | ||
+ | </ | ||
+ | </ | ||
※ vsFTP를 사용할 경우 FTP 접근제어 파일 | ※ vsFTP를 사용할 경우 FTP 접근제어 파일 | ||
- | (1) vsftpd.conf 파일에서 userlist_enable=YES인 경우: vsftpd.ftpusers, | + | (1) '' |
- | ftpusers, user_list 파일의 소유자 및 권한 확인 후 변경 | + | |
| | ||
- | (2) vsftpd.conf 파일에서 userlist_enable=NO 또는, 옵션 설정이 없는 경우: vsftpd.ftpusers | + | (2) '' |
- | 또는 ftpusers 파일의 소유자 및 권한 확인 후 변경 | + | |
| | ||
\\ | \\ | ||
====Ftpusers 파일 설정==== | ====Ftpusers 파일 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
root의 FTP 직접 접속을 방지하여 root 패스워드 정보를 노출되지 않도록 하기 위함 | root의 FTP 직접 접속을 방지하여 root 패스워드 정보를 노출되지 않도록 하기 위함 | ||
+ | |||
보안위협 | 보안위협 | ||
FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 스니핑에 의해서 관리자 계정의 아이디 및 패스워드가 노출될 수 있음 | FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 스니핑에 의해서 관리자 계정의 아이디 및 패스워드가 노출될 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
아래 파일에서 ftp에 대한 root 계정으로의 접속 가능 여부 확인 | 아래 파일에서 ftp에 대한 root 계정으로의 접속 가능 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat / | #cat / | ||
#cat / | #cat / | ||
#root (주석처리) 또는, root 계정 미등록 | #root (주석처리) 또는, root 계정 미등록 | ||
+ | </ | ||
+ | </ | ||
+ | |||
ProFTP | ProFTP | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat / | #cat / | ||
RootLogin on | RootLogin on | ||
+ | </ | ||
+ | </ | ||
+ | |||
vsFTP | vsFTP | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat / | #cat / | ||
#cat / | #cat / | ||
줄 942: | 줄 1250: | ||
#cat / | #cat / | ||
#root (주석처리) 또는, root 계정 미등록 | #root (주석처리) 또는, root 계정 미등록 | ||
+ | </ | ||
+ | </ | ||
+ | |||
root 계정으로 FTP 접속이 가능하도록 위와 같이 설정된 경우 아래의 보안설정방법에 따라 설정을 변경함 | root 계정으로 FTP 접속이 가능하도록 위와 같이 설정된 경우 아래의 보안설정방법에 따라 설정을 변경함 | ||
+ | |||
< 일반 FTP 서비스 root 계정 접속 제한 방법 > | < 일반 FTP 서비스 root 계정 접속 제한 방법 > | ||
- | Step 1) vi 편집기를 이용하여 ftpusers 파일 열기 (“/ | + | Step 1) vi 편집기를 이용하여 |
- | #vi / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) ftpusers 파일에 root 계정 추가 또는, 주석제거 | Step 2) ftpusers 파일에 root 계정 추가 또는, 주석제거 | ||
- | (수정 전) #root 또는, root 계정 미등록 | + | <WRAP prewrap> |
- | | + | <code bash> |
+ | (수정 전) #root 또는, root 계정 미등록 | ||
+ | (수정 후) root | ||
+ | </ | ||
+ | </ | ||
< ProFTP 서비스 ROOT 접속 차단 > | < ProFTP 서비스 ROOT 접속 차단 > | ||
- | Step 1) vi 편집기를 이용하여 proftpd 설정파일(“/ | + | |
- | #vi / | + | Step 1) vi 편집기를 이용하여 |
- | Step 2) proftpd 설정파일 (“/ | + | <WRAP prewrap> |
- | | + | <code bash> |
- | | + | #vi / |
+ | </ | ||
+ | </ | ||
+ | |||
+ | Step 2) proftpd 설정파일 ('' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | (수정 전) RootLogin on | ||
+ | (수정 후) RootLogin off | ||
+ | </ | ||
+ | </ | ||
Step 3) ProFTP 서비스 재시작 | Step 3) ProFTP 서비스 재시작 | ||
+ | |||
< vsFTP 서비스 ROOT 접속 차단 > | < vsFTP 서비스 ROOT 접속 차단 > | ||
- | Step 1) vi 편집기를 이용하여 ftpusers 파일 열기 (“/ | + | Step 1) vi 편집기를 이용하여 ftpusers 파일 열기 ('' |
- | #vi / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) ftpusers 파일에 root 계정 추가 또는, 주석제거 | Step 2) ftpusers 파일에 root 계정 추가 또는, 주석제거 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
| | ||
| | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 3) vsFTP 서비스 재시작 | Step 3) vsFTP 서비스 재시작 | ||
+ | |||
※ vsFTP를 사용할 경우 FTP 접근제어 파일 | ※ vsFTP를 사용할 경우 FTP 접근제어 파일 | ||
- | (1) vsftpd.conf 파일에서 userlist_enable=YES인 경우: vsftpd.ftpusers, | + | |
- | (ftpusers, user_list 파일에 등록된 모든 계정의 접속이 차단됨) | + | |
- | (2) vsftpd.conf 파일에서 userlist_enable=NO 또는, 옵션 설정이 없는 경우: vsftpd.ftpusers 또는 ftpusers | + | |
- | (ftpusers 파일에 등록된 계정들만 접속이 차단됨) | + | |
\\ | \\ | ||
====at 파일 소유자 및 권한 설정==== | ====at 파일 소유자 및 권한 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
관리자외 at 서비스를 사용할 수 없도록 설정하고 있는지 점검하는 것을 목적으로 함 | 관리자외 at 서비스를 사용할 수 없도록 설정하고 있는지 점검하는 것을 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
root 외 일반사용자에게도 at 명령어를 사용할 수 있도록 할 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있음 | root 외 일반사용자에게도 at 명령어를 사용할 수 있도록 할 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
- | / | + | 점검 파일 위치 |
- | / | + | '' |
+ | '' | ||
" | " | ||
+ | |||
Step 1) at 명령어 일반사용자 권한 삭제 (at 명령어 위치는 OS별 다를수 있음) | Step 1) at 명령어 일반사용자 권한 삭제 (at 명령어 위치는 OS별 다를수 있음) | ||
※ at 명령어는 SUID가 설정되어 있으므로 SUID 설정 제거 | ※ at 명령어는 SUID가 설정되어 있으므로 SUID 설정 제거 | ||
- | # ls -l / | + | <WRAP prewrap> |
- | # chmod 4750 /usr/bin/at | + | <code bash> |
+ | # ls -l / | ||
+ | # chmod 4750 /usr/bin/at | ||
+ | </ | ||
+ | </ | ||
Step 2) cron 관련 설정파일 소유자 및 권한 설정 | Step 2) cron 관련 설정파일 소유자 및 권한 설정 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
# chown root <at 관련 파일> | # chown root <at 관련 파일> | ||
# chmod 640 <at 관련 파일> | # chmod 640 <at 관련 파일> | ||
+ | </ | ||
+ | </ | ||
+ | |||
■ at 명령어를 일반사용자에게 허용하는 경우 | ■ at 명령어를 일반사용자에게 허용하는 경우 | ||
- | Step 1) “/ | + | Step 1) '' |
- | # | + | <WRAP prewrap> |
- | # | + | <code bash> |
- | # | + | #chown root / |
- | # | + | #chmod 640 / |
- | Step 2) “/ | + | #chown root / |
- | # cat / | + | #chmod 640 / |
- | # cat / | + | </ |
+ | </ | ||
+ | |||
+ | Step 2) '' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # cat / | ||
+ | # cat / | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====SNMP 서비스 구동 점검==== | ====SNMP 서비스 구동 점검==== | ||
+ | |||
점검목적 | 점검목적 | ||
불필요한 SNMP 서비스 활성화로 인해 필요 이상의 정보가 노출되는 것을 막기 위해 SNMP 서비스를 중지해야함 | 불필요한 SNMP 서비스 활성화로 인해 필요 이상의 정보가 노출되는 것을 막기 위해 SNMP 서비스를 중지해야함 | ||
+ | |||
보안위협 | 보안위협 | ||
- | SNMP 서비스로 인하여 시스템의 주요 정보 유출 및 정보의 불법수정이 발생할 수 있음 | + | SNMP 서비스로 인하여 시스템의 주요 정보 유출 및 정보의 불법수정이 발생할 수 있음 |
점검방법 | 점검방법 | ||
Step 1) ps –ef | grep snmp로 검색 | Step 1) ps –ef | grep snmp로 검색 | ||
- | root 2028 1 0 Nov 24 ? 0:00 / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #ps –ef | grep snmp | ||
+ | root 2028 1 0 Nov 24 ? 0:00 / | ||
+ | </ | ||
+ | </ | ||
Step 2) snmp 사용하지 않을 시 서비스 중지 | Step 2) snmp 사용하지 않을 시 서비스 중지 | ||
- | #service snmpd stop | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #service snmpd stop | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====SNMP 서비스 커뮤니티스트링의 복잡성 설정==== | ====SNMP 서비스 커뮤니티스트링의 복잡성 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
Community String 기본 설정인 Public, Private는 공개된 내용으로 공격자가 이를 이용하여 SNMP 서비스를 통해 시스템 정보를 얻을 수 있기 때문에 Community String을 유추하지 못하도록 설정해야함 | Community String 기본 설정인 Public, Private는 공개된 내용으로 공격자가 이를 이용하여 SNMP 서비스를 통해 시스템 정보를 얻을 수 있기 때문에 Community String을 유추하지 못하도록 설정해야함 | ||
+ | |||
보안위협 | 보안위협 | ||
Community String은 Default로 public, private로 설정된 경우가 많으며, 이를 변경하지 않으면 이 String을 악용하여 환경설정 파일 열람 및 수정을 통한 공격, | Community String은 Default로 public, private로 설정된 경우가 많으며, 이를 변경하지 않으면 이 String을 악용하여 환경설정 파일 열람 및 수정을 통한 공격, | ||
간단한 정보수집에서부터 관리자 권한 획득 및 Dos공격까지 다양한 형태의 공격이 가능함 | 간단한 정보수집에서부터 관리자 권한 획득 및 Dos공격까지 다양한 형태의 공격이 가능함 | ||
+ | |||
점검방법 | 점검방법 | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
+ | |||
com2sec notConfigUser default public | com2sec notConfigUser default public | ||
- | 위의 설정과 같이 디폴트 커뮤니티명인 | + | </ |
+ | </ | ||
+ | |||
+ | 위의 설정과 같이 디폴트 커뮤니티명인 | ||
Step 1) vi 편집기를 이용하여 SNMP 설정파일 열기 | Step 1) vi 편집기를 이용하여 SNMP 설정파일 열기 | ||
- | #vi / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) Community String 값 설정 변경 (추측하기 어려운 값으로 설정) | Step 2) Community String 값 설정 변경 (추측하기 어려운 값으로 설정) | ||
- | (수정 전) com2sec notConfigUser default public | + | <WRAP prewrap> |
- | | + | <code bash> |
+ | (수정 전) com2sec notConfigUser default public | ||
+ | (수정 후) com2sec notConfigUser default <변경 값> | ||
+ | </ | ||
+ | </ | ||
Step 3) 서비스 재구동 | Step 3) 서비스 재구동 | ||
- | # service snmpd rstart | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | # service snmpd restart | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====로그온 시 경고 메시지 제공==== | ====로그온 시 경고 메시지 제공==== | ||
+ | |||
점검목적 | 점검목적 | ||
비인가자들에게 서버에 대한 불필요한 정보를 제공하지 않고, 서버 접속 시관계자만 접속해야 한다는 경각심을 심어 주기위해 경고 메시지 설정이 필요함 | 비인가자들에게 서버에 대한 불필요한 정보를 제공하지 않고, 서버 접속 시관계자만 접속해야 한다는 경각심을 심어 주기위해 경고 메시지 설정이 필요함 | ||
+ | |||
보안위협 | 보안위협 | ||
로그인 배너가 설정되지 않을 경우 배너에 서버 OS 버전 및 서비스 버전이 공격자에게 노출될 수 있으며 공격자는 이러한 정보를 통하여 해당 OS 및 서비스의 취약점을 이용하여 공격을 시도할 수 있음 | 로그인 배너가 설정되지 않을 경우 배너에 서버 OS 버전 및 서비스 버전이 공격자에게 노출될 수 있으며 공격자는 이러한 정보를 통하여 해당 OS 및 서비스의 취약점을 이용하여 공격을 시도할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
- | Step 1) 서버 로그온 메시지 설정: vi 편집기로 | + | Step 1) 서버 로그온 메시지 설정: vi 편집기로 |
- | #vi /etc/motd | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #vi /etc/motd | ||
| | ||
- | Step 2) Telnet 배너 설정: vi 편집기로 | + | </ |
- | #vi / | + | </ |
+ | |||
+ | Step 2) Telnet 배너 설정: vi 편집기로 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
| | ||
- | Step 3) FTP 배너 설정: vi 편집기로 | + | </ |
- | #vi / | + | </ |
+ | |||
+ | Step 3) FTP 배너 설정: vi 편집기로 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
| | ||
- | Step 4) SMTP 배너 설정: vi 편집기로 | + | </ |
- | #vi / | + | </ |
+ | |||
+ | Step 4) SMTP 배너 설정: vi 편집기로 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
O Smtp GreetingMessage=" | O Smtp GreetingMessage=" | ||
- | Step 5) DNS 배너 설정: vi 편집기로 | + | </ |
- | #vi / | + | </ |
+ | |||
+ | |||
+ | Step 5) DNS 배너 설정: vi 편집기로 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
| | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====NFS 설정파일 접근 제한==== | ====NFS 설정파일 접근 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
비인가자에 의한 불법적인 외부 시스템 마운트를 차단하기 위해 NFS 접근제어 파일의 소유자 및 파일 권한을 설정 | 비인가자에 의한 불법적인 외부 시스템 마운트를 차단하기 위해 NFS 접근제어 파일의 소유자 및 파일 권한을 설정 | ||
+ | |||
보안위협 | 보안위협 | ||
NFS 접근제어 설정파일에 대한 권한 관리가 이루어지지 않을 시 인가되지 않은 사용자를 등록하고 파일시스템을 마운트하여 불법적인 변조를 시도할 수 있음 | NFS 접근제어 설정파일에 대한 권한 관리가 이루어지지 않을 시 인가되지 않은 사용자를 등록하고 파일시스템을 마운트하여 불법적인 변조를 시도할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
+ | 점검 파일 위치 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ls -al / | #ls -al / | ||
| | ||
+ | </ | ||
+ | </ | ||
+ | |||
" | " | ||
- | “/ | + | |
- | # | + | '' |
- | # | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #chown root / | ||
+ | #chmod 644 / | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====expn, vrfy 명령어 제한==== | ====expn, vrfy 명령어 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
SMTP 서비스의 expn, vrfy 명령을 통한 정보 유출을 막기 위하여 두 명령어를 사용하지 못하게 옵션을 설정해야함 | SMTP 서비스의 expn, vrfy 명령을 통한 정보 유출을 막기 위하여 두 명령어를 사용하지 못하게 옵션을 설정해야함 | ||
+ | |||
보안위협 | 보안위협 | ||
VRFY, EXPN 명령어를 통하여 특정 사용자 계정의 존재유무를 알 수 있고, 사용자의 정보를 외부로 유출 할 수 있음 | VRFY, EXPN 명령어를 통하여 특정 사용자 계정의 존재유무를 알 수 있고, 사용자의 정보를 외부로 유출 할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
noexpn, novrfy 옵션 설정 확인 | noexpn, novrfy 옵션 설정 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
O PrivacyOptions= (noexpn, novrfy 또는 goaway 옵션 설정 여부) | O PrivacyOptions= (noexpn, novrfy 또는 goaway 옵션 설정 여부) | ||
+ | </ | ||
+ | </ | ||
※ goaway 옵션 : authwarnings, | ※ goaway 옵션 : authwarnings, | ||
+ | |||
< | < | ||
- | Step 1) vi 편집기를 이용하여 | + | Step 1) vi 편집기를 이용하여 |
- | #vi / | + | <WRAP prewrap> |
- | Step 2) “/ | + | <code bash> |
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Step 2) '' | ||
+ | <WRAP prewrap> | ||
+ | <code vim> | ||
(수정 전) O PrivacyOptions=authwarnings | (수정 전) O PrivacyOptions=authwarnings | ||
- | (수정 후) O PrivacyOptions=authwarnings, | + | (수정 후) O PrivacyOptions=authwarnings, |
+ | </ | ||
+ | </ | ||
Step 3) SMTP 서비스 재시작 | Step 3) SMTP 서비스 재시작 | ||
+ | |||
< 서비스 불필요 시> | < 서비스 불필요 시> | ||
Step 1) 실행중인 서비스 중지 | Step 1) 실행중인 서비스 중지 | ||
- | #ps –ef | grep sendmail | + | <WRAP prewrap> |
- | root 441 1 0 Sep19 ? 00:00:00 sendmail: accepting connections | + | <code bash> |
- | #kill -9 [PID] | + | #ps –ef | grep sendmail |
+ | root 441 1 0 Sep19 ? 00:00:00 sendmail: accepting connections | ||
+ | #kill -9 [PID] | ||
+ | </ | ||
+ | </ | ||
Step 2) 시스템 재시작 시 SMTP 서버가 시작되지 않도록 OS별로 아래와 같이 설정함 | Step 2) 시스템 재시작 시 SMTP 서버가 시작되지 않도록 OS별로 아래와 같이 설정함 | ||
1. 위치 확인 | 1. 위치 확인 | ||
- | #ls –al / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #ls –al / | ||
+ | </ | ||
+ | </ | ||
2. 이름 변경 | 2. 이름 변경 | ||
- | #mv / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #mv / | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====Apache 웹 서비스 정보 숨김==== | ====Apache 웹 서비스 정보 숨김==== | ||
+ | |||
점검목적 | 점검목적 | ||
- | HTTP 헤더, 에러페이지에서 웹 서버 버전 및 종류, OS 정보 등 웹 서버와 관련된 불필요한 정보가 노출되지 않도록 하기 위함 | + | HTTP 헤더, 에러페이지에서 웹 서버 버전 및 종류, OS 정보 등 웹 서버와 관련된 불필요한 정보가 노출되지 않도록 하기 위함 |
보안위협 | 보안위협 | ||
불필요한 정보가 노출될 경우 해당 정보를 이용하여 시스템의 취약점을 수집할 수 있음 | 불필요한 정보가 노출될 경우 해당 정보를 이용하여 시스템의 취약점을 수집할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
ServerTokens, | ServerTokens, | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
# vi / | # vi / | ||
| | ||
| | ||
- | “httpd.conf” 파일 내에 ServerTokens, | + | </ |
- | Step 1) vi 편집기를 이용하여 / | + | </ |
- | #vi / | + | |
+ | '' | ||
+ | |||
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) 설정된 모든 디렉터리의 ServerTokens 지시자에서 Prod 옵션 설정 및 ServerSignature Off 지시자에 Off 옵션 설정 (없으면 신규 삽입) | Step 2) 설정된 모든 디렉터리의 ServerTokens 지시자에서 Prod 옵션 설정 및 ServerSignature Off 지시자에 Off 옵션 설정 (없으면 신규 삽입) | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
< | < | ||
- | Options Indexes FollowSymlinks | + | Options Indexes FollowSymlinks |
- | | + | |
- | | + | |
- | - 이하 생략- | + | |
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
ServerTokens 지시자 옵션 | ServerTokens 지시자 옵션 | ||
- | 키워드 | + | ^ 키워드 |
- | Prod 웹 서버 종류 | + | | Prod |
- | Min 웹 서버 버전 | + | | Min | 웹 서버 버전 |
- | OS 웹 서버 버전 + 운영체제 | + | | OS |
- | Full 웹 서버의 모든 정보 | + | | Full |
\\ | \\ | ||